當前位置:首頁 » 區塊鏈知識 » 區塊鏈投票共識機制

區塊鏈投票共識機制

發布時間: 2022-12-28 18:18:22

區塊鏈的核心技術:共識機制&智能合約

不論你是否接受,未來終將改變。

區塊鏈技術給數字經濟時代帶來了巨變的曙光。

這種巨變在互聯網近50年的歷史上曾發生過兩次。第一次巨變是全球性的聯

網……第二次巨變是全球性的應用……第三次巨變正在蘊釀。

————摘自《騰訊區塊鏈方案白皮書》 

當第一次讀到這段時,完全不敢想像這是一家世界級企業對一項新技術的評價,

瞬間引起了我的興趣。「巨變」是什麼含義?就是說完全有可能顛覆我們現有的

經濟結構和認知,徹底改變我們的生活方式。

一種從2009年才誕生的比特幣技術中 抽象而來的block chain(區塊鏈)技術,

居然獲得了這么高的評價,這難道不是很神奇的一件事么?不管這件事會不會發

生,已經令人非常激動了,我們正在迎接一項變革並且可能參與其中,不是任何

時代的人都有這種機會,何其幸運!

不論你是否接受,未來終將改變。全球眾多經濟學家、企業家、國家政要都在推

崇區塊鏈,聲稱區塊鏈技術將重塑商業、貨幣和世界,將顛覆互聯網、銀行、證

券、保險、物流、電力、製造、會計稅收、法律服務、文化創業、醫葯衛生等眾

多行業。

雖然說到「區塊鏈」,大家都會提到「去中心化」,也舉了很多形象的例子。但

是我是一個較真的人,希望能夠找到大家做出這種判斷,背後的邏輯到底是什

么?就需要搞懂一切推斷背後的本質,就需要了解區塊鏈的核心技術邏輯。

閱讀了一些書籍和資料之後,拋開「比特幣」不說,要了解區塊鏈,有兩個核心

名詞:共識機制、智能合約。

共識機制是區塊鏈技術的核心,要搞清楚」共識機制「,就不得不提著名的「拜

占庭將軍問題」,拜占庭將軍問題由萊斯利·蘭伯特提出的點對點通信中的基本

問題,主要是用於分析在分布式節點傳輸信息時如何保持數據的一致,即共識這

個問題。

拜占庭將軍問題

一組拜占庭將軍分別各率領一支軍隊共同圍困一座城市。為了簡化問題,將各支

軍隊的行動策略限定為進攻或撤離兩種。

因為部分軍隊進攻部分軍隊撤離可能會造成災難性後果,因此各位將軍必須通過

投票來達成一致策略,即所有軍隊一起進攻或所有軍隊一起撤離。因為各位將軍

分處城市不同方向,他們只能通過信使互相聯系。

在投票過程中每位將軍都將自己投票給進攻還是撤退的信息通過信使分別通知其

他所有將軍,這樣一來每位將軍根據自己的投票和其他所有將軍送來的信息就可

以知道共同的投票結果而決定行動策略。

系統的問題在於,將軍中可能出現叛徒,他們不僅可能向較為糟糕的策略投票,

還可能選擇性地發送投票信息。這樣各支軍隊的一致協同就遭到了破壞。由於將

軍之間需要通過信使通訊,叛變將軍可能通過偽造信件來以其他將軍的身份發送

假投票。而即使在保證所有將軍忠誠的情況下,也不能排除信使被敵人截殺,甚

至被敵人間諜替換等情況。因此很難通過保證人員可靠性及通訊可靠性來解決問

題。

假始那些忠誠的將軍仍然能通過多數決來決定他們的戰略,便稱達到了拜占庭容

錯。

拜占庭將軍問題被認為是容錯性問題中最難的問題類型之一。在一個有n個節點的

系統中,每一個節點都有一個輸入的值,其中一些節點具有故障,甚至是惡意

的。

在分布式計算中,不同的計算機通過通訊交換信息達成共識而按照同一套協作策

略行動。但有時候,系統中的成員計算機可能出錯而發送錯誤的信息,用於傳遞

信息的通訊網路也可能導致信息損壞,使得網路中不同的成員關於全體協作的策

略得出不同結論,從而破壞系統一致性。

但是中本聰在設計比特幣系統時應用的「工作量證明鏈」(PoW)模型很好的解決

了共識問題,至於什麼是「PoW」,感興趣的可以研究下。

智能合約是一套以數字形式定義的承諾(promises) ,包括合約參與方可以在

上面執行這些承諾的協議。一個合約就是存在區塊鏈里的程序。合約的參與雙方

將達成的協議提前安裝到區塊鏈系統中。在雙方的約定完成後,開始執行合約,

不能修改。至於合約執行所需要的「燃料」,也就是手續費,也需要提前支付。

智能合約可以解決日常生活中常見的違約問題,如果應用到各行業中,可以避免

違約的信用問題。

在區塊鏈出現之前,商業領域的信任關系通常要依賴於正直、誠信的個人、中介

機構或其他組織才能建立起來。在區塊鏈這個新興的領域中,信任關系的建立是

基於網路,甚至是網路上的某個對象。由區塊鏈驅動的智能合約將會要求雙方遵

守他們的承諾。

在區塊鏈體系中,共識機制和智能合約,保證了數據的真實性和合約執行力,實

現「去中心化」。當然還有很多技術層面的東西沒有說到,感興趣的可以深入了

解下。

雖然大部分人對於區塊鏈的認知還停留在比特幣、各種代幣上,也就是對金融行

業的變革。但是了解區塊鏈核心邏輯後,結合自己所在的行業「區塊鏈 +」,區

塊鏈的各行業的應用剛進前半場,相信都會想到很多好的創新方向。

❷ 區塊鏈幾大共識機制及優缺點

首先,沒有一種共識機制是完美無缺的,各共識機制都有其優缺點,有些共識機制是為解決一些特定的問題而生。
1.pow( Proof of Work)工作量證明
一句話介紹:乾的越多,收的越多。
依賴機器進行數學運算來獲取記賬權,資源消耗相比其他共識機制高、可監管性弱,同時每次達成共識需要全網共同參與運算,性能效率比較低,容錯性方面允許全網50%節點出錯。
優點:
1)演算法簡單,容易實現;
2)節點間無需交換額外的信息即可達成共識;
3)破壞系統需要投入極大的成本;
缺點:
1)浪費能源;
2)區塊的確認時間難以縮短;
3)新的區塊鏈必須找到一種不同的散列演算法,否則就會面臨比特幣的算力攻擊;
4)容易產生分叉,需要等待多個確認;
5)永遠沒有最終性,需要檢查點機制來彌補最終性;
2.POS Proof of Stake,權益證明
一句話介紹:持有越多,獲得越多。
主要思想是節點記賬權的獲得難度與節點持有的權益成反比,相對於PoW,一定程度減少了數學運算帶來的資源消耗,性能也得到了相應的提升,但依然是基於哈希運算競爭獲取記賬權的方式,可監管性弱。該共識機制容錯性和PoW相同。它是Pow的一種升級共識機制,根據每個節點所佔代幣的比例和時間,等比例的降低挖礦難度,從而加快找隨機數的速度
優點:在一定程度上縮短了共識達成的時間;不再需要大量消耗能源挖礦。
缺點:還是需要挖礦,本質上沒有解決商業應用的痛點;所有的確認都只是一個概率上的表達,而不是一個確定性的事情,理論上有可能存在其他攻擊影響。例如,以太坊的DAO攻擊事件造成以太坊硬分叉,而ETC由此事件出現,事實上證明了此次硬分叉的失敗。
DPOS與POS原理相同,只是選了一些「人大代表」。
BitShares社區首先提出了DPoS機制。
與PoS的主要區別在於節點選舉若干代理人,由代理人驗證和記賬。其合規監管、性能、資源消耗和容錯性與PoS相似。類似於董事會投票,持幣者投出一定數量的節點,代理他們進行驗證和記賬。
DPoS的工作原理為:
去中心化表示每個股東按其持股比例擁有影響力,51%股東投票的結果將是不可逆且有約束力的。其挑戰是通過及時而高效的方法達到51%批准。為達到這個目標,每個股東可以將其投票權授予一名代表。獲票數最多的前100位代表按既定時間表輪流產生區塊。每名代表分配到一個時間段來生產區塊。所有的代表將收到等同於一個平均水平的區塊所含交易費的10%作為報酬。如果一個平均水平的區塊含有100股作為交易費,一名代表將獲得1股作為報酬。
網路延遲有可能使某些代表沒能及時廣播他們的區塊,而這將導致區塊鏈分叉。然而,這不太可能發生,因為製造區塊的代表可以與製造前後區塊的代表建立直接連接。建立這種與你之後的代表(也許也包括其後的那名代表)的直接連接是為了確保你能得到報酬。
該模式可以每30秒產生一個新區塊,並且在正常的網路條件下區塊鏈分叉的可能性極其小,即使發生也可以在幾分鍾內得到解決。
成為代表:
成為一名代表,你必須在網路上注冊你的公鑰,然後分配到一個32位的特有標識符。然後該標識符會被每筆交易數據的「頭部」引用。
授權選票:
每個錢包有一個參數設置窗口,在該窗口裡用戶可以選擇一個或更多的代表,並將其分級。一經設定,用戶所做的每筆交易將把選票從「輸入代表」轉移至「輸出代表」。一般情況下,用戶不會創建特別以投票為目的的交易,因為那將耗費他們一筆交易費。但在緊急情況下,某些用戶可能覺得通過支付費用這一更積極的方式來改變他們的投票是值得的。
保持代表誠實:
每個錢包將顯示一個狀態指示器,讓用戶知道他們的代表表現如何。如果他們錯過了太多的區塊,那麼系統將會推薦用戶去換一個新的代表。如果任何代表被發現簽發了一個無效的區塊,那麼所有標准錢包將在每個錢包進行更多交易前要求選出一個新代表。
抵抗攻擊:
在抵抗攻擊上,因為前100名代表所獲得的權力權是相同的,每名代表都有一份相等的投票權。因此,無法通過獲得超過1%的選票而將權力集中到一個單一代表上。因為只有100名代表,可以想像一個攻擊者對每名輪到生產區塊的代表依次進行拒絕服務攻擊。幸運的是,由於事實上每名代表的標識是其公鑰而非IP地址,這種特定攻擊的威脅很容易被減輕。這將使確定DDOS攻擊目標更為困難。而代表之間的潛在直接連接,將使妨礙他們生產區塊變得更為困難。
優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。
缺點:整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的。
3.PBFT :Practical Byzantine Fault Tolerance,實用拜占庭容錯
介紹:在保證活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容錯性。
在分布式計算上,不同的計算機透過訊息交換,嘗試達成共識;但有時候,系統上協調計算機(Coordinator / Commander)或成員計算機 (Member /Lieutanent)可能因系統錯誤並交換錯的訊息,導致影響最終的系統一致性。
拜占庭將軍問題就根據錯誤計算機的數量,尋找可能的解決辦法,這無法找到一個絕對的答案,但只可以用來驗證一個機制的有效程度。
而拜占庭問題的可能解決方法為:
在 N ≥ 3F + 1 的情況下一致性是可能解決。其中,N為計算機總數,F為有問題計算機總數。信息在計算機間互相交換後,各計算機列出所有得到的信息,以大多數的結果作為解決辦法。
1)系統運轉可以脫離幣的存在,pbft演算法共識各節點由業務的參與方或者監管方組成,安全性與穩定性由業務相關方保證。
2)共識的時延大約在2~5秒鍾,基本達到商用實時處理的要求。
3)共識效率高,可滿足高頻交易量的需求。
缺點:
1)當有1/3或以上記賬人停止工作後,系統將無法提供服務;
2)當有1/3或以上記賬人聯合作惡,且其它所有的記賬人被恰好分割為兩個網路孤島時,惡意記賬人可以使系統出現分叉,但是會留下密碼學證據
下面說兩個國產的吧~
4.dBFT: delegated BFT 授權拜占庭容錯演算法
介紹:小蟻採用的dBFT機制,是由權益來選出記賬人,然後記賬人之間通過拜占庭容錯演算法來達成共識。
此演算法在PBFT基礎上進行了以下改進:
將C/S架構的請求響應模式,改進為適合P2P網路的對等節點模式;
將靜態的共識參與節點改進為可動態進入、退出的動態共識參與節點;
為共識參與節點的產生設計了一套基於持有權益比例的投票機制,通過投票決定共識參與節點(記賬節點);
在區塊鏈中引入數字證書,解決了投票中對記賬節點真實身份的認證問題。
優點:
1)專業化的記賬人;
2)可以容忍任何類型的錯誤;
3)記賬由多人協同完成,每一個區塊都有最終性,不會分叉;
4)演算法的可靠性有嚴格的數學證明;
缺點:
1)當有1/3或以上記賬人停止工作後,系統將無法提供服務;
2)當有1/3或以上記賬人聯合作惡,且其它所有的記賬人被恰好分割為兩個網路孤島時,惡意記賬人可以使系統出現分叉,但是會留下密碼學證據;
以上總結來說,dBFT機制最核心的一點,就是最大限度地確保系統的最終性,使區塊鏈能夠適用於真正的金融應用場景。
5.POOL驗證池
基於傳統的分布式一致性技術,加上數據驗證機制。
優點:不需要代幣也可以工作,在成熟的分布式一致性演算法(Pasox、Raft)基礎上,實現秒級共識驗證。
缺點:去中心化程度不如bictoin;更適合多方參與的多中心商業模式。

❸ 區塊鏈的共識機制

1. 網路上的交易信息如何確認並達成共識? 

雖然經常提到共識機制,但是對於共識機制的含義和理解卻並清楚。因此需要就共識機制的相關概念原理和實現方法有所理解。 

區塊鏈的交易信息是通過網路廣播傳輸到網路中各個節點的,在整個網路節點中如何對廣播的信息進行確認並達成共識 最終寫入區塊呢?  如果沒有相應的可靠安全的實現機制,那麼就難以實現其基本的功能,因此共識機制是整個網路運行下去的一個關鍵。

共識機制解決了區塊鏈如何在分布式場景下達成一致性的問題。區塊鏈能在眾多節點達到一種較為平衡的狀態也是因為共識機制。那麼共識機制是如何在在去中心化的思想上解決了節點間互相信任的問題呢? 

當分布式的思想被提出來時,人們就開始根據FLP定理和CAP定理設計共識演算法。 規范的說,理想的分布式系統的一致性應該滿足以下三點:

1.可終止性(Termination):一致性的結果可在有限時間內完成。

2.共識性(Consensus):不同節點最終完成決策的結果應該相同。

3.合法性(Validity):決策的結果必須是其他進程提出的提案。

但是在實際的計算機集群中,可能會存在以下問題:

1.節點處理事務的能力不同,網路節點數據的吞吐量有差異

2.節點間通訊的信道可能不安全

3.可能會有作惡節點出現

4.當非同步處理能力達到高度一致時,系統的可擴展性就會變差(容不下新節點的加入)。

科學家認為,在分布式場景下達成 完全一致性 是不可能的。但是工程學家可以犧牲一部分代價來換取分布式場景的一致性,上述的兩大定理也是這種思想,所以基於區塊鏈設計的各種公式機制都可以看作犧牲那一部分代價來換取多適合的一致性,我的想法是可以在這種思想上進行一個靈活的變換,即在適當的時間空間犧牲一部分代價換取適應於當時場景的一致性,可以實現靈活的區塊鏈系統,即可插拔式的區塊鏈系統。今天就介紹一下我對各種共識機制的看法和分析,分布式系統中有無作惡節點分為拜占庭容錯和非拜占庭容錯機制。

FLP定理即FLP不可能性,它證明了在分布式情景下,無論任何演算法,即使是只有一個進程掛掉,對於其他非失敗進程,都存在著無法達成一致的可能。

FLP基於如下幾點假設:

僅可修改一次 :  每個進程初始時都記錄一個值(0或1)。進程可以接收消息、改動該值、並發送消息,當進程進入decide state時,其值就不再變化。所有非失敗進程都進入decided state時,協議成功結束。這里放寬到有一部分進程進入decided state就算協議成功。

非同步通信 :  與同步通信的最大區別是沒有時鍾、不能時間同步、不能使用超時、不能探測失敗、消息可任意延遲、消息可亂序。

通信健壯: 只要進程非失敗,消息雖會被無限延遲,但最終會被送達;並且消息僅會被送達一次(無重復)。

Fail-Stop 模型: 進程失敗如同宕機,不再處理任何消息。

失敗進程數量 : 最多一個進程失敗。

CAP是分布式系統、特別是分布式存儲領域中被討論最多的理論。CAP由Eric Brewer在2000年PODC會議上提出,是Eric Brewer在Inktomi期間研發搜索引擎、分布式web緩存時得出的關於數據一致性(consistency)、服務可用性(availability)、分區容錯性(partition-tolerance)的猜想:

數據一致性 (consistency):如果系統對一個寫操作返回成功,那麼之後的讀請求都必須讀到這個新數據;如果返回失敗,那麼所有讀操作都不能讀到這個數據,對調用者而言數據具有強一致性(strong consistency) (又叫原子性 atomic、線性一致性 linearizable consistency)[5]

服務可用性 (availability):所有讀寫請求在一定時間內得到響應,可終止、不會一直等待

分區容錯性 (partition-tolerance):在網路分區的情況下,被分隔的節點仍能正常對外服務

在某時刻如果滿足AP,分隔的節點同時對外服務但不能相互通信,將導致狀態不一致,即不能滿足C;如果滿足CP,網路分區的情況下為達成C,請求只能一直等待,即不滿足A;如果要滿足CA,在一定時間內要達到節點狀態一致,要求不能出現網路分區,則不能滿足P。

C、A、P三者最多隻能滿足其中兩個,和FLP定理一樣,CAP定理也指示了一個不可達的結果(impossibility result)。

❹ 深入了解區塊鏈的共識機制及演算法原理

所謂「共識機制」,是通過特殊節點的投票,在很短的時間內完成對交易的驗證和確認;對一筆交易,如果利益不相乾的若干個節點能夠達成共識,我們就可以認為全網對此也能夠達成共識。再通俗一點來講,如果中國一名微博大V、美國一名虛擬幣玩家、一名非洲留學生和一名歐洲旅行者互不相識,但他們都一致認為你是個好人,那麼基本上就可以斷定你這人還不壞。

要想整個區塊鏈網路節點維持一份相同的數據,同時保證每個參與者的公平性,整個體系的所有參與者必須要有統一的協議,也就是我們這里要將的共識演算法。比特幣所有的節點都遵循統一的協議規范。協議規范(共識演算法)由相關的共識規則組成,這些規則可以分為兩個大的核心:工作量證明與最長鏈機制。所有規則(共識)的最終體現就是比特幣的最長鏈。共識演算法的目的就是保證比特幣不停地在最長鏈條上運轉,從而保證整個記賬系統的一致性和可靠性。

區塊鏈中的用戶進行交易時不需要考慮對方的信用、不需要信任對方,也無需一個可信的中介機構或中央機構,只需要依據區塊鏈協議即可實現交易。這種不需要可信第三方中介就可以順利交易的前提是區塊鏈的共識機制,即在互不了解、信任的市場環境中,參與交易的各節點出於對自身利益考慮,沒有任何違規作弊的動機、行為,因此各節點會主動自覺遵守預先設定的規則,來判斷每一筆交易的真實性和可靠性,並將檢驗通過的記錄寫入到區塊鏈中。各節點的利益各不相同,邏輯上將它們沒有合謀欺騙作弊的動機產生,而當網路中有的節點擁有公共信譽時,這一點尤為明顯。區塊鏈技術運用基於數學原理的共識演算法,在節點之間建立「信任」網路,利用技術手段從而實現一種創新式的信用網路。

目前區款連行業內主流的共識演算法機制包含:工作量證明機制、權益證明機制、股份授權證明機制和Pool驗證池這四大類。

工作量證明機制即對於工作量的證明,是生成要加入到區塊鏈中的一筆新的交易信息(即新區塊)時必須滿足的要求。在基於工作量證明機制構建的區塊鏈網路中,節點通過計算隨機哈希散列的數值解爭奪記賬權,求得正確的數值解以生成區塊的能力是節點算力的具體表現。工作量證明機制具有完全去中心化的優點,在以工作量證明機制為共識的區塊鏈中,節點可以自由進出。大家所熟知的比特幣網路就應用工作量證明機制來生產新的貨幣。然而,由於工作量證明機制在比特幣網路中的應用已經吸引了全球計算機大部分的算力,其他想嘗試使用該機制的區塊鏈應用很難獲得同樣規模的算力來維持自身的安全。同時,基於工作量證明機制的挖礦行為還造成了大量的資源浪費,達成共識所需要的周期也較長,因此該機制並不適合商業應用。

2012年,化名Sunny King的網友推出了Peercoin,該加密電子貨幣採用工作量證明機制發行新幣,採用權益證明機制維護網路安全,這是權益證明機制在加密電子貨幣中的首次應用。與要求證明人執行一定量的計算工作不同,權益證明要求證明人提供一定數量加密貨幣的所有權即可。權益證明機制的運作方式是,當創造一個新區塊時,礦工需要創建一個「幣權」交易,交易會按照預先設定的比例把一些幣發送給礦工本身。權益證明機制根據每個節點擁有代幣的比例和時間,依據演算法等比例地降低節點的挖礦難度,從而加快了尋找隨機數的速度。這種共識機制可以縮短達成共識所需的時間,但本質上仍然需要網路中的節點進行挖礦運算。因此,PoS機制並沒有從根本上解決PoW機制難以應用於商業領域的問題。

股份授權證明機制是一種新的保障網路安全的共識機制。它在嘗試解決傳統的PoW機制和PoS機制問題的同時,還能通過實施科技式的民主抵消中心化所帶來的負面效應。

股份授權證明機制與董事會投票類似,該機制擁有一個內置的實時股權人投票系統,就像系統隨時都在召開一個永不散場的股東大會,所有股東都在這里投票決定公司決策。基於DPoS機制建立的區塊鏈的去中心化依賴於一定數量的代表,而非全體用戶。在這樣的區塊鏈中,全體節點投票選舉出一定數量的節點代表,由他們來代理全體節點確認區塊、維持系統有序運行。同時,區塊鏈中的全體節點具有隨時罷免和任命代表的權力。如果必要,全體節點可以通過投票讓現任節點代表失去代表資格,重新選舉新的代表,實現實時的民主。

股份授權證明機制可以大大縮小參與驗證和記賬節點的數量,從而達到秒級的共識驗證。然而,該共識機制仍然不能完美解決區塊鏈在商業中的應用問題,因為該共識機制無法擺脫對於代幣的依賴,而在很多商業應用中並不需要代幣的存在。

Pool驗證池基於傳統的分布式一致性技術建立,並輔之以數據驗證機制,是目前區塊鏈中廣泛使用的一種共識機制。

Pool驗證池不需要依賴代幣就可以工作,在成熟的分布式一致性演算法(Pasox、Raft)基礎之上,可以實現秒級共識驗證,更適合有多方參與的多中心商業模式。不過,Pool驗證池也存在一些不足,例如該共識機制能夠實現的分布式程度不如PoW機制等

這里主要講解區塊鏈工作量證明機制的一些演算法原理以及比特幣網路是如何證明自己的工作量的,希望大家能夠對共識演算法有一個基本的認識。

工作量證明系統的主要特徵是客戶端要做一定難度的工作來得到一個結果,驗證方則很容易通過結果來檢查客戶端是不是做了相應的工作。這種方案的一個核心特徵是不對稱性:工作對於請求方是適中中的,對於驗證方是易於驗證的。它與驗證碼不同,驗證碼是易於被人類解決而不是易於被計算機解決。

下圖所示的為工作量證明流程。

舉個例子,給個一個基本的字元創「hello,world!」,我們給出的工作量要求是,可以在這個字元創後面添加一個叫做nonce(隨機數)的整數值,對變更後(添加nonce)的字元創進行SHA-256運算,如果得到的結果(一十六進制的形式表示)以「0000」開頭的,則驗證通過。為了達到這個工作量證明的目標,需要不停地遞增nonce值,對得到的字元創進行SHA-256哈希運算。按照這個規則,需要經過4251次運算,才能找到前導為4個0的哈希散列。

通過這個示例我們對工作量證明機制有了一個初步的理解。有人或許認為如果工作量證明只是這樣一個過程,那是不是只要記住nonce為4521使計算能通過驗證就行了,當然不是了,這只是一個例子。

下面我們將輸入簡單的變更為」Hello,World!+整數值」,整數值取1~1000,也就是說將輸入變成一個1~1000的數組:Hello,World!1;Hello,World!2;...;Hello,World!1000。然後對數組中的每一個輸入依次進行上面的工作量證明—找到前導為4個0的哈希散列。

由於哈希值偽隨機的特性,根據概率論的相關知識容易計算出,預計要進行2的16次方次數的嘗試,才能得到前導為4個0的哈希散列。而統計一下剛剛進行的1000次計算的實際結果會發現,進行計算的平均次數為66958次,十分接近2的16次方(65536)。在這個例子中,數學期望的計算次數實際就是要求的「工作量」,重復進行多次的工作量證明會是一個符合統計學規律的概率事件。

統計輸入的字元創與得到對應目標結果實際使用的計算次數如下:

對於比特幣網路中的任何節點,如果想生成一個新的區塊加入到區塊鏈中,則必須解決出比特幣網路出的這道謎題。這道題的關鍵要素是工作量證明函數、區塊及難度值。工作量證明函數是這道題的計算方法,區塊是這道題的輸入數據,難度值決定了解這道題的所需要的計算量。

比特幣網路中使用的工作量證明函數正是上文提及的SHA-256。區塊其實就是在工作量證明環節產生的。曠工通過不停地構造區塊數據,檢驗每次計算出的結果是否滿足要求的工作量,從而判斷該區塊是不是符合網路難度。區塊頭即比特幣工作量證明函數的輸入數據。

難度值是礦工們挖掘的重要參考指標,它決定了曠工需要經過多少次哈希運算才能產生一個合法的區塊。比特幣網路大約每10分鍾生成一個區塊,如果在不同的全網算力條件下,新區塊的產生基本都保持這個速度,難度值必須根據全網算力的變化進行調整。總的原則即為無論挖礦能力如何,使得網路始終保持10分鍾產生一個新區塊。

難度值的調整是在每個完整節點中獨立自動發生的。每隔2016個區塊,所有節點都會按照統一的格式自動調整難度值,這個公式是由最新產生的2016個區塊的花費時長與期望時長(按每10分鍾產生一個取款,則期望時長為20160分鍾)比較得出來的,根據實際時長一期望時長的比值進行調整。也就是說,如果區塊產生的速度比10分鍾快,則增加難度值;反正,則降低難度值。用公式來表達如下:

新難度值=舊難度值*(20160分鍾/過去2016個區塊花費時長)。

工作量證明需要有一個目標值。比特幣工作量證明的目標值(Target)的計算公式如下:

目標值=最大目標值/難度值,其中最大目標值為一個恆定值

目標值的大小與難度值成反比,比特幣工作量證明的達成就是礦中計算出來的區塊哈希值必須小於目標值。

我們也可以將比特幣工作量的過程簡單的理解成,通過不停變更區塊頭(即嘗試不同nonce值)並將其作為輸入,進行SHA-256哈希運算,找出一個有特定格式哈希值的過程(即要求有一定數量的前導0),而要求的前導0個數越多,難度越大。

可以把比特幣將這道工作量證明謎題的步驟大致歸納如下:

該過程可以用下圖表示:

比特幣的工作量證明,就是我們俗稱「挖礦」所做的主要工作。理解工作量證明機制,將為我們進一步理解比特幣區塊鏈的共識機制奠定基礎。

❺ 區塊鏈的共識機制

所謂「共識機制」,是通過特殊節點的投票,在很短的時間內完成對交易的驗證和確認;對一筆交易,如果利益不相乾的若干個節點能夠達成共識,我們就可以認為全網對此也能夠達成共識。北京木奇移動技術有限公司,專業的區塊鏈外包開發公司,歡迎洽談合作。下面我們將一下區塊鏈的幾種共識機制,希望對大家了解區塊鏈基礎技術有幫助。

因為區塊鏈技術的發展, 大家對共識機制這個詞也不再陌生,隨著技術發展,各種創新的共識機制也在發展。

POW工作量證明

比特幣就是使用PoW工作量證明機制,到後來的以太坊都是PoW的共識機制。Pow相當於算出很難的數學難題,就是計算出新區塊的hash值,而且計算的難度會每一段時間就會調整。PoW雖然是大家比較認可的共識機制,計算會消耗大量的能源,還有可能會污染環境。

POS權益證明

通過持有Token的數量和時長來決定獲得記賬權的機率。相比POW,POS避免了挖礦造成大量的資源浪費,縮短了各個節點之間達成共識的時間,網路環境好的話可實現毫秒級,對節點性能要求低。

但POS的缺點同樣明顯,持有Token多的節點更有機會獲得記賬權,這將導致「馬太效應」,富者越富,破壞了區塊鏈的去中心化。

DPOS權益證明

DPOS委託權益證明與POS原理相同,其主要區別在於,DPOS的Token持有者可以投票選舉代理人作為超級節點,負責在網路上生產區塊並維護共識規則。如果這些節點未能履行職責,將投票選出新的節點。同樣的弊端也是傾向於中心化。

POA權威證明

POA節點之間無需進行通信即可達成共識,因此效率極高。並且它也能很好地對抗算力攻擊,安全性較高。但是POA需要一個集中的權威節點來驗證身份,這就意味著它會損害區塊鏈的去中心化,這也是在去中心化和提高效率之間的妥協。

❻ 區塊鏈的共識機制

一、區塊鏈共識機制的目標

區塊鏈是什麼?簡單而言,區塊鏈是一種去中心化的資料庫,或可以叫作分布式賬本(distributed ledger)。傳統上所有的資料庫都是中心化的,例如一間銀行的賬本就儲存在銀行的中心伺服器里。中心化資料庫的弊端是數據的安全及正確性全系於資料庫運營方(即銀行),因為任何能夠訪問中心化資料庫的人(如銀行職員或黑客)都可以破壞或修改其中的數據。


而區塊鏈技術則容許資料庫存放在全球成千上萬的電腦上,每個人的賬本通過點對點網路進行同步,網路中任何用戶一旦增加一筆交易,交易信息將通過網路通知其他用戶驗證,記錄到各自的賬本中。區塊鏈之所以得其名是因為它是由一個個包含交易信息的區塊(block)從後向前有序鏈接起來的數據結構。


很多人對區塊鏈的疑問是,如果每一個用戶都擁有一個獨立的賬本,那麼是否意味著可以在自己的賬本上添加任意的交易信息,而成千上萬個賬本又如何保證記賬的一致性? 解決記賬一致性問題正是區塊鏈共識機制的目標 。區塊鏈共識機制旨在保證分布式系統里所有節點中的數據完全相同並且能夠對某個提案(proposal)(例如是一項交易紀錄)達成一致。然而分布式系統由於引入了多個節點,所以系統中會出現各種非常復雜的情況;隨著節點數量的增加,節點失效或故障、節點之間的網路通信受到干擾甚至阻斷等就變成了常見的問題,解決分布式系統中的各種邊界條件和意外情況也增加了解決分布式一致性問題的難度。


區塊鏈又可分為三種:


公有鏈:全世界任何人都可以隨時進入系統中讀取數據、發送可確認交易、競爭記賬的區塊鏈。公有鏈通常被認為是「完全去中心化「的,因為沒有任何人或機構可以控制或篡改其中數據的讀寫。公有鏈一般會通過代幣機制鼓勵參與者競爭記賬,來確保數據的安全性。


聯盟鏈:聯盟鏈是指有若干個機構共同參與管理的區塊鏈。每個機構都運行著一個或多個節點,其中的數據只允許系統內不同的機構進行讀寫和發送交易,並且共同來記錄交易數據。這類區塊鏈被認為是「部分去中心化」。


私有鏈:指其寫入許可權是由某個組織和機構控制的區塊鏈。參與節點的資格會被嚴格的限制,由於參與的節點是有限和可控的,因此私有鏈往往可以有極快的交易速度、更好的隱私保護、更低的交易成本、不容易被惡意攻擊、並且能夠做到身份認證等金融行業必須的要求。相比中心化資料庫,私有鏈能夠防止機構內單節點故意隱瞞或篡改數據。即使發生錯誤,也能夠迅速發現來源,因此許多大型金融機構在目前更加傾向於使用私有鏈技術。

二、區塊鏈共識機制的分類

解決分布式一致性問題的難度催生了數種共識機制,它們各有其優缺點,亦適用於不同的環境及問題。被眾人常識的共識機制有:


l PoW(Proof of Work)工作量證明機制

l PoS(Proof of Stake)股權/權益證明機制

l DPoS(Delegated Proof of Stake)股份授權證明機制

l PBFT(Practical Byzantine Fault Tolerance)實用拜占庭容錯演算法

l DBFT(Delegated Byzantine Fault Tolerance)授權拜占庭容錯演算法

l SCP (Stellar Consensus Protocol ) 恆星共識協議

l RPCA(Ripple Protocol Consensus Algorithm)Ripple共識演算法

l Pool驗證池共識機制


(一)PoW(Proof of Work)工作量證明機制


1. 基本介紹


在該機制中,網路上的每一個節點都在使用SHA256哈希函數(hash function) 運算一個不斷變化的區塊頭的哈希值 (hash sum)。 共識要求算出的值必須等於或小於某個給定的值。 在分布式網路中,所有的參與者都需要使用不同的隨機數來持續計算該哈希值,直至達到目標為止。當一個節點的算出確切的值,其他所有的節點必須相互確認該值的正確性。之後新區塊中的交易將被驗證以防欺詐。


在比特幣中,以上運算哈希值的節點被稱作「礦工」,而PoW的過程被稱為「挖礦」。挖礦是一個耗時的過程,所以也提出了相應的激勵機制(例如向礦工授予一小部分比特幣)。PoW的優點是完全的去中心化,其缺點是消耗大量算力造成了的資源浪費,達成共識的周期也比較長,共識效率低下,因此其不是很適合商業使用。



2. 加密貨幣的應用實例


比特幣(Bitcoin) 及萊特幣(Litecoin)。以太坊(Ethereum) 的前三個階段(Frontier前沿、Homestead家園、Metropolis大都會)皆採用PoW機制,其第四個階段 (Serenity寧靜) 將採用權益證明機制。PoW適用於公有鏈。


PoW機制雖然已經成功證明了其長期穩定和相對公平,但在現有框架下,採用PoW的「挖礦」形式,將消耗大量的能源。其消耗的能源只是不停的去做SHA256的運算來保證工作量公平,並沒有其他的存在意義。而目前BTC所能達到的交易效率為約5TPS(5筆/秒),以太坊目前受到單區塊GAS總額的上限,所能達到的交易頻率大約是25TPS,與平均千次每秒、峰值能達到萬次每秒處理效率的VISA和MASTERCARD相差甚遠。


3. 簡圖理解模式



(ps:其中A、B、C、D計算哈希值的過程即為「挖礦」,為了犒勞時間成本的付出,機制會以一定數量的比特幣作為激勵。)


(Ps:PoS模式下,你的「挖礦」收益正比於你的幣齡(幣的數量*天數),而與電腦的計算性能無關。我們可以認為任何具有概率性事件的累計都是工作量證明,如淘金。假設礦石含金量為p% 質量, 當你得到一定量黃金時,我們可以認為你一定挖掘了1/p 質量的礦石。而且得到的黃金數量越多,這個證明越可靠。)


(二)PoS(Proof of Stake)股權/權益證明機制


1.基本介紹


PoS要求人們證明貨幣數量的所有權,其相信擁有貨幣數量多的人攻擊網路的可能性低。基於賬戶余額的選擇是非常不公平的,因為單一最富有的人勢必在網路中佔主導地位,所以提出了許多解決方案。


在股權證明機制中,每當創建一個區塊時,礦工需要創建一個稱為「幣權」的交易,這個交易會按照一定比例預先將一些幣發給礦工。然後股權證明機制根據每個節點持有代幣的比例和時間(幣齡), 依據演算法等比例地降低節點的挖礦難度,以加快節點尋找隨機數的速度,縮短達成共識所需的時間。


與PoW相比,PoS可以節省更多的能源,更有效率。但是由於挖礦成本接近於0,因此可能會遭受攻擊。且PoS在本質上仍然需要網路中的節點進行挖礦運算,所以它同樣難以應用於商業領域。



2.數字貨幣的應用實例


PoS機制下較為成熟的數字貨幣是點點幣(Peercoin)和未來幣(NXT),相比於PoW,PoS機制節省了能源,引入了" 幣天 "這個概念來參與隨機運算。PoS機制能夠讓更多的持幣人參與到記賬這個工作中去,而不需要額外購買設備(礦機、顯卡等)。每個單位代幣的運算能力與其持有的時間長成正相關,即持有人持有的代幣數量越多、時間越長,其所能簽署、生產下一個區塊的概率越大。一旦其簽署了下一個區塊,持幣人持有的幣天即清零,重新進入新的循環。


PoS適用於公有鏈。


3.區塊簽署人的產生方式


在PoS機制下,因為區塊的簽署人由隨機產生,則一些持幣人會長期、大額持有代幣以獲得更大概率地產生區塊,盡可能多的去清零他的"幣天"。因此整個網路中的流通代幣會減少,從而不利於代幣在鏈上的流通,價格也更容易受到波動。由於可能會存在少量大戶持有整個網路中大多數代幣的情況,整個網路有可能會隨著運行時間的增長而越來越趨向於中心化。相對於PoW而言,PoS機制下作惡的成本很低,因此對於分叉或是雙重支付的攻擊,需要更多的機制來保證共識。穩定情況下,每秒大約能產生12筆交易,但因為網路延遲及共識問題,需要約60秒才能完整廣播共識區塊。長期來看,生成區塊(即清零"幣天")的速度遠低於網路傳播和廣播的速度,因此在PoS機制下需要對生成區塊進行"限速",來保證主網的穩定運行。


4.簡圖理解模式




(PS:擁有越多「股份」權益的人越容易獲取賬權。是指獲得多少貨幣,取決於你挖礦貢獻的工作量,電腦性能越好,分給你的礦就會越多。)


(在純POS體系中,如NXT,沒有挖礦過程,初始的股權分配已經固定,之後只是股權在交易者之中流轉,非常類似於現實世界的股票。)


(三)DPoS(Delegated Proof of Stake)股份授權證明機制


1.基本介紹


由於PoS的種種弊端,由此比特股首創的權益代表證明機制 DPoS(Delegated Proof of Stake)應運而生。DPoS 機制中的核心的要素是選舉,每個系統原生代幣的持有者在區塊鏈裡面都可以參與選舉,所持有的代幣余額即為投票權重。通過投票,股東可以選舉出理事會成員,也可以就關系平台發展方向的議題表明態度,這一切構成了社區自治的基礎。股東除了自己投票參與選舉外,還可以通過將自己的選舉票數授權給自己信任的其它賬戶來代表自己投票。


具體來說, DPoS由比特股(Bitshares)項目組發明。股權擁有著選舉他們的代表來進行區塊的生成和驗證。DPoS類似於現代企業董事會制度,比特股系統將代幣持有者稱為股東,由股東投票選出101名代表, 然後由這些代表負責生成和驗證區塊。 持幣者若想稱為一名代表,需先用自己的公鑰去區塊鏈注冊,獲得一個長度為32位的特有身份標識符,股東可以對這個標識符以交易的形式進行投票,得票數前101位被選為代表。

代表們輪流產生區塊,收益(交易手續費)平分。DPoS的優點在於大幅減少了參與區塊驗證和記賬的節點數量,從而縮短了共識驗證所需要的時間,大幅提高了交易效率。從某種角度來說,DPoS可以理解為多中心系統,兼具去中心化和中心化優勢。優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。缺點:投票積極性不高,絕大部分代幣持有者未參與投票;另整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的。


DPoS機制要求在產生下一個區塊之前,必須驗證上一個區塊已經被受信任節點所簽署。相比於PoS的" 全民挖礦 ",DPoS則是利用類似" 代表大會 "的制度來直接選取可信任節點,由這些可信任節點(即見證人)來代替其他持幣人行使權力,見證人節點要求長期在線,從而解決了因為PoS簽署區塊人不是經常在線而可能導致的產塊延誤等一系列問題。 DPoS機制通常能達到萬次每秒的交易速度,在網路延遲低的情況下可以達到十萬秒級別,非常適合企業級的應用。 因為公信寶數據交易所對於數據交易頻率要求高,更要求長期穩定性,因此DPoS是非常不錯的選擇。



2. 股份授權證明機制下的機構與系統


理事會是區塊鏈網路的權力機構,理事會的人選由系統股東(即持幣人)選舉產生,理事會成員有權發起議案和對議案進行投票表決。


理事會的重要職責之一是根據需要調整系統的可變參數,這些參數包括:


l 費用相關:各種交易類型的費率。

l 授權相關:對接入網路的第三方平台收費及補貼相關參數。

l 區塊生產相關:區塊生產間隔時間,區塊獎勵。

l 身份審核相關:審核驗證異常機構賬戶的信息情況。

l 同時,關繫到理事會利益的事項將不通過理事會設定。


在Finchain系統中,見證人負責收集網路運行時廣播出來的各種交易並打包到區塊中,其工作類似於比特幣網路中的礦工,在採用 PoW(工作量證明)的比特幣網路中,由一種獲獎概率取決於哈希算力的抽彩票方式來決定哪個礦工節點產生下一個區塊。而在採用 DPoS 機制的金融鏈網路中,通過理事會投票決定見證人的數量,由持幣人投票來決定見證人人選。入選的活躍見證人按順序打包交易並生產區塊,在每一輪區塊生產之後,見證人會在隨機洗牌決定新的順序後進入下一輪的區塊生產。


3. DPoS的應用實例


比特股(bitshares) 採用DPoS。DPoS主要適用於聯盟鏈。


4.簡圖理解模式





(四)PBFT(Practical Byzantine Fault Tolerance)實用拜占庭容錯演算法


1. 基本介紹


PBFT是一種基於嚴格數學證明的演算法,需要經過三個階段的信息交互和局部共識來達成最終的一致輸出。三個階段分別為預備 (pre-prepare)、准備 (prepare)、落實 (commit)。PBFT演算法證明系統中只要有2/3比例以上的正常節點,就能保證最終一定可以輸出一致的共識結果。換言之,在使用PBFT演算法的系統中,至多可以容忍不超過系統全部節點數量1/3的失效節點 (包括有意誤導、故意破壞系統、超時、重復發送消息、偽造簽名等的節點,又稱為」拜占庭」節點)。



2. PBFT的應用實例


著名聯盟鏈Hyperledger Fabric v0.6採用的是PBFT,v1.0又推出PBFT的改進版本SBFT。PBFT主要適用於私有鏈和聯盟鏈。


3. 簡圖理解模式




上圖顯示了一個簡化的PBFT的協議通信模式,其中C為客戶端,0 – 3表示服務節點,其中0為主節點,3為故障節點。整個協議的基本過程如下:


(1) 客戶端發送請求,激活主節點的服務操作;

(2) 當主節點接收請求後,啟動三階段的協議以向各從節點廣播請求;

(a) 序號分配階段,主節點給請求賦值一個序號n,廣播序號分配消息和客戶端的請求消息m,並將構造pre-prepare消息給各從節點;

(b) 交互階段,從節點接收pre-prepare消息,向其他服務節點廣播prepare消息;

(c) 序號確認階段,各節點對視圖內的請求和次序進行驗證後,廣播commit消息,執行收到的客戶端的請求並給客戶端響應。

(3) 客戶端等待來自不同節點的響應,若有m+1個響應相同,則該響應即為運算的結果;



(五)DBFT(Delegated Byzantine Fault Tolerance)授權拜占庭容錯演算法


1. 基本介紹


DBFT建基於PBFT的基礎上,在這個機制當中,存在兩種參與者,一種是專業記賬的「超級節點」,一種是系統當中不參與記賬的普通用戶。普通用戶基於持有權益的比例來投票選出超級節點,當需要通過一項共識(記賬)時,在這些超級節點中隨機推選出一名發言人擬定方案,然後由其他超級節點根據拜占庭容錯演算法(見上文),即少數服從多數的原則進行表態。如果超過2/3的超級節點表示同意發言人方案,則共識達成。這個提案就成為最終發布的區塊,並且該區塊是不可逆的,所有裡面的交易都是百分之百確認的。如果在一定時間內還未達成一致的提案,或者發現有非法交易的話,可以由其他超級節點重新發起提案,重復投票過程,直至達成共識。



2. DBFT的應用實例


國內加密貨幣及區塊鏈平台NEO是 DBFT演算法的研發者及採用者。


3. 簡圖理解模式




假設系統中只有四個由普通用戶投票選出的超級節點,當需要通過一項共識時,系統就會從代表中隨機選出一名發言人擬定方案。發言人會將擬好的方案交給每位代表,每位代表先判斷發言人的計算結果與它們自身紀錄的是否一致,再與其它代表商討驗證計算結果是否正確。如果2/3的代表一致表示發言人方案的計算結果是正確的,那麼方案就此通過。


如果只有不到2/3的代表達成共識,將隨機選出一名新的發言人,再重復上述流程。這個體系旨在保護系統不受無法行使職能的領袖影響。


上圖假設全體節點都是誠實的,達成100%共識,將對方案A(區塊)進行驗證。



鑒於發言人是隨機選出的一名代表,因此他可能會不誠實或出現故障。上圖假設發言人給3名代表中的2名發送了惡意信息(方案B),同時給1名代表發送了正確信息(方案A)。


在這種情況下該惡意信息(方案B)無法通過。中間與右邊的代表自身的計算結果與發言人發送的不一致,因此就不能驗證發言人擬定的方案,導致2人拒絕通過方案。左邊的代表因接收了正確信息,與自身的計算結果相符,因此能確認方案,繼而成功完成1次驗證。但本方案仍無法通過,因為不足2/3的代表達成共識。接著將隨機選出一名新發言人,重新開始共識流程。




上圖假設發言人是誠實的,但其中1名代表出現了異常;右邊的代表向其他代表發送了不正確的信息(B)。


在這種情況下發言人擬定的正確信息(A)依然可以獲得驗證,因為左邊與中間誠實的代表都可以驗證由誠實的發言人擬定的方案,達成2/3的共識。代表也可以判斷到底是發言人向右邊的節點說謊還是右邊的節點不誠實。


(六)SCP (Stellar Consensus Protocol ) 恆星共識協議


1. 基本介紹


SCP 是 Stellar (一種基於互聯網的去中心化全球支付協議) 研發及使用的共識演算法,其建基於聯邦拜占庭協議 (Federated Byzantine Agreement) 。傳統的非聯邦拜占庭協議(如上文的PBFT和DBFT)雖然確保可以通過分布式的方法達成共識,並達到拜占庭容錯 (至多可以容忍不超過系統全部節點數量1/3的失效節點),它是一個中心化的系統 — 網路中節點的數量和身份必須提前知曉且驗證過。而聯邦拜占庭協議的不同之處在於它能夠去中心化的同時,又可以做到拜占庭容錯。


[…]


(七)RPCA(Ripple Protocol Consensus Algorithm)Ripple共識演算法


1. 基本介紹


RPCA是Ripple(一種基於互聯網的開源支付協議,可以實現去中心化的貨幣兌換、支付與清算功能)研發及使用的共識演算法。在 Ripple 的網路中,交易由客戶端(應用)發起,經過追蹤節點(tracking node)或驗證節點(validating node)把交易廣播到整個網路中。追蹤節點的主要功能是分發交易信息以及響應客戶端的賬本請求。驗證節點除包含追蹤節點的所有功能外,還能夠通過共識協議,在賬本中增加新的賬本實例數據。


Ripple 的共識達成發生在驗證節點之間,每個驗證節點都預先配置了一份可信任節點名單,稱為 UNL(Unique Node List)。在名單上的節點可對交易達成進行投票。共識過程如下:


(1) 每個驗證節點會不斷收到從網路發送過來的交易,通過與本地賬本數據驗證後,不合法的交易直接丟棄,合法的交易將匯總成交易候選集(candidate set)。交易候選集裡面還包括之前共識過程無法確認而遺留下來的交易。

(2) 每個驗證節點把自己的交易候選集作為提案發送給其他驗證節點。

(3) 驗證節點在收到其他節點發來的提案後,如果不是來自UNL上的節點,則忽略該提案;如果是來自UNL上的節點,就會對比提案中的交易和本地的交易候選集,如果有相同的交易,該交易就獲得一票。在一定時間內,當交易獲得超過50%的票數時,則該交易進入下一輪。沒有超過50%的交易,將留待下一次共識過程去確認。

(4) 驗證節點把超過50%票數的交易作為提案發給其他節點,同時提高所需票數的閾值到60%,重復步驟(3)、步驟(4),直到閾值達到80%。

(5) 驗證節點把經過80%UNL節點確認的交易正式寫入本地的賬本數據中,稱為最後關閉賬本(last closed ledger),即賬本最後(最新)的狀態。


在Ripple的共識演算法中,參與投票節點的身份是事先知道的,因此,演算法的效率比PoW等匿名共識演算法要高效,交易的確認時間只需幾秒鍾。這點也決定了該共識演算法只適合於聯盟鏈或私有鏈。Ripple共識演算法的拜占庭容錯(BFT)能力為(n-1)/5,即可以容忍整個網路中20%的節點出現拜占庭錯誤而不影響正確的共識。



2. 簡圖理解模式


共識過程節點交互示意圖:



共識演算法流程:



(八)POOL驗證池共識機制


Pool驗證池共識機制是基於傳統的分布式一致性演算法(Paxos和Raft)的基礎上開發的機制。Paxos演算法是1990年提出的一種基於消息傳遞且具有高度容錯特性的一致性演算法。過去, Paxos一直是分布式協議的標准,但是Paxos難於理解,更難以實現。Raft則是在2013年發布的一個比Paxos簡單又能實現Paxos所解決問題的一致性演算法。Paxos和Raft達成共識的過程皆如同選舉一樣,參選者需要說服大多數選民(伺服器)投票給他,一旦選定後就跟隨其操作。Paxos和Raft的區別在於選舉的具體過程不同。而Pool驗證池共識機制即是在這兩種成熟的分布式一致性演算法的基礎上,輔之以數據驗證的機制。






❼ 三. 區塊鏈系統的核心之一-分布式共識機制

        拜占庭將軍問題(Byzantine Generals Problem),是由萊斯利·蘭波特在其同名論文中提出的分布式對等網路通信容錯問題。

        在分布式計算中,不同的計算機通過通訊交換信息達成共識而按照同一套協作策略行動。但有時候,系統中的成員計算機可能出錯而發送錯誤的信息,用於傳遞信息的通訊網路也可能導致信息損壞,使得網路中不同的成員關於全體協作的策略得出不同結論,從而破壞系統一致性。這個難題被稱為「拜占庭容錯」,或者「兩軍問題」。

        拜占庭假設是對現實世界的模型化。拜占庭將軍問題被認為是容錯性問題中最難的問題類型之一。拜占庭容錯協議要求能夠解決由於硬體錯誤、網路擁塞或斷開以及遭到惡意攻擊,其他計算機和網路可能出現不可預料的行為而帶來的各種問題。並且拜占庭容錯協議還要滿足所要解決的問題要求的規范。

        在拜占庭時代有一個牆高壁厚的城邦——拜占庭,高牆之內存放在世人無法想像多的財富。拜占庭被其他10個城邦所環繞,這10個城邦也很富饒,但和拜占庭相比就有天壤之別了。

        拜占庭的十個鄰居都覬覦它的財富,並希望侵略並佔領它。但是,拜占庭的防禦非常強大,任何單個城邦的入侵行動都會失敗,而入侵者的軍隊也會被殲滅,使得該城邦自身遭到其他互相覬覦對方的九個城邦的入侵和劫掠。

        拜占庭的防禦很強,十個城邦中要有一半以上同時進攻才能攻破它。也就是說,如果有六個或者以上的相鄰城邦一起進攻,他們就會成功並獲得拜占庭的財富。然而,如果其中有一個或者更多城邦背叛了其他城邦,答應一起入侵但在其他城邦進攻的時候又不幹了,也就導致只有五支或者更少的城邦的軍隊在同時進攻,那麼所有的進攻城邦的軍隊都會被殲滅,並隨後被其他的(包括背叛他們的那(幾)個)城邦所入侵和劫掠。

        這是一個由許多不互相信任的城邦構成的一個網路。城邦們必須一起努力以完成共同的使命。而且,各個城邦之間通訊和協調的唯一途徑是通過信使騎馬在城邦之間傳遞信息。城邦的決策者們無法聚集在一個地方開個會(所有的城邦的決策者都不互相信任自己的安全會在自己的城堡或者軍隊范圍之外能夠得到保障)。

        城邦的決策者可以在任意時間以任意頻率派出任意數量的信使到任意的對方。每條信息都包含如下的內容:「我城邦將在某一天的某個時間發動進攻,你城邦願意加入嗎?」。如果收信城邦同意了,該城邦就會在原信上附上一份簽名了的或蓋了圖章的(以就是驗證了的)回應然送回發信城邦。然後,再把新合並了的信息的拷貝一一發送給其他八個城邦,要求他們也如此這樣做。最後的目標是,通過在原始信息鏈上蓋上他們所有十個城邦的決策者的圖章,讓他們在時間上達成共識。最後的結果是,會有一個蓋有十個同意同一時間發動進攻的圖章信息包,和一些被拋棄了的包含部分但不是全部圖章的信息包。

        在這個過程中首先出現了第一個問題,就是如果每個城邦向其他九個城邦派出一名信使,那麼就是十個城邦每個派出了九名信使,也就是在任何一個時間又總計90次的傳輸,並且每個城市分別收到九個信息,可能每一封都寫著不同的進攻時間。

        在這個過程中還有第二個問題,就是部分城邦會答應超過一個的攻擊時間,故意背叛進攻發起人,所以他們將重新廣播超過一條(甚至許許多多條)的信息包,由此產生許多甚至無數的足以淹沒一切的雜音。

        有了以上兩個問題,整個網路系統可能迅速變質,並演變成不可信的信息和攻擊時間相互矛盾的糾結體。

         拜占庭假設是對現實網路世界的一種模型化。在現實網路世界中由於硬體錯誤、網路擁塞或斷開以及遭到惡意攻擊,網路可能出現許許多多不可預料的行為。拜占庭容錯協議必須處理這些失效,並且還要使這些協議滿足所要解決的問題所要求的規范。

        對於拜占庭將軍問題中本聰的區塊鏈給出了比較圓滿的解決方案。也就是比較圓滿的解決了上述的兩個問題。

        拜占庭將軍問題的第一個問題從本質上來講就是時間和空間的障礙導致信息的不準確和不及時。

        區塊鏈對於第一個問題的解決方案是利用分布式存儲技術和比特流技術(BT技術,一種新型的點對點傳輸技術,具有節點同時作為客戶端和伺服器端和沒有中心伺服器等特點),將整個網路系統內的所有交易信息匯總為一個統一的,分布式存儲的,近乎實時同步更新的電子總賬。統一的分布式共同賬本就解決了空間障礙問題;而近乎同步進行的,實時的,持續的對所有賬本備份的更新、對賬則解決了時間障礙問題。

        這個過程較具體一點的描述大概是將區塊鏈系統內所有的交易活動的記錄數據統一於一種標准化的總帳上;區塊鏈系統的每一個節點都會保存一份總帳的備份;所有總帳的備份都是在實時的,持續的更新、對賬、以及同步著。區塊鏈系統的每一個節點能在這本總帳里記上添加記錄;每一筆新添加的記錄都會實時的廣播到區塊鏈系統內;所以在每一個節點上的每一份總帳的備份都是幾乎同時更新的,並且所有的總帳的備份保持著同步。

        拜占庭將軍問題的第二個問題從本質上來講就是關於信息過量問題和信息干擾問題。信息過量和信息干擾問題導致決策延遲,甚至決策系統崩潰而無法決策。

        區塊鏈對於第二個問題的解決方案是區塊鏈系統的任何一個節點在發送每一筆新添加的記錄時需要附帶一條額外的信息。對區塊鏈系統的任何一個節點來說這條額外的信息的獲得都是有成本的,並且只能有一個節點可以獲得。這樣就解決了區塊鏈系統的任何一個節點新添加額外信息時的信息多且亂而無法達成一致的問題。在這里,區塊鏈系統的任何一個節點獲得那條附帶的額外的信息的過程就是著名的工作量證明機制。

        共識機制主要解決區塊鏈系統的數據如何記錄和如何保存的問題。工作量證明機制就是要求區塊鏈系統的節點通過做一定難度的工作得出一個結果的過程。

        區塊鏈系統中某節點生成了一筆新的交易記錄,並且該節點將這筆新的交易記錄向全網廣播。全網各個節點收到這個交易記錄並與其他所有準備打包進區塊的交易記錄共同組成交易記錄列表。在列表內先對所有交易進行兩兩的哈希計算;再對以獲得的哈希值進行哈希計算獲得Merkle樹和Merkle樹的根值;把Merkle樹的根值及其他相關欄位組裝成區塊頭。

        各個節點將區塊頭的80位元組數據加上一個不停的變更的區塊頭隨機數一起進行不停的哈希運算(實際上這是一個雙重哈希運算);不停的將哈希運算結果值與當前網路的目標值做對比,直到哈希運算結果值小於目標值,就獲得了符合要求的哈希值,工作量證明也就完成了。

         分布式的區塊鏈系統是一個動態變化的系統(硬體的運算速度的增長,節點參與網路的程度的變化)。系統的不斷變化必然帶來系統的算力的不斷變化。而算力的變化又會導致通過消耗算力(工作)來獲得符合要求的哈希值的速度的不同。最終的結果會是區塊鏈的增長速度會有巨大的不同。這是一個很大的問題。為了解決這個問題,區塊鏈系統自動根據算力的變化對工作難度進行調整。也就是採用移動平均目標的方法來確定,難度控制為每小時生成區塊的速度為某一個預定的平均數。

        在區塊鏈系統中一個符合要求的哈希值是由N個前導零構成,零的個數取決於網路的難度值。為了使區塊的形成時間控制在大約十分鍾左右,區塊鏈系統採用了固定工作難度的難度演算法。難度值每2016個區塊調整一次零的個數。

        新的難度值是根據前2015個區塊(理論上應該是2016個區塊,由於當初程序編寫時的失誤造成了用2015而不是2016)的出塊時間來計算。

        難度 = 目標值 * 前2015個區塊生成所用的時間 / 1209600 (兩周的秒鍾數)

        這樣通過規定的演算法,區塊鏈系統就保證所有節點計算出的難度值都一致,區塊的形成時間大約一致在十分鍾左右。

      (1)結果不可控制。其依賴機器進行哈希函數的運算來獲得結果;計算結果是一個隨機數;沒有人能直接控制計算的結果。

      (2)計算具有對稱性。就是結果的獲得和結果的驗收需要的工作量是不同的。計算出結果所需要的工作量遠遠大於驗收結果所需要的工作量。

      (3)計算的難度自動控制。為了使區塊的形成時間控制在大約十分鍾左右,區塊鏈系統自動控制了每一個符合要求的哈希獲得為大約在十分鍾左右。

         第一,方法簡單易行。

        第二,系統達成共識容易,節點間不需要太多的信息交換。

        第三,系統比較牢固可靠,任何破壞系統的企圖都需要投入大到得不償失的成本。

        第一,消耗大量的算力,也就是浪費能源和其他資源。

        第二,區塊的確認時間比較長,並且難以縮短。

        第三,新創立的區塊鏈非常容易受到算力攻擊。

        第四,容易產生區塊鏈分叉,穩定的區塊鏈需要多個確認,並且這種狀況可能不斷持續下去。

        第五,算力的逐漸集中導致與去中心化的系統設計基礎的沖突日益明顯。

        權益證明機制是一種工作量證明機制的替代方法,試圖解決工作量計算浪費的問題.目前其成功的應用是點點幣區塊鏈系統。

        權益證明不要求區塊鏈系統的節點完成一定數量的計算工作,而是要求區塊鏈系統的節點對某些數量的錢展示所有權。

        權益證明機制首先應用於點點幣區塊鏈系統中。

        點點幣區塊鏈系統的區塊生成時,節點需要構造一個「錢幣權益」交易,即把自己的一些錢幣和預先設定的獎勵發給自己。進行哈希計算時,哈希值的計算只同交易輸入、一些附加的固定數據以及當前時間(是一個表示自1970年1月1日距離當前時刻的秒數的正數)有關。然後,根據類似工作量證明的要求來檢查這個哈希值是否正確。

        點點幣區塊鏈系統的權益證明機制除了設定了哈希計算難度與交易輸入的「幣齡」成反比外,其與工作量證明機制非常類似。其中,幣齡的定義為交易輸入大小和它存在時間的乘積。權益證明機制中哈希值只和時間和固定的數據有關,因而沒有辦法通過多完成工作來快速獲取它。

       每個點點幣區塊鏈系統的交易的輸出都有一定的幾率來產生有效的正比於幣齡和交易貨幣數量的工作。

        第一,縮短了共識達成的時間。

        第二,不再需要大量消耗能源。

        第一,還是需要哈希計算。

        第二,所有的確認都只是一個概率上的表達,而不是一個確定性的事情,有可能受到其他攻擊影響。

        授權股份證明機制類似於權益證明機制,是比特股BitShares採用的區塊鏈公識演算法。授權股份證明機制是民主選舉和輪流執政相結合方式來確定區塊的產生。

        授權股份證明機制是先由節點選舉若干代理人,由代理人驗證和記賬。其他方面和權益證明機制相似。

        每個節點按其持股比例擁有相應的影響力,51%節點投票的結果將是不可逆且有約束力的。為達到及時而高效的方法達到51%批準的目標。每個節點可以將其投票權授予一名節點。獲票數最多的前100位節點按既定時間表輪流產生區塊。每名節點分配到一個時間段來生產區塊。

        所有的節點將收到等同於一個平均水平的區塊所含交易費的10%作為報酬。

         第一,大幅縮小參與驗證和記賬節點的數量,

         第二,可以快速實現共識驗證。

         主要缺點就是仍然無法擺脫對代幣的依賴。

        在分布式計算上,不同的計算機透過訊息交換,嘗試達成共識;但有時候,系統上協調計算或成員計算機可能因系統錯誤並交換錯的訊息,導致影響最終的系統一致性。

        拜占庭將軍問題就根據錯誤計算機的數量,尋找可能的解決辦法,這無法找到一個絕對的答案,但只可以用來驗證一個機制的有效程度。

        而拜占庭問題的可能解決方法為:

        在 N ≥ 3F + 1 的情況下一致性是可能解決。其中,N為計算機總數,F為有問題計算機總數。信息在計算機間互相交換後,各計算機列出所有得到的信息,以大多數的結果作為解決辦法。

         第一,系統運轉可以擺脫對代幣的依賴,共識各節點由業務的參與方或者監管方組成,安全性與穩定性由業務相關方保證。

         第二,共識的時延大約在2到5秒鍾。

         第三,共識效率高,可滿足高頻交易量的需求。

         第一,當有1/3或以上記賬人停止工作後,系統將無法提供服務;

         第二,當有1/3或以上記賬人聯合作惡,可能系統會出現會留下密碼學證據的分叉。

        小蟻改良了實用拜占庭容錯機制。該機制是由權益來選出記賬人,然後記賬人之間通過拜占庭容錯演算法來達成共識。

        此演算法在PBFT基礎上進行了以下改進:

        第一,將C/S架構的請求響應模式,改進為適合P2P網路的對等節點模式;

        第二,將靜態的共識參與節點改進為可動態進入、退出的動態共識參與節點;

        第三,為共識參與節點的產生設計了一套基於持有權益比例的投票機制,通過投票決定共識參與節點(記賬節點);

        第四,在區塊鏈中引入數字證書,解決了投票中對記賬節點真實身份的認證問題。

        第一,專業化的記賬人;

        第二,可以容忍任何類型的錯誤;

        第三,記賬由多人協同完成,每一個區塊都有最終性,不會分產生區塊鏈分叉;

        第四,演算法的可靠性有嚴格的數學證明來保證;

        第一,當有1/3或以上記賬人停止工作後,區塊鏈系統將無法提供服務;

        第二,當有1/3或以上記賬人聯合作惡,且其它所有的記賬人被恰好分割為兩個網路孤島時,惡意記賬人可以使區塊鏈系統出現分叉,但是會留下密碼學證據;

         瑞波共識機制是全體節點選取出特殊節點組成特殊節點列表,由特殊節點列表內的節點達成共識。

         初始特殊節點列表就像一個俱樂部,要接納一個新成員,必須由51%的該俱樂部會員投票通過。共識遵循這核心成員的51%權力,外部人員則沒有影響力。波共識機制將股東們與其投票權隔開,並因此比其他系統更中心化。

        瑞波共識機制參與共識形成的只有特殊節點,大大的減少了共識形成的時間。在實踐中,瑞波區塊鏈系統達成共識需要3-6秒鍾,遠遠快於比特幣區塊鏈系統的10分鍾。同時瑞波區塊鏈系統對並發交易的處理達到每秒數萬筆,而比特幣區塊鏈系統只有每秒7筆。

瑞波共識機制處理節點意見分歧的方式也是不同的。瑞波的信任節點對於新區塊的創造進行協商的時間是區塊鏈更新前。先協商,達成共識後再對區塊鏈進行更新。

由於瑞波共識機制的共識是由特殊節點達成的,普通節點並不需要維護一個完整的歷史賬本。各個節點可以根據自己的業務需要選擇同步同步完整的歷史賬本或者任意最近幾步的賬本。這也意味著對存儲空間和網路流量需求的減少。

瑞波共識機製取消了挖坑的發行貨幣機制,採用了原生貨幣(1000億枚)的方式發幣,從而大量的避免了挖礦的天量能耗。

❽ 區塊鏈共識機制之POS和DPOS

工作量證明演算法作為區塊鏈第一個也是目前經受住足夠實踐檢驗的一個共識機制,解決的是分布式系統交易信息一致性的問題,在一個去中心化的網路中構建了彼此不信任節點的信任機制,也是比特幣成功應用的關鍵技術環節。

經過幾年的實際運轉,這一演算法的弊端也顯露出來,比特幣網路每秒完成600萬億次SHA256運算,消耗了大量的電力資源,而最終這些計算沒有任何實際或科學價值。這些運算存在的唯一目的是用來解決工作量證明問題,另外一個現實的威脅便是算力集中,工作量證明本質上是利用窮舉法找出符合規定條件的哈希值的過程,算力越強,獲得記賬權(即挖到礦)的可能性便越高,一開始是最早利用顯卡挖礦的人,後來是利用FPGA礦機的人,再後來是利用ASIC專用晶元挖礦的人,現在就是不斷製造出更好的ASIC的人,另外還有「礦工」節點聯合起來組成礦池,如Ghash,Ghash 2014年曾經發表聲明,將在今後確保不超過40%的全網算力,這類自律聲明是對比特幣去信任機制的莫大諷刺。

比特幣自誕生以來,人們便開始嘗試其他除了工作量證明演算法之外的其他共識機制,如具有代表性的權益證明POS、委託權益證明DPOS、拜占庭容錯機制(BFT)及實用拜占庭容錯機制(PBFT)等,下面將主要介紹POS和DPOS,BFT和PBFT留待下一篇。

權益證明POS

POS是一類共識演算法,或者說是一類共識演算法的設計思想,而不是一個,最早採用POS的是Peercoin。Peercoin是2012年8月,一個化名Sunny King的極客推出的一類加密貨幣,採用工作量證明機制+權益證明機制,首次將權益證明機制引入了加密貨幣。Peercoin引入了「幣齡」的概念,每個幣每天產生1幣齡,比如你持有100個幣,總共持有了30天,那麼,此時你的幣齡就為3000。當一個新的區塊產生時,其他想獲得記賬權的節點同比特幣也需要計算哈希值,得出滿足條件哈希值的難易與難度值有關,這個難度值這里與幣齡成反比,即你的幣齡越大,得出符合條件的哈希值的概率就越大,同時你的幣齡被清空,記賬後系統會給予你相應「利息」,你每被清空365幣齡,獲得利息為:3000 * 利率 / 365,Peercoin的利率為1%,即0.08個幣。

可以看出,在POS機制下,持有幣越多,越容易獲得記賬權,接近於贏家通吃的感覺,但持有的幣越多,越接近於一個誠實的節點,因為破壞整個網路帶來的損失也越大。Peercoin的POS機制有一個漏洞,對於不持有幣的人而言,他們本來就沒什麼收益,所以一些惡意攻擊對於他們則是無損失的,這就是Nothing-at-stake attack(無利益攻擊)。後續的比較成功的POS都引入了對付這種攻擊的機制。

以太坊系統的目標是在今年引入權益證明,即Casper。在權益證明共識機制之下,用戶將能夠在以太坊網路擁有「幣權」。用戶如果誠實行事並確認了合法交易,將獲得與其股權成比的利息;如果惡意行事並試圖網路中作弊,就會失去其權益。

委託權益證明DPOS

委託權益證明DPOS是POS的變種,運用DPOS的典型如比特股等,其基本原理在於全網投票選出101個節點代行記賬許可權,這些代表節點的許可權完全一致。代表節點輪流記賬,可以選擇創造區塊或不創造區塊。但他們無法改變交易的詳情,惡意或者遲到的代表節點的行為也會被公之於眾,那麼網路可能將他們簡單快速地投票驅逐出去。被驅逐出去的代表節點將會失去他們記賬許可權,以及對應的收入。

DPOS作為是一種弱中心化的共識機制,保留了一些中心化系統的關鍵優勢,如交易速度等(每個塊的時間為10秒,一筆交易在得到6-10個確認後大概1分鍾,一個完整的101個塊的周期大概僅僅需要16分鍾),但每個持幣者都有能力決定哪些節點可以被信任,並且事實上,代表節點會主動降低自己的收入來贏得更多投票,剩下的收入會作為股息,支付給所有的比特股持有人。DPOS有點類似於代議制民主及股份公司董事會制度,都是一種精英制度,但其身份受制於下面的民眾,在DPOS中,幣的持有者至少有權決定代表節點—或者說礦工的身份。

❾ 區塊鏈常見的三大共識機制

區塊鏈是建立在P2P網路,由節點參與的分布式賬本系統,最大的特點是「去中心化」。也就是說在區塊鏈系統中,用戶與用戶之間、用戶與機構之間、機構與機構之間,無需建立彼此之間的信任,只需依靠區塊鏈協議系統就能實現交易。

可是,要如何保證賬本的准確性,權威性,以及可靠性?區塊鏈網路上的節點為什麼要參與記賬?節點如果造假怎麼辦?如何防止賬本被篡改?如何保證節點間的數據一致性?……這些都是區塊鏈在建立「去中心化」交易時需要解決的問題,由此產生了共識機制。

所謂「共識機制」,就是通過特殊節點的投票,在很短的時間內完成對交易的驗證和確認;當出現意見不一致時,在沒有中心控制的情況下,若干個節點參與決策達成共識,即在互相沒有信任基礎的個體之間如何建立信任關系。

區塊鏈技術正是運用一套基於共識的數學演算法,在機器之間建立「信任」網路,從而通過技術背書而非中心化信用機構來進行全新的信用創造。

不同的區塊鏈種類需要不同的共識演算法來確保區塊鏈上最後的區塊能夠在任何時候都反應出全網的狀態。

目前為止,區塊鏈共識機制主要有以下幾種:POW工作量證明、POS股權證明、DPOS授權股權證明、Paxos、PBFT(實用拜占庭容錯演算法)、dBFT、DAG(有向無環圖)

接下來我們主要說說常見的POW、POS、DPOS共識機制的原理及應用場景

概念:

工作量證明機制(Proof of work ),最早是一個經濟學名詞,指系統為達到某一目標而設置的度量方法。簡單理解就是一份證明,用來確認你做過一定量的工作,通過對工作的結果進行認證來證明完成了相應的工作量。

工作量證明機制具有完全去中心化的優點,在以工作量證明機制為共識的區塊鏈中,節點可以自由進出,並通過計算隨機哈希散列的數值解爭奪記賬權,求得正確的數值解以生成區塊的能力是節點算力的具體表現。

應用:

POW最著名的應用當屬比特幣。在比特幣網路中,在Block的生成過程中,礦工需要解決復雜的密碼數學難題,尋找到一個符合要求的Block Hash由N個前導零構成,零的個數取決於網路的難度值。這期間需要經過大量嘗試計算(工作量),計算時間取決於機器的哈希運算速度。

而尋找合理hash是一個概率事件,當節點擁有佔全網n%的算力時,該節點即有n/100的概率找到Block Hash。在節點成功找到滿足的Hash值之後,會馬上對全網進行廣播打包區塊,網路的節點收到廣播打包區塊,會立刻對其進行驗證。

如果驗證通過,則表明已經有節點成功解迷,自己就不再競爭當前區塊,而是選擇接受這個區塊,記錄到自己的賬本中,然後進行下一個區塊的競爭猜謎。網路中只有最快解謎的區塊,才會添加的賬本中,其他的節點進行復制,以此保證了整個賬本的唯一性。

假如節點有任何的作弊行為,都會導致網路的節點驗證不通過,直接丟棄其打包的區塊,這個區塊就無法記錄到總賬本中,作弊的節點耗費的成本就白費了,因此在巨大的挖礦成本下,也使得礦工自覺自願的遵守比特幣系統的共識協議,也就確保了整個系統的安全。

優缺點

優點:結果能被快速驗證,系統承擔的節點量大,作惡成本高進而保證礦工的自覺遵守性。

缺點:需要消耗大量的演算法,達成共識的周期較長

概念:

權益證明機制(Proof of Stake),要求證明人提供一定數量加密貨幣的所有權。

權益證明機制的運作方式是,當創造一個新區塊時,礦工需要創建一個「幣權」交易,交易會按照預先設定的比例把一些幣發送給礦工本身。權益證明機制根據每個節點擁有代幣的比例和時間,依據演算法等比例地降低節點的挖礦難度,從而加快了尋找隨機數的速度。

應用:

2012年,化名Sunny King的網友推出了Peercoin(點點幣),是權益證明機制在加密電子貨幣中的首次應用。PPC最大創新是其采礦方式混合了POW及POS兩種方式,採用工作量證明機制發行新幣,採用權益證明機制維護網路安全。

為了實現POS,Sunny King借鑒於中本聰的Coinbase,專門設計了一種特殊類型交易,叫Coinstake。

上圖為Coinstake工作原理,其中幣齡指的是貨幣的持有時間段,假如你擁有10個幣,並且持有10天,那你就收集到了100天的幣齡。如果你使用了這10個幣,幣齡被消耗(銷毀)了。

優缺點:

優點:縮短達成共識所需的時間,比工作量證明更加節約能源。

缺點:本質上仍然需要網路中的節點進行挖礦運算,轉賬真實性較難保證

概念:

授權股權證明機制(Delegated Proof of Stake),與董事會投票類似,該機制擁有一個內置的實時股權人投票系統,就像系統隨時都在召開一個永不散場的股東大會,所有股東都在這里投票決定公司決策。

授權股權證明在嘗試解決傳統的PoW機制和PoS機制問題的同時,還能通過實施科技式的民主抵消中心化所帶來的負面效應。基於DPoS機制建立的區塊鏈的去中心化依賴於一定數量的代表,而非全體用戶。在這樣的區塊鏈中,全體節點投票選舉出一定數量的節點代表,由他們來代理全體節點確認區塊、維持系統有序運行。

同時,區塊鏈中的全體節點具有隨時罷免和任命代表的權力。如果必要,全體節點可以通過投票讓現任節點代表失去代表資格,重新選舉新的代表,實現實時的民主。

應用:

比特股(Bitshare)是一類採用DPOS機制的密碼貨幣。通過引入了見證人這個概念,見證人可以生成區塊,每一個持有比特股的人都可以投票選舉見證人。得到總同意票數中的前N個(N通常定義為101)候選者可以當選為見證人,當選見證人的個數(N)需滿足:至少一半的參與投票者相信N已經充分地去中心化。

見證人的候選名單每個維護周期(1天)更新一次。見證人然後隨機排列,每個見證人按序有2秒的許可權時間生成區塊,若見證人在給定的時間片不能生成區塊,區塊生成許可權交給下一個時間片對應的見證人。DPoS的這種設計使得區塊的生成更為快速,也更加節能。

DPOS充分利用了持股人的投票,以公平民主的方式達成共識,他們投票選出的N個見證人,可以視為N個礦池,而這N個礦池彼此的權利是完全相等的。持股人可以隨時通過投票更換這些見證人(礦池),只要他們提供的算力不穩定,計算機宕機,或者試圖利用手中的權力作惡。

優缺點:

優點:縮小參與驗證和記賬節點的數量,從而達到秒級的共識驗證

缺點:中心程度較弱,安全性相比POW較弱,同時節點代理是人為選出的,公平性相比POS較低,同時整個共識機制還是依賴於代幣的增發來維持代理節點的穩定性。

❿ 區塊鏈的共識機制是什麼

如何讓去中心化網路達成共識?
在區塊鏈系統當中,沒有一個像銀行一樣的中心化記賬機構,保證每一筆交易在所有記賬節點上的一致性,即讓全網達成共識至關重要。共識機制解決的就是這個問題。
目前主要的共識機制有工作量證明機制PoW和權益證明機制PoS。
PoW通過評估你的工作量來決定你獲得記賬權的機率,工作量越大,就越有可能獲得此次記賬機會。
PoS通過評估你持有代幣的數量和時長來決定你獲得記賬權的機率。這就類似於股票的分紅制度,持有股權相對多的人能夠獲得更多的分紅。
DPOS與POS原理相似,只是選了一些「人大代表」。 與PoS的主要區別在於節點選舉若干代理人,由代理人驗證和記賬。
隨著技術的發展,未來可能還會誕生更先進的共識機制。

熱點內容
區塊鏈是騙人的 發布:2025-04-30 20:33:18 瀏覽:950
titanv以太坊 發布:2025-04-30 20:29:30 瀏覽:386
幣圈急跌是什麼 發布:2025-04-30 20:29:22 瀏覽:923
生產元宇宙手套的公司 發布:2025-04-30 19:42:05 瀏覽:651
江蘇淮安數字貨幣 發布:2025-04-30 19:32:33 瀏覽:776
元宇宙在哪下載玩 發布:2025-04-30 19:01:08 瀏覽:729
max幣圈漏洞 發布:2025-04-30 18:25:34 瀏覽:505
劉濤投資數字貨幣 發布:2025-04-30 18:17:54 瀏覽:754
比特幣新價 發布:2025-04-30 18:17:20 瀏覽:748
比特幣到底怎麼花 發布:2025-04-30 18:05:56 瀏覽:920