WF曲速未來:區塊鏈核心算法之共識機制區塊鏈
WF曲速未來:共識機制在區塊鏈系統中起到決定誰負責生成新區塊的作用。
WF曲速未來:共識機制在區塊鏈系統中起到決定誰負責生成新區塊的作用。
一、什么是共識?
在理解共識的概念之前,先簡單粗爆地假設——咱們村有100人,現在要投票選舉誰當村長,如果100人都親自到場投出自己的一票,那參與度是100%;如果這100人選出了10個代表去投票,參與度則只有10%。這兩種投票,哪一種投票更能代表民意呢?毫無疑問是前者,因為參與度更高;相反,后者選出了10位代表去投票,參與度低,難免以偏蓋全。通過這個假設,我們可以對什么是參與度有一個簡單粗暴的理解。
共識(Consensus)是一切交易的基礎,達成共識越分散(參與度越高),其效率就越低,但滿意度越高,因此也越穩定;相反,達成共識越集中(參與度越低),效率越高,也越容易出現獨裁和腐敗現象。
區塊鏈技術的偉大之處在于去中心化和去信任(或降低信用成本),如何在一個完全陌生的網絡環境里,通過代碼撮合交易?言外之意,這些代碼究竟發揮了何種神奇的魔力,讓買賣雙方產生信任呢?
答案就是共識機制。
共識機制
區塊鏈系統的核心是有系統中節點競爭記賬,這個競爭的過程稱為共識機制,區塊鏈的底層有四部分構成,一個分布式的數據庫用來存儲以往和將來的交易數據,密碼學的公私密鑰體系用來確認交易雙方的身份,P2P網絡用來廣播和蔓延各類消息(如節點加入消息,節點失效消息,得到挖礦數據的消息)和 用來決定節點記賬權利的共識機制。
共識機制在區塊鏈中扮演著核心的地位,共識機制決定了誰有記賬的權利,以及記賬權利的選擇過程和理由。不用的虛擬貨幣采用共識機制不同,常見的共識機制如POW,POS,DPOS 拜占庭容錯等。現梳理如下:
目前區塊鏈的共識機制大致可以分為PoW(工作量證明)、PoS(權益證明)、DPoS(股份授權證明)以及分布式一致性算法幾類。
(一):工作量證明PoW
POW(Proof of Work),即工作量證明機制。整個系統中每個節點為整個系統提供計算能力(簡稱算力),通過一個競爭機制,讓計算工作完成最出色的節點獲得系統的獎勵,也就是完成新生成貨幣的分配。區塊鏈是一個持續增長的順序塊組成的,每個塊包含了頭文件和一系列的交易信TXi,其中頭文件中保護了timestamp Ti ,上一個塊的索引Hi-1,和nounce Ni-1,區塊鏈是密碼上的安全,對于每一輪只要找到相應的HASG的碰撞就算成功,HASG的碰撞的意思可以了解為hash值的前多少位相同,我們知道何難找到兩個hash一模一樣的文件,但是我們可以找到前幾位相同的,我們將一個完整的挖礦過程整理如下:
其中Di是難度系數,可以認為是前多少位的碰撞。挖礦的過程就是在不停的嘗試找Ni的過程。下面我們給出一個模擬挖礦的例子。測試環境說明:
運行如下腳本:
對結果進行排序,找到前9位對撞成功的n的值.
實驗結果如下:
雖然只是模擬實驗,但是完整的反映了POW的運作原理。
(二):權益證明PoS
POS(Proof of Stake)即股權證明。顧名思義,指的是直接根據所持有的份額來達成共識機制。其目的在于讓鏈上所謂的“股權持有者”來代替POW里的礦工,這本質上的共識過程是以“股權所有”代替“挖礦”過程。
在PoW機制中,由于想要找到符合條件的 nonce.nonce往往需要花費大量的電力和時間成本,因此,為了使每個Block更快被生成,PoS機制去掉了窮舉 noncenonce這一過程,繼而采用以下更快速的算法:
SHA256(SHA256(Bprev),A,t)≤balance(A)m
H 某個哈希函數
t 為 UTC 時間戳
Bprev指的是上一個區塊
balance(A)代表賬戶A的賬戶的余額
唯一可以不斷調整的參數是t,等式右邊m是某個固定的實數,因此,當balance(A)越大,找到合理t的概率越大,網絡中,普遍對于t的范圍有所限制,如可以嘗試的時間戳不能超過標準時間戳1小時,也就說,一個節點可以嘗試 7200次,來找到一個符合條件的t,如果找不到即可放棄。因此,在PoS中,一個賬戶的余額越多,在同等算力下,就越容易發現下一個區塊。
但是它和POW機制一樣解決問題的思想也導致了它與POW擁有一樣的缺點,也是犧牲了一部分的共識(同樣分叉),而且需要等待多個確認。
優點:對節點性能要求低,達成共識時間短(網絡環境好的話可實現毫秒級);
缺點:沒有最終一致性
PoW與PoS流程對比圖:
(三):股份授權證明DPos:
是基于POS衍生出的更專業的解決方案,股份授權證明類似于董事會投票,假設某個區塊鏈系統的世界里有10萬人,現在這10萬人投票選出了4位股東作為代表來行駛記賬權,這4位董事分別是A、B、C、D,在記賬過程中,按順序每位董事有兩秒鐘的時間來記賬,如果在規定的時間內記賬失敗,則直接把權限交給下一位董事,這樣原本10萬人參與記賬競爭的游戲,現在變成了4人。
這樣做的優點是大幅縮減了參與驗證和記賬的數量,形成共識幾乎可以達到秒級,缺點是固定數量的董事作為記賬候選人,與去中心化的理念相違背,董事數量太少,參與度太低,也缺乏一定的代表性。
對比這三種最常用的共識算法,不難發現各有利弊,它們的誕生都圍繞著一個核心——如何更加公平、公正、透明、輕量(不過多消耗資源)、高效(更快)地達成共識,挑選出記賬的人(節點)。
PoS與DPoS對比圖:
結論:
PoW采用簡單粗暴但極為有效的方式,通過節點首先自證其資質后才進行廣播的方式,大幅度減少了網絡間的通訊壓力,但與之帶來的問題則在于自證資質的計算資源消耗極大。
PoS采用與傳統分布式一致性驗證類似的機制,通過代幣數量(或存儲容量等指標)作為權重依據,使用某種分布式算法選舉出每次的檢查點節點。這種機制的好處在于沒有消耗計算資源的自證資質過程,但是帶來的問題在于每次選舉時在大量節點的網絡中對網絡壓力極大。
DPoS作為PoS的變形,通過縮小選舉節點的數量以減少網絡壓力,是一種典型的分治策略:將所有節點分為領導者與跟隨者,只有領導者之間達成共識后才會通知跟隨者。該機制能夠在不增加計算資源的前提下有效減少網絡壓力,在優秀的軟件實現中將會具有較強的應用價值。
WF曲速未來表示:在區塊鏈的共識機制中,其本質與分布式數據庫的一致性算法存在極多的相似之處。拜占庭問題的引入僅僅從算法和選舉節點數量上對網絡結構做出一些調整,但是并不從本質上改變分布式系統一致性選舉的機制。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。