A Blockchain Based on Gossip a Position Paper
A blockchain is an append only sequence of blocks of arbitrary data. The two most popular approaches to blockchains are permissionless blockchains based on Proof of Work (PoW) and permissioned blockchains based on Byzantine consensus or Byzantine Fault Tolerance (BFT) The first is based on competitions between anonymous participants solving cryptopuzzles, while the latter is a cooperative approach based on mutual trust between participants. Major problems with PoW approaches include that the energy per transaction is enormous, the transaction rate is very low, and the latency is very high. A major problem with BFT is that membership is closed. Various other approaches to blockchains have been proposed to address these problems. In this paper we propose yet another approach, based on gossip (aka epidemiological protocols) [1] Gossip is an approach to agreement in so called eventually consistent systems, and is particularly popular in NoSQL Key Value Stores such as Dynamo, Cassandra, and so on. In a basic gossip protocol, there is a fixed group of participants. Periodically, each participant randomly selects a peer and exchanges state. This state is reconciled in a way so that all nonfaulty participants eventually converge to the same state. It can be shown that this approach is efficient, converging in O(logN) gossip rounds where N is the number of participants, even in the face of participants failures and message loss [1] Moreover, gossip protocols are amenable to open and dynamic membership whereby the membership itself is gossiped along with other state [4] To make the application of gossip to blockchains more concrete, we propose, for simplicity, a setting similar to the Bitcoin blockchain. Blocks are 1 MByte. We assume participants have access to a good source of time, such as a GPS clock. We divide time into 10 minute epochs. Each hour would have six such epochs starting at the top of the hour. Each epoch is further subdivided into 10 second gossip rounds, allowing for 60 rounds of gossip. The intention is for the participants in an epoch to use gossip to agree upon a block. Note that the transaction rate would be the same as for the Bitcoin blockchain here we only try to address energy consumption. Each participant, in the background, collects transactions from clients, and at the top of an epoch fills a block with new transactions. The block also contains a history hash: a hash of the content of the previous block on the chain, as determined by the participant. The participant then starts gossiping its block and learning about the blocks of other participants. Before we go into further specifics about how the participants may end up agreeing on a particular block, we point out that gossip is prone to Byzantine attack. We will introduce and address various attacks as we go. The first question is how participants would end up agreeing on a block. The straightforward