Docs

Forming Agreements


DevGuide

Discovery Comes First

Once unknown and untrusted parties have discovered each other on Horizon, typically they will engage in negotiation and perhaps execute a contract to share data and/or services.

How do untrusted parties safely contract on Horizon?

Discovery reveals only the contract address of the advertising party.  That is, the discovery process still protects the privacy of the advertising party.  If the advertisement is attractive to a consuming device, then it may wish to negotiate a contract with the advertiser.  In Horizon, this negotiation also takes place on the blockchain.  The consuming device will create a transaction containing a smart contract proposal referencing the advertising device's contract address and containing other details material to the contract (e.g., the proposed price, if applicable, and perhaps the contract address of an escrow service that is holding the funds).  Subsequently the Horizon blockchain miners will write this proposal transaction onto the blockchain.

After placing its advertisement, the original device will need to be polling the blockchain, waiting to receive these proposals.  Once a proposal is found that the advertising device finds acceptable (typically offering a price equal to the price specified in the advertisement, and identifying an escrow service acceptable to the advertiser) then that original device will write a transaction to accept that proposal (perhaps after verifying the funds are in escrow).  Once the Horizon blockchain miners have written this acceptance onto the blockchain, then all involved parties will know that the contract is agreed, and they will then begin to work together to execute the contract requirements.

Note that the Horizon team has provided an escrow service that is being used by our Proof of Concept experiments.  Any participant in Horizon could offer escrow services and as long as none of the parties to a contract distrust that escrow service, then they may agree to the contract.

Actual execution of the contract will typically involve the exchange of private information over Whisper.  For example, the Insight applications will exchange information about IP addresses, GPS coordinates, and information about the Docker container that is to be run on the edge device (plus its hash and cryptographic signature).

Note that the consuming device will typically need to be satisfied that the original advertising device is complying with the contract before they release escrow and enable the original device to be paid.

Note that escrow is just one way to establish trust, and it is not required.  Other trust systems, such as reputation, are also being developed. Multiple trust systems could possibly be leveraged as well.