1. 程式人生 > >Algorand算法實現(一)

Algorand算法實現(一)

span agreement 科學 anti 文章 技術 給定 節點 雲上

技術分享圖片

技術分享圖片

判斷節點是potential leader的條件:

HSigr, 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,如果 HSig(r, s, Br-1)< p,則iverifier

Br的計算

如果leader_r存在而且在給定的時間內發布了對應的credential

Br = H(Sigleader_r(Br-1), r-1),即首先用

leader對於Br-1的簽名,再對簽名和r-1計算哈希

否則: Br = H(Br-1, r-1),即對Br-1r-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”.

本節引用的圖均來自這篇文章。他們的測試在亞馬遜雲上進行,使用了1000EC2虛擬機,發現:

第一,Algorand能在1分鐘內確認交易,而且確認交易的時間隨著用戶數量的增加,變化不大。

第二,將用戶數固定在5萬,測試不同區塊大小對通量(throughput,可以用產生一個區塊的平均耗時來衡量)的影響。可以看出,區塊越大,構建區塊的耗時越長,但對拜占庭協議BA*的運行時間影響不大。

Algorand算法實現(一)