1. 首頁
    2. 區塊鏈信任機制是什么(什么是區塊鏈的共識機制?)

    區塊鏈信任機制是什么(什么是區塊鏈的共識機制?)

    什么是拜占庭將軍問題?

    拜占庭將軍問題其實是虛構出來的一個故事,是為了方便通俗地介紹分布式系統所面臨的難題。

    1982年,Leslie Lamport提出的“拜占庭將軍”問題是解釋一致性問題的一個虛擬模型。拜占庭是古東羅馬的首都,由于地域寬廣,守衛的將軍需要通過信使傳遞消息,達成一致的決定。但由于將軍中可能存在叛徒,這些叛變的將軍可能會發送錯誤的消息,干擾大家的決議。

    拜占庭問題的提出是為了解決上述情況下,怎樣讓忠誠的將軍們達成一致的決議。這個問題演變到計算機領域,就是在互聯網中不同計算機通過通信怎樣達成一致。與拜占庭將軍類似,實際過程中有些計算機可能出現錯誤,有些計算機有可能被黑客攻擊,怎樣保證網絡上的計算機對某個事物達成一致就是這個理論模型要解決的問題。

    在這個問題里,各鄰國最重要的事情是:所有將軍如何能夠達成共識去攻打拜占庭帝國。這些將軍需要實現某一個統一的目標,一致進攻或者一致撤退,但是單獨行動卻又可能面臨失敗,所以必須達成共識,一致合作。由于叛徒的存在,將軍們缺乏達成一致的有效途徑。這里的“一致性”才是拜占庭將軍問題需要探討的內容,假如本來叛徒數量就已經多到了問題無解的地步,那么這個就是“反叛”的問題了。同時我們的目標是忠誠的將軍能夠達成一致,對于這些忠誠的將軍來說,進攻或者撤退都是可以的,只要他們能夠達成一致就可以。

    但是光靠“一致”就可以解決問題了嗎?仔細考慮一下,如果萬事俱備,客觀上每個忠誠的將軍只要進攻了就一定能夠勝利,但是卻因為叛徒的存在他們都“一致的”沒有進攻;反之,在條件不利的情況下,將軍們不應該進攻,但是卻因為叛徒的存在所有人都“一致的”進攻了。

    從這個分析可以發現,只有“一致性”是不足以解決拜占庭將軍問題的,還需要有一個“正確性”的要求。這個要求是值得思考的,因為如果客觀來看或許會有“絕對正確的”判斷,但是針對每一個將軍,大家的判斷或許都不相同,我們如何定義“正確”呢?或許可以簡單地說,正確就是每個忠誠的將軍都正確的表達了自己的意思,不會因為叛徒讓別的將軍認為忠誠的將軍是叛徒而不采用他傳達的消息。

    在這些將軍里面,如果出現了叛徒,情況就會變得異常復雜,可能會出現如下的問題:

    叛徒可能欺騙某些將軍自己將采取進攻行動

    叛徒可能慫恿其他將軍行動

    叛徒可能迷惑其他將軍,使他們接受不一致的信息,從而感到迷惑

    至此,我們將拜占庭將軍問題簡化成了,所有忠誠的將軍都能夠讓別的將軍接收到自己的真實意圖,并最終一致行動;而形式化的描述就是,“一致性”與“正確性”。

    在區塊鏈這樣的分布式網絡中,我們還是以將軍為例:

    每位將軍都保留一份歷史消息賬本

    因為每份消息都是進行過簽名的,所以如果有背叛的將軍,我們很容易就能找出來; 在一輪共識的流程里,即便有消息不一致,但是只要背叛將軍的個數少于1/3,這一輪共識就能達成

    什么是區塊鏈共識機制?

    共識機制是區塊鏈是核心的組成要素之一,它決定了區塊鏈的業務吞吐量、交易速度、不可篡改性、準入門檻等等,是最為關鍵的技術要素之一。

    要理解區塊鏈共識機制,首先就需要理解區塊鏈共識機制到底解決了什么問題。

    共識機制主要解決了兩個問題:

    誰有權利;

    作弊問題。

    上一次我們構造了一個中心化記賬的場景,在這個場景下,記賬問題其實可以簡化為大家信任中心記賬者即可。

    然而在分布式記賬的場景下,問題更為復雜。首先,大家面臨的最大問題是誰有權利記賬,其次是如何避免記賬者作弊。畢竟,誰都有權利記賬,也就意味著誰都有可能作弊。以上兩部分共同構成了區塊鏈共識機制。

    通常人們在表述一個比特幣上的問題時,共識的內涵還包括比特幣的使用者、開發者、礦工來達成社區共識的部分,所以“共識”這個詞在區塊鏈領域還有些“民主”的味道,不單單是技術領域的“共識”。

    相關文章
    草莓视频