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.
http://www.americanbanker.com/bankthink/smart-contracts-are-the-future-of-blockchain-1078705-1.html.
2) DonaldMcIntyre. "What Is Ethereum?
How Does It Work? • /r/ethereum." Reddit. Accessed August 07, 2016.
https://www.reddit.com/r/ethereum/comments/3krr3s/what_is_ethereum_how_does_it_work/.