Algorand共識演算法簡介
2019-1-22 09:43
來源: 巴位元
Algorand共識演算法是圖靈獎獲得者Silvio Micali在2017年底提出。Michali是MIT的教授,是一位密碼學家和計算機理論學家,在偽隨機數以及零知識證明領域很有名。
Algorand共識演算法的論文的下載地址:https://people.csail.mit.edu/nickolai/papers/gilad-algorand.pdf
Algorand採用了VRF函式,並結合賬戶的餘額比例,隨機確定區塊生成以及投票人角色。
所謂VRF(Verifiable Random Function)就是可驗證隨機函式。
隨機數對於區塊鏈技術來說很關鍵。 本質上,分散式賬本的核心問題就是隨機選擇出塊人的問題,這個隨機性要能被全網確認,並且不能被操控,也不能被預測, 否則惡意節點通過操控這個隨機數就可以操控長鏈,從而實現雙花攻擊。
PoW的方案是讓大家進行算力競賽,設定一個計算雜湊的難題,誰先算出來誰贏,算力高的贏的概率高,算力低的贏的概率低,以這樣的方式保證勝出者是隨機的。投入的算力能夠體現在雜湊值上, 這樣全網能夠驗證,並選擇包含最多算力的那條鏈。惡意節點只能通過提升自己的算力來增加攻擊成功的概率。
PoS的方案是選舉,大家不用浪費電力去進行算力競賽,而是文明一點,隨機選舉一個節點來出塊,並且被選中的概率和它擁有的份額相關。 如果“隨機”這一步沒有問題的話,惡意節點只能通過增加自己的份額,增加自己被選中的概率,從而增加雙花攻擊的成功概率。 這裡有一點比PoW的方案要好就是,要實現攻擊,先得成為持幣大戶,如果攻擊成功幣價大跌,攻擊者也會承受最大的損失。
那麼接下來的核心問題就是,這個不能被操控不能被預測的隨機數從哪來。傳統地PoS方案嘗試從鏈上現有的資料入手,比如使用上一個區塊的雜湊值,上一個區塊的時間戳等等來作為隨機數的來源,但這些會帶來額外的安全風險。 因為區塊本身的資訊就是節點寫進去的,然後又要根據裡面的資訊來選舉後續的出塊者,存在迴圈論證的嫌疑,安全性不會太好。 這也是傳統地認為PoS方案不如PoW可靠的部分原因。
Algorand提出的VRF能夠由私鑰( SK )以及訊息( X )產生一組可驗證的偽隨機 (pseudorandom) 數Y以及證明 ⍴。任何人都可以透過Verify函式來檢驗這個隨機字串是否真的是該公鑰對應私鑰持有者,依照規定使用Evaluate函式所產生,而不是自己亂掰的。
為什麼我們需要這麼一個大家自己產生,卻又要可以被驗證的隨機字串產生器呢?這是因為在Algorand的拜占庭演演算法中,雖然也存在著每一輪不同的區塊生產者(稱為Leader)以及驗證委員會(Committee, Verifiers),但並不是用「公開選舉」的方式來選的,而是透過每個使用者自己對獎的方式來看看自己是不是下一輪的Leader。
algorand就是通過隨機演算法從一群大範圍的驗證者中選取一部分驗證者執行BFT演算法(Micali教授實現的BA*演算法),從而達到提高共識的效果。
無論是在何種BFT的共識機制中,都是由Leader以及Committee來完成區塊的釋出以及共識決議。例如EOS的dPoS BFT是固定21個BP輪流擔任Leader以及投票者、Zilliqa透過PoW加入Committee進行PBFT共識演算法。這些比較直觀的拜占庭共識演演算法都有一個共同特徵,就是大家都可以看到下一個區塊的Leader是誰,以及負責協議共識的Committee是誰。這造成了一個可能的風險,就是這些區塊生產者以及Committee成員容易成為DDOS或是賄賂的目標。
Algorand為了解決這種潛在的風險,利用VRF來掩蓋Leader Selection的步驟。可以想像成:一般的BFT在每一輪開始時公平公開選出Leader以及Committee,Algorand則是像在每一輪開始時公佈中獎號碼,每個使用者都可以自己拿自己的票根對獎,中獎的人即可成為下一輪的Leader(或是Committee Verifier),但在中獎者自己表明身分前,沒有人知道誰中獎,也就是沒有人能預測下一輪的Leader以及Committee。當然中獎與否並不是口說無憑,中獎者需要出示中獎證明,而這個證明是大家都可以驗證的,這正是我們剛剛說到的VRF。
版權申明:本內容來自於網際網路,屬第三方彙集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯絡QQ:3341927519進行反饋。
標籤: 共識演算法