OST Founders CEO Jason Goldberg & CBS Ben Bollen present OpenST Mosaic Protocol at the Upbit Developer Conference 2018 -- 13 September, 2018, Jeju South Korea.
Mosaic is presented in context of Ethereum, Ethereum 2.0, Casper, Sharding, and Plasma.
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.
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 ostmosaic
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
23. 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
25. Three Ingredients for Sharding ostmosaic
1. Divide work into shardsâ¨
2.Communicate between shardsâ¨
3.Economic ďŹnality on each shard
26. 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, ďŹnalised on ETHv1.0â¨
ostmosaic
27. 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 ďŹnalised andâ¨
committed onto Ethereum.
â˘Mosaic has a message-passing protocol between Ethereum and meta-
blockchains (later directly between meta-blockchains).
28. 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% efďŹcient
but we can do even better:
for N nodes, and constant #nodes/AUXâ¨
if there is no time-constraint to commit to Ethereum
â¨
cost: beneďŹt:
e.g. commit once daily, to ďŹnalise 864 millions transactions, for 1.2% of
Ethereumâs daily capacity!
29. Move Bulk of Transactions Off Ethereum & Onto Auxiliary Chains!
Ethereum
Mainnet
Auxiliary â¨
Chains
30. 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
31. Move Bulk of Transactions Off Ethereum & Onto Auxiliary Chains!
Ethereum
Mainnet
Auxiliary â¨
Chains
A meta-blockchain is fully deďŹned 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 ofďŹoadâ¨
block formation onto an auxiliary chain.
Gateways allow ERC20 tokens to move in/out of meta-blockchains,â¨
all value kept on Ethereum.
32. ostmosaic
â˘Tokens are the functional unit of Ethereum at Layer 2.â¨
â˘Tokens deďŹne applications and interaction between
applications (ERC20, non-fungible tokens, âŚ).â¨
â˘Tokens naturally allow to repartition the state space.
Sharding at Layer 2: âToken Shardingâ
33. 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. 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}
40. 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, â , â )
ďŹnalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
in Core contract meta-block is committed:
T = {dynasty, txRoot, gasUsed, coreId}
41. 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, â , â )
ďŹnalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
any ďŹnalised 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}
42. 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: ďŹnalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
any ďŹnalised 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}
43. 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: ďŹnalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
any ďŹnalised 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}
44. 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: ďŹnalise checkpoints:
in blockstore contract calculate T:
gas and txRoot for justified chain
any ďŹnalised 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.
45. 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
46. 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
47. Mosaic (PoS)
Ethereum
Mainnetâ¨
(PoW)
Auxiliary â¨
Chainsâ¨
(PoS)
last ďŹnalised 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. ďŹnalized) meta-block.
No mass-exit required.
ďŹnalise checkpoints:
When it all goes wrong: Halting
GAS
48. 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 ďŹnaliseâ¨
anyone can commit at any time
validators
⢠Gateway consumes the state root ďŹnalised 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.
50. 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 to solicit community feedbackâ¨
⢠Huge thanks to the 65 person OST Team and the fantastic OST Community!
51. 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
â¨