Bitcoin Smart Contracts

Ethereum has gained a larger amount of notoriety over the past few months due to the speculative interest in the concept of initial coin offerings (ICOs), but some believe adding the sort of complex smart contracting capabilities seen in Ethereum to Bitcoin would not be a wise move. This point of view was explained by attorney John Swingle at The Future of Bitcoin Conference 2017.

During his talk, Swingle noted that bitcoin solves real issues found in the traditional forms of money used around the world, smart contracts may not be useful as a general replacement for traditional contracts, and that these sorts of systems may be best implemented on layers separate from the base Bitcoin network.

Bitcoin Solves Real Issues with Money

Before getting into the top of smart contracts, Swingle discussed the value offered by bitcoin as a new form of money.

“The value proposition of bitcoin, for me, is that it combines the scarcity of a commodity like gold with the transactional efficiency of a purely-digital medium,” said Swingle. “It makes it possible to store and transfer value, including across distance, without the need for a trusted central intermediary.”

Swingle indicated that this is a major problem in the real world due to the important role that money plays in everyday life.

“From my perspective, conventional forms of money are all hugely flawed,” Swingle added.

Real world examples of Swingle’s point about the usefulness of bitcoin include darknet markets, Wikileaks donations, and the increased use of bitcoin in the online gambling industry. Micropayments are another problem area for traditional money that Bitcoin may be able to solve in the future.

How Useful are Smart Contracts?

Although Swingle sees value in bitcoin, he doesn’t see the same level of usefulness in generalized smart contracts, which he defined as “an agreement that is intended to be enforceable automatically via executable code.” When going through the various problems that can arise with traditional types of contracts, Swingle pointed out that smart contracts do not necessarily solve any of the key pain points.

According to Swingle, one of the key problems with traditional contracts is that multiple parties can believe they have come to an agreement and are on the same page but they may actually have different ideas about what it is that they’ve agreed to. However, he does not see smart contracts as a solution to this general issue.

“The aspects of a contract that actually lend themselves to expression in objective black and white code are not the aspects that are likely to raise confusion,” said Swingle.

Swingle added that it’s sometimes hard for the average person to figure out what smart contract code is supposed to do, and in other cases, the code may not do what everyone thought it was supposed to do. The DAO was a perfect example of the latter issue with smart contracts.

According to Swingle, another issue with traditional contracts is that “litigation is expensive and slow” even when you’re in the right. On top of that, the third party that resolves disputes, such as a judge or jury, could be incompetent or corrupt.

Swingle pointed out that many smart contracts still require some sort of third-party oracle to prove whether a real world condition was satisfied, which means it’s unclear how much smart contracts can help with the litigation process. In other words, the parties in the agreement still have to be able to prove their case to the oracle.

“My suspicion is that losing big because of a bug is probably greater than the typical risk that you’ll lose big to a judge that refuses to properly apply a truly unambiguous agreement,” said Swingle.

Swingle added that the third-party oracle in a smart contract can also be corrupt or incompetent, meaning that issue with the traditional system is not solved.

“Smart contracts seem to help, but only via forced funds escrow because in order for the smart contract to enforce the payment obligation, the funds have to be encumbered and sort if put under the control of the contract,” said Swingle. “Smart contracts aren’t or don’t seem to be a general solution to the problem of contracts; whereas, cryptocurrency arguably is a general solution to the entire problem of money . . . [Smart contract use cases] aren’t really the pain point of contracts. In other words, it’s like the least likely aspect of a contract to cause a problem.”

Smart Contracts in Bitcoin Should Be Avoided at Base Layer

Due to the relatively low or niche use of smart contracts, Swingle believes that these sorts of systems should be developed at layers above the base Bitcoin protocol.

“We may not want this advanced smart contract functionality to live in the base protocol because it seems like you’re potentially adding features to support a marginal use case at the potential expense of undermining the dominant and much, much more important use case,” explained Swingle.

Although not discussed by Swingle during his talk, RSK is a sidechain to Bitcoin that will allow for much more advanced smart contracts in a manner similar to Ethereum. Because RSK is a sidechain, it can be used on a voluntary basis and not affect the main Bitcoin network.

In the past, new smart contracting capabilities have been added to Bitcoin on an as-needed basis. For example, the OP_CSV opcode was added in an effort to improve the efficiency of layer-two transaction caching systems such as the Lightning Network.