透啃世界 | 透啃區塊鏈第 043期:公式演算法 Algorand

買賣虛擬貨幣

親愛的們,男神駕到。

每天一個新觀點,帶你啃透區塊鏈。

今天來看一個共識演算法 Algorand。

這個演算法的發明者是麻省理工(MIT)的教授 Silvio Micali。Micali 是密碼學家和計算機理論學家,他的著名專案有偽隨機數和零知識證明,他還是圖靈獎的獲獎者之一。

瞭解這個共識前,我們先看一下比特幣的共識。比特幣共識 PoW 當中,很關鍵的一點是,要努力達成一個目標,就是“任何節點都不能預測未來的某個區塊的生成者是誰”。

因為假如我知道下一個區塊的生成者還是我,我就可以進行分叉攻擊,比如說買東西,我可以首先先生成一個區塊A,裡面有個交易說我付了錢,把它加到鏈上給商家看。同時,我又偷偷生成一個沒有付錢的區塊 B 藏起來,然後,我在收到貨物之後,因為下一個區塊的生成者還是我,這個時候,我再往 B 上加新的區塊,然後釋出,這個時候區塊 A 就沒有了,也就是我剛才付的錢又回來了,就可以雙重支付了。

在比特幣裡,因為網路延遲的問題,當前區塊的生成者在下一個區塊生成時有一定的優勢,所以才有我們經常聽到的,最好等到有 6 個確認後,這筆交易就沒問題了,就是因為一個區塊的生成者預測到 6 個區塊以後的生成者的概率就微乎其微了。

我們再來看 Algorand 的解決方案。它的方案是,下一個區塊的釋出者在 k 個區塊之前的所有參與者裡選。於是,惡意節點想影響下個區塊的釋出,他得影響 k 個區塊才行,當 k 很大的時候,這個影響也就微乎其微了。我們來詳細看一下它的方案:

先基於持幣量,從很多很多人中選出一批數量不多的記賬者,之後在記賬者裡面,根據隨機數產生器,隨機選出當前的主記賬節點,然後主記賬節點釋出一個區塊,所有其他的記賬節點根據 PBFT 共識釋出區塊。

之前我們說到過,PBFT 能做到在多個節點間實現共識,其每一步都由一個主節點發布區塊,其他人對這個區塊做共識。PBFT 最高能在 1/3 的惡意節點(包括主節點也可能是惡意節點)存在的情況下讓剩餘的誠實節點達成共識。

為什麼要這麼設計呢?因為公有鏈最大的難題就是節點太多了,而 POS 不確定性高,POW 又太浪費資源。其次呢,PBFT 共識機制無法支援大量節點,但是對少量節點是非常有效的,還能做到 30% 多的容錯。所以這個思路就是,大量人中隨機選取一部分,在這一部分隨機選取的人中,再用 PBFT 做共識。

Algorand 的能源消耗大大低於比特幣的 POW,利用 “ 加密抽籤 ” 來決定區塊的生產者和驗證者,系統完全隨機,並且系統沒有使用者分類,使得所有的參與者可以獲得同等的許可權。最後,利用修改的拜占庭共識演算法,不需要大量通訊的情況下對網路執行達成共識。感興趣的朋友可以進一步瞭解,拜拜。


幣圈四年場外交易老司機,一個有深度的男人,帶你看懂不一樣的區塊鏈世界。  ——風華三毛

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;