TY - GEN
T1 - Internet Computer Consensus
AU - Camenisch, Jan
AU - Drijvers, Manu
AU - Hanke, Timo
AU - Pignolet, Yvonne Anne
AU - Shoup, Victor
AU - Williams, Dominic
N1 - Publisher Copyright:
© 2022 ACM.
PY - 2022/7/20
Y1 - 2022/7/20
N2 - We present the Internet Computer Consensus (ICC) family of protocols for atomic broadcast (a.k.a., consensus), which underpin the Byzantine fault-tolerant replicated state machines of the Internet Computer. The ICC protocols are leader-based protocols that assume partial synchrony, and that are fully integrated with a blockchain. The leader changes probabilistically in every round. These protocols are simple and robust: in any round where the leader is corrupt (which itself happens with probability less than 1/3) or the network is asynchronous, each ICC protocol will effectively allow other parties to step in and propose blocks for that round and to move the protocol forward to the next round. In case there was no agreement on a single block in a round, a decision for this round will be taken in a later round with synchronous network behavior and an honest leader. The task of reliably disseminating the blocks to all parties is an integral part the protocol. We present three different protocols, along with various minor variations on each. The first of these protocols (ICC0) illustrates the combination of the main building blocks in a simplified manner for an easier presentation and analysis. Protocol ICC1 is designed to be integrated with a peer-to-peer gossip sub-layer, which reduces the bottleneck created at the leader for disseminating large blocks, a problem that all leader-based protocols must address. Our Protocol ICC2 addresses the same problem by substituting a lowcommunication reliable broadcast subprotocol (which may be of independent interest) for the gossip sub-layer.
AB - We present the Internet Computer Consensus (ICC) family of protocols for atomic broadcast (a.k.a., consensus), which underpin the Byzantine fault-tolerant replicated state machines of the Internet Computer. The ICC protocols are leader-based protocols that assume partial synchrony, and that are fully integrated with a blockchain. The leader changes probabilistically in every round. These protocols are simple and robust: in any round where the leader is corrupt (which itself happens with probability less than 1/3) or the network is asynchronous, each ICC protocol will effectively allow other parties to step in and propose blocks for that round and to move the protocol forward to the next round. In case there was no agreement on a single block in a round, a decision for this round will be taken in a later round with synchronous network behavior and an honest leader. The task of reliably disseminating the blocks to all parties is an integral part the protocol. We present three different protocols, along with various minor variations on each. The first of these protocols (ICC0) illustrates the combination of the main building blocks in a simplified manner for an easier presentation and analysis. Protocol ICC1 is designed to be integrated with a peer-to-peer gossip sub-layer, which reduces the bottleneck created at the leader for disseminating large blocks, a problem that all leader-based protocols must address. Our Protocol ICC2 addresses the same problem by substituting a lowcommunication reliable broadcast subprotocol (which may be of independent interest) for the gossip sub-layer.
KW - atomic broadcast
KW - blockchain
KW - consensus
KW - internet computer
UR - http://www.scopus.com/inward/record.url?scp=85135363461&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85135363461&partnerID=8YFLogxK
U2 - 10.1145/3519270.3538430
DO - 10.1145/3519270.3538430
M3 - Conference contribution
AN - SCOPUS:85135363461
T3 - Proceedings of the Annual ACM Symposium on Principles of Distributed Computing
SP - 81
EP - 91
BT - PODC 2022 - Proceedings of the 2022 ACM Symposium on Principles of Distributed Computing
PB - Association for Computing Machinery
T2 - 41st ACM Symposium on Principles of Distributed Computing, PODC 2022
Y2 - 25 July 2022 through 29 July 2022
ER -