DeepHash专栏|Monoxide:突破区块链不可能三角的极简架构(11)

前面提到的算力分散问题是这样的一个攻击模型:在有 n 个共识组的 Monoxide 系统中 , 全网有效算力为 H , 每个共识组的有效算力为 H/n 。 攻击者在实施攻击的时候 , 将其所有物理算力 T 分配到一个特定共识组 , 在这个共识组中获得有效算力T 。 那边当其物理算力超过 T > H/n × 51% 的时候 , 攻击将可以成功 , 并构造不一致交易(例如双花交易) 。

为了抵御这个算力聚焦的攻击模型 , 我们的思路是强制矿工将算力分散到各个共识组 , 并且无法集中算力到特定共识组 。 但在一个去中心化的 permissionless 系统中 , 我们无法控制矿工如何分配其物理算力 。

因此 , Monoxide 引入了连弩挖矿 , 其效果是将使得全网的有效算力放大为物理算力的 n 倍 , 并且在协议的数据结构层面再约束了这种放大后的有效算力必须平均分配到各个共识组 , 从而规避了这种算力聚焦的攻击模型 。

连弩挖矿允许矿工同时参与多个编号连续的共识组(例如从编号b到b+m-1) , 每次出块的时候哈希函数将覆盖多个将要出块的块头进行计算 , 同时这些块头将共用一个 Nonce 。 具体做法是将这个 m 个块头按序排列 , 构造 Merkle 树 。 然后算力哈希计算将覆盖下列数据结构:

推荐阅读