Вы находитесь на странице: 1из 34

Advancing Ethereum in

permissioned
networks:
integrating PBFT into
Quorum

github.com/jpmorganchase
github.com/getamis
Quorum: Ethereum for
permissioned networks
What is Quorum?

1 Lightweight fork of geth Ethereum Transactions *just work* (yay!)


What is Quorum?

1 Lightweight fork of geth Ethereum Transactions *just work* (yay!)

2 Designed for permissioned networks Participants are known. Hi, Im Bob.


What is Quorum?

1 Lightweight fork of geth Ethereum Transactions *just work* (yay!)

2 Designed for permissioned networks Participants are known. Hi, Im Bob.

3 Adds Enterprise features to Ethereum So many features!


Quorum Project Goals

Stay as close as possible to the public Ethereum codebase


Quorum is on geth 1.7.2

Work with the open source community and help define


standards

Build a platform that can run in an enterprise production


environment
Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets
Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets

Constellation ZSL
Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets

Hashes: Broadcast

DEVp2p
ZSL
Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets

Hashes: Broadcast

DEVp2p
ZSL
Constellation

Private Data: Point-to-Point


Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets

Hashes: Broadcast Without ZSL

Amt: 100 Amt: 80


DEVp2p
Constellation

Balance: 900 Balance: 250 Balance: 500

Private Data: Point-to-Point


Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets

Hashes: Broadcast With ZSL

Amt: Amt:
DEVp2p
Constellation

Balance: Balance: Balance:

Private Data: Point-to-Point


Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets

Performance
Blocks every ~50ms
Up to 1000 TPS
Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets

Performance Finality
Blocks every ~50ms No chain forking
Up to 1000 TPS
Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets

Performance Finality
Blocks every ~50ms No chain forking
Up to 1000 TPS

Permissioning
Known peers only
What does Permissioned Blockchain even mean?

Distributed Public
database blockchain
ZSL

Closed, single operator Open, multiple operators

Trust among nodes Trustless, censorship

Fast, capable of strong consistency resistant

Store of mutable state Slow, eventually consistent


Off-chain payload storage Log of state transitions
Quorum Features

Privacy
Private Contracts & Transactions
Private exchange of tokenized assets

Performance Finality
Blocks every ~50ms No chain forking
Up to 1000 TPS

Permissioning Configurable Consensus


Known peers only QuorumChain
Raft
Quorum consensus: choose a flavor

1 QuorumChain 2 Raft

Time-based, vote-driven Well known consensus algorithm for


algorithm distributed databases
Nodes have roles: block Based on Core OS etcd raft
makers, voters, observers implementation, used in Kubernetes
Consensus rules can be Drastically faster block times: ~50
modified from the milliseconds
BlockVoting smart contract No forking: transaction finality
without a hard fork
Configuration embedded in
the Genesis block
Amis & Istanbul BFT
About Amis & Istanbul BFT

Amis Istanbul BFT

Headquartered in Taiwan. Inspired by Castro/Liskov99 Practical


Working from research to application, Byzantine Fault Tolerance (PBFT)
and things in between. Instant finality: No confirmation required
Well known projects: Istanbul BFT and Governance: Manageable validator set
decentralized ledger for banks in High throughput: Avg. 800 TPS
Taiwan. Same node scalability (as ethash)
Consensus proof: Self verifiable blocks
Gossip network: Weak connection
supported
EIP #650
Istanbul BFT Consensus: Intuition

Node 1 Node 4

Node 2 Node 3
Istanbul BFT Consensus: Pre-prepare

Pre-prepare Protocols

Proposer is selected in a round robin eth p2p


fashion (configurable).
Proposer proposes a block.

Proposal
Proposal

Proposer
Proposal
Istanbul BFT Consensus: Prepare

Prepare Protocols
Prepare
Validators agree on a block proposal eth p2p
Node 1 Node 4

Prepare

Prepare
Prepare Prepare

Proposer Node 3
Prepare
Istanbul BFT Consensus: Commit

Commit Protocols
Commit
Validators agree on committing a block eth p2p
Node 1 Node 4

Commit

Commit
Commit Commit

Proposer Node 3
Commit
Istanbul BFT Consensus: Committed

Block creation Protocols

Istanbul BFT: Validators insert the eth p2p


Node 1 Node 4
proposed block and then propagate.
(~100 msec consensus time)

Insert block

Proposer Node 3
Istanbul BFT Consensus: Next Round

Next round Protocols


Next validator becomes proposer and
proceed on next block generation eth p2p
(round).

Proposal

Proposal

Proposer
Proposal
Istanbul BFT Consensus: Malicious Behavior Defense

Malicious behavior (dishonest proposer) Protocols


Dishonest proposer proposes an invalid
block. eth p2p

*Proposal

*Proposal

Proposer
*Proposal
Istanbul BFT Consensus: Round Change

Round change Protocols


Validators to make consensus on who Round
becomes the next proposer change eth p2p

Round
change
Round
Round change Round
change change

Round
change
Istanbul BFT Consensus: New Round

New round Protocols


New proposer selected and proceed on
block generation consensus. Proposal eth p2p
Node 1 Proposer

Proposal

Proposal

Node 2 Node 3
Istanbul BFT Consensus: Malicious Behaviors

Stalled validators
Mixed message codes
Forged signature
Proposer disguise
Round change spam
Invalid block proposal
Why Amis picked Quorum?

Compatible with and close to Public Ethereum


Similar goals
ZSL of augmenting Ethereum for enterprise use
Enterprise Ethereum Alliance

Already supports multiple consensus options


QuorumChain
RAFT

J.P. Morgan is cool for a bank

Off-chain payload storage


Quorums innovation benefits Ethereum

Istanbul BFT: PBFT eth-pruner:


consensus algorithm archive historical states

ZSL

&

ZSL: First enterprise EVM Decompiler: Improving


implementation of ZSL Smart Contract security

Off-chain payload storage


Quorum is expanding the Ethereum ecosystem

Cloud hosting
Training
Implementation partner
Core development, Technical support & Use case
technical support & use case development development
use case development
Implementation partner
web3j
Java support Core development,
technical support &
use case development

Cakeshop Market data Use case development


Cloud deployment IDE/SDK
Implementation partner Blockchain
as a Service

.NET support Use case


Security tools development
Development tools Use case development
& testing framework
Get Started with Quorum & Istanbul BFT

Home page jpmorgan.com/quorum

Code github.com/jpmorganchase/quorum

Slack quorumslack.azurewebsites.net/

Вам также может понравиться