I gave a presentation at ETH Denver on the topic “What is Shared Security?”
You can see a recording of that talk here:
And the presentation:
Before describing how Polkadot achieves shared security, I touch on some other “shared security” models:
Different Forms of Shared Security Today
- Native: Native shared security is implemented at the protocol level, and is represented as a Layer 0 blockchain, working underneath Layer 1 chains.
- Rollups: Optimistic and zero knowledge rollups use a settlement layer to provide security and finality to their transactions.
- Re-Staking: Some protocols allow the use of already staked tokens to secure another network, usually through the creation of a derivative token.
but these different forms are not equal…
Then, at the end, I do a quick pros and cons of each of these models:
Re-Staking Solutions
Pros
- Seems to be protocol agnostic, and can be “backported” to new and existing chains.
- Smaller / newer chains can rely on more valuable and stable economies.
Cons
- As tokens are continually re-staked, the economic “costs” needed to attack secured chains decreases.
- No real computational verification or protection provided by these systems.
- Seems to ultimately fall back on centralized sources of trust.
Optimistic Rollups
Pros
- Not limited by the complexity of the on-chain VM.
- Can be parallelized.
- They can stuff a lot of data in their STF.
- They can use compiled code native to modern processors.
Cons
- Concerns around centralization and censorship of sequencers.
- Long time to finality due to challenge periods. (could be days)
- Settlement layers could be attacked, interfering with the optimistic rollup protocols.
- Suffers from the same problems allocating blockspace as on-chain transactions.
- On-chain costs to perform the interactive protocol.
- Congestion of the network.
Zero Knowledge Rollups
Pros
- Honestly, they are pretty great.
- Proven trustlessly.
- Minimal data availability requirements.
- Instant Finality (at high costs).
- Exciting future if recursive proofs work out.
Cons
- Concerns around centralization of sequencers and provers.
- Challenging to write ZK Circuits.
- Turing complete, but usually computationally complex.
- Hard to bound complexity of circuits when building apps.
- Suffers from the same problems allocating blockspace as on-chain transactions.
- On-chain costs to submit and execute proofs on settlement layer.
- Congestion of the network.
Polkadot Native Shared Security
Pros
- Protocol level handling of sharding, shared security, and interoperability.
- Easy to develop STF.
- Anything that compiles to Wasm.
- Probably the best time to finality, usually under a minute.
- Data availability provided by the existing validators.
- Much less concern of centralization from collators vs sequencers and provers.
Cons
- Wasm is unfortunately still 2x slower than native compilation.
- Requires lot of data being provided and available in PoV.
- Certain limitations enforced to keep parachains compatible with the parachains procol.
I wanted to a twitter thread with this same information, but also get feedback from the community before I start sharing it further.
What do you all think of what I wrote? What did I get right? What did I get wrong? What did I miss all together?
cc @pepyakin @rphmeier @burdges
Related: ZK Rollups as Parachains