1 of 45

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

2 of 45

Updated: 2018/06/21

  • The latest research direction is that the “beacon chain” that will produce random numbers with RANDAO-based scheme.
  • In the latest scheme, the full Casper FFG logic is in the beacon chain to support both beacon chain and shard chains staking.
  • In the latest scheme, there’s no a sharding manager contract in main chain to deal with block proposal and notarization logic. The finality of shards is determined by cross-links.

3 of 45

What you can do for�Ethereum 2.0 a.k.a. sharding�

4 of 45

What is sharding?

What you can do for�Ethereum 2.0 a.k.a. sharding�

5 of 45

What is sharding?

Where can you start to dig into sharding?

What you can do for�Ethereum 2.0 a.k.a. sharding�

6 of 45

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�

7 of 45

What is sharding?

8 of 45

Layer 1

Scaling Solution

Sharding

9 of 45

Layer 1

Secure and Decentralized Scaling Solution

Sharding

10 of 45

Main Chain

The main Ethereum 1.0 blockchain

11 of 45

Shard Chains (Shards)�

  • Creating many new chains for Ethereum 2.0
  • Each shard chain is a new galaxy

12 of 45

Quadratic Sharding

Computation: each computer can process c transactions, the main chain can process c transactions.

Main Chain

13 of 45

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

….

14 of 45

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

15 of 45

Goal: Tightly Coupled Sharding Chain

  • Some proofs of the shard chains will be written into main chain block.

  • A main chain block is invalid if the shard chain blocks proofs (links) that included are invalid.

16 of 45

Recent R&D�Concept

17 of 45

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

18 of 45

Staking - Sharding Manager Contract (SMC)

  • Casper-like Proof-of-Stake
  • Shared validator pool
    • shard chain proposers
    • shard chain notaries
    • [future] Casper validators

19 of 45

Random Number Generation

  • In-research schemes:
    • RANDAO-based
    • BLS-based
    • STARK-based
  • Use random number for:
    • Selecting block proposer
    • Selecting notarization committee

20 of 45

Data Layer

  • Only data-consensus
    • Block bodies are just blobs, no state root in the header
    • Data availability

21 of 45

State Layer

  • EVM disadvantages:
    • 256-bit stack items
    • Metering�...
  • Ethereum flavored WebAssembly (eWASM)

22 of 45

Where can you �start to dig into?

23 of 45

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

24 of 45

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 Discoursehttps://ethresear.ch/

Vitalik’s favorite forum, next only to reddit.com/r/Buttcoin.

Read Casper first! EIP 1011

Vitalik Buterin: Sharding FAQ

25 of 45

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

26 of 45

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

27 of 45

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

Jannik Luhn:�Account List

Vitalik Buterin:�Stateless Client Concept

Vitalik Buterin:�Sharding FAQ

28 of 45

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

29 of 45

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

Dr. Christian Reitwiessner: Formal Verification of Smart Contracts (IC3-Ethereum Crypto Boot Camp)

30 of 45

How can you

contribute to Ethereum 2.0?

31 of 45

Join ShardCoin ICO!

32 of 45

Join ShardCoin ICO!

NO NO NO NO NO NO NO

THAT’S A SCAM!!!

33 of 45

Ethereum Research Discoursehttps://ethresear.ch/

34 of 45

Sharding Manager Contract

35 of 45

Python Implementation - Trinity

36 of 45

Bounty

photo credit: Gitcoin Medium

37 of 45

Other On-going Implementations

  • Status.im - Nimbus (Nim)
  • ConsenSys - PegaSys (Java)
  • Prysmatic Labs - geth-sharding (Golang)
  • Drops of Diamond - Diamond Drops (Rust)�
  • Cross-client gitter channel: ethereum/sharding

38 of 45

Grants

  • Scalability
  • Usability
  • Security
  • Hackternship
    • 10-week $10K externship for your spare-time working on Ethereum!
  • Other Grants for Ethereum related work

39 of 45

We are looking for ...

Blockchain Researchers

P2P Masters

Experienced Python Engineers

Email jobs+sharding@ethereum.org with subject line: "sharding"

40 of 45

Thank you!

41 of 45

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

42 of 45

Presentation Design

This presentation uses the following typographies and colors:

Colors used

Free Fonts used:

https://www.fontsquirrel.com/fonts/nunito

43 of 45

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

44 of 45

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

45 of 45

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