當前位置:首頁 » 以太坊知識 » 以太坊使用pbft

以太坊使用pbft

發布時間: 2024-11-09 15:39:50

1. 區塊鏈使用什麼網路技術

區塊鏈技術是什麼

區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。區塊鏈(Blockchain),是比特幣的一個重要概念,它本質上是一個去中心化的資料庫。

同時作為比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一批次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。

區塊鏈是一個公開的數據列表,其中的每一份記錄被稱作一個區塊。這些區塊像鏈條一樣連成一串,形成了區塊鏈。就像成語接龍一樣,相鄰的詞語之間必然存在某種聯系才能形成詞語鏈條。區塊鏈也是如此,只不過區塊與區塊之間的聯系要復雜得多。

/iknow-pic.cdn.bcebos.com/35a85edf8db1cb13eb25e778d254564e92584b09"target="_blank"title="點擊查看大圖"class="illustration_alink"/iknow-pic.cdn.bcebos.com/35a85edf8db1cb13eb25e778d254564e92584b09?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/

(1)以太坊使用pbft擴展閱讀

區塊鏈技術創新不等於炒作虛擬貨幣,應防止那種利用區塊鏈發行虛擬貨幣、炒作空氣幣等行為。同時還要看到,區塊鏈目前尚處於早期發展階段,在安全、標准、監管等方面都需要進一步發展完善。

大方向沒有錯,但是要避免一哄而上、重復建設,能夠在有序競爭中打開區塊鏈的想像空間。中國在區塊鏈領域擁有良好基礎,一些大型互聯網公司早有布局,人才儲備相對充足,應用場景比較豐富,完全有條件在這個新賽道取得領先地位。

從更大的視野來看,人類能夠發展出文明,是因為實現了大規模人群之間的有效合作。亞當·斯密所闡釋的「看不見的手」,也是通過市場機制實現了人類社會的分工協作。

由此觀之,區塊鏈極大拓展了人類信任協作的廣度和深度。也許,區塊鏈不只是下一代互聯網技術,更是下一代合作機制和組織形式。

2. Truechain之初探

從剛開始接觸以太坊的時候,就覺得單一共識模型實在是有些寡力,因其自身的設計初衷(安全)使得性能不高,實際使用時某些場景已經滿足了一定的安全,從而造成算力的浪費。

最近因truechain混合共識的名頭開始了解這一新的公鏈,確實有了一些不一樣的感覺。

下面來簡單對比下:

1、安全性。上面也已提到,POW共識因為是時間爭先的原則,節點的惡意操作基本能夠被發現,而PBFT共識,則需要保證不超過⅓的節點作惡,其安全性不能被保證,尤其是在網路不穩定的時候。而混合共識,則取兩者之長,避二者之短,「保留 PBFT 快速高效達成共識的特性不變,將 PBFT 節點的選舉、監督權交給 PoW 節點,同

時快速的驗證 PBFT 給出的交易記錄集合,從而保證了整個網路的安全性。」

而我在最初設想的混合共識,僅僅是根據實際的場景需要,選用不同的共識機制,顯然,truechain想的更遠。

2、挖礦與激勵。這與共識是相輔相成型逗的,水果鏈的原理還沒有完全看卜孫賣明白,但是與我簡單理解來說,就是將每次鏈上的交易行為,增加時間屬性,並行,分片計算與驗證交易,減少串列挖礦造成的時間損耗。(個人理解,如有不對的地方還請指出)

3、存儲。鑒於現在公鏈上劇增的歷史交易數據,truechain引入IPFS分布式網路存儲,解決全節點需要存儲全部數據的痛點,有效利用節點的存儲凱鎮能力,並能夠帶動普通用戶獲取激勵的熱情,這也是我認為相對區塊鏈2.0最有效的改進。(當然,目前的大多數公鏈應該都會意識到這一點)

4、智能合約。合約所能兼容的語言更加豐富,降低開發門檻,這也許會帶給區塊鏈一個契機,為實際場景增加更多的選擇。

總結,其實,在讀了truechain的白皮書黃皮書之後,給我的印象是,它是Ethereum+Hyperledger Fabric結合的產物,它有fabric的許可權許可(Daily委員會),也有Ethereum的無限可接入的特點。

至於究竟怎樣,還是要上手操作一番才知道~

附框架圖(大家可以感受一下)

3. Quorum介紹(二):Quorum共識

我們知道,公共區塊鏈是一個開放的社區,任何人都能夠成為一個節點加入網路,在網路中計算,提交交易到鏈上等,因此公鏈是沒有信任基礎的,所以公鏈的共識第一要義就是證明交易的合法性和真實性,防止惡意成員的搗亂,效率不是第一要義。

與公鏈的環境不同,有準入門檻的企業鏈或者聯盟鏈鏈上的所有成員在加入時實際上是已經獲得了某些認可和許可的,因此企業鏈/聯盟鏈上的成員是有一定信任基礎的。在企業級鏈上我們沒有必要使用POW或者POS這種浪費算力或者低效的交易共識。

Quorum提供了多種共識供用戶採用:

在講Raft前,有必要提一下Paxos演算法,Paxos演算法是Leslie Lamport於1990年提出的基於消息傳遞的一致性演算法。然而,由於演算法難以理解,剛開始並沒有得到很多人的重視。其後,作者在八年後,也就是1998年在ACM上正式發表,然而由於演算法難以理解還是沒有得到重視。而作者之後用更容易接受的方法重新發表了一篇論文《Paxos Made Simple》。

可見,Paxos演算法是有多難理解,即便現在放到很多高校,依然很多學生、教授都反饋Paxos演算法難以理解。同時,Paxos演算法在實際應用實現的時候也是比較困難的。這也是為什麼會有後來Raft演算法的提出。

Raft是實現分布式共識的一種演算法,主要用來管理日誌復制的一致性。它和Paxos的功能是一樣,但是相比於Paxos,Raft演算法更容易理解、也更容易應用到實際的系統當中。而Raft演算法也是聯盟鏈採用比較多的共識演算法。

Raft一共有三種角色狀態:

每個節點上都有一個倒計時器 (Election Timeout),時間隨機在 150ms 到 300ms 之間。有幾種情況會重設 Timeout:

在分布式系統中,「時間同步」是一個很大的難題,因為每個機器可能由於所處的地理位置、機器環境等因素會不同程度造成時鍾不一致,但是為了識別「過期信息」,時間信息必不可少。

Raft演算法中就採用任期(Term)的概念,將時間切分為一個個的Term(同時每個節點自身也會本地維護currentTerm),可以認為是邏輯上的時間,如下圖。

每一任期的開始都是一次領導人選舉,一個或多個候選人(Candidate)會嘗試成為領導(Leader)。如果一個人贏得選舉,就會在該任期(Term)內剩餘的時間擔任領導人。在某些情況下,選票可能會被評分,有可能沒有選出領導人(如t3),那麼,將會開始另一任期,並且立刻開始下一次選舉。Raft 演算法保證在給定的一個任期最少要有一個領導人。

特殊情況的處理

在以太坊中節點本身並沒有角色,因此在使用Raft共識時,我們稱leader節點為挖礦節點:

Raft共識機制本身保證了同一時間點最多隻有一個leader,因此用在以太坊模型下也只會有一個出塊者,避免了同時出塊或者算力浪費的情況。

在單筆交易(transaction)層級Quorum依然沿用了Ethereum的p2p傳輸機制,只有在塊(block)層級才會使用Raft的傳輸機制。

其中需要注意到一點,在以太坊中一個節點收到塊以後就會立刻記賬,而在Quorum模型中,一個塊的記錄必須遵從Raft協議,每個節點從leader處收到塊以後必須報告給leader確認收到以後,再由leader通知各個節點進行數據提交(記錄)

在Quorum模型中新塊的信息是很有可能和已有塊的header信息不符的,最容易發生這種情況的就是選舉人更替(挖礦節點更替),具體描述如下:

假設有兩個節點,node1和node2,node1是現有的leader,現有鏈的最新區塊是0xbeda,它的父區塊是0xacaa

對塊「Extends」或者「No-op」的標記是在更上層完成的,並不由raft本身log記錄機制實現。因為在raft內部,信息並不分為有效或無效,只有在區塊鏈層面才會有有效區塊和無效區塊的含義。

需要注意的是,Quorum的這種記賬機制和本身Ethereum的LVC(最長鏈機制)是完全不一樣的

Quorum的出塊頻率默認是50ms一個塊,可以通過 --raftblocktime 參數進行設置

投機性出塊並不是以太坊Raft共識嚴格必須的核心機制之一,但是是提高出塊效率的有效方式。

一個塊從產生到實際被記錄賬本,走完整個raft流程實際上是需要耗費一定時間的。如果我們在上一個塊被計入賬本之後才開始產生下一個塊,那麼一筆交易想要成功被記錄需要耗費較多的時間。

而在投機性(speculative minting)出塊中,我們允許一個新塊在它的父塊被記錄之前就產生。依次類推,在一段時間內,實際上會產生「投機鏈(speculative chain)」,在祖先塊沒有被記錄進賬本之前,一個一個新塊已經依據先後關系組成了一條臨時鏈片段,等待被記錄。

對於已經被記錄進投機塊的交易,我們會在交易池中標記為「proposed transaction」

在之前我們說過,raft機制中是存在兩個挖礦節點比賽出塊和記賬的可能的,因此,一條 speculative chain 中間的某一個塊很有可能不會被記錄到賬本中。在這種情況下我們也會把交易池中的交易狀態修改回來。( InvalidRaftOrdering event)

目前,Quorum並沒有對speculative chain的長度做限制,但在它的未來規劃中有講這一點作為一個性能優化項加入開發進程,最後能夠讓一個挖礦節點即使在raft共識層沒有連接上,它也可以離線一直出塊,產生自己的speculative chain。

一條speculative chain有以下幾個部分構成:

在塊傳輸上我們使用etcd Raft默認的http傳輸,當然使用Ethereum的p2p傳輸也是可以的,但是Quorum團隊在測試階段發現,高負載的狀態下,ETH p2p的性能沒有raft p2p性能好。

Quorum使用50400埠作為Raft 傳輸層的默認監聽埠,也可以通過 --raftport 參數自行設置。

一個集群默認的最大節點個數是25,可以通過 --maxpeers N 來設置,N是你的最大節點個數。

Quorum的IBFT其實就是PBFT,只不過摩根大通把它自己實現的PBFT叫做IBFT,所以IBFT的基本原理與PBFT是一樣的,所不同的是,IBFT中把出塊和共識的三階段結合在了一起。

Istanbul BFT修改自PBFT演算法,包括三個階段: PRE-PREPARE 、 PREPARE 以及 COMMIT 。在 N 個節點的網路中,這個演算法可以最多容忍 F 個出錯節點,其中 N=3F+1 。

Istanbul BFT演算法中的區塊是確定的,意味著鏈沒有分叉並且合法的區塊一定是在鏈中。為了防止一個惡意節點生成不同的鏈,在把區塊插入進鏈 之前 ,每一個validator必須把 2F + 1 個 COMMIT 簽名放進區塊頭的 extraData 欄位。因此,區塊是可以自我驗證的(因為有簽名)並且輕客戶端也支持。

然而動態的 extraData 也會造成區塊的hash計算問題。因為一個區塊可以被不同的validator驗證,所以會有不同的簽名,所以同一個區塊會有不同的hash。解決的方案是,計算區塊hash的時候把 COMMIT 簽名排除在外。因此我們任然可以在保證block hash一致性的同時進行共識驗證。

由於Ethereum POA共識在網上已經有大量介紹,筆者這里就不多做詳細介紹,只對重要特點和POA的工作流程做大致梳理和介紹

4. 區塊鏈投票怎麼處理的

莫斯科市採用以太坊區塊鏈技術進行投票的目的?

北京時間2月24日,莫斯科市將推出一個基於以太坊的投票系統,這個系統的名字叫「主動市民」。把投票放入區塊鏈中,只要密碼夠安全,結果就不會產生爭議。

這是投票系統的主要宗旨之一,但是近十年來,虛擬貨幣社區一直為以往系統的不可靠性爭論不休。從筆者聽說以太坊和智能協議那一刻,筆者率先想到的應用方法就是投票。

投票需要放到區塊鏈上。

我們目前的社會中沒有什麼比徹底消除選舉中的腐敗行為更重要。盡管筆者認為選舉完全是浪費時間,但現實是相當大部分的權力是通過民主授權投票分配和實現的。

因此,可能被黑客入侵的投票系統應運而生了。在寫出這些話的時候,筆者幾乎可以想像到美國民主黨看到後發出的尖叫聲。他們知道,如果沒有填塞選票、選民接送、非法移民投票多次等作弊手段他們無法贏得全國或者州選舉。

主動投票被視為基於資料庫的系統已經有一段時間了。對於基於以太坊的系統,莫斯科將開始允許讓一小部分居民投票決定諸如新地鐵列車的名字、新運動場地座椅顏色等一系列議案。但是為了緩解人們的「是否要信任該市的投票計數系統」擔憂,這一計劃架構中還被加入了私人版的以太坊塊鏈。

該市首席信息辦公室策略和創新顧問安德雷·貝羅澤拉夫表示:「當然,有時候我們聽說並非所有投票都值得信任。因此,我們決定利用主動市民項目的塊鏈作為建立電子化信任的平台。」

基於以太坊的系統將允許人們檢查公開源的結果,自去年12月發布以來,該結果已經被超過100名節點操作員下載。

有關人士還擔心一段合理時間內該系統是否能夠容納和清算足夠多的交易。因此,最好的做法是針對一些微不足道的問題進行選舉從而對該系統展開測試。

但是,毫無疑問,訊息很清晰了。俄羅斯正朝著一個透明的、民主的體制發展。對這些小問題進行選舉只是為了將來在更大范圍內採用該技術而進行的測試。

第一個真正的里程碑應該是一場地方選舉,而最終目標則是全國性選舉。

在西方國家民眾對政府機關的信任度正以驚人的速度下滑之際,普京領導下的俄羅斯政府正採取措施試圖加強民眾對其系統的信任。

俄羅斯的民主制度已經歷史悠久,但是蘇聯解體遺留的腐敗餘毒以及之後葉利欽執政時代遭到西方世界的掠奪仍是一個大問題。

俄羅斯推出這一系統恰逢「美國特別檢察官穆勒以干涉2016年美國總統大選的理由對13個俄羅斯人和3個俄羅斯實體機構正式提起訴訟,引起全球轟動」的時候。對於反民主勢力而言,這一事件令穆勒看起來更像可利用的傻瓜。

在華盛頓的大佬們仍不滿和抱怨這個自己不喜歡的選舉結果的時候,俄羅斯正展開行動,確保約瑟夫·斯大林最經常被人引用的格言之一——「投票的人決定不了什麼,計票的人決定了一切」不適用於俄羅斯。

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

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

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

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

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

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

2012年,化名SunnyKing的網友推出了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個數越多,難度越大。

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

該過程可以用下圖表示:

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

2021年微博電視劇投票有專家嗎是真的嗎

微博KINGQUEEN投票疑似數據作假,微博之夜官博公告將對兩榜去水。評論里都是粉絲宣稱對方注水,迪麗熱巴和楊紫的粉絲battle尤為激烈。

每年到這個時候,投票作假沾滿整個微博熱搜,現在的投票數據是注水了嗎?

難道就沒有更好的辦法解決這個問題了嗎?答案肯定是有的,前幾天發布過類似文章,我覺得國內也可以採用這個區塊鏈投票機制。

大家可以試圖去看看starplay,StarPlay具有改革投票舞弊行為的潛力

1、提高投票過程的透明度

區塊鏈投票的最大優點是讓透明度增加。現在,一旦你投完票,接下來會發生什麼就都與你無關了。即使你相信投票工作人員會准確地計算票數,你也沒有辦法確保你的選票算數。

而在區塊鏈上,你可以跟蹤你的投票並看到它最終出現在正確的位置。即使它不會將你的信息與之相關聯,你的投票也會存在於區塊鏈中,所有歷史情況都不會變。

2.每天實時投票

區塊鏈使投票透明,可以實時跟蹤和統計選票。因為它們是數字化的,那麼投票基礎設施的投入就會減少,任何時候都可以查看投票結果,無滯後性。

發布於3年前著作權歸作者所有

?

贊同0

?

?

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

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

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

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

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

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

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

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

概念:

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

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

應用:

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

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

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

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

優缺點

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

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

概念:

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

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

應用:

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

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

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

優缺點:

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

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

概念:

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

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

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

應用:

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

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

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

優缺點:

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

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

熱點內容
中國比特幣富豪 發布:2024-12-25 14:21:15 瀏覽:326
酷派區塊鏈手機發布會 發布:2024-12-25 14:02:15 瀏覽:293
錢包usdt怎樣跨鏈轉換 發布:2024-12-25 13:35:26 瀏覽:9
矮人挖礦大魔王的游戲 發布:2024-12-25 13:29:30 瀏覽:914
f2魚池萊特幣地址 發布:2024-12-25 13:01:31 瀏覽:12
萊特幣那年價格最高 發布:2024-12-25 13:00:44 瀏覽:496
怎樣進幣世界挖礦區 發布:2024-12-25 12:59:54 瀏覽:134
盜賊冬泉谷挖礦 發布:2024-12-25 12:58:39 瀏覽:32
現在出的USDT怎麼玩 發布:2024-12-25 12:56:57 瀏覽:662
那裡有測試挖礦指數 發布:2024-12-25 12:51:16 瀏覽:490