风险提示:理性看待区块链,提高风险意识!
Grin币PoW共识算法之Cuckoo Cycle算法
首页 > 币界资讯 > 区块链知识 2019-06-26 15:35:03

PoW共识最早由比特币采用,也是区块链最早使用的一种共识方法。目前为止PoW是容错能力最好的公有链共识机制。公有链的安全基石是共识机制,PoW以物理算力为基础,当链的算力达到一定规模后,像比特币,由于必须拥有全网一半以上的算力(51%攻击),这使得攻击非常昂贵,在算力比较去中心化的时候,很难发生算力攻击。

所以算法选型倾向于算力的分散化(抗并行挖矿算法)。这是通过使主存储器延迟成为瓶颈来实现的,因为DRAM延迟保持相对稳定,而CPU速度和存储器带宽在硬件架构和处理技术之间变化很大。

常见的POW算法类型:

纯hash类型的算法:随机碰撞、计算困难

Equihash类算法:广义生日悖论问题、memory-hard

ethhash:基于DAG解决约束、memory-hard

Cuckoo Cycle:图论式工作模式证明、memory-hard

而在此之上延伸出PoW的Cuckoo Cycle算法,该算法是一种更平等的共识方式,可以最大限度地降低硬件架构中的性能差异,并使硬件的开采具有成本效益。

Cuckoo Cycle是一种新颖的图论理论算法设计,它结合了可扩展的内存需求和即时可验证性。此外,它也是第一个设计运行时内存延迟主导。除非出现任何无法预料的内存时间权衡,否则它会产生近乎理想的内存限制工作证明,其商品硬件的成本效益可以极大地有利于矿业的分散化。

Cuckoo Cycle的一个有趣特性是制造ASIC并不符合成本效益。尽管如此,ASIC几乎无法避免,因此在某些时候,用于Cuckoo循环的ASIC将变得可用。然而,即使发生这种情况,硬件制造商也无法在普通用户上创建ASIC。

Grin的PoW算法:Cuckoo Cycle

Grin的基本Proof-of-Work算法称为Cuckoo Cycle,2014年由John Tromp 发明。它主要是一种内存约束算法,意味着解决方案时间受内存带宽而非原始处理器或GPU速度的约束。 因此,Cuckoo Cycle的解决方案应该在大多数商品硬件上都是可行的。 Grin 引入了两种POW算法。主要算法是被设计为 ASIC 友好的,而次要算法是抗 ASIC 的。在最初发布时,Grin 挖矿从最初抗ASIC 逐渐过渡到对ASIC友好。

网络启动时90% 的区块将会被次要算法挖出,而主要算法只会挖出大约 10% 的区块。主要算法称为Cuckatoo31+,次要算法Cuckaroo29 ,Cuckaroo29抗ASIC是通过每6个月改变一次算法来实现的。

Cuckoo Cycle问题

Cuckoo Cycle问题是指从Cuckoo图中找到一个L长度的环。Cuckoo图是一个二分图, 其中边(即连接节点的线)仅在2个单独的节点组之间连接的图。由N个节点和M个边组成, 节点采用Cuckoo散列表表示。

图的一侧是用奇数索引编号的数组(最大为图的大小),另一侧用偶数索引编号。下面的简单图表就是这样一个图形,偶数侧(顶部)有4个节点,奇数侧(底部)有4个节点,4条边。

Cuckoo Cycle的存在概率

要保证POW的工作量证明的安全性和公平性,意味着需要所有参与方无法通过某种方法来提高解决问题的概率。Cuckoo Cycle存在的概率,和图的节点多少,边的多少有关,随着M、N的增加,图中寻找到L大小的环路概率 会趋于稳定。

下图是L=42时,随着M/N的比例变化,所能找到的环的概率。可以看到M=29 、31, N=2M,M/N = 50%,此时寻找到L=42的环的概率在1/42。

Cuckoo 图的Edge修剪和环路检测

通过计算节点的自由度,反复修剪小于2的边(永远不会成为循环的一部分),可以大幅度减少环路寻找算法所需的边数 。比如下图,先是可以把(2,15) (11,12) 的边剪掉,此时(10,11) (4,15) 又出现可以剪掉的条件,最后剩下右边的修剪完成对图,实现其边数减少了40%。

环路的检测是从第一条边开始,依次加入其他边,在没有环的时候会形成树结构;对新加入的边,根据深度选择一颗树,通过回溯根节点判断是否形成环路。对所有点边执行一次可以找到所有边相关的环路,并和目标参数比较,如果有相等长度的环路,即解决问题成功。

Grin的PoW运行流程

当处理完一个块后,可以得到其区块头,对区块头的哈希结合Cuckoo算法,寻找图中的环,并对找到的结果进行哈希和目标难度比较,当小于目标时,PoW工作量完成。其流程如下:

对新块头进行哈希处理以创建哈希值K。

哈希值K将用作SIPHASH函数的KEY,该函数将为图中的每个元素生成位置对。

通过剪边,执行Cuckoo循环检测算法试图在生成的图中找到解(即长度为42的循环)。

对找到的环进行Blake2b哈希并将其与当前目标难度进行比较。

如果哈希难度大于或等于目标难度,则将块广播到网络,并在下一个块开始工作。

如果没有找到解决方案,则将区块头中的Nounce增加1,并更新时间戳,以便下一次哈希值迭代。

 文章转载自QTUM官方:https://qtum.org/ru/post/qtum-cuckoo%20cycle 


上一篇: 什么是区块链虚拟机?为什么智能合约需要区块链虚拟机?
下一篇: 使用树莓派手机进行QTUM量子链POS挖矿的教程
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥265,385.78
37,183.98 USDT
+0.44%
ETH以太坊
¥14,450.05
2,024.64 USDT
+0.17%
USDT泰达币
¥7.20
1.01 USDT
-0.03%
BNB币安币
¥1,632.68
228.76 USDT
+1.48%
XRP瑞波币
¥4.32
0.60570 USDT
+0.51%
USDC
¥7.14
1.00 USDT
+0.03%
SOLSolana
¥400.46
56.11 USDT
+1.29%
OKBOK币
¥399.62
55.99 USDT
-0.01%
ADA艾达币
¥2.69
0.37700 USDT
-0.89%
DOGE狗狗币
¥0.55410
0.07765 USDT
-0.98%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.585E-5 USDT
-18.53%
Gala
¥0.00
0.02573 USDT
-4.37%
dYdX
¥22.68
3.2068 USDT
-0.62%
比特股
¥0.05
0.006495 USDT
-3.38%
PancakeSwap
¥15.71
2.2207 USDT
-1.33%
Filecoin
¥31.66
4.4749 USDT
-0.34%
FTX Token
¥29.36
4.15 USDT
+15.67%
Conflux
¥1.09
0.1538 USDT
-2.41%
Yield Guild Games
¥2.57
0.3627 USDT
-0.41%
Shiba Inu
¥0.00
8.17E-6 USDT
-2.27%
比特币
¥263,037.62
37183.98 USDT
+0.44%
比原链
¥0.07
0.01001 USDT
-4.95%
最新快讯
更多
汇款公司Kalyssi旗下钱包已集成AlchemyPay法币出入金解决方案
2023-11-28 19:26:47
PlanB:比特币可能不会再低于3.5万美元
2023-11-28 19:23:01
摩根大通和Apollo计划推出代币化“企业主网”
2023-11-28 19:14:28
汇丰、恒生、渣打、富邦华一四家外资银行入围首批“数字人民币”业务试点名单
2023-11-28 19:06:57
OKX上线MATIC链上赚币产品
2023-11-28 19:06:21
摩根大通和Apollo计划建立代币化“企业主网”
2023-11-28 19:03:57
Nansen2公测版本上线,新增链上数据异动、智能搜索等功能
2023-11-28 18:59:52
下载币界网APP