淺談DPOP共識機制
區塊鏈作為位元幣系統中的底層技術受到了廣泛關注,是解決分布式系統一致性問題的一種可行方法,區塊鏈技術的核心是如何實作共識,良好的共識機制可提升系統性能,促進區塊鏈技術的應用,
共識機制是區塊鏈技術的基礎和核心,共識機制決定參與節點以何種方式對某些特定的資料達成一致,早在1975年,Akkoyunlu、Ekanadham和Huber 提出計算機領域的“兩軍問題”,對于共識機制的研究從此開始,Lamport、Shostak和Pease提出“拜占庭將軍問題”,研究在可能存在故障節點或者惡意攻擊的情況下,非故障節點如何對待特定資料達成一致,拜占庭將軍問題成為共識機制研究的基礎,
2008年,Nakamoto提出位元幣,共識機制進入區塊鏈共識時代,BTC的初衷是建設一個開放的公有區塊鏈基礎設施,網路中的節點可以自由地加入以及退出,能夠平等地競爭記賬權,在這一類共識機制下,節點獲得記賬權的概率與該節點擁有某種資源的比例相關,并且這種資源是難以壟斷的,因此POW共識機制就誕生了,
POW共識機制
POW作業量證明機制,通過一個競爭機制(計算猜測一個nonce隨機值,得以解決規定的哈希問題),讓計算作業完成最出色的節點獲得記賬的權利,POW通過這種算力消耗的經濟懲罰限制了惡意節點的參與,因為它需要付出大量的經濟成本,而這個計算程序就是挖礦,
我們將PoW的哈希解謎程序表示為節點不斷改變區塊頭部的nonce使區塊Hash滿足目標條件Target的程序,可以由以下的公式描述:

Target根據網路的難度進行設定,難度每隔一段時間根據規定的演算法進行調整,目的是保證網路中挖掘出區塊的時間期望為固定值,H(x)表示Hash函式,我們把x的取值范圍稱為節點的搜索空間,
PoW機制中節點的搜索空間是所有正整數,由于Hash函式的特性,不等式左邊可以認為是在Hash函式值域上均勻分布的隨機變數,Target對于全體節點都是相同的,節點獲得記賬權的概率取決于其計算Hash的速度,
BTC以及其分叉通證(BCH、BSV)、LTC、ETH(當前Metropolis版本)等大部分主流數字通證均采用PoW共識機制,它們之間的區別主要是采用的哈希演算法不同,以及具體引數例如難度調節機制、區塊激勵機制的不同,
為了解決POW挖礦帶來的巨大能源消耗問題,以太坊ETH從POW轉化為POS共識機制,接下來我們說說POS共識機制,

以太坊ETH區塊鏈結構
POS共識機制
為了解決POW作業量證明共識機制帶來的巨大能源消耗問題,基于權益證明的POS共識機制被提出,權益是指節點或用戶擁有的資產,如代幣,根據用戶擁有資產比例決定成為下一個區塊生產者的概率,擁有資產比例越高,其成為生產者的概率就越大,
點點(Peercoin)是首個將PoS理念加入到共識機制中的數字通證,Peercoin的PoS挖礦程序與PoW作業量證明類似,同樣需要節點進行哈希計算并使結果滿足目標值,目標值越大,則越容易獲得生產區塊的權利,其挖礦程序可以表示為:
不等式左邊Hash函式搜索空間中的Timestamp表示當前時間,Peercoin規定了一個區塊的時間戳必須在由前一個區塊所決定的時間范圍之內,否則該區塊不會被其他節點接受,StakeModifier是每過一定數量區塊就根據最新區塊Hash重新計算的值,它的設計是為了防止節點提前計算未來某個時間的Hash值,這樣得出的Hash可以保證是節點在規定的時間范圍內計算出的,不等式右邊BaseTarget由當前PoS挖礦的基礎難度決定,CoinAge表示節點投入參與記賬權競爭的幣齡,
與PoW網路的節點在一個非常廣泛的搜索空間里尋找nonce不同,由于時間戳取整數進行Hash運算, Peercoin網路中的節點固定時間間隔內的搜索空間是有限的,限制了節點因算力差異產生的競爭,而節點幣齡越大,目標空間也越大,Hash值滿足條件的概率越高,
Peercoin的激勵機制在于,獲得記賬權的節點可以添加一筆權益輸入,根據區塊內所有交易消耗總幣齡的多少生產一定比例的利息支付給自己,Peercoin中每一單位的通證一年的幣齡會產生1%的利息,
與PoW的最長鏈原則類似(累計作業量最高),Peercoin的區塊也會記錄該區塊內交易的總幣齡,累計消耗幣齡最多的鏈將成為主鏈,
在網路安全性方面,對PoS共識機制發起51%攻擊的可能仍然存在,但相比PoW,對PoS進行51%攻擊所需的成本通常可能會更高,在以幣齡為權益的PoS演算法中,攻擊者發起攻擊不僅需要金錢成本,還要付出時間成本,惡意囤積通證的可能性也被限制,攻擊者在記錄一次區塊后幣齡會清零,該部分通證一段時間內不能再被用于競爭記賬權,增加了重組區塊鏈歷史、發動雙花攻擊的難度,最后,攻擊者必須持有通證才能競爭記賬權,發起以破壞區塊鏈為目的攻擊會使攻擊者本身遭受損失,
雖然解決了能源消耗問題,PoS也引入了新的問題,在傳統PoS中,節點不需要在線也可以累積幣齡,這可能導致網路在線的記賬節點數量較低,網路安全得不到保障,
DPOP共識機制
隨著POW共識機制、POS共識機制的相繼提出及應用,慢慢又有新的共識機制比如DPOS共識機制、PBFT共識機制等,每一種機制都有優勢及劣勢,不是產生礦霸,就是產生莊家,2012年 一位名叫Cediva的人提出了是否可以在POS中增加一種新的演算法,即每個人在節點或社區的作業參與度加上POS的持有Toke數量進行獎勵,這樣可以促進token持有量,也可以增加節點能動性,他在2019年成立的N&A團隊中正式提出了這個構想并命名為DPOP,權益證明+參與度證明共識機制,
Cediva通過對N&A公鏈進行實踐,完善了DPO共識機制,Cediva在多委員會混合共識機制上融入知識證明的作業量證明(EWoK共識機制)思路,很好的平衡了拓展性及安全性問題,同時實作了之前的設想,以權益、參與度兩個維度進行證明的共識機制,
為了解決區塊鏈處理交易的可擴展性, 利用多個并行的委員會來處理網路中不同分片的交易的混合共識機制稱之為多委員混合共識機制,DPOP是在多委員混合共識機制基礎上的升級,全稱Delegated Proof of Participation,
我們以Chainspace為例來詮釋DPOP共識機制流程,Chainspace其敵手模型為n=3f+1,Chainspace在分片的基礎上,構建了智能合約應用平臺,任何人能夠發布智能合約,智能合約的參與者可以是多個用戶,Chainspace中存在系統智能合約CSCoin,為整個協議的運行設定一定的安全引數,Chainspace將智能合約和交易稱為“物件(objects)”,每個物件由不同的分片分別執行、處理和驗證,Chainspace中對交易或智能合約的處理程序如圖所示,

DPOP共識流程圖
1 準備(prepare)
用戶向輸入分片發送準備訊息prepare(tx),假設交易tx有兩個輸入和一個輸出, 其對應的分片分別為分片1、分片2和分片3,
2 處理準備訊息(processprepare)
輸入分片1和分片2的節點收到prepare(tx)訊息后,鎖定交易tx的輸入,在各自的委員會內部通過運行DPOP演算法處理準備訊息,如果交易tx合法,即輸入未被花費且沒有其他的交易使用該輸入,輸入分片向其他節點廣播承諾訊息prepared(tx,commit),如果交易tx不合法,未通過DPOP演算法,則廣播訊息prepared(tx,abort),
3 處理準備完成的訊息(processprepared)
所有分片之間進行互動,如果所有分片在上一步廣播的都是prepared(tx,commit)訊息,則對交易tx達成最終共識,廣播accept(tx,commit)訊息,如果分片中有大于等于一個分片提交了prepared(tx,abort)訊息,則對交易tx的共識失敗,廣播accept(tx,abort)訊息,
4 處理接受訊息(processaccept)
當上一步中有分片廣播accept(tx,commit)時,交易tx的輸出分片運行委員會內分布式一致性演算法,將tx添加到該分片中,當分片廣播accept(tx,abort)時,所有分片將交易tx的輸入解鎖,放棄交易tx,
DPOP共識機制優勢是既繼承了多委員混合共識機制的推展性,同時平衡了共識機制中的安全問題,防止了惡意攻擊,參與基于N&A公鏈的專案,參與者既可以憑借著自己手中Token通證權益參與到共識中,又可以通過自己的對于鏈上貢獻參與到共識中,平衡點大戶對于網路的危害,同時也激發每一個參與者積極的做出貢獻,
良好的共識機制可提升系統性能,促進區塊鏈技術的應用,讓我們拭目以待DPOP共識機制對于區塊鏈技術領域的貢獻,
DPOP共識機制發展歷程:
2012年7月Cediva提出了改進POS的初步構想
2013年5月 首次提出參與度證明
2013年11月 首次確定了權益證明+參與度證明的概念
2018年10月 通過多種模型對比完善了DPOP的最終理論,
2019年1月,N&A團隊首次在瑞士達沃斯區塊鏈論壇會議中提出了去硬體化冷錢包的概念,
2019年3月,Cediva通過對多委員混合共識機制的升級改造的DPOP共識機制應用到N&A公鏈進行實踐,成功實作了DPOP共識機制的落地,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/195023.html
標籤:其他
