Algorand算法实现(一)

Algorand算法实现(一)

判断节点是potential leader的条件:

H(Sig(r, 1, Br-1)) <= 1 / size(PKr-k)

size(PKr-k)为第r-k轮中网络中参与区块共识的公钥个数(也就是钱包的数目)

verifier的选择

定义回看参数k,概率p

输入参数:(r, s, Br-1): 其中r为第r轮,s为第s步,Br-1为上一轮的Q值

判断方法:对于i,如果 H(Sig(r, s, Br-1))< p,则i为verifier

Br的计算

如果leader_r存在而且在给定的时间内发布了对应的credential:

Br = H(Sigleader_r(Br-1), r-1),即首先用leader对于Br-1的签名,再对签名和r-1计算哈希

否则: Br = H(Br-1, r-1),即对Br-1和r-1计算哈希

Gossip通讯协议

共识算法BA*(轮循批量共识)

参数种子生成算法(VRF)

Algorand的测试情况

MIT计算机科学和人工智能实验室对Algorand进行了模拟测试[Gilad, Yossi, Rotem Hemo, Silvio Micali, Georgios Vlachos, and Nickolai Zeldovich, 2017, “Algorand: Scaling Byzantine Agreements for Cryptocurrencies”. 本节引用的图均来自这篇文章。他们的测试在亚马逊云上进行,使用了1000台EC2虚拟机,发现:

第一,Algorand能在1分钟内确认交易,而且确认交易的时间随着用户数量的增加,变化不大。 

第二,将用户数固定在5万,测试不同区块大小对通量(throughput,可以用产生一个区块的平均耗时来衡量)的影响。可以看出,区块越大,构建区块的耗时越长,但对拜占庭协议BA*的运行时间影响不大。

发布了74 篇原创文章 · 获赞 127 · 访问量 91万+

猜你喜欢

转载自blog.csdn.net/AAA123524457/article/details/104016960