hutX protocol

binding identity to data for secure private data sharing and exchange

The hutX protocol enables data exchange between ethereum addresses by creating a hutX "smart data object". It adheres to the following principles, and comprises the following processes;

  • All data exchanged via the hutX protocol is solely controlled by an Ethereum address

  • An identity wishing to interact with the hutX protocol registers their identity in the following manner;

    • An RSA keypair is created

    • Encryption of the RSA private key, using the Ethereum address private key as an AES key.

    • Uploading of this keypair (Public key, encrypted private key) to IPFS

    • Registration of the IPFS location hash to a, Ethereum blockchain smart contract, making the identity publicly retrievable

    Any ethereum address can register a hutX keypair on the Ethereum public blockchain, via a smart contract.

hutX "smart data" object

  • A hutX object may represent;

    • A dataset offered for sale

    • A Request for Data (RFD)

  • A hutX object can be created via provided interfaces, or by any other means, and can be relayed, and widely shared via traditional software, and networks (API, front end etc.)

  • A hutX object can be discovered via the means referred to above.

Settling a hutX data exchange

A data exchange using the hutX protocol is settled through the following process;

  • A data owner uses an "ephemeral" ethereum address private key as an AES key to encrypt data offered or supplied

  • A data taker makes a request to settle the hutX object

  • A data owner who elects to settle the object decrypts the key, and encrypts it using the data taker’s registered public key

  • The value component, and hutX txComplete events are settled on the Ethereum blockchain, via a public tx

  • An interface / software may notify the data taker of the availability of their newly acquired data.

hutX object

The hutX protocol creates a hutX object containing the following properties;

meta: {
Owner, Data model, Tags, Title, Description, other meta information
data: {
IPFS location of encrypted data
Encrypted AES key to encrypted data
Value: {
Signed 0x object
Tx Hash of value settlement

See for an example object, settled as part of tx