網上有很多關于對pow和pos機制的淺見,常見的共識機制有哪些的知識,也有很多人為大家解答關于對pow和pos機制的淺見的問題,今天pos機之家(www.tonybus.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
對pow和pos機制的淺見
區塊鏈中的共識機制有很多。常見的幾種共識機制包括PoW機制、PoS機制和PBFT機制等。
1.PoW機制PoW機制,即“工作量證明機制”(proof-of-work)機制,其基本思想很簡單,即只有完成一定工作量的節點才能擔負記賬的工作。這樣,就可以大幅增加惡意節點進行干擾的成本,讓它們沒有激勵進行干擾。
PoW機制的思想最早源于辛西婭·德沃克(Cynthia Dwork)和莫尼·諾爾(Moni Naor)于1993年發表的論文。1997年時,亞當·貝克(Adam Back)也獨立發明了基于PoW機制的哈?,F金,并將其用來抵御郵件的拒絕服務攻擊及垃圾郵件網關濫用。1999年時,馬庫斯·雅各布松(Markus Jakobsson)和阿里·朱爾斯(Ari Juels)正式將這一思想命名為了“工作量證明”。2008年時,中本聰將PoW機制應用于比特幣的共識形成過程。袁文澤博客www.yuanwze.cn
由于PoW機制是根據節點的工作量來分配記賬權的,因此它需要包括三個算法:產生挑戰C的隨機算法、解決挑戰C的方法S的算法,以及驗證C是否被S解決的算法。
舉例來說,在比特幣系統中,生成挑戰的隨機算法是基于SHA-256的。具體而言,它要求在待驗證的信息后面加上一個合適的隨機數(nounce),再將信息和隨機數通過SHA-256算法轉換后,前幾位哈希值都是0。顯然,要求為0的位數越多,這個挑戰的難度就越大,難度的具體值可以根據具體的情況進行調整。由于在現有的數學條件下,SHA-256算法是不可逆的,因此各節點只能用窮舉法來對以上問題進行破解。這樣一來,破解這一問題的概率就會和節點所投入的算力成正比。由于以上問題需要大量計算,因此在一段時間內,系統只會收到一小部分節點提交的符合條件的工作證明。符合條件的工作證明結果會成為一個區塊,在P2P網絡中進行廣播。收到區塊的用戶驗證節點會驗證該區塊的正確性,得到超過50%的用戶驗證節點的證實后,該區塊將會加入當前系統中最長的公鏈。當然,參與上述工作是需要巨大成本的,為保證各節點有激勵參與這項工作,網絡就需要對參與工作的節點有所回報。在區塊鏈中,這個回報通常是以代幣(token)的形式給出的。
圖1 PoW機制工作原理示意
注:圖中節點1進行了一筆交易,它隨即向其他各節點進行交易廣播。各節點利用PoW機制對交易進行驗證。最后,節點4的證明結果被采用,節點4隨后再向各節點廣播驗證結果。
在PoW機制中,所選取的計算問題必須滿足以下特性:
(1)偽隨機性。這一特征保證節點完成工作量證明的概率僅取決于自身投入的算力比例,保證了機制的相對公平性。
(2)難度可控。這一特征保證可以根據具體情況對計算難度進行調節。
(3)公開可驗證性。這要求問題的求解結果可以通過比較簡潔的方式進行驗證。
由此可知,PoW機制可以保證區塊鏈的一致性和安全性,也具有相對的公平性。但是,其缺點也是明顯的。
首先,PoW機制的效率比較低下。每個區塊的產生都需要耗費時間,并且新產生的區塊需要后續區塊的確認才能保證有效,這需要更長的時間。例如,比特幣系統平均需要10分鐘產生一個區塊,然后等待后續的6個區塊進行確認,因此需要60分鐘的時間才能確認并完成一筆交易。顯然,對于大多數交易來說,這是難以接受的。
其次,目前的算力存在著集中的趨勢,這對PoW機制的安全性提出了挑戰。PoW機制要求攻擊節點所擁有的計算資源不超過全網的50%,而這一點在現實中很難確保。以比特幣網絡為例,目前超過90%的比特幣算力集中在不到20家企業的手中,比特大陸(Bit-main)擁有的算力就超過了53%。在這種趨勢下,只要擁有龐大算力的企業進行攻擊,PoW機制就無法實現安全性。
再次,PoW過程計算的通常是一個無意義的序列,但所需的資源卻是龐大的,這會造成巨大的浪費。根據普林斯頓大學計算機科學副教授阿爾文德·納拉亞南(Arvind Narayanan)向美國參議院能源和自然資源委員會提交的一份書面報告,每天花費在比特幣系統工作量證明上的成本高達600多萬美元,每年的成本將高達數十億美元。盡管計算機科學家目前已提出了很多降低PoW機制能耗、減少其浪費的方案,但都沒有從根本上解決問題。
2.PoS機制PoS機制,即權益證明機制(proof-of-stake),是2011年時一位名為“Quantum Mechanic”的網友在著名比特幣社區Bitcointalk論壇首次提出的。
PoS機制的原理類似于股份制。正如在公司中誰擁有的股份越多,誰就越具有話語權一樣,在采用PoS機制的區塊鏈中,誰的權益質押(在“鏈圈”,這通常被稱為staking)越多,誰的話語權也越大。具體來說,在PoS機制中,有一個“幣齡”(coin age)的概念,它等于用戶在這個系統中擁有的“幣”乘以將“幣”存在系統中的時間。和PoW機制類似,在形成共識的過程中,系統也會向各個節點分發隨機的挑戰任務,然后根據解決問題的先后來決定最終的記賬者。所不同的是,在PoW機制中,每個節點所分攤到的任務的預期難度是一致的,但在PoS機制中,“幣齡”越高的節點所分攤到的問題會越簡單。這樣一來,那些高“幣齡”節點獲得記賬權的概率自然也就越高了。
我們知道,在現實中,一個股東在某公司的股份中所占的比例越高,其利益和公司利益之間的捆綁就越緊密,因此他就越有動機關心公司的盈利。同樣地,PoS機制將記賬權交給擁有高權益的用戶,也可以實現他們與區塊鏈之間的利益捆綁,從而讓他們更有激勵確保記錄內容的真實性。
與PoW機制不同,PoS共識機制的核心是網絡中的權益,而不是單純的算力。這些權益不一定需要通過“挖礦”獲取,而是可以在交易所甚至OTC市場上直接購買。這個過程就類似于現實中的購買股票。
此外,和PoW機制相比,PoS機制的效率要高得多,其驗證一筆交易的機制要遠快于PoW機制,而消耗的能量卻遠小于PoW機制。自然,PoS也存在著一些潛在的問題:首先,其安全性還需要更進一步的檢驗。其次,產生和分配“幣”的機制設計難度較高,如設計不合理,則可能嚴重影響區塊鏈的公平。再次,其去中心化程度也被普遍認為不如PoW機制。
3.PBFT機制PBFT機制,即實用拜占庭容錯機制(practical Byzantine fault tolerance),由米格爾·卡斯特羅(Miguel Castro)和芭芭拉·里斯科夫(Barbara Liskov)于1999年提出。它對傳統的拜占庭容錯機制進行了修改。
PBFT機制的驗證過程包含三個階段:預準備階段、準備階段和確認階段。假設在系統中,總節點數為N個,“拜占庭節點”有f個。在預準備階段,由主節點發布包含待驗證記錄的預準備消息。接收到預備消息后,每一個節點進入準備階段。在準備階段,每一個節點驗證其正確性,將正確記錄保存下來發送給其他節點。直到某一個節點接收到2f個不同節點發送的與預準備階段接收的記錄一致的正確記錄,該節點才向其他節點廣播確認消息,然后系統進入確認階段。在確認階段,直到每個誠實節點接收到2f+1個確認消息,協議才終止,各節點對記錄達成一致。
在去中心化的情況下,利用PBFT機制可以實現區塊鏈的一致性,剔出多余的計算量,避免資源浪費。此外,在PoW機制和PoS機制中,不同節點都可以提出新區塊,因此在一定情況下可能會出現“分叉”問題;而在PBFT機制下,只有一個節點可以提出新區塊,因而不會出現“分叉”問題。我們在圖2中對這三種機制的特征進行了比較。
圖2 PoW機制、PoS機制和PBFT機制的比較
很顯然,無論是PoW機制、PoS機制,還是PBFT機制,都各有優劣之處。在實踐中,人們經常對這些機制進行組合,從而達到揚長避短的效果。
dpos共識機制是什么?
DPOS共識機制是基于POW及POS的基礎上,出現的一種基于投票選舉的共識算法。在DPOS共識制度下,持幣人根據手中持有的代幣投票選出一定數量的代表,來負責生產區塊和運營網絡。
以上就是關于對pow和pos機制的淺見,常見的共識機制有哪些的知識,后面我們會繼續為大家整理關于對pow和pos機制的淺見的知識,希望能夠幫助到大家!
