Synergetic Smart Contracts with Fetch.AI
Smart Contracts (SC) are computer programmes that allow developers to harness the potential of an underlying blockchain infrastructure. The concept of a protocol to facilitate and enforce the terms of a contract has existed since 1996 and more recently has been pioneered by the Ethereum community. To date, Smart Contracts have been used to automate relatively straightforward tasks. For example, ‘if a flight is delayed by three hours or more, pay out £300 in compensation to the holder of our flight delay insurance policy’. Some insurers have already implemented this type of simple contract and it represents a big step forward in automation of the claims process — but our vision for SCs extends far beyond current use cases.
At Fetch, we’re building an infrastructure that provides decentralised solutions to complex coordination problems through a new type of contracts called Synergetic Smart Contracts. Synergetic Smart Contracts are extensions to the original concept of smart contracts enabling off-chain computation to be included in agreements involving N parties. Examples include optimisation problems in mobility, such as package delivery or autonomous car routing. Uber’s car-pooling service (Uber Pool) is an example of a centralised system that provides coordination, and reduces costs for passengers by allowing them to share a ride. The ecosystem comprises several taxis, many passengers and a large number of destinations dotted around a city. Uber’s algorithm plans the optimal route for each taxi based on passengers’ willingness to pool so that everyone benefits by squeezing a little more efficiency from the routing and sharing. However, this comes at a cost with Uber charging a substantial fee for solving the optimisation problem and handling payments between drivers and passengers.
Wouldn’t it be interesting if we could decentralise this service? Today’s SCs cannot deliver this type of complex solution. They are simply not designed for this problem and don’t provide the functionality that is needed. Rather, today’s SCs would take each journey in isolation for each taxi, without the ability for the taxis to say ‘I’m taking this part of the city, you look after that part, and overall we’ll have the most efficient routing solution’. As we will discuss in our upcoming Virtual Machine blog, the Fetch SC ecosystem is specifically designed to solve and use optimisation tasks that may be combinatorial in nature and in many cases involve very large amounts of computation. Importantly, they enable optimised coordination between parties in situations where coordination can provide an economic gain to all participants.
With Fetch, each of the taxis and passengers would be represented by autonomous agents. The trick then becomes how to coordinate all of the different parties for their mutual benefit. By specifying the problem within a Synergetic Smart Contract the challenge is posed to miners on the Fetch network. Miners then compete to provide the best algorithm and solution to the problem by processing the available data. In this case, the data includes the location of the taxis, passengers and their destinations combined with information on which passengers are willing to share with others. The different stakeholders contribute a small fee to be included in the contract that is dependent on the complexity of their submission. These fees then provide the reward for miners for obtaining a solution.
Of course, one miner might not solve the entire problem. It might be that several miners plan optimal routes for a single taxi, or a couple of taxis, but importantly system users are incentivised to only reward these partial solutions when they improve the overall vehicle routing plan. Fetch’s Synergetic Smart Contracts allow for problems to be solved in chunks but always with the complete problem in mind, optimising for overall efficiency. Only by considering the complete optimisation problem can we deliver absolute efficiency that surpasses today’s centralised approaches.