什么是“连弩挖矿”?


什么是“连弩挖矿”?


在PoW共识机制中,矿工需要不断随机刺探块头中的Nonce并重算哈希函数,以使得这个块头的哈希值满足当前算力难度的要求,可以最终出块。这个过程的瓶颈在于计算哈希函数的速度,所以挖矿算力被定义为哈希速率。在这里,我们将实际计算哈希的速度定义为物理算力,而提高物理算力的唯一方法就是部署更多的矿机,消耗更多的电能。
那么,攻击者在对有n个共识组的Monoxide系统实施攻击的时候,如果将其所有物理算力T分配到一个特定共识组,在这个共识组中获得有效算力T。那当其物理算力超过 T > H/n × 51%(n为共识组数量,H为全网有效算力) 的时候,攻击将可以成功,并构造不一致交易(例如双花交易)。
因此,Monoxide引入了连弩挖矿,它允许矿工同时参与多个编号连续的共识组,每次出块的时候哈希函数将覆盖多个将要出块的块头进行计算,同时这些块头将共用一个Nonce,具体做法是将这些块头按序排列,构造Merkle树。出块时,其数据结构会被广播到特定的共识组 ,仅包含该共识组的块头以及一个该块头被包含在内的证明,不涉及到其他共识组的块头。
其效果是将使得全网的有效算力放大为物理算力的n倍,同时也放大了单位物理算力可以获得的出块奖励,并且在协议的数据结构层面约束了这种放大后的有效算力必须平均分配到各个共识组,从而规避了前述算力聚焦的攻击模型。
同时参与到多个共识组挖矿,需要更多的IT资源用来同步和验证每个共识组的交易和区块(不仅仅是块头),也需要更多的磁盘存储和内存。基于去中心化的考虑,参与连弩挖矿与否,以及参与的共识组个数是一个矿工可以自行配置的选项,Monoxide并不要求所有矿工都参与所有共识组的挖矿。

什么是“连弩挖矿”?

扫一扫手机访问

发表评论