專業科普
「共識機制」,是通過特殊節點的投票,在很短的時間內完成對交易的驗證和確認;對一筆交易,如果利益不相干的若干個節點能夠達成共識,我們就可以認為全網對此也能夠達成共識。
區塊鏈作為一種按時間順序存儲數據的數據結構,可支持不同的共識機制。共識機制是區塊鏈技術的重要組件。區塊鏈共識機制的目標是使所有的誠實節點保存一致的區塊鏈視圖,同時滿足下面這兩個性質:
1)一致性:所有誠實節點保存的區塊鏈的前綴部分完全相同。
2)有效性:由某誠實節點發布的信息終將被其他所有誠實節點記錄在自己的區塊鏈中。
區塊鏈的自信任主要體現於分布於區塊鏈中的用戶無須信任交易的另一方,也無須信任一個中心化的機構,只需要信任區塊鏈協議下的軟體系統即可實現交易。這種自信任的前提是區塊鏈的共識機制,即在一個互不信任的市場中,要想使各節點達成一致的充分必要條件是每個節點出於對自身利益最大化的考慮,都會自發、誠實地遵守協議中預先設定的規則,判斷每一筆記錄的真實性,最終將判斷為真的記錄記入區塊鏈之中。換句話說,如果各節點具有各自獨立的利益並互相競爭,則這些節點幾乎不可能合謀欺騙你,而當節點們在網路中擁有公共信譽時,這一點體現得尤為明顯。區塊鏈技術正是運用一套基於共識的數學演算法,在機器之間建立「信任」網路,從而通過技術背書而非中心化信用機構來進行全新的信用創造。
現今區塊鏈的共識機制可分為四大類:工作量證明機制、權益證明機制、股份授權證明機制,Pool驗證池。
區塊鏈上採用不同的共識機制,在滿足一致性和有效性的同時會對系統整體性能產生不同影響。綜合考慮各個共識機制的特點,從以下4個維度評價各共識機制的技術水平:
1)安全性。即是否可以防止二次支付、自私挖礦等攻擊,是否有良好的容錯能力。以金融交易為驅動的區塊鏈系統在實現一致性的過程中,最主要的安全問題就是如何防止和檢測二次支付行為。自私挖礦通過採用適當的策略發布自己產生的區塊,獲得更高的相對收益,是一種威脅比特幣系統安全性和公平性的理論攻擊方法。此外,Eclipse攻擊控制目標對象的網路通信,形成網路分區,阻隔交易傳播。Sybil攻擊通過生產大量無意義的節點影響系統安全性。
2)擴展性。即是否支持網路節點擴展。擴展性是區塊鏈設計要考慮的關鍵因素之一。根據對象不同,擴展性又分為系統成員數量的增加和待確認交易數量的增加兩部分。擴展性主要考慮當系統成員數量、待確認交易數量增加時,隨之帶來的系統負載和網路通信量的變化,通常以網路吞吐量來衡量。
3)性能效率。即從交易達成共識被記錄在區塊鏈中至被最終確認的時間延遲,也可以理解為系統每秒可處理確認的交易數量。與傳統第三方支持的交易平台不同,區塊鏈技術通過共識機制達成一致,因此其性能效率問題一直是研究的關注點。比特幣系統每秒最多處理7筆交易,遠遠無法支持現有的業務量。
4)資源消耗。即在達成共識的過程中,系統所要耗費的計算資源大小,包括CPU、內存等。區塊鏈上的共識機制藉助計算資源或者網路通信資源達成共識。以比特幣系統為例,基於工作量證明機制的共識需要消耗大量計算資源進行挖掘提供信任證明完成共識。
基礎常識
舉個栗子
我們10個人合夥開一家公司,需要從其中推薦一位CEO 來領導大家一起工作,如果,每一個人說的話都算數,問題在於大家意見都不一致的時候,聽誰的?這樣合夥開公司會出現致命的管理問題,到底是推薦誰當CEO好呢?大家都願意聽他的領導的話嗎?,經過大家的努力,達成一致,共識機制產生了一套規則,大家一起投票決定,最終從10個人中選擇出來一位CEO。