Dissecting Ethereum

Internals of a public blockchain


24 July 2017

EIT Digital, Budapest



Péter Szilágyi

Ethereum Team Lead

As seen by the world

Decentralized computer network

Green ⇔ Geth | Orange ⇔ Parity | White ⇔ other Download nodes.kmz for Google Earth!

Public for anyone to join

Download and run your own node

Phases of connecting to Ethereum

Connecting to bootnodes (Green ⇔ Geth | Orange ⇔ Parity | Blue ⇔ Cpp) Randomly connecting to 25+ out of 24K peers

As seen by the machine

Database of financial accounts

July 30, 2015 August 6, 2016 July 20, 2017 Version #0 Version #2024344 Version #4048689

Updated from malicious computers

As seen by the user

Giberish account numbers

E.g. 0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359 😱

Accounts useful only to create transactions

Transaction signing via the Ethereum Wallet

Special snowflakes ❄

E.g. 0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359... again?! 😕

Who the heck thought this is a good idea?!

As seen by the developer

Programmable global infrastructure

Nodes run a custom virtual machine

Resource consumption and the halting problem

.code
  PUSH 60
  PUSH 40
  MSTORE
  PUSH FFFFFFFF
  PUSH 10..0
  PUSH 0
  CALLDATALOAD
  DIV
  AND
  PUSH A5F3C23B
  DUP2
  EQ
  PUSH [tag] 2
  JUMPI
tag 1
  JUMPDEST
  PUSH 0
  DUP1
  REVERT
tag 2
  JUMPDEST
  CALLVALUE
  ISZERO
  PUSH [tag] 3
  JUMPI
  PUSH 0
  DUP1
  REVERT
tag 3
  JUMPDEST
  PUSH [tag] 4
  PUSH 4
  CALLDATALOAD
  PUSH 24
  CALLDATALOAD
  PUSH [tag] 5
  JUMP
tag 4
  JUMPDEST
  PUSH 40
  MLOAD
  SWAP1
  DUP2
  MSTORE
  PUSH 20
  ADD
  PUSH 40
  MLOAD
  DUP1
  SWAP2
  SUB
  SWAP1
  RETURN
tag 5
  JUMPDEST
  DUP2
  DUP2
  ADD
tag 6
  JUMPDEST
  SWAP3
  SWAP2
  POP
  POP
  JUMP [out]
.data

Supporting user-friendly packaging

Only through programs running locally

Etheroll running via the Chrome browser Favor Network in Status chat Akasha social network standalone client

As seen by the initiated

Network stats – Rinkeby Testnet –

https://stats.rinkeby.io/

Your #1 source of information to see if your node is healthy

Blockchain stats – Rinkeby Testnet –

https://rinkeby.etherscan.io/

Your #1 source of information to see what's in the blockchain

As seen by the guru

Gas dynamics – Ethereum Mainnet –

http://ethgasstation.info/

Touchy questions

Mist, Metamask, Status | Remix, Truffle, Rinkeby | Sharding, Light client | Proof of Stake | Zero knowledge proofs | EU Blockchain Observatory

Thank you

Ethereum Team Lead