In the last installment of this series, we talked about what “smart contracts” (or, perhaps more accurately, “self-enforcing contracts”) are, and discussed in detail the two main mechanisms through which these contracts can have “force”: smart property and “factum” currencies. We also discussed the limits of smart contracts, and how a smart contract-enabled legal system might use a combination of human judgement and automatic execution to achieve the best possible outcomes. But what is the point of these contracts? Why automate? Why is it better to have our relationships regulated and controlled by algorithms rather than humans? These are the tough questions that this article, and the next, intends to tackle.
A Tale of Two Industries
The first, and most obvious, benefit of using internet-driven technology to automate anything is the exact same that we have seen the internet, and Bitcoin, already provide in the spheres of communications and commerce: it increases efficiency and reduces barriers to entry. One very good example of this effect providing meaningful benefits in the traditional world is the publishing industry. In the 1970s, if you wanted to write a book, there was a large number of opaque, centralized intermediaries that you would need to go through before your book would get to a consumer. First, you would need a publishing company, which would also handle editing and marketing for you and provide a quality control function to the consumer. Second, the book would need to be distributed, and then finally it would be sold at each individual bookstore. Each part of the chain would take a large cut; at the end, you would be lucky to get more than ten percent of the revenue from each copy as a royalty. Notice the use of the term “royalty”, implying that you the author of the book are simply just another extraneous part of the chain that deserves a few percent as a cut rather than, well, the single most important person without whom the book would not even exist in the first place. Now, the situation is greatly improved. We now have distinct printing companies, marketing companies and bookstores, with a clear and defined role for each one and plenty of competition in each industry – and if you’re okay with keeping it purely digital, you can just publish on Kindle and get 70.
Now, let’s consider a very similar example, but with a completely different industry: consumer protection, or more specifically escrow. Escrow is a very important function in commerce, and especially commerce online; when you buy a product from a small online store or from a merchant on Ebay, you are participating in a transaction where neither side has a substantial reputation, and so when you send the money by default there is no way to be sure that you will actually get anything to show for it. Escrow provides the solution: instead of sending the money to the merchant directly, you first send the money to an escrow agent, and the escrow agent then waits for you to confirm that you received the item. If you confirm, then the escrow agent sends the money along, and if the merchant confirms that they can’t send the item then the escrow agent gives you your money back. If there’s a dispute, an adjudication process begins, and the escrow agent decides which side has the better case.
The way it’s implemented today, however, escrow is handled by centralized entities, and is thrown in together with a large number of other functions. On the online marketplace Ebay, for example, Ebay serves the role of providing a server for the seller to host their product page on, a search and price comparison function for products, and a rating system for buyers and sellers. Ebay also owns Paypal, which actually moves the money from the seller to the buyer and serves as the escrow agent. Essentially, this is exactly the same situation that book publishing was in in the 1970s, although in fairness to Ebay sellers do get quite a bit more than 10 of their money. So how can we make an ideal marketplace with cryptocurrencies and smart contracts? If we wanted to be extreme about it, we could make the marketplace decentralized, using a Diaspora-like model to allow a seller to host their products on a specialized site, on their own server or on a Decentralized Dropbox implementation, use a Namecoin-like system for sellers to store their identities and keep a web of trust on the blockchain. However, what we’re looking at now is a more moderate and simple goal: separating out the function of the escrow agent from the payment system. Fortunately, Bitcoin offers a solution: multisignature transactions.
Multisignature transactions allow a user to send funds to an address with three private keys, such that you need two of those keys to unlock the funds (multisigs can also be 1-of-3, 6-of-9, or anything else, but in practice 2-of-3 is the most useful). The way to apply this to escrow is simple: create a 2-of-3 escrow between the buyer, the seller and the escrow agent, have the buyer send funds into it and when a transaction is complete the buyer and the seller sign a transaction to complete the escrow. If there is a dispute, the escrow agent picks which side has the more convincing case, and signs a transaction with them to send them the funds. On a technological level, this is slightly complicated, but fortunately Bitrated has come up with a site that makes the process quite easy for the average user.
Of course, in its current form, Bitrated is not perfect, and we do not see that much Bitcoin commerce using it. The interface is arguably not as easy as it could be, especially since most people are not used to the idea of storing specific per-transaction links for a few weeks, and it would be much more powerful if it was integrated into a fully-fledged merchant package. One design might be a KryptoKit-like web app, showing each user a list of “open” buys and sells and providing a “finalize”, “accept”, “cancel” and “dispute” button for each one; users would then be able to interact with the multisig system just as if it was a standard payment processor, but then get a notification to finalize or dispute their purchases after a few weeks.
But if Bitrated does get its interface right and starts to see mass adoption, what will that accomplish? Once again, the answer is reduced barriers to entry. Currently, getting into the consumer escrow and arbitration business is hard. In order to be an escrow service, you essentially need to build an entire platform and an ecosystem, so that consumers and merchants operate through you. You also can’t just be the one escrowing the money – you also need to be the one transferring the money in the first place. Ebay needs to have, and control, Paypal, in order for half of its consumer protection to work. With Bitrated, this all changes. Anyone can become an escrow agent and arbitrator, and an Ebay-like marketplace (perhaps CryptoThrift or the upcoming Egora) can have a rating system for arbitrators as well as buyers and sellers. Alternatively, the system could handle arbitration in the background similarly to how Uber handles taxi drivers: anyone could become an arbitrator after a vetting process, and the system would automatically reward arbitrators with good ratings and fire those with bad ratings. Fees would drop, likely substantially below even the 2.9 charged by Paypal alone.
Smart contracts in general take this same basic idea, and push it much further. Instead of relying on a platform like Bitfinex to hedge one’s Bitcoin holdings or speculate in either direction at high leverage, one can use a blockchain-based financial derivatives contract with a decentralized order book, leaving no central party to take any fees. The ongoing cost of maintaining an exchange, complete with operational security, server management, DDoS protection, marketing and legal expenses, could be replaced with a one-time effort to write the contract, likely in less than 100 lines of code, and another one-time effort to make a pretty interface. From that point on, the entire system would be free except for network fees. File storage platforms like Dropbox could be similarly replaced; although, since hard disk space costs money, the system would not be free, it would likely be substantially cheaper than it is today. It would also help equalize the market by making it easy to participate on the supply side: anyone with a big hard drive, or even a small hard drive with some extra space, can simply install the app and start earning money renting out their unused space.
Instead of relying on legal contracts using expensive (and often, especially in international circumstances and poor countries, ineffective) court systems, or even moderately expensive private arbitration services, business relationships can be governed by smart contracts where those parts of the contract that do need human interpretation can be segregated into many specialized parts. There might be judges specializing in determining whether or not a product shipped (ideally, this would be the postal system itself), judges specializing in determining whether web application designs meet specifications, judges specializing in adjudicating certain classes of property insurance claims with a $0.75 fee by examining satellite images, and there would be contract writers skilled in intelligently integrating each one. Specialization has its advantages, and is the reason why society moved beyond running after bears with stone clubs and picking berries, but one of its weaknesses has always been the fact that it requires intermediaries to manage and function, including intermediaries specifically to manage the relationship between the intermediaries. Smart contracts can remove the latter category almost completely, allowing for an even greater degree of specialization, along with lower barriers to entry within each now shrunken category.
However, this increase in efficiency is only one part of the puzzle. The other part, and perhaps the more important one, has to do with a topic that many cryptocurrency advocates hold dear: reducing trust. We will cover that in the next installment of this series.
Vitalik Buterin is a co-founder of Bitcoin Magazine who has been involved in the Bitcoin community since 2011, and has contributed to Bitcoin both as a writer and the developer of a fork of bitcoinjs-lib, pybitcointools and multisig.info, as well as one of the developers behind Egora. Now, Vitalik's primary job is as the main developer of Ethereum, a project which intends to create a next-generation smart contract and decentralized application platform that allows people to create any kind of decentralized application on top of a blockchain that can be imagined.