论文标题

高通量区块链的编码交易广播

Coded Transaction Broadcasting for High-throughput Blockchains

论文作者

Yang, Lei, Gilad, Yossi, Alizadeh, Mohammad

论文摘要

高通量区块链需要有效的交易广播机制,这些机制可以向大多数具有低带宽开销和延迟的网络节点提供交易。现有的方案协调跨同行的传输,以避免发送冗余数据,但它们要么会产生高潜伏期,要么对对抗网络节点不健壮。我们提出Strokkur,这是一种新的交易广播机制,可提供低带宽开销和低潜伏期。 Strokkur背后的核心思想是避免通过随机交易编码进行明确的协调。而不是转发个人交易。 Strokkur节点发送代码字 - 随机选择的多个交易的XOR总和。由于几乎每个代码字都对接收器解码新事务都是有用的,因此Strokkur节点不需要协调,例如确定丢失接收器的交易。 Strokkur的编码策略建立在LT代码,这是一类流行的无重量擦除代码类别,并扩展了它们,以支持多个不协调的发件人,并具有部分重叠的交易数据流。 Strokkur引入了机制,以应对可能发送损坏代码字的对抗发件人,以及一种简单的速率控制算法,使每个节点能够独立确定每个对等方的代码字的适当发送率。我们在Golang中实施Strokkur,仅使用一个CPU核心支持647K交易。我们在19个节点的互联网部署和大规模模拟中进行的评估表明,Strokkur的消耗量比比特币中现有方案的带宽少2--7.6倍,而只有4%的节点是对抗性的,SHREC的延迟低9倍。

High-throughput blockchains require efficient transaction broadcast mechanisms that can deliver transactions to most network nodes with low bandwidth overhead and latency. Existing schemes coordinate transmissions across peers to avoid sending redundant data, but they either incur a high latency or are not robust against adversarial network nodes. We present Strokkur, a new transaction broadcasting mechanism that provides both low bandwidth overhead and low latency. The core idea behind Strokkur is to avoid explicit coordination through randomized transaction coding. Rather than forward individual transactions. Strokkur nodes send out codewords -- XOR sums of multiple transactions selected at random. Since almost every codeword is useful for the receiver to decode new transactions, Strokkur nodes do not require coordination, for example, to determine which transactions the receiver is missing. Strokkur's coding strategy builds on LT codes, a popular class of rateless erasure codes, and extends them to support multiple uncoordinated senders with partially-overlapping continual streams of transaction data. Strokkur introduces mechanisms to cope with adversarial senders that may send corrupt codewords, and a simple rate control algorithm that enables each node to independently determine an appropriate sending rate of codewords for each peer. Our implementation of Strokkur in Golang supports 647k transactions per second using only one CPU core. Our evaluation across a 19-node Internet deployment and large-scale simulation show that Strokkur consumes 2--7.6x less bandwidth than the existing scheme in Bitcoin, and 9x lower latency that Shrec when only 4% of nodes are adversarial.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源