Introduction to
Ewasm
Tai, Hung-Ying (hydai) @ Crosslink 2019
GitHub: @hydai
VP of Engineering, Second State
Slide: http://url.hyd.ai/LRFVT
Agenda
EVM bytecode recap
WebAssembly (Wasm)
Ewasm 1.0
Ewasm 2.0
www.secondstate.io
1
2
3
4
EVM bytecode recap
www.secondstate.io
How about Wasm?
www.secondstate.io
Wasm Section
www.secondstate.io
Wasm tooling
www.secondstate.io
Ewasm 1.0
What is Ewasm 1.0
www.secondstate.io
Where did the high level instructions go? (e.g. SHA)
Ethereum Environment Interface (EEI)
www.secondstate.io
Definition
www.secondstate.io
Usage
www.secondstate.io
How about
Invalid instructions issues?
System Contracts
www.secondstate.io
Sentinel Contract
www.secondstate.io
Basic Block Metering (Injection)
www.secondstate.io
Ewasm Stack
www.secondstate.io
EVM-C
www.secondstate.io
Performance - Sha1
parity-evm | 79.3ms |
geth-evm | 70.7ms |
life | 14.9ms |
evmone | 6.3ms |
wasmi | 5.6ms |
wabt | 3.1ms |
www.secondstate.io
Performance - BN128mul
life | 470ms |
wasmi | 390ms |
wabt | 106ms |
parity-evm | 18.0ms |
geth-evm | 2.3ms |
evmone | 553.0us |
www.secondstate.io
What happens?!!!!!
www.secondstate.io
Ewasm 2.0
Questions about ETH 2.0
State Rent?
Cross-shard call?
Phase 2?
DevEx???
www.secondstate.io
1
2
3
4
Questions about ETH 2.0
State Rent?
Cross-shard call?
Phase 2?
DevEx???
www.secondstate.io
1
2
3
4
Questions about ETH 2.0
State Rent?
Cross-shard call?
Phase 2?
DevEx???
www.secondstate.io
1
2
3
4
Questions about ETH 2.0
State Rent?
Cross-shard call?
Phase 2?
DevEx???
www.secondstate.io
1
2
3
4
Execution Environments (EEs)
www.secondstate.io
Two Ewasms
www.secondstate.io
Stateful V.S. Stateless
www.secondstate.io
Phase One and Done - Very First Step
www.secondstate.io
Open Questions
www.secondstate.io
A MAYBE Roadmap
Phase one execution
Experiments with different EE
ETH1-esque environment with EVM/Ewasm
ETH1 -> ETH2 switchover
www.secondstate.io
1
2
3
4
What is Scout?
www.secondstate.io
EE(I)
www.secondstate.io
EE: Hello World (in Rust)
www.secondstate.io
Playground
www.secondstate.io
Reference
www.secondstate.io
Thanks!