Thursday, August 11, 2016

Intro to Smart Contracts

I first became interested in smart contracts after reading the book The Age of Cryptocurrency: How Bitcoin and Digital Money Are Challenging the Global Economic Order.  The book doesn't explain how smart contracts work well, but I was fascinated by the future Blockchain 2.0 technology.  
Smart contracts function like regular contracts that are created when two people make a bet or a customer takes out a loan from a bank. There is some variable term, such as if the patriots win or if you fail to make your interest payments, and a consequence, then you owe your friend ten dollars or the bank can take ownership of your house. But what’s unique about smart contracts is that they are based on the blockchain. The essence of the blockchain is that it creates a way to establish trust among untrusted parties. First, the blockchain creates a system in which there is no central authority that controls the servers that data is stored on because the blockchain is run off of thousands of independent computers around the globe. This means that nobody can corrupt stored data or change the terms of a contract without the other party knowing, since each computer’s ledger must agree with the other computers’ ledgers in the blockchain. Second, the blockchain publishes a public ledger of all transactions that have taken place within its network. This allows people to verify that a person actually posses the assets they claim to have.
Smart contracts could be very beneficial to underprivileged groups such as the unbanked. Unbanked people are not able to receive service by traditional financial institutions such as banks. This means that they are restricted in their ability to get loans and other forms of capital. By using smart contracts, the unbanked could digitize their assets* and post them as collateral to loans that individuals make to them. When the smart contract is being established, the person receiving the loan would place their asset token into an independent escrow account that is controlled by the smart contract code. The loan provider would do the same with the money being loaned, and this money would be sent to the customer. But if the customer failed to deposit their monthly interest payment into an escrow account managed by the smart contract code, this could trigger the escrow account to move the asset token into the loan provider’s account. Smart contracts on the blockchain provide a secure and unbiased way for people to enter into agreements, contracts, or bets.
Many people use the example of a bank being able to take control of a borrower’s home if they neglect to pay their loan payments as a great use case of smart contracts. People believe that this would greatly reduce litigation costs and efforts because the code would automatically process the change in ownership of the house. But if this change in ownership of the owner’s house takes so much time and effort to conduct after the customer defaults in the traditional system, I believe using smart contracts would just shift the workload of this litigation process to the front end when the contract is being created.
The Bitcoin blockchain cannot support smart contracts due to the fact that it does not allow “computer language to carry out a wider array of more precise instruction” beyond Bitcoin transactions, which is known as Turing completeness.1 Firms such as Ethereum are developing a blockchain that contains these Turing completeness capabilities that would allow for the programmability of programs like smart contracts.2

Here is a link to an interesting article on why the absolutism of smart contracts is an undesirable feature.

*See next post for description of asset tokens on the blockchain

1) DeRose, Chris. "'Smart Contracts' Are the Future of Blockchain." American Banker RSS. 2016. Accessed August 06, 2016.

2) DonaldMcIntyre. "What Is Ethereum? How Does It Work? • /r/ethereum." Reddit. Accessed August 07, 2016.