In this course we will see how Blockchain can help in the implementation of Smart Contracts. In the first course, Bitcoin and Cryptocurrency Technologies, we have seen traditional cryptography and network concepts such as encryptions, hashing and peer to peer network. Combining creatively these concepts lead to the innovative blockchain infrastructure creation.
Smart Contract history
A smart contract is a computer protocol with the purpose to digitally facilitate, verify, or enforce the performance of a contract. Smart contracts allow the performance of credible transactions without third parties. These transactions are trackable and irreversible.
The concept of Smart Contract was there well before the advent of Bitcoin blockchain. In fact it appeared for the first time in a Nick Szabo article in 1996. He introduced the concept of smart contract making a comparison with a vending machine. In fact, it is the simplest existing automatic contract. In the same way, he shows the possibility to introduce similar contracts to manage all sort of properties.
A canonical real-life example, which we might consider to be the primitive ancestor of smart contracts, is the humble vending machine.
Within a limited amount of potential loss (the amount in the till should be less than the cost of breaching the mechanism), the machine takes in coins, and via a simple mechanism, which makes a beginner's level problem in design with finite automata, dispense change and product fairly. Smart contracts go beyond the vending machine in proposing to embed contracts in all sorts of property that is valuable and controlled by digital means. Smart contracts reference that property in a dynamic, proactively enforced form, and provide much better observation and verification where proactive measures must fall short.
Ethereum Smart Contracts
Actually, there are many blockchains supporting smart contract features, such as Ethereum, Linux Foundation’s Hyperledger and many others. In this course, we will see how to design, implement, deploy and execute smart contracts on Ethereum blockchain. We have chosen Ethereum, since it is a general mainstream blockchain. In addition, it is taken as a reference for many other implementations. It was born with the purpose of supporting smart contract in the way described by Nick Szabo almost 20 years before. Anyway, we will discuss about other private blockchain implementations in future courses, related to business blockchain implementations.
In this course we will see how to develop, deploy and execute smart contract using the Solidity language and Remix online IDE. Remix is a very useful tool and can be used both for test and production environment. We will also stress the importance of coding smart contract following a series of best practices and rules. As story tells us, there are many possible risks of bad implementations. In the past there were some big issues due to bad coding, such as the DAO or Parity wallet hack.
In the second part of the course, we will also see how to develop and end-to-end web application. A so called DApp – Decentralized Application, using a smart contract deployed on Ethereum test chain.
Back to main course page.