共識演算法是一種允許使用者或機器在分散式環境中協調關係的機制。它需要確保系統中的所有代理人對單一事實來源能夠最終達成一致意見(即使某些代理人持反對意見)。換而言之,系統必須具有良好的容錯性(另請參閱《拜占庭容錯詳解》)。
在中心化的環境當中,單一實體的控制權凌駕於整個系統。在多數情況下,由於沒有創建條例詳盡的治理系統,無法使眾多管理員達成共識,導致這些實體往往可以隨意更改系統。
但如果是在去中心化的環境之中,則全然是另一番景象了。假設我們正在使用分散式資料庫,如何針對該新增哪些條目達成一致?
此環境中充斥著互不信任的陌客,如何克服這種挑戰也許正是解決發展問題的關鍵所在,能夠為區塊鏈鋪路。本文中,我們將了解共識演算法對於運行加密貨幣和分散式帳本的重要性。
在加密貨幣環境下,使用者的餘額都記錄在區塊鏈這個資料庫中。每位使用者(更準確地說,每個節點)都維護著同一份資料庫副本,這一點至關重要。如若不然,最終會導致資訊衝突問題,從而破壞加密貨幣網路的全盤宗旨。
公鑰密碼學能夠確保使用者無法使用其他使用者的代幣。但是必須存在可供網路參與者信任的單一事實來源,才能了解資金是否已經用完。
比特幣創造者中本聰提出了工作量證明系統,以此來協調參與者。我們稍後將詳細介紹工作量證明的工作原理。現在,先來了解現有各種共識演算法的共同特徵。
首先,我們需要想新增區塊的使用者(也稱為驗證者)質押權益。驗證者必須質押具有某種價值的權益,這是為了防止他們使詐。一旦作弊,他們將失去自己質押的權益。例如失去算力和加密貨幣,甚至還有可能名譽掃地。
那他們為什麼要賭上自己的資源冒險?因為這個過程中還存在著獎勵機制。獎勵通常是協議的原生加密貨幣。獎勵也可能是其他用戶支付的手續費、新產生的加密貨幣單位,或同時包括這兩者。
最後,我們還需要確保透明度。我們需要具備及時發現作弊的能力。理論上,生產區塊會消耗大量成本,但驗證其真實性的成本卻相當低。透過此機制,一般使用者可輕鬆約束驗證者。
工作量證明(PoW) 被視為區塊鏈共識演算法的教父。機制首次應用於比特幣領域,不過實際概念早已存在。在工作量證明中,驗證者(稱為礦工)會對想要新增的資料進行雜湊計算,直到產生特定的解決方案。
雜湊是指透過雜湊函數運行資料所建立的一串看似隨機的字串,由字母和數字組成。重複運行同一個資料總是會得到相同的輸出。但是,即使更改了一個小細節,產生的雜湊值就會截然不同。
僅憑輸出根本無法推斷函數中輸入了什麼資訊。因此,這種方法能有效證明您在某個特定時間點之前便已知曉某一段資料。您完全可以事先將雜湊值告訴別人,而且之後等您透露該資料時,此人只要執行該函數即可查驗輸出是否相同。
在工作量證明中,協議規定了使區塊具有效力的條件。例如,它可能會規定只有得出以 00 開頭的哈希值才是有效區塊。礦工要創造符合該組合的區塊,唯一的途徑就是蠻力破解輸入。他們會調整資料參數,測遍每一種猜測,得出不同的結果,直到獲得正確的雜湊值。
對於主區塊鏈,門檻往往相當高。為了與其他礦工競爭,您需要準備大量的特殊哈希硬體(專用積體電路),為生產有效區塊創造條件。
在挖礦過程中,您質押的權益包括購買機器的成本以及運行機器所需的電力。專用積體電路 (ASIC) 專為加密貨幣挖礦而生,對於其他應用毫無用處。您回收初始投資的唯一方法是挖礦,如成功添加新區塊至區塊鏈上,便能獲得相當可觀的回報。
網路可輕鬆驗證您所建立區塊的真偽。您也許需要嘗試數萬億種組合才能得出正確的雜湊值,但驗證資料卻只需執行一次雜湊函數計算。如果您的資料產生了有效的雜湊值,那麼網路會接受該值,您也可因此獲得獎勵。否則,網路會拒絕該值,您所花費的時間和電力都將付諸東流。
在比特幣推行早期,權益證明(PoS ) 被視為工作量證明的替代方案。在權益證明系統中,不存在礦工、專用硬體或大量能源消耗這些概念。您只需準備一台普通計算機即可。
不過,也不盡然。您還需要下一點兒本錢。在權益證明機制中,雖然無需消耗外部資源(如電力或硬體),但必須提供內部資源,即加密貨幣。每個協議的規則都有所不同,但一般都會設定最低出資量,您必須達到標準才有資格進行權益質押。
完成此操作後,您錢包中的資金將被鎖定(進行權益質押時無法移動資金)。通常來說,您需要與其他驗證者就哪些交易將進入下一個區塊達成協議。從某種意義來看,這相當於您在對即將選中的區塊進行押寶,而協議只會選擇其中一個區塊。
如果協議選中了您的區塊,那麼您將獲得與所質押權益量呈正比的交易手續費。您鎖定的資金越多,代表收益越可觀。假如您企圖作弊,從而提出無效的交易,那麼您將失去部分(或全部)質押的權益。因此,我們運作著一個類似權益證明的機制,在這個機制內,誠實守信比作弊使詐能夠獲得更多收益。
一般來說,驗證者的獎勵不會以新造代幣的形式發放。因此,區塊鏈的原生貨幣必須以其他方式發行。可以採用初始發行(即 ICO 或 IEO)的方式,也可以採用先透過工作量證明啟動協議,然後再過渡至權益證明的方式。
目前為止,純權益證明僅部署在規模較小的加密貨幣中。因此,尚不明確它能否作為工作量證明的可行替代方案。雖然理論上行得通,但實踐起來完全不是那麼回事。
一旦權益證明機制在具有大量價值的網路上推行,整個系統就會變成一個充斥著博弈論和經濟誘因的競技場。只要有利可圖,那些技術高超的駭客就會“入侵”權益證明系統。因此,唯一確定是否可行的途徑,只有將其運用於線上網路之中。
很快,權益證明會進行大規模測試,而以太坊網路也即將實施一系列升級措施(統稱為以太坊 2.0),其中包括執行 Casper。
工作量證明和權益證明是目前討論熱度最高的共識演算法。但除此之外還有許多其他演算法,而且各有優缺點。詳情請閱讀以下文章:
達成共識的機制對分散式系統的運作至關重要。許多人認為,比特幣最大的創新是使用了工作量證明,透過這種機制,使用者往往能夠就一組共享事實達成一致。
如今,共識演算法儼然成為了數位貨幣系統和區塊鏈的基礎,它能夠允許開發者在分散式網路上運行程式碼。共識演算法在區塊鏈技術中佔據著奠基石的地位,對現有各種網路的長期生存能力具有至關重要的作用。
在所有的共識演算法中,工作量證明佔據著主導地位。如今尚未有人提議出更可靠更安全的替代解決方案。話雖如此,專業人員仍在研發大量產品來取代工作量證明,未來幾年,我們有望見證更多的替代解決方案出現。