What you can do for
Ethereum 2.0 a.k.a. sharding
Q2 2018
Ethereum Research
Hsiao-Wei Wang �(hwwhww/icebearhww)
Taipei Ethereum Meetup�June 12th, 2018
Updated: 2018/06/21
What you can do for�Ethereum 2.0 a.k.a. sharding�
What is sharding?
What you can do for�Ethereum 2.0 a.k.a. sharding�
What is sharding?
Where can you start to dig into sharding?
What you can do for�Ethereum 2.0 a.k.a. sharding�
What is sharding?
Where can you start to dig into sharding?
How can you contribute to Ethereum 2.0?�
What you can do for�Ethereum 2.0 a.k.a. sharding�
What is sharding?
Layer 1
Scaling Solution
Sharding
Layer 1
Secure and Decentralized �Scaling Solution
Sharding
Main Chain
The main Ethereum 1.0 blockchain
Shard Chains (Shards)�
Quadratic Sharding
Computation: each computer can process c transactions, the main chain can process c transactions.
Main Chain
Quadratic Sharding
Main chain nodes can watch c shards
Computation: each computer can process c transactions, the main chain can process c transactions.
Main Chain
Shard 1
Shard 2
Shard c
….
Main Chain
Shard 1
Shard 2
Shard c
….
Quadratic Sharding
Computation: each computer can process c transactions, the main chain can process c transactions.
Main chain nodes can watch c shards
The whole system can process c2 transactions
Goal: Tightly Coupled Sharding Chain
Recent R&D�Concept
Beacon Chain
provides random numbers
Shard Chain
provides data
Shard 100
B1
B2
B3
B4
B5
VM
provides state �execution result
Shard 1
Main Chain
provides staking
B1 �state root
B2 �state root
B3�state root
B4 �state root
B5�state root
Staking - Sharding Manager Contract (SMC)
Random Number Generation
Data Layer
State Layer
Where can you �start to dig into?
Random Number Generation
Block Proposal
Notary Committee Selection
Data Availability
Casper Integration
libp2p�Transport Layer
Sharding Network Topology
eWASM
Account
Abstraction
Account Restriction
Stateless
Client
Efficient Accumulator
Data �Encoding n’ Decoding
Backend System and API Design
Testnet
DevOps
Formal
Verification
System�Audit
Digital Signature Scheme
Cross-shard Transaction
Sharding�Protocol
P2P
State Execution
Efficient Scheme
Engineering
Security
UX for Devs
libp2p�Transport Layer
Sharding Network Topology
eWASM
Account
Abstraction
Account Restriction
Stateless
Client
Efficient Accumulator
Data �Encoding n’ Decoding
Backend System and API Design
Testnet
DevOps
Formal
Verification
System�Audit
Digital Signature Scheme
Cross-shard Transaction
P2P
State Execution
Efficient Scheme
Engineering
Security
UX for Devs
Random Number Generation
Block Proposal
Data Availability
Casper Integration
Sharding�Protocol
Notary Committee Selection
Ethereum Research Discourse�✨ https://ethresear.ch/ ✨
Vitalik’s favorite forum, next only to reddit.com/r/Buttcoin.
Vitalik Buterin: A note on data availability and erasure coding
Read Casper first! EIP 1011
Vitalik Buterin: Sharding FAQ
Random Number Generation
Block Proposal
Notary Committee Selection
Data Availability
Casper Integration
eWASM
Account
Abstraction
Account Restriction
Stateless
Client
Efficient Accumulator
Data �Encoding n’ Decoding
Backend System and API Design
Testnet
DevOps
Formal
Verification
System�Audit
Digital Signature Scheme
Cross-shard Transaction
Sharding�Protocol
State Execution
Efficient Scheme
Engineering
Security
UX for Devs
libp2p�Transport Layer
Sharding Network Topology
P2P
Ethereum Research Discourse�✨ https://ethresear.ch/ ✨
libp2p issue#33 Exploring Ethereum on libp2p
Random Number Generation
Block Proposal
Notary Committee Selection
Data Availability
Casper Integration
libp2p�Transport Layer
Sharding Network Topology
eWASM
Account
Abstraction
Account Restriction
Stateless
Client
Backend System and API Design
Testnet
DevOps
Formal
Verification
System�Audit
Cross-shard Transaction
Sharding�Protocol
P2P
State Execution
Engineering
Security
UX for Devs
Efficient Accumulator
Data �Encoding n’ Decoding
Digital Signature Scheme
Efficient Scheme
Ethereum Research Discourse�✨ https://ethresear.ch/ ✨
Sparse Merkle Trees (SMTs)
RLP Replacement
Random Number Generation
Block Proposal
Notary Committee Selection
Data Availability
Casper Integration
libp2p�Transport Layer
Sharding Network Topology
Efficient Accumulator
Data �Encoding n’ Decoding
Backend System and API Design
Testnet
DevOps
Formal
Verification
System�Audit
Digital Signature Scheme
Sharding�Protocol
P2P
Efficient Scheme
Engineering
Security
UX for Devs
eWASM
Account
Abstraction
Account Restriction
Stateless
Client
Cross-shard Transaction
State Execution
GH: ewasm/design
and gitter
Jannik Luhn:�Account List
Vitalik Buterin:�Stateless Client Concept
Vitalik Buterin:�Sharding FAQ
Nicholas Lin (twedusuck):�Account Abstraction in Sharding
Random Number Generation
Block Proposal
Notary Committee Selection
Data Availability
Casper Integration
libp2p�Transport Layer
Sharding Network Topology
eWASM
Account
Abstraction
Account Restriction
Stateless
Client
Efficient Accumulator
Data �Encoding n’ Decoding
Formal
Verification
System�Audit
Digital Signature Scheme
Cross-shard Transaction
Sharding�Protocol
P2P
State Execution
Efficient Scheme
Security
Backend System and API Design
Testnet
DevOps
Engineering
UX for Devs
Trinity Ethereum Client is Trinity
Random Number Generation
Block Proposal
Notary Committee Selection
Data Availability
Casper Integration
libp2p�Transport Layer
Sharding Network Topology
eWASM
Account
Abstraction
Account Restriction
Stateless
Client
Efficient Accumulator
Data �Encoding n’ Decoding
Backend System and API Design
Testnet
DevOps
Digital Signature Scheme
Cross-shard Transaction
Sharding�Protocol
P2P
State Execution
Efficient Scheme
Engineering
UX for Devs
Formal
Verification
System�Audit
Security
Yoichi Hirai: Formal Verification of Ethereum Contracts
Dr. Christian Reitwiessner: Formal Verification of Smart Contracts (IC3-Ethereum Crypto Boot Camp)
How can you
contribute to Ethereum 2.0?
Join ShardCoin ICO!
Join ShardCoin ICO!
NO NO NO NO NO NO NO
THAT’S A SCAM!!!
Ethereum Research Discourse�https://ethresear.ch/
Sharding Manager Contract
Python Implementation - Trinity
Bounty
photo credit: Gitcoin Medium
Other On-going Implementations
Grants
We are looking for ...
Blockchain Researchers
P2P Masters
Experienced Python Engineers
Email jobs+sharding@ethereum.org with subject line: "sharding"
Thank you!
Vector Icons by Matthew Skiles
Presentation template designed by Slidesmash
Photographs by unsplash.com and pexels.com
CREDITS
Special thanks to all people who made and share these awesome resources for free:
Icons made by Becris from www.flaticon.com is licensed by CC 3.0 BY
Presentation Design
This presentation uses the following typographies and colors:
Colors used
Free Fonts used:
https://www.fontsquirrel.com/fonts/nunito
Random Number Generation
Block Proposal
Notary Committee Selection
Data Availability
Casper Integration
libp2p�Transport Layer
Sharding Network Topology
eWASM
Account
Abstraction
Account Restriction
Stateless
Client
Efficient Accumulator
Data �Encoding n’ Decoding
Backend System and API Design
Testnet
DevOps
Formal
Verification
System�Audit
Digital Signature Scheme
Cross-shard Transaction
Sharding�Protocol
P2P
State Execution
Efficient Scheme
Engineering
Security
UX for Devs
Random Number Generation
Block Proposal
Notary Committee Selection
Data Availability
Casper Integration
libp2p�Transport Layer
Sharding Network Topology
eWASM
Account
Abstraction
Account Restriction
Stateless
Client
Efficient Accumulator
Data �Encoding n’ Decoding
Backend System and API Design
Testnet
DevOps
Formal
Verification
System�Audit
Digital Signature Scheme
Cross-shard Transaction
Sharding�Protocol
P2P
State Execution
Efficient Scheme
Engineering
Security
UX for Devs
Beacon Chain
provides random numbers
Shard Chain
provides data
Shard 100
B1
B2
B3
B4
B5
VM
provides state �execution result
Shard 1
Main Chain
provides staking
B1 �state root
B2 �state root
B3�state root
B4 �state root
B5�state root