This presentation is part of New Product Developers (NPD) meetup regularly conducted by Divum. In this session, we covered gentle introduction to blockchain to running a truly decentralised Pizza ordering application built using solidity on ethereum.
7. BLOCKCHAIN
A blockchain allows for trustless transactions between
multiple parties. Or, more importantly, it allows transactions
without trust of a third party intermediary!
Decentralized system for an exchange a value/asserts
○ Distributed ledger
○ Immutability
○ Consensus
○ Security
8. LET’S START WITH A TRANSACTION
THAT OCCURS BETWEEN ACCOUNTS
Transaction #200
Account A Account B
E.g. Send 2 tokens
An example transaction could be:
Account A will send 1 tokens to Account B
9. A LEDGER IS A LIST OF TRANSACTIONS
(GROUPED INTO BLOCKS)
LEDGER
Block #100
Last Block: #99 (H)
Timestamp: TM,
Transaction #399
Transaction #400
Transaction #401
Block #97
Block #98
Block #99
Blocks
contain an
indeterminate
number of
transactions
10. BLOCKS ARE CHAINED TOGETHER
LEDGER
Block #100
Last Block: #99
Transaction #399
Transaction #400
Block #97 Block #98 Block #99
Blocks are
generated on a
time interval
(e.g. every 5
minutes)
The ledger is a chain of blocks! Each block is created
with a pointer to the previous block creating a
blockchain!
14. CONSENSUS
Consensus = Protocol by which peers agree on state of ledger
○ Ensure all peers in the network has exactly the same copy of
ledger
○ Fraudulent transactions kept out of the ledger
○ Guarantees to record transactions in chronological order
18. Wow!!, thats cool stuff
Bitcoin:
- Transfer money
- Fast transactions
- Less fee
- Transparent
19. Wow!!, thats cool stuff
Bitcoin:
- Transfer money
- Fast transactions
- Less fee
- Transparent
Great Technology:
- Launch my sub currency
- ICO (Crowdfunding)
- Managing digital assets
- Local laws
21. ETHEREUM
Ethereum is an open blockchain platform that lets anyone
build and use decentralized applications that run on
blockchain technology.
Ethereum is world of computers
22. HOW DOES ETHEREUM WORK?
○ Ethereum’s basic unit is the account
○ State of every account
○ The Ethereum blockchain tracks the state of every account,
and all state transitions on the Ethereum blockchain are
transfers of value and information between accounts.
23. ETHEREUM ACCOUNTS:
There are two types of accounts:
○ Externally Owned Accounts (EOAs)
○ Contract Accounts, which are controlled by their
contract code and can only be “activated” by an EOA
28. ETHER
Ethereum value token is called Ether
Denominations:
Unit Wei Value Wei
wei 1 wei 1
Kwei (babbage) 1e3 wei 1,000
Mwei (lovelace) 1e6 wei 1,000,000
Gwei (shannon) 1e9 wei 1,000,000,000
microether (szabo) 1e12 wei 1,000,000,000,000
milliether (finney) 1e15 wei 1,000,000,000,000,000
ether 1e18 wei 1,000,000,000,000,000,000
29. ETHER SUPPLY
○ 48 days presale (July 2014): $ 60 M
○ 12M created to fund development
○ 5 Eth will created as rewarded for every block
○ 2-3 eths for non winning miners
○ Contract execution user pays Ether’s
30. ETHEREUM VIRTUAL MACHINE
○ Ethereum is “Turing complete”.
○ EVM will load bytecode and execute instructions
○ Every node will run eth client
31. GAS
○ Gas is the metering unit for use of the World Computer
○ Each operation in the EVM consumes gas
○ totalEstGas = startgas * gasprice
Transactions
0x60 0x01 0x60
0x02 0x01
32. Operation Name Gas Cost Remark
step 1 default amount per execution cycle
stop 0 free
suicide 0 free
sha3 20
sload 20 get from permanent storage
sstore 100 put into permanent storage
balance 20
create 100 contract creation
call 20 initiating a read-only call
memory 1 every additional word when expanding memory
txdata 5 every byte of data or code for a transaction
transaction 500 base fee transaction
contract creation 53000 changed in homestead from 21000
34. BITCOIN
● Transactions based
● Block creation ~10mins
● Less number of transactions
● Require high computation power
● Not stopping big miners
● Limited transaction based bitcoin
signature(128)
● Limited functions
● Peers can block list transaction
● SHA2 not so secure
● SHA256 is not ASIC resistance
● Account based
● Block creation ~12sec
● Mining algorithm based on
memory usage (Gas)
● Can decouple components
● Rich programing language for
contracts (Solidity)
● Uses SHA3
● Customize protocol based on local
law
● EthHash is ASIC resistance
ETHEREUM
39. SOLIDITY
Solidity is the most popular programming language
used to write smart contracts to run on the Ethereum
blockchain.
It is a high level language which when compiled gets
converted to EVM bytecode.
This is very similar to the world of Java where there are
JVM languages like Scala, Groovy, Clojure, JRuby etc.
40. SOLIDITY INTEGRATION TOOLS
IDE’s
- Remix
- IntelliJ IDEA plugin
- Visual Studio Extension
- Etheratom
- Solium
- Emacs Solidity
- Package for SublimeText — Solidity language syntax
45. TRUFFLE/EMBARK
We have frameworks for web application development
such as Ruby on Rails, Python/Django etc, Truffle and
Embark are the two most popular frameworks used to
develop Dapps.
They abstract away lot of the complexities of compiling
and deploying your contract on the blockchain.