Bitcoin has seen success as it has settled as the most popular cryptocurrency. However, others believed they could implement blockchain technology to do more, possibly even to act as a “World Computer”. The Ethereum project was launched in 2015 with this explicit goal. They sought to create a decentralized network complete with smart contracts, programmable agreements that could be used to create decentralized applications (dApps).
WHAT PROBLEM WAS ETHEREUM BUILT TO SOLVE?
Bitcoin set out to be a store of value and medium of exchange, and arguably, it has achieved that goal. While it’s price has fluctuated greatly, the lifetime of bitcoin has shown significant net price gains. Bitcoin has proven to be a reliable, relatively cheap, and secure way to transfer value. While Ethereum functions on a blockchain and has its own native currency, ether, the project goal differs greatly from Satoshi Nakamoto's vision for bitcoin and blockchains.
WHAT ARE SMART CONTRACTS?
Smart contracts are computer protocols that facilitate, verify, or enforce the negotiation or performance of a contract. They are essentially self-executing programmable contracts. The idea was originally described by Nick Szabo in 1994 with the aim of eliminating economic friction by reducing the need for third parties. Smart contracts are irreversible and transparent and could prove to be a large part of the next iteration of the web. They have the potential to completely change how we interact with untrusted parties.
The internet has largely been built on centralized servers. Applications are dependent on these central points of failure, giving these third parties great control over the internet and digital identity. However, Ethereum’s Turing completeness allows for the creation of decentralized applications, or dApps for short. These are applications that are run on a decentralized network. They don’t require servers to run, rather, they utilize programmed smart contracts to function.
These smart contracts can be programmed so they execute an action under a certain set of conditions. They act completely autonomously and are can self-execute on chain transactions.
So what is needed to create a smart contract?
A subject of the contract
Digital signatures - all parties must sign the contract with their private keys.
Contract terms - After the trigger happens, the contract is performed in accordance with the contract terms. An oracle can be used to feed a smart contract real-world information.
Decentralized platform- this is where the contract is deployed on the Blockchain and is distributed to the nodes of the platform.
What industries could benefit from using smart contracts?
Crowdfunding websites are a platform where the use of third parties helps facilitate donations or refunds if the terms are not completed. A smart contract can eliminate the need for this third party. You could even set up a few contracts for portions of the donations to be drawn at different stages of completion of the project. However, smart contracts are limited to on-chain activity. They cannot find the external information that may be crucial to the execution of a contract, like a deadline being missed. Oracles are tools used by some smart contracts in order to obtain the real world information needed for smart contracts to function.
Real estate construction could work the same way. The general contractor would have to sign off that he paid his subcontractors, preventing a mechanics lien being placed on the property if he doesn’t pay them and tries to run off with the money. This is a great thing for those inexperienced in the industry who may now ask for this feature to be included in contracts. If subcontractors don’t have an experienced lawyer to know to include those contract terms, this mistake could be very costly because they wouldn’t be able to sell the property until the liens are paid in full.
Some of the benefits of using smart contracts are reducing fees by cutting out middlemen, efficiency, encrypted/hashed security. However, the benefits do come with some downsides, as any new technology does. Currently, smart contracts still have to take into effect human error when programming the contract. Programming is expensive and there can be issues with legality. Smart contracts also cannot be used without some aspect of human interaction either entering or double-checking the information.