Ethereum for (Visionary) Dummies
Introduction to blockchain development
#chainskills
Who speaks French, Dutch, English?
#chainskills
A few weeks ago…
3
#disruption
Objectives
4
• No trading
• Curiosity
• Kickstarter
Agenda
5
• Why?
• What?
• How?
#chainskills
Why?
Once upon a time…
7
#chainskills
Then came the Internet
8
Problems with centralized apps
9
• Single point of failure
• Easy to corrupt
• Privacy honeypot
• Single point of control
• Performance bottleneck
• Silo effect
Problems with decentralization
10
• How do you trust nodes?
• How do you handle nodes who come and go?
• What if communications are intercepted/corrupted?
• How do you agree on a common reality?
#chainskills
The Byzantine Generals' Problem
11
The case of banks
12
• Expensive security
• Transaction opacity
• Fee opacity
• Product complexity
• Monetary policy opacity
• Slow transactions with a lot of intermediaries
#chainskills
And in 2008…
13
#chainskills
A few months later…
14
But there was more…
15
• Web = Network of Data = communication by replication
• But how do you transfer value?
• Ask the majors! (DRM, hydra slaying, centralized authorities…)
• The first completely decentralized application was a network of value!
• What if we could transfer other tokens of value?
The frenzy begins
16
• Creating a new (crypto)currency becomes incredibly easy
• Some marketplaces begin trading cryptocurrencies
• Colored coins
• Sidechain
• Script
#chainskills
Then comes this guy…
17
What does it bring?
18
• Generalized transactions
• Turing-complete language
• A virtual machine
• A new crypto-currency with intrinsic value (Ether)
• Better performance and evolutivity
It's a brave new world
19
• Policies are transparent
• Data is fully distributed
• History is safe
• "Cheap" access
• Anonymous access
• You can't trust the law, but you can trust the code…
• …provided it was well written
Disintermediation
20
• What Bitcoin did for the banks, generic platforms like Ethereum can
do it for every single intermediary-based industry
• Notaries, insurance, energy, recruitment, government, administration,
transportation…
• It can even create new applications that were simply not relevant
before
• Predictions markets, liquid democracy, etc.
#chainskills
What?
Questions
22
• What is a blockchain?
• What is not a blockchain?
• What a blockchain is not?
#chainskills
The 3-layer model
23
Design goals
Instances
Implementations
Design goals
24
• Distributed data
• Decentralized governance
• Trustless access
• Immutable history
Implementations
25
• Bitcoin
• Litecoin, Monero, and hundreds of altcoins
• Ethereum
• Tezos, Synereo, and many others
• Each implementation has a protocol (whitepaper), one or several
codebases and at least a main instance
Instances (Ethereum)
26
• The main chain
• Test chains: Morden, Ropsten, Kovan, Rinkeby
• Your very own private chain
• Each instance is identified by a network identifier and a genesis block
#chainskills
General data architecture
27
#
Blockchain as tricameral systems
28
Key components
29
• Peer-to-peer network DB
• Node software client
• Distributed ledger
• Consensus algorithm
• Crypto-currency
• Smart contract language
What is NOT (really) a blockchain?
30
• Permissioned blockchains (consortium)
• Internal blockchains
• They are centralized, closed, overly complex solutions to actual
problems
• They distract money and energy away from the real deal
• They are desperate attempts to fit old models into new paradigms

http://chainskills.com/2016/11/21/what-qualifies-as-a-blockchain/
Known limitations
31
• Privacy
• Pseudonymity
• Transaction costs
• Transaction finality speed
• Transaction throughput
• Evolutivity and governance
• Data size
#chainskills
How?
Development environment
33
• Mist
• Geth
• testrpc
• NodeJS
• Solidity compiler
• Truffle
• Atom with Solidity support
#chainskills
Architecture of a Dapp
34
Geth
index.html
app.js
Some webserver (or Swarm or IPFS)
Mist or Chrome/MetaMask
Development workflow
35
• Design your contract workflow
• Define the interface of your contract
• Code your contract
• Test your contract with unit tests using testrpc
• Deploy your contract to a private chain
• Develop the frontend
• Deploy your contract to a test chain
• Deploy your frontend to a server
• When you are sure there are no bugs, deploy to the main chain… and pray!
#chainskills
Who? Where? When?
36
Coming in June
50% off
chainskills.com

Ethereum for visionary dummies