譯者 | 劉濤
審校 | 重樓
在去中心化網絡的世界里,計算機需要在沒有中心權威控制的情況下協作。共識算法是幫助它們合作并找到共同基礎的關鍵所在。這些算法確保網絡中的所有節點對真實信息以及虛假信息地達成一致,以保證數據安全和交易有效性。
在這篇博客中,我們將以簡單的術語探索共識算法的奧秘。我們將了解這些智能系統如何確保所有計算機狀態一致,以及它們如何防范欺詐性攻擊。做好準備,來發現計算機如何在一個沒有中心權威控制的數字世界中團隊協作并保持安全!
共識算法
簡單來說,共識算法就是計算機網絡的節點在某些問題上達成一致,比如共享數據庫的狀態或交易的有效性。它確保網絡中的所有計算機保持狀態一致,平穩協作。
實例展示
想象這樣一個場景,一群朋友在網絡文件夾中共享一份數字文檔。所有人都可以訪問這個文件并對其進行修改。然而,為避免混亂,他們需要就文檔的同一個版本達成一致。
共識算法的實際應用
還是以上述一群朋友共享數字文檔的場景為例:
- 愛麗絲對文檔提出了修改建議,在文末添加一個新段落。
- 網絡中的另外兩個朋友鮑勃和查理看到了愛麗絲的建議,并表示贊同。他們對這項修改投了贊成票。
- 由于大多數朋友(超過一半)同意這一調整,所以小組成員達成共識,對文檔進行了相應修改。
- 現在,所有朋友都可以看到更新后的版本,他們知道這個版本已經被公認為有效文件了。
在這個例子中,朋友們通過對文檔修改建議進行投票,使用了一個簡單的共識算法。多數人的意見統一才能保證文檔的一致性,每個人都在處理相同的信息。
在更復雜的系統中,比如區塊鏈網絡(例如比特幣或以太坊),共識算法在驗證和保障交易的安全性方面發揮著至關重要的作用,而不需要中心權威控制。算法確保網絡中的所有節點就交易順序和有效性達成一致,維護區塊鏈和參與者之間共享信息的完整性。
以太坊中的權益證明(PoS)共識算法
在 PoS 共識算法中,根據“抵押"或凍結的代幣數量(以太幣)來選擇校驗者,從而創建新的區塊并保障網絡安全。一個校驗者抵押的以太幣數量越多,其被選中提議和驗證區塊的機會就越大。
工作原理
- 校驗者:在 PoS 系統中,部分節點被選為校驗者。要成為校驗者,節點需要"抵押"一定數量的加密貨幣(在這里是以太幣)作為擔保。抵押的以太幣越多,被選為校驗者的機會就越大。
- 區塊提議者:校驗者輪流成為“區塊提議者”來創建新的交易區塊。抵押數量最高的校驗者通常有更高的機會被選為區塊提議者。
- 區塊驗證:一旦一個校驗者提出新的區塊,其他校驗者就會檢查區塊內交易的合法性,確保它們符合網絡規則,并且不是欺詐性行為。
- 達成共識和最終確定:如果大多數校驗者同意提議的區塊有效,它就會被添加到區塊鏈中。共識是通過這些校驗者的協議達成的,因為他們有經濟動機誠實行事,否則他們就會面臨失去抵押代幣的風險。
實例展示
想象一群朋友運營一個類似以太坊的網絡,來跟蹤他們的共同費用和交易。他們使用權益證明(PoS)來達成共識。
1. 校驗者:在他們的網絡中,每一個人都要拿出自己一定數量的以太幣作抵押,才能成為校驗者。愛麗絲抵押了10個以太幣,鮑勃抵押了5個以太幣,查理抵押了8個以太幣。
2. 區塊提議者:由于愛麗絲抵押的以太幣最多(10 個以太幣),她在第一輪中被選為區塊提議者的機會更大。
3. 區塊驗證:愛麗絲提議了一個包含最近交易的新區塊。鮑勃和查理像其他校驗人員一樣,對交易進行檢查,以確保其合法性。
4. 達成共識和最終確定性:如果鮑勃和查理對愛麗絲提出的新區塊的提議表示贊同,他們就會將其添加到區塊鏈中。作為提出該新區塊的校驗者,愛麗絲會獲得一定的交易手續費作為獎勵,然后這個朋友圈組成的類以太坊網絡就進入下一輪區塊生成流程。
在這個實例中,朋友們通過輪流提出新的區塊并通過PoS共識算法對其進行驗證,從而維護他們共享的財務記錄。他們抵押的以太幣越多,成為校驗者并因保護網絡而獲得獎勵的機會就越大。
以太坊權益證明(PoS)可能遭遇的攻擊
以下用實際例子更詳細地說明以太坊的權益證明(PoS)共識算法可能遭受的一些常見攻擊:
- 無成本攻擊(Nothing-at-Stake Attack)
- 描述:在PoS中,校驗者可以去創建和驗證多個沖突的區塊鏈版本,而不需要承擔任何成本。這種無代價的做法會助長不誠信的行為,導致無法達成共識,從而降低了安全性。
- 實例:想象愛麗絲和鮑勃都是以太坊的校驗者。他們沒有就單一的區塊鏈版本達成共識,而是分別創建和驗證不同的區塊鏈,也不需要承擔真正的后果。這會引起混亂,損害了網絡的安全性。當用戶試圖確認區塊鏈的真實狀態時,所得到的信息卻互相矛盾,這使得用戶很難相信系統的完整性。
- 長程攻擊(Long-Range Attack )
- 描述:這類攻擊是指攻擊者在初始區塊創立時,就準備好另外一個可替代的區塊版本,然后用它取代當前的區塊鏈。
- 實例:假定查理想在以太坊中更改一個以前的交易。他開始從第一個區塊創建一個可替代的區塊,并將其隱藏起來。隨著時間推移,查理還在秘密地向自己的替代品中增加更多的區塊。當他終于公開這個被他隱藏起來的更長區塊鏈時,整個網絡都會對區塊真正的歷史版本感到困惑。參與者很難決定要相信哪條區塊鏈,致使網絡變得很容易被操縱。
- 無風險套利攻擊(Nothing-to-Stake Attack)
- 描述:在這種攻擊下,校驗者抵押的擔保很少,因此缺乏足夠的動機遵守規則并誠信行事。
- 實例:想象夏娃成為以太坊的一個校驗者,卻沒有抵押多少以太幣。由于她沒有太多資金押注,所以她可以不誠信行事而又無須承擔嚴重后果。夏娃可能會驗證包含無效交易的區塊,或支持互相沖突的區塊鏈,從而破壞網絡的一致性。因此,參與者會喪失對區塊鏈的有效性的信心,進而引發信任危機,導致系統可能陷入混亂。
- 51% 攻擊
- 描述:在這種攻擊下,攻擊者控制了網絡中超過51%的投票權,使其可以控制共識過程,并可能操縱交易。
- 實例:一群攻擊者設法抵押了以太坊網絡中超過51%的以太幣總量。有了多數控制權,他們可以決定哪些區塊被添加到區塊鏈中,并排除特定的交易。這種攻擊可能造成同樣的金額兩次支出,造成經濟損失并破壞網絡的完整性。用戶無法依賴區塊鏈的精準性,這導致對系統的信心崩潰和信任喪失。
為了防范這些攻擊,以太坊的 PoS 協議包含了懲罰抵押和檢查點等安全措施。這些機制共同保證了網絡的安全性,并使參與者能夠達成共識。有了這些防范措施,以太坊仍然是安全的,區塊鏈也可以被信任。共識算法維護了網絡的可靠性和安全性,在確保所有參與者能夠充滿信心地協作方面發揮著至關重要的作用。
因此,下次當你聽到區塊鏈或加密貨幣時,請記住共識算法在保持每件事同步和確保計算機之間的完美協作方面所發揮的重要作用。
感謝您加入我們對共識算法奧秘的探索之旅。
譯者介紹
劉濤,51CTO社區編輯,某大型央企系統上線檢測管控負責人。
原文標題:Consensus Algorithms: How Computers Agree and Stay Safe Together,作者:Sahil Sojitra