首页>>科技 >>内容

基于Nervos,CKB共识机制设计的新型哈希算法Eaglesong解析

发布时间:2023-08-19 12:04:36编辑:温柔的背包来源:

很多朋友对基于Nervos,CKB共识机制设计的新型哈希算法Eaglesong解析不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

基于Nervos,CKB共识机制设计的新型哈希算法Eaglesong解析

Eaglesong是专门为Nervos CKB设计的新哈希算法。这是第一个成功结合了创新、简单和安全这三个设计要求的哈希算法。在今天的文章中,我们将详细解释Eaglesong的设计思想及其优势。后视图

Nervos CKB的共识机制(NC-Max)是中本聪共识(NC)的改进版本,即就网络参与者的支付权利达成共识。通过这种机制,只要满足以下两个条件,任何节点都可以更新系统状态(这种更新也称为block):block有效;积木人解决了一个叫做工作量证明的计算问题。

不断尝试解决这个问题并争取下一个区块封锁权的节点称为矿工,矿工在问题解决时会获得相应的奖励。中本聪共识降低了网络通过重写历史来防止被攻击所需的安全性,这是一种计算能力分配的假设,即超过50%的计算能力掌握在诚实的矿工手中。

工作量证明问题是根据提出的块来定义的;这样就保证了谜题的解和块的一一对应,可以唯一证明这个块。具体来说,每个块都有一个唯一的block_header,用于验证待确认队列中的一系列事务和验证者。以往的工作量证明问题一般包括寻找一个有效的随机数,比如:h (block _ header || nonce)=t,在此:

t代表难度系数,周期性地调整难度系数,以控制去除块的平均时间;|||表示位字符串的连接;Nonce是一个随机的比特串;h是单向加密哈希函数。这个哈希函数H有以下几个作用:H是公开的,所以网络上任何一个节点只要验证上面的公式,就可以验证提议的节点是否有效。此外,任何节点都可以在未经许可的情况下成为矿工。

h是不可预测的,所以矿工的最佳策略是随机猜测随机数,并不断尝试新的随机数,直到满足这个公式。这意味着矿工的奖励与他的计算能力份额相匹配,以保护整个网络。

比特币的哈希函数H就是重复两次的SHA2-256运算。从结果来看,重复两次这个函数似乎有点多余,因为近二十年的密码分析都没能产生真正有意义的攻击。然而比特币刚出现的时候,SHA1正面临被破解的危机,而那个时候的SHA2更为新奇。当然,如果SHA2和SHA1的情况一样,SHA2也可以被SHA3代替。

虽然比特币用SHA2定义工作量证明问题是个不错的选择,但是对于后来的很多加密货币来说就不一样了。很多专门为挖掘比特币而开发的特殊设备现在已经过时了,同样工作量的新加密货币可以重新启用那些过时的设备。甚至那些没有过时的装备也可以租出去,挖新币。因此,计算能力的分布变得非常难以预测,也有可能遇到计算能力的突然大幅波动。

同样的原理也可以应用到为SHA2量身定制的算法优化中,不需要采用基于降低硬件成本的解决方案,就可以降低函数的软件计算成本。

对于一种新的加密货币,使用一个其他加密货币没有使用过的工作量证明函数来定义工作量证明问题是非常可行的。对于Nervos CKB,我们将更进一步,选择一个全新的工作负载证明函数,这是完全不可能面临过早优化的问题。

另外,采矿设备达不到预期的情况只会在前期出现。从长远来看,部署特殊的挖矿设备将非常有利,大大增加了网络的攻击难度。因此,对于一种新的加密货币来说,其工作量证明功能的前两个设计目标除了创新之外,还应该简单,这样才能显著降低专业挖矿设备的开发门槛。

第三个设计目标显然是安全性。虽然一个已知的漏洞对所有矿工都一样,每个人都可以用,但只会导致更高的难度;而一个未被披露的漏洞,可能会给发现这个漏洞的矿工带来不同的开采优势,导致他的计算和奖励不具有独创性。为了避免这种情况,最好的办法就是为系统的安全性做一个强有力的论证。Eaglesong这个时候Eaglesong的使用地点出现了。

Eaglesong是专门为Nervos CKB工作负载证明设计的新哈希函数,它也适用于其他需要安全哈希函数的应用场景。它的设计标准如上所列:创新、简单和安全。我们希望这个设计足够新颖,我们想为技术的进步尽一点绵薄之力。同时我们也希望这个设计还是符合真实场景的,这样才能提出有力的安全论据。

为此,我们选择使用ARX步骤(加,循环然后异或——不是很简单!)实例化海绵架构(同KECCCAK/SHA 3),基于宽路径策略演示其安全性(同AES基本演示)。

安全的真正含义是什么?这种使哈希函数适用于工作负载证明问题(例如这里描述的问题)的特性被称为多目标单向性。这个属性是根据一个游戏定义的,游戏中会给对手一个目标列表。如果他能为H下的任何目标生成一个单独的原始图像,那么他就赢了。除了试错,如果对手没有其他更好的方法,说明函数h有这个性质。

然而,哈希函数通常还具有其他性质,如抗第二原像性、抗碰撞性和相关不可能性。对一个属性的攻击不会自动转化为对另一个属性的攻击。因此,从方法论的角度来看,仅用多目标单向函数实例化一个工作量证明问题是合理的。

尽管如此,在Eaglesong的设计中,我们设置了回合数,以至于无法区分结果是随机排列的还是给定工作负载下的。海绵框架的结果是产生的函数具有与散列函数相关的所有安全属性。来源:Nervos华人社区

以上知识分享希望能够帮助到大家!