共識機制:帳本一致性與交易最終性
在解釋分散式帳本系統(DLT)中,常常聽到這樣的解釋,「你在網路上發佈一筆交易,其他人便會把這筆交易紀錄在自己的帳本中」,但是這只是簡單的說法,如果讓全網參與者同時在自己的帳本做紀錄的話,會發生諸多問題,例如:
- 全網帳本無法保持一致性
- 無法確定交易是否達成最終性
- 有可能出現女巫攻擊
此外,如果有攻擊者在網路上同時廣播多筆交易,會因為資訊傳遞時的時間差問題,導致全網出現不同版本的帳本,這時就會產生所謂的「雙花問題」。因此我們必須要有一種共識機制,從眾多的人中,公平的選出一個人記帳,並制定賞善罰惡的制度,才能抵抗女巫攻擊,讓全網礦工能夠對帳本與交易結果達成共識。
共識機制
共識機制如同參與區塊鏈記帳的遊戲規則,目的就是要讓公共區塊鏈網路中的參與者,在彼此不相互信任且無中央權威機構存在的網路中,也能達成共識,共同維護區塊鏈,進而解決雙花問題。
在去中心化的體制下,區塊鏈帳本的維護需仰賴網路上各個礦工,由於帳本存在於網路上各個節點之中,因此,必須讓節點之間的帳本達成共識,才能保證帳本的一致性與交易的最終性。
當然,成為礦工不是做善事無私奉獻,為了吸引人們成為礦工共同維護帳本,需要一套賞善罰惡的機制,讓礦工花費成本競爭記帳權,完成記帳的礦工就能獲得加密貨幣作為報酬,而作惡或嘗試進行女巫攻擊的攻擊者,就會因為浪費成本造成虧損,而爭取記帳權的過程就是大家常聽到的「挖礦」。
注:節點可以選擇只紀錄帳本不爭取記帳權,因此礦工一定是節點,但節點不一定是礦工。
共識演算法就是網絡上礦工的挖礦規則,透過算力或持幣權重等條件,選出記帳者,交由其他礦工驗證,進而達成全體共識,維護全網安全。
共識機制的不同種類
共識機制的最終目的都是為了選出誰能擁有區塊的「記帳權」,因為記帳可以獲得獎勵,大家會努力來爭取「記帳權」,保證帳本的一致性與交易的最終性,並同時讓大家在過程中花費成本,提高女巫攻擊的門檻,否則如果有人控制大量礦工,就有機會可以做壞事。隨著技術發展,開發者為了提升區塊鏈達成共識的速度,衍伸出各種類型的共識來解決區塊鏈的效能問題。
目前公有鏈較常見的共識機制為 PoS、PoW 與 DPoS,三者誰好誰壞目前並沒有定論,PoW 保證網路的安全性但卻有能源與效能問題,PoS 解決了能源問題但也衍生出了其他問題,例如大者恆大,DPoS 擁有高效率但卻又有中心化的疑慮。
延伸閱讀 – 區塊鏈種類與不可能三角-三角難題的抉擇