  A blockchain is a database of sequential events that is maintained by a
distributed group of nodes. A key consensus problem in blockchains is that of
determining the next block (data element) in the sequence. Many blockchains
address this by electing a new node to propose each new block. The new block is
(typically) appended to the tip of the proposer's local blockchain, and
subsequently broadcast to the rest of the network. Without network delay (or
adversarial behavior), this procedure would give a perfect chain, since each
proposer would have the same view of the blockchain. A major challenge in
practice is forking. Due to network delays, a proposer may not yet have the
most recent block, and may, therefore, create a side chain that branches from
the middle of the main chain. Forking reduces throughput, since only one a
single main chain can survive, and all other blocks are discarded. We propose a
new P2P protocol for blockchains called Barracuda, in which each proposer,
prior to proposing a block, polls $\ell$ other nodes for their local blocktree
information. Under a stochastic network model, we prove that this lightweight
primitive improves throughput as if the entire network were a factor of $\ell$
faster. We provide guidelines on how to implement Barracuda in practice,
guaranteeing robustness against several real-world factors.
