分布式共識
區塊鏈的數據存儲
一系列有順序的交易構成區塊鏈
交易1+交易2+交易3+……→帳戶狀態
分布式記帳
交易的不可抵賴,不可偽造由密碼學和多方存證保證
對於複製帳本的要求——共識
第一種方法——中心共識
由中央節點提出共識意見,所有人都按照這個意見進行,從而達成共識。
第二種方法——投票
通過投票的方法來獲取統一的意見,在聯盟鏈中使用的方法。需要考慮有壞人的投票情況,壞人試圖阻止好人達成一致意見。拜佔庭將軍問題,通過大家投票,把壞人的意見給投出去!
拜佔庭將軍問題給出的答案:如果有f個壞人,只要好人達到2f+1或者更多,就能夠達到分布式的共識。
第三種方法——抽籤方法
投票的方法有一個前提條件,必須知道參與投票的人的總數,否則無法完成投票的過程,進而達成一致意見,而且如果參與人數過多,投票過程會非常緩慢,性能很差。
解決方案:如果人數太多,則可以抽籤,抽到籤的人(或者節點)提出一個意見,其他的人都同意這個意見,而且這個意見是否合理是可以被驗證的。
抽籤的人不可偽造,因為抽籤的方法是需要滿足一定的數學性質,沒有滿足這樣數學性質的不是一個被抽籤的人。
抽到籤的人有意願把意見進行廣播,因為抽籤機制包含了激勵機制,可以獲得相應獎勵。
抽籤方法完成的共識
特點:能夠在人數未定的時候完成共識的工作
保障:共識的意見是可以被驗證的,共識的完成是有激勵機制保證的,已經進行了廣播。
性能:抽籤過程不能太快,因為網絡有延遲,意見要廣播到網絡中大部分節點。
容錯:抽籤是數學性質的滿足,抽籤過程中,不能絕對保證只抽到一個幸運者,所以需要額外的機制排除兩個或者多個意見中的一個。
課堂小結:什麼是分布式共識?
就是所有節點對同一個提案或者意見達成共識。
分布式共識的方法有哪幾類?
第一:中央節點進行統一共識
第二:多個節點投票達成共識
第三:開放系統通過抽籤的方法完成共識