根链平台(RootStock)——基于比特币驱动的智能合约白皮书 (7)

根链区块的传播是两成两部分的:第一部分只广播区块头。第二部分是广播包含交易哈希列表的区块。使用2SBP协议可以使传播信道容量加倍,这让每一个区块可以存储更多的交易。当节点接收到了区块头和对应的交易哈希列表后,节点就会重组区块并完成完整验证。

7.4 推送丢失传输协议(PMT)

考虑到每一个节点都存储了交易的哈希,并且节点之间都会相互告之这些交易,而矿工也会将自己内存池里确信的丢失的交易立刻打包进区块。这就使得二次通信要求补充丢失的交易变得没有必要了。在节点要求重发被丢失的交易之前就发送这些交易是2SBP协议的第三个阶段。

7.5 延迟传输交易包探试(DTI)

矿工只会打包他在几秒种前已经收到的交易。这可以以很高概率来保证交易在区块被挖出前被矿工接收到。考虑到延迟的交易是矿工最喜欢的,因为这可以减少区块的验证时间,同时也降低了竞争区块的机会。在未确认区块试探挖矿(MUB)(译者注:“未确认区块试探挖矿”是一个专用名词,我翻译的可能不准确,原文是“Mining on Unverified Blocks Heuristic”)在网络上是有效的情况是,这种优化组合是不需要的。

7.6 区块头先行传播(IBHP)

当一个最新的区块的区块头被节点接收了,节点在转发区块头之前只会检验工作量证明工作和区块高度信息,而不需要检验交易和验证区块合法性。这就允许区块头信息可以提前1秒以内的时间在网络上广播。

7.7 双优先流连接协议(2PSC)

每个网络连接都包含两个不同优先级的双逻辑双向流。即使是在低优先级信息正在使用低优先级流来发送中,高优先级流也可以被立即用来发送区块头。

7.8 未确认区块试探挖矿(MUB)(译者注:翻译可能不准确,原文是“Mining on Unverified Blocks Heuristic (MUB)”)

节点可以在区块高度最高处继续挖一个空区块,即使是在一个固定的时间间隔内交易被丢失。在这个时间间隔之后,矿工们继续挖矿,而不会去管之前是挖的什么区块。这些空块降低了带宽和区块链存储功能的利用率,但模拟显示,如果使用DBI,生产空块的数量,以及存储这些空块需要的空间,以及因此造成的交易容量下降,都是很低的。

7.9 本地路由优化协议(LRO)

降低无效区块的数量对减少矿工之间的传播延迟非常重要。根链网络使用动态优化以减少矿工之间的传播延迟,并且给予矿工之间的通信更高的优先级。换句话说,根链的对等网络中嵌入了快速传输网络,使用地理位置定位和优化本地路由来加强了gossip协议。矿工间传输区块的路径是一个关键路径,这对对等网络来说是极端重要的。在对等网络的关键路径中存在非挖矿节点会导致无效区块的增加。在关键路径上的非矿工节点(如终端用户和监控节点)只能对矿工起到微弱的匿名化作用。从本地节点开始决定创建关键路径,可以使用LRO协议来优化节点的优先级。该协议在根链的随机拓扑网络中嵌入了一个动态的有向无环图(DAC)(译者注:这里的“有向无环图”原文是“directed acyclic graph (DAC)”),这个DAC可连接最佳的矿工。

7.10 比特币挖矿网络资源再利用

一个中心化的挖矿网络,有着大型的矿池,是能比完全分布式挖矿拓扑网络要生产更少的无效区块。因此对于快速支付系统,基于SHA-256D算法的工作量证明的加密货币要比基于非ASIC算法的工作量证明的加密货币更有优势。

7.11 真实网络拓扑

比特币的设计是假定网络是近似于一个随机图,具有一个平均的出入度(译者注:这里的“出入度”对应的原文是“out-degree and in-degree”)。但这和真实情况是有很大的出入的,网络节点采用本地决策以避免出现物理位置上的地域集群(至少对外连接来说是这样)。这对区块传播来说并不是最好的拓扑结构。对区块传播来说最好的拓扑结构是给最顶端矿工(top-miners)更优质的资源,激励矿工们直接相互连接,或者使用更快的路由让区块在他们之间传播。同时一个矿工和矿工直接连续的骨干网也能帮助降低无效区块的数量。考虑到对比特币的攻击,目前这种方案已经有人提出用于增强比特币的防御能力。根链使用LRO算法建立一个稳定的动态矿工骨干网,这样避免了矿工和矿工之间的认证成本、保护隐私成本,和避免了泄漏IP地址和潜在的DOS攻击的风险。

7.12 工作量证明函数验证时间

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzjsjw.html