INTRODUCTION TO SMART CONTRACTS
WITH SOLIDITY AND ETHEREUM
INTRO
BITCOIN
▸ Cryptocurrency
▸ One shared distributed ledger
▸ Can’t be falsified
▸ Database of transactions
▸ Support for “Script”
▸ Limited smart contracts capabilities
INTRO
ETHEREUM
▸ Bitcoin like distributed ledger
▸ Ethereum Virtual Machine
▸ Turing complete
▸ Blockchain
▸ Contracts (code)
▸ Storage
▸ Logs
▸ Events
ETHEREUM
HOW IT WORKS?
▸ Every node runs every contract
▸ Deterministic
▸ Ether (cryptocurrency)
▸ Two kind of actors
▸ Contracts
▸ Wallets
▸ Transaction = messages
▸ Code execution spend gas
(ethereum)
CONTRACTS
SOLIDITY
SOLIDITY
SOLIDITY
SOLIDITY
ETHEREUM.GITHUB.IO/
BROWSER-SOLIDITY
ETHEREUM.RB
ETHEREUM.RB
CONTRACTS
SOLIDITY
▸ Object oriented language
▸ Complied to EVM
▸ Can send and receive ether
▸ Can be run on production, testnet
or private net
PURCHASE
SOLIDITY
SOLIDITY
DISTRIBUTED
FUTURE
ETHEREUM
LIMITATIONS
▸ Transaction takes coupe of minutes
to be mined
▸ Storage and execution is
expensive
▸ Ecosystem is young
ETHEREUM
OFF CHAIN
▸ Half-distributed
▸ IPFS
▸ Oracles and Oraclize
▸ Swarm - distributed storage with
incentives
ETHEREUM
METROPOLIS
▸ Casper - proof of stake
▸ Scalability
▸ zkSNARKs - privacy
BLOCKCHAIN 2.0?
TEXT
USEFUL LINKS
▸ Online editor: 

ethereum.github.io/browser-solidity
▸ Blockchain explorer: 

testnet.etherscan.io
▸ Ethereum ruby gem: 

github.com/marekkirejczyk/ethereum.rb
▸ Example ruby app:

github.com/marekkirejczyk/ruby_ethereum_example
THANK YOU!@MAREKKIREJCZYK

Writing smart contracts