OST | Open Simple Token founders Jason Goldberg and Benjamin Bollen present at HASHED in Seoul, South Korea, on:
- Blockchain economies in historical context
- Barriers to mass adoption of blockchain
- The OpenST Mosaic Protocol for scaling blockchain economies on-chain to billions of users
1 of 55
Download to read offline
More Related Content
HASHED LOUNGE Presents: OpenST Mosaic - Scaling blockchain economies to billions of users
2. Scaling Blockchain Economies
1. Blockchain economies in historical context
2. Barriers to mass adoption
3. OpenST Mosaic Protocol for scaling blockchain economies
on-chain to billions of users
ostmosaic
5. Blockchain is a Continuation of the Internet Revolution
INTERNET
ANALOG
▼
DIGITAL
ONE-TO-MANY
▼
MANY-TO-MANY
KNOWLEDGE
World Wide Web (1989)
RELATIONSHIPS
Social Media (2004)
Blockchain (2009)
Smart Contracts (2015)
MONEY
Cryptocurrency (2009)
Tokens (ERC-20: 2017)
INSTITUTIONS
DApps
DAOs
Credit: Mark Bonchek, Shift Thinking, OST Advisor
16. Problem We Are Trying to Solve
Existing Mainstream Apps
with Millions of Users
Blockchains don’t scale
DApps Same problem
• Provide an on-ramp for existing apps with tens of millions of users to transform their
businesses with blockchain economies, now.
• Enable scalability for emerging DApps, now.
18. September 2017
OpenST Protocol
Staking value tokens on Ethereum for
minting utility tokens on auxiliary chains
Move bulk transactions off Ethereum
(but keep them on-chain)
Photo by Joshua Earle on Unsplash
19. September 2017
OpenST Protocol
Staking value tokens on Ethereum for
minting utility tokens on auxiliary chains
Retain ETH smart contract framework
Photo by Joshua Earle on Unsplash
20. September 2017
OpenST Protocol
Staking value tokens on Ethereum for
minting utility tokens on auxiliary chains
Blockchain Economies for
Non-Blockchain Companies
Photo by Joshua Earle on Unsplash
21. September 2017
OpenST Protocol
Staking value tokens on Ethereum for
minting utility tokens on auxiliary chains
Scale DApps Now
Photo by Joshua Earle on Unsplash
22. September 2018
OpenST Mosaic Protocol
Running meta-blockchains on
Ethereum to scale DApps to
billions of users
Photo by Joshuan Earle on Unsplash
25. Current Status - September 2018
• OST KIT & OpenST 0.9.2 used by 120+ external developer teams on Testnet
• OST KIT & OpenST 0.9.2 used by 10+ external partners on Mainnet — 3 months ahead of
schedule
• OpenST 0.9.3 (cross-chain messaging) — completed
• OpenST 0.9.4 (decentralized keys engine & token rules engine) — in progress
• Introducing Mosaic at several events like ETH Berlin, Upbit, Hashed to solicit community
feedback
• Huge thanks to the 65 person OST Team, Early Backers like HASHED, and the fantastic
OST Community!
27. September 2018
OpenST Mosaic Protocol
Running meta-blockchains on
Ethereum to scale DApps to
billions of users
Photo by Joshuan Earle on Unsplash
Finalize transactions on aux chains
Commit transactions asynchronously on ETH
28. Limitation to
Scaling Blockchains
Photo by Andre Mouton on Unsplash
Full Replication
29. Three Ingredients for Sharding ostmosaic
1. Divide work into shards
2.Communicate between shards
3.Economic finality on each shard
30. OpenST Mosaic in Industry Context
•Plasma = scale each app off-chain; data-availability problem
•Payment channels don’t have smart contracts
•Casper + Sharding = Ethereum v2.0
•Mosaic = Sharding at Layer 2, on-chain, finalised on ETHv1.0
ostmosaic
31. OpenST Mosaic ostmosaic
•OpenST Mosaic is a consensus protocol to run meta-blockchains on top
of Ethereum.
•Each meta-blockchain runs in parallel and injects an additional state
space into Ethereum.
•Each meta-blockchain is secured by Ethereum with an open, staked
validator set.
•All transactions on meta-blockchains are asynchronously finalised and
committed onto Ethereum.
•Mosaic has a message-passing protocol between Ethereum and meta-
blockchains (later directly between meta-blockchains).
32. Simple Calculation (only took me 4 years)
tx
s
∼ 𝒪
(
N
Δt)
tx
s
∼ 𝒪(αN)
Ethereum @ 10 tx/s
simplest toy model:
100x (AUX @ 100 tx/s) = 10.000 tx/s
100 nodes / AUX * 100 AUX * 1 tx / node => 10.000 tx to commit on Ethereum
@10 tx/s takes minimally 1000s on Ethereum at full capacity
but 10.000.000 tx processed on aux; or 99.90% efficient
but we can do even better:
for N nodes, and constant #nodes/AUX
if there is no time-constraint to commit to Ethereum
cost: benefit:
e.g. commit once daily, to finalise 864 millions transactions, for 1.2% of
Ethereum’s daily capacity!
33. Move Bulk of Transactions Off Ethereum & Onto Auxiliary Chains!
Ethereum
Mainnet
Auxiliary
Chains
34. Move Bulk of Transactions Off Ethereum & Onto Auxiliary Chains!
Ethereum
Mainnet
Hold on, sidechains have been around for
years! What’s new here?
Auxiliary
Chains
35. Move Bulk of Transactions Off Ethereum & Onto Auxiliary Chains!
Ethereum
Mainnet
Auxiliary
Chains
A meta-blockchain is fully defined with a consensus engine in a core contract on
Ethereum.
Each meta-blockchain has an open, staked validator set.
Mosaic’s BFT consensus rules allow the meta-blockchain to offload
block formation onto an auxiliary chain.
Gateways allow ERC20 tokens to move in/out of meta-blockchains,
all value kept on Ethereum.
36. ostmosaic
•Tokens are the functional unit of Ethereum at Layer 2.
•Tokens define applications and interaction between
applications (ERC20, non-fungible tokens, …).
•Tokens naturally allow to repartition the state space.
Sharding at Layer 2: “Token Sharding”
37. Sharding at Layer 2: “Token Sharding”
OST GAS
full native EVM interface
scalable, on-chain smart contracts
today on mainnet (v0.9.2)
BUT today we oraclise between the chains
=> Mosaic decentralises state root transfer
Ethereum
Mainnet
Auxiliary
Chains
State Root
Gateway
State Root
39. Three Ingredients for Sharding ostmosaic
1. Divide work into shards
2.Communicate between shards
3.Economic finality on each shard
40. Intermezzo: Casper the Friendly Finality Gadget
Casper the Friendly Finality Gadget,
V. Buterin, V. Griffith, nov 2017
validators can send vote messages:
checkpoint justified iff exists supermajority link
from previously justified checkpoint
checkpoint finalised iff direct child is justified
slashing conditions, a validator must not publish
accountable safety and plausible liveliness
⟨s, t, h(s), h(t)⟩v
h(t1) = h(t2) ∨ h(s1) < h(s2) < h(t2) < h(t1)
42. Proposing Meta-Blocks on Ethereum
Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chains
(PoS)
B(header, txList, nonce) B(header, txList, majorityVote)
BM : Σ → Σ′
BM(kernel K, transition T, seal S)
Meta-Block
K = {height, parent, ΔvalidatorWeights, gasPrice}
T = {dynasty, txRoot, gasUsed, coreId}
S = {
+2
3
weightedVotes}
43. Proposing Meta-Blocks on Ethereum
Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chain
(PoS)
K = {height, parent, ΔvalidatorWeights, gasPrice}
Bh−1(Kh−1, Tdh−1
, Sh−1)
Bh(Kh, ⋅ , ⋅ )
in Core contract meta-block is committed:
T = {dynasty, txRoot, gasUsed, coreId}
44. Proposing Meta-Blocks on Ethereum
Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chain
(PoS)
K = {height, parent, ΔvalidatorWeights, gasPrice}
Bh−1(Kh−1, Tdh−1
, Sh−1)
Bh(Kh, ⋅ , ⋅ )
finalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
in Core contract meta-block is committed:
T = {dynasty, txRoot, gasUsed, coreId}
45. Proposing Meta-Blocks on Ethereum
Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chain
(PoS)
K = {height, parent, ΔvalidatorWeights, gasPrice}
Bh−1(Kh−1, Tdh−1
, Sh−1)
Bh(Kh, ⋅ , ⋅ )
finalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
any finalised checkpoint’s T
can be used to propose meta-block
Bh(Kh, Td, ⋅ )
in Core contract meta-block is committed:
T = {dynasty, txRoot, gasUsed, coreId}
46. Proposing Meta-Blocks on Ethereum
Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chain
(PoS)
K = {height, parent, ΔvalidatorWeights, gasPrice}
Bh−1(Kh−1, Tdh−1
, Sh−1)
Bh(Kh, ⋅ , ⋅ )
in Core contract meta-block is committed: finalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
any finalised checkpoint’s T
can be used to propose meta-block
Bh(Kh, Td, ⋅ )
Bh(Kh, Td, ⋅ ) Bh(Kh, T′d′, ⋅ )
propose new meta-block:
T = {dynasty, txRoot, gasUsed, coreId}
47. Committing Meta-Blocks on Ethereum
Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chain
(PoS)
K = {height, parent, ΔvalidatorWeights, gasPrice}
Bh−1(Kh−1, Tdh−1
, Sh−1)
Bh(Kh, ⋅ , ⋅ )
in Core contract meta-block is committed: finalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
any finalised checkpoint’s T
can be used to propose meta-block
Bh(Kh, Td, ⋅ )
Bh(Kh, Tdh
, Sh)
commit new meta-block:
Bh(Kh, T′d′, ⋅ )
T = {dynasty, txRoot, gasUsed, coreId}
with Sh =
+2
3
Majv {⟨Tdh
, s, t, h(s), h(t)⟩v}
48. Holding Validators Accountable
Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chain
(PoS)
K = {height, parent, ΔvalidatorWeights, gasPrice}
Bh−1(Kh−1, Tdh−1
, Sh−1)
Bh(Kh, ⋅ , ⋅ )
in Core contract meta-block is committed: finalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
any finalised checkpoint’s T
can be used to propose meta-block
Bh(Kh, Td, ⋅ )
Bh(Kh, Tdh
, Sh)
commit new meta-block:
Bh(Kh, T′d′, ⋅ )
T = {dynasty, txRoot, gasUsed, coreId}
with Sh =
+2
3
Majv {⟨Tdh
, s, t, h(s), h(t)⟩v}
⟨T1, s1, t1, h(s1), h(t1)⟩v and ⟨T2, s2, t2, h(s2), h(t2)⟩v
1. h(t1) = h(t2)
2. h(s2) < h(s1) < h(t1) < h(t2)
3. s1 = s2 ∧ T1 ≠ T2
a validator MUST NOT publish two votes for which 1, 2 or 3 holds
slashing conditions are immediately enforceable on both chains.
49. Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chain
(PoS)
proposers
… but Validators Need Carrots too.
GAS
users pay gas fee to proposers for transactions
proposers deposit gas fee
to prefund meta-blocks
VOTES
validators are rewarded for votes ~ gas consumed
validators
validators must have voted on auxiliary
and committed on Ethereum to get rewarded.
OST
OST
50. Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chain
(PoS)
proposers
… but Validators Need Carrots too.
GAS
users pay gas fee to proposers for transactions
proposers deposit gas fee
to prefund meta-blocks
VOTES
validators are rewarded for votes ~ gas consumed
validators
validators must have voted on auxiliary
and committed on Ethereum to get rewarded.
A GasTarget for a meta-block forces
validators to commit on Ethereum.
Validators can join or logout
in the second following meta-block.
OST
OST
51. Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chains
(PoS)
last finalised checkpoint can always
be committed by anyone.
validator set can be challenged
that meta-blockchain has halted.
for halted core all value held in gateways
on Ethereum can be recovered with ownership proofs
against latest committed (equiv. finalized) meta-block.
No mass-exit required.
finalise checkpoints:
When it all goes wrong: Halting
GAS
52. Mosaic (PoS)
Ethereum
Mainnet
(PoW)
Auxiliary
Chain
(PoS)
proposers
So what can we use this for?
users send EVM transactions
proposers propose meta-blocks
validators verify and finalise
anyone can commit at any time
validators
• Gateway consumes the state root finalised by validators
Users and contracts can pass messages (without a bridge); currently ERC20-typed
• For ERC20-tokens, once minted on the auxiliary chain, atomic swap is fast to move across.
Off-chain load-balancing logic.
• DApps (users) can opt-in to (and out of) auxiliary chains.
54. What’s Coming Next
Q3 2018:
• Publish OpenST Mosaic Paper for Community Feedback
Q4 2018:
• Continue Mainnet testing of OST, OpenST Protocol
2019:
• Mosaic alpha
• Mosaic beta - warm up validator pool
• Widespread Deployments of OST, OpenST, Mosaic to mainstream businesses and DApps
• Smart contract calls across auxiliary chains
• 2nd-order meta-blocks (aux-on-aux-on-ETHv1.0 or v2.0)
2020:
• Mosaic fully released to decentralised validator pool