You are on page 1of 47

thereum Project

Satoshi Experiment
Transparency matters
Independence matters
Anonymity matters
Crypto Economy
?
Ethereum from Data Base to Turing
complete algorithms
from = msg.sender
fromvalue = contract.storage[from]
to = msg.data [ 0 ]
value = msg.data [ 1 ]
if fromvalue >= value:
contract.storage[from]
= fromvalue - value
contract.storage[to]
= contract.storage[to] + value
Blocks
0 1 2 3
4
T
r
a
n
s
a
c
t
i
o
n
s
Bitcoin model
Blocks
2
thereum model
sha3(state) = 27abd3
value + 300
value+300
27abd3
Blocks
0 1 2 3
4
thereum model
27abd3
27abd3
12ffe3 92c4e3
a0c4e2
76a4f1
12ffe3 92c4e3
a0c4e2
76a4f1
from = msg.sender
fromValue = contract.storage[from]
to = msg.data [ 0 ]
value = msg.data [ 1 ]
if fromValue >= value:
contract.storage[from] = fromValue - value
contract.storage[to] =
contract.storage[to] + value
1.
2.
3.
4.
5.
6.
7.
init:
contract.storage [0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826] = 10000000
code:
// balance manipulation
from = msg.sender
fromvalue = contract.storage[from]
to = msg.data [ 0 ]
value = msg.data [ 1 ]
if fromvalue >= value:
contract.storage[from] = fromvalue - value
contract.storage[to] = contract.storage[to] + value
6298968073cd2a3d9f938e13cd947ec05abc7fe734df8dd82
6576049602660003960496000f233600054600053566020
5460006020023560405460016020023560605460605360
20530a0f0f6300000049596060536020530360005357606
053604053560160405357630000004958
1. P2P Message
init:
contract.storage[0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826] = 10000000
1. P2P Message
code: 3360005460005356602054600
storage: cd2a3d9f...= 10000000
code: 3360005460005356602054600
storage: cd2a3d9f...= 10000000
sha3 (state)= 5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6
5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6
code:
// balance manipulation
from = msg.sender
fromvalue = contract.storage[from]
to = msg.data [ 0 ]
value = msg.data [ 1 ]
if fromvalue >= value:
contract.storage[from] = fromvalue - value
contract.storage[to] = contract.storage[to] + value
code: 3360005460005356602054600
storage: cd2a3d9f...= 10000000
2. P2P Message
code:
// balance manipulation
from = msg.sender
fromvalue = contract.storage[from]
to = msg.data [ 0 ]
value = msg.data [ 1 ]
if fromvalue >= value:
contract.storage[from] = fromvalue - value
contract.storage[to] = contract.storage[to] + value
code: 3360005460005356602054600
storage: cd2a3d9f...= 9999100
2. P2P Message
code:
// balance manipulation
from = msg.sender
fromvalue = contract.storage[from]
to = msg.data [ 0 ]
value = msg.data [ 1 ]
if fromvalue >= value:
contract.storage[from] = fromvalue - value
contract.storage[to] = contract.storage[to] + value
msg.data = [ 0 ] b9c01591
msg.data = [ 1 ] 900
b9c01591...= 900
code: 3360005460005356602054600
sha3 (state)= 8da764e33cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6
storage: cd2a3d9f...= 9999100
b9c01591...= 900
One minute, what about a coin ?
code:
// balance manipulation
from = msg.sender
fromvalue = contract.storage[from]
to = msg.data [ 0 ]
value = msg.data [ 1 ]
if fromvalue >= value:
contract.storage[from] = fromvalue - value
contract.storage[to] = contract.storage[to] + value
0.0001 ether
0.0001 ether
0.0001 ether
0.0001 ether
: Gas cost
0.0005 ether * N bytes
Into The Future
Act - 2
Web 2.0
How it can be?
Ethereum - Agreements & relationships
Swarm - Publication & distribution
Whisper - Messaging & bulletins
Swarm
More agile - Peer-steering & adaption
More secure - Encryption, possibly
onion routing
Better incentivisation - Zero-trust logging
of contributions
Whisper
Messaging - Think UDP
Transient publication
Think broadcast
Configurable TTL - Not strictly async
or sync
App distributed application
etp://anydappurl
Example: Marketplace
So , what we are
going to get ?
Web 3.0 ?
EthereumJ

You might also like