You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Hasq

From EverybodyWiki Bios & Wiki



Hasq is a technology for creation and control of digital tokens. It's based on a particular hash chaining scheme[1] which (optionally) allows for anonymous operations. The technology was developed in 2012 by an Australian company, Hasq Technology Pty Ltd. Using the idea of a public distributed ledger, Hasq achieves a high level of reliability of token ownership transfer without the use of public-key cryptography.

Unlike Bitcoin, there is no limit on the supply of tokens in the system. Being a generic solution, Hasq does not assign any particular meaning to its tokens. Instead, the issuer of tokens defines their number and interpretation. Due to the design of the system, ultimately no wallet for storing tokens is required which eliminates the risk of accidental loss of tokens.

Ownership and its properties[edit]

Hasq chain is a linked list of records designed specifically to make ownership and transfer of digital tokens as simple as possible.

To own something often means to be able to control it. The concept of control implies that ownership can be transferred at will to another party. However, in most cases ownership can also be lost against one's will. This is true for real objects as well as for abstractions like a bank account or copyright. There is a concept, however, which is substantially different in this regard and that is authorship. Under no circumstances can authorship be lost or taken away. The downside of this ultimate protection is that authorship cannot be transferred at will. Creating a mechanism which provides the same level of protection of assets as with authorship, but which allows assets' owners to transfer ownership when they wish to do so, presents a significant challenge. On the other hand, such a mechanism would have a multitude[2] of real life applications. Considering the extent of information technology use in modern society, this mechanism has the potential to change the way people recognise and prove ownership.

Design[edit]

General description[edit]

A Hasq network consists of interconnected Hasq servers. Users communicate with servers using a publicly available API. Every token ownership transfer (transaction) is recorded in a database. The Hasq record chaining scheme is based on the use of hash functions. Once chosen, the same hash function will be used for every record within a database. A Hasq server may have several databases which may be incompatible.

Token[edit]

A Hasq token is a string of hexadecimal characters which must satisfy two criteria: 1) it must be unique within a database and 2) the length of a string must be equal to the length of a hash string produced by the database hash function. The easiest way to generate tokens is to apply the database hash function to the digital data to be protected. In this case not only will tokens be tied to data, but also the above criteria will be automatically satisfied. There is no limit on the number of tokens in the system. Anyone can generate tokens and publish them on Hasq network. Once published, tokens become publicly available for reading.

Record format[edit]

Each database record has the following format:

  N S K {G1 G2 ...} O [D]

where:

 N is a sequence number for S
 S is a Hasq token
 K, G, O are hash strings used to link records; they stand for Key, Generator and Owner
 D is an optional owners data field

All fields in a Hasq database are textual, separated by a space character. The number of fields G can differ between databases, but is fixed within a database. The following description of the chaining scheme uses one G, but zero or more than one can also be assumed.

Data field D must be a string of printable characters possibly separated by spaces. Its length can be limited by a setting in the database. Since it is optional and printable, all text, if present, after the field O is data, and all and multiple white space separators are equivalent to one white space.

Chaining scheme[edit]

A list of records extracted from a database and corresponding to a particular S represents a Hash chain:

 N0 S K0 G0 O0
 N1 S K1 G1 O1
 N2 S K2 G2 O2
 N3 S K3 G3 O3
 N4 S K4 G4 O4

where N0 ... N4 are consecutive numbers for S: N1 = N0 + 1, N2 = N1 + 1 etc. Field D is not shown since it's not used in record linking.

The records are linked by using the following rules:

 G0 = Hash(N1, S, K1)
 O0 = Hash(N1, S, G1)
 G1 = Hash(N2, S, K2)
 O1 = Hash(N2, S, G2)
 and so on

Here Hash is the database hash function. It takes arguments in a textual form, concatenated by a space character.

A Hasq server publishes a new record only if it follows the above rules. Since all records are publicly available, the consistency of a database can be verified independently.

Ownership[edit]

Hasq token ownership is realized in the following way. Suppose that the last record in a database for a particular S is N0 S K0 G0 O0. It is said that someone owns S when they know the (secret) keys K1 and K2 since these keys were needed to publish this record. Revealing K1 and then K2 makes it possible to publish the next record. Since the new record also requires its own secret keys, revealing K1 and K2 effectively allows token ownership transfer to another party.

Keys and passwords[edit]

Secret keys are hash-like strings which have to be provided by a new token owner. They will also be required for passing a token to the next owner. So having a way to restore keys for a particular token is crucial. There are several recommendations for generating keys in Hasq which solve the problem of managing many keys and eliminate the need to store them on a storage device: 1) a key has to be generated with the use of a hash function, 2) input to the hash function should include a passphrase that a user can easily remember, 3) input should also include the token itself (S), 4) input should include a variable part which the user can easily restore. The example of a key generating algorithm in accordance with these recommendations is below:

 Ki = Hash(passphrase, S, i)

where i is a number of a record where Ki will eventually be revealed.

There are an unlimited number of other ways to generate keys, but if a passphrase is long enough, even the simple algorithm shown above makes it virtually impossible for a not-intending person to recreate a key. At the same time a token owner will always be able to restore keys for every token they own.

Transactions[edit]

There are a number of techniques to pass token ownership from one person to another. The most interesting scenario is when the recipient (the future owner) desires to stay anonymous. The recipient generates K3, G2, O1, then sends O1 to the current owner (the sender). The sender publishes a new record N1 S K1 G1 O1 revealing his first secret key K1. After the publication the recipient can verify that O1 appeared in the database. At this moment in time neither the sender nor the recipient owns the token, because K2 is known only to the sender and K3 is known only to the recipient. Until the sender and the recipient come to an agreement, the token is locked. Next the recipient generates O2 (by generating K4 and G3 first) and sends both G2 and O2 to the sender to publish the record N2 S K2 G2 O2. Once this record is published, the recipient becomes the current owner of token S because he knows both new secret keys K3 and K4.

Proving ownership[edit]

Token ownership can be proved by adding a new record to a chain of records. By doing this, the current token owner creates a new record with a possible challenge code. Since publication of the next record requires knowledge of secret keys the previous record was published with, the fact that a person was able to add another record to a chain identifies them as the legitimate token owner. For example, a person A asks person B, who claims to be the owner of the token, to create a new record publishing in data field some random string, say XYZ. If a new record is created with XYZ, then A has verified that B holds the keys to the token.

Wallets[edit]

While having dedicated software, installed on a user's hardware, may be useful for storing and controlling tokens, it is ultimately not necessary. This is particularly true in cases where tokens can easily be restored by applying a chosen hash function to digital source data that the token was first derived from. In more complex cases, a wallet can be implemented as a system of interconnected tokens which themselves are stored on Hasq servers. A simple script would be required to access such a wallet. However, if the structure of a wallet of this kind is known, all operations/transactions can be done manually using a publicly available Hasq server API. Since there is no need to store tokens on the client side, ultimately no tokens can be accidentally lost by their owner.

Anonymity[edit]

A unique feature of Hasq is that a token recipient may acquire ownership as a result of a sender posting messages. Since there is no activity on the recipient's side, there is no way the acquired token can be associated with the recipient. Also there is no need for Hasq users to have wallet software installed on their hardware to store tokens. The wallet may reside on Hasq servers or may be absent all together. All of these features provide a way for users to stay absolutely anonymous. It should be noted though that anonymity in Hasq is optional. The token issuer, depending on context, may require users to authenticate themselves before a transaction can proceed.

Applications[edit]

Any real or virtual object can be assigned a token so one area where Hasq can be used is exchange of assets regardless of their nature. Since the token owner is the only person that knows how to add a new record to a chain of records, Hasq can also be used for registering and proving authorship, as a platform for building a secure messenger, as a mechanism for keeping immutable trail of events taking place, as an intermediary to other data. Hasq is different from other technologies, such as Bitcoin blockchain, but it solves the same problem of reliable transfer of ownership, so the areas where Hasq works effectively to some extent coincide with the areas where blockchain technology can be used.[2]

References[edit]

  1. "Hasq Hash Chains" (PDF). Cornell University Library. 14 December 2014.
  2. 2.0 2.1 "The Mega-Master Blockchain List". 2014.


This article "Hasq" is from Wikipedia. The list of its authors can be seen in its historical. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.