Tomasz Drwiega
@tomusdrw
Parity Technologies
23.01.2018,
Ethereum Meetup Warsaw
Blockchain technology for Web 3.0
Web 3.0 ?
A vision of trust-free, decentralized Internet
Web3 Foundation
Research, develop, deploy, advocate and steward the set of protocols and technologies that comprise Web3
Web3 Foundation
- Trust-free core technologies such as Polkadot
- Cryptographic messaging protocols such as Whisper
- P2P networking infrastructure such as libp2p and devp2p
-
Crypto-economic mechanisms such as DAC/DAO
-
Data publication systems such as IPFS
hello@web3.foundation
Web3 Foundation
&
Parity Technologies?
Separate entities, but Parity is developing the initial implementation of Polkadot
5 key challenges of current blockchain technology
-
Scalability
processing, bandwidth and storage -
Isolability
can the same framework be applied to all problems?
-
Developability
are there easy to use tools and APIs -
Governance
Is it flexible? Can it evolve and adapt? -
Applicability
Is middleware necessary?
I want to build a blockchain!
-
Networking - The Boring Part
- libp2p, devp2p
-
State Transition - The Unique Part
- What kind of state do you need? (UTXO / Full)
- What "transaction" is?
- How to process transactions to get new state
-
Consensus - The Security Part
- How to decide which state is the latest/canonical?
- Who can mint new blocks?
I want to build a blockchain!
Even if you manage to build it you're blockchain will be completely isolated.
Security of your blockchain will depend on the amount of miners / validators you manage to convince to join you.
How can I do better?
Why do you need to build a new blockchain in the first place?
- Existing solutions are not Scalable and Isolated
- Too expensive / too slow - need for custom State Transition
It's because State Transition is currently tightly coupled with Consensus Logic!
With Polkadot?
-
Networking-
Provided by Polkadot
-
-
State Transition
- What kind of state do you need? (UTXO / Full)
- What "transaction" is?
- How to process transactions to get new state
-
Consensus-
Canonicality provided by Polkadot
-
Just focus on your State Transition
Polkadot
Many chains can be connected to Polkadot.
They are called Parachains.
You delegate canonicality to Polkadot
Relay Chain and gain from pooled security
Connect the dots
How does it work?
- Polkadot = Proof-of-Stake Relay Chain
- Validators create new blocks on the Relay Chain
- Nominators vouch for good validators
Relay Chain
Block 1
Block 2
Nominators
Validators
Bonded Validators (backed by Nominators) come to a consensus over the next block on the Relay Chain
What a Relay Chain is NOT?
- Not a generic state-transition chain
(doesn't have programmable smart contracts) - Doesn't even have transfers
(you cannot move coins to arbitrary addresses)
What a Relay Chain is?
- Manages validators bonds (PoS) and punishes for misbehaviour
- Stores latest/canonical state of each parachain
- Assigns validators to be responsible for parachains
- Manages connected Parachains (governance)
Relay Chain
Block 1
Block 2
Parablock #3
Parablock #5
Parablock #4
Parablock #2
Consequences
- Parachains = Parallel-chains (run concurrently)
- Parachains can have super-complicated/super-specific state transitions
-
Parachains use pooled security
canonicality info is included in the relay chain by validators -
Parachains don't need to leak private data
Private blockchains can anchor blocks in relay chain
What's even cooler?
Parachains can emit messages and receive messages emitted by other parachains. Trust-free.
Private bank parachain confirming identity details on identity parachain.
What's even cooler?
Such messages can cause DOT tokens to be moved from or into a parachain.
You can move DOTs to a transfer-specific parachain (where transferring is cheap)
How does it work?
- Relay-chain stores a "validation function" for parachain (WASM code)
-
validate( previousHeader, proposedHeader, witnessData, ingressQueue ) returns (bool, egressQueue)
- Validators "validate" parachain transitions and include new headers to the relay chain.
- Parachain nodes are light-clients of Relay Chain to verify canonicality of the blocks
Issues
-
How do validators get the parachain data?Validators are randomly assigned to parachains
It's not possible to synchronize them so fast (or even connect to them)
-
What if validators groups lie about a parachain?
Data availability, or result of validation function
✓ Solved
-
How do validators get the parachain data?Validators are randomly assigned to parachains
It's not possible to synchronize them so fast (or even connect to them)
-
What if validators groups lie about a parachain?
Data availability, or result of validation function
COLLATORS
FISHERMEN
Incentives
-
VALIDATORS
Bonded actors coming to consensus over blocks in the Relay Chain
-
NOMINATORS
Select good validators and contribute to their bonds
-
COLLATORS
Collect fees on specific parachains if their block is included to the Relay Chain
- FISHERMEN
High (but rare) reward for detecting and reporting misbehaviour on the Relay Chain
What's the best?
-
Polkadot Pick'n'Mix
build a solution utilizing unique features of each parachain
-
Trust-free bridges to existing blockchain networks
Ethereum Smart Contract executing a ZCash transfer
or
Private chain transaction transferring Bitcoins
Current State of Development
- github.com/paritytech/polkadot
- 100% Rust
- WASM runtime ready
- Initial Networking code
- Relay Chain Consensus PoC
- Initial parachain implementation in progress
Thank You
Questions?
Polkadot
By Tomasz Drwięga
Polkadot
- 1,318