Skip to main content

Blockchain 101 for Developers - Part 2 - Smart Contracts (concepts)

I have heard of Bitcoin but what is Ethereum?
Smart Contract
While bitcoin (traditionally) allows simple addition and subtraction operations, which are sufficient for exchange of cryptocurrency, Ethereum enables more sophisticated operations.

Ethereum positions itself as a programmable blockchain. Ethereum takes the blockchain concept popularised by bitcoin and introduces a full Turing-complete virtual machine on top of it. The machine is capable of executing code, which is usually written in Solidity programming language.

But what does it do?
Most commonly, the programmable code is termed as a smart contract; it establishes conditions under which things of value are exchanged. In other words, instead of using a traditional legal framework to bind two parties, there is code deployed within the blockchain which automatically enforces an agreed contract. The contract could be as basic as "money is transferred from an escrow account to Alice's account, only when today is a Sunday". Or it could be more complex funds transfer, such as what's required in an auction. The entire auction system could be implemented in terms of smart contracts!

In broader terms, Ethereum allows creation of DApps (decentralized applications). It opens up the blockchain for innovative solutions.

Still, what exactly is a smart contract?
While blockchain eliminates the need for a centralized authority for record keeping and reconciliation, smart contracts extend the concept further by eliminating the middle-man completely, even for definition and execution of conditions under which exchange of goods and services take place.

Smart contracts are part of blockchain transactions. Execution of a smart contract is initiated by sending a message embedded in a transaction.

Smart Contract Conceptual

Icons made by Locked from www.flaticon.com is licensed by CC 3.0 BY

And which node in the network runs the smart contract?
All of them! Remember, the blockchain is replicated---everyone has a copy. All (full) nodes independently execute the smart contract. See this Ethereum Stackexchange post for more information.

But who pays for the resource/ hardware utilization?
The developer who created the contract! There is a concept of gas in Ethereum and similar platforms. The gas price is an upper limit on computational resources that a contract can consume. All operations (such as read and write) require a certain amount of gas to be available.

So, all business logic in the world will get implemented as smart contracts in the future?
Hold your horses! Ethereum Virtual Machine is not your Virtualbox VM! Ethereum Wiki says 
...a good heuristic to use is that you will not be able to do anything on the EVM that you cannot do on a smartphone from 1999
Besides, and more importantly in my opinion, smart contracts are immutable. What are the odds that every smart contract you ever develop is 100% bug free? To my mind, getting smart contracts right would be the biggest obstacle as the technology gets widespread adoption, in addition to getting various parties agree on a blockchain protocol in the first place.

I am interested in going much deeper.
For that, see The Hitchhikder’s Guide to Smart Contracts in Ethereum.

Below is a DEVCON1 video from 2015 where Vitalik Buterin, the creator of Ehtereum, explains some key concepts and the application of the technology:

Comments

Popular posts from this blog

So, is Ether = Bitcoin and Ethereum = Bitcoin blockchain?

Is Ethereum also a cryptocurrency? Well, formally speaking, Ethereum is a blockchain based distributed platform, and Ether is the currency used on that blockchain. Is Ether same as Bitcoin? Just like Bitcoin, Ethereum blockchain also needs mining (i.e., proof-of-work and thus, computational resources to mine the blocks). Miners are rewarded with Ether. But Ethereum also has the concept of smart contracts and an associated virtual machine to execute the smart contracts. Besides rewarding miners with Ether, computational resources consumed by the code executed on Ethereum Virtual Machine is controlled by spending Ether , which is termed as gas . I understand the Ethereum blockchain supports smart contracts, but is Ether similar to Bitcoin? The answer to " why we need a cryptocurrency? " is different for the two blockchains. For Bitcoin, the cryptocurrency is the reason why blockchain exists; i.e., the sole purpose of the blockchain is to store bitcoins. For ...

Best way to start learning Smart Contract programming

What's the best toolset to learn smart contract programming? The main thing is which blockchain you are targeting, but if you don't have a preference there already, Ethereum should be the default choice. Not only it's the oldest (and in my opinion mature as compared to others), there is a lot of traction in the industry around Ethereum. See, for example, the members directory of Enterprise Ethereum Alliance . So, if you are choosing Ethereum, a nice way to start programming for the Ethereum blockchain is learn Solidity. One nice thing about Solidity is the browser based Remix IDE . There are other ways, but Remix is preferred as the first exposure to Solidity and smart contracts. Can you give me a very simply Solidity contract example? Here is a completely impractical decentralized world-population counter in Solidity: Basically, we have created a decentralized storage variable of type unsigned int, which is part of the blockchain. No matter which node you choose ...