這篇文章主要討論分散式共識,包括什麼是分散式共識以及常用的三種分散式共識演算法:PoW(工作量證明)、PoS(權益證明)和DPoS(委托權益證明)。 ...
分散式共識
什麼是分散式共識?
分散式共識就是在多個節點均可獨自操作或記錄的情況下,使得所有節點針對某個狀態達成一致的過程。
有哪些常見的分散式共識演算法?
一般有3種分散式共識演算法:
- PoW(Proof-of-Work,工作量證明)
- PoS(Proff-of-Stake,權益證明)
- DPoS(Delegated Proof of Stake,委托權益證明)
什麼是區塊鏈?
區塊鏈是一種鏈式數據結構,由包含交易信息的區塊通過哈希指針、根據時間順序連接而成,也是一種分散式資料庫。區塊是區塊鏈的主要組成部分,每個區塊由區塊頭和區塊內容數據構成。區塊頭記錄了時間戳,並用於保證區塊鏈的連接性,區塊內容數據中包含了多條交易信息。
PoW
分散式共識包括兩個關鍵點:獲得記賬權和所有節點或伺服器達成一致。
PoW演算法十一每個節點或者伺服器的計算能力(即算力)來競爭記賬權的機制,它是一種使用工作量證明機制的共識演算法。也就是說,誰的計算力強、工作能力強,誰獲得記賬權的可能性就越大。
PoW演算法獲取記賬權的原理:利用區塊index、前一個區塊的哈希值、交易的時間戳、區塊數據和nonce值,通過SHA256哈希演算法計算出一個哈希值,並判斷前k個值是否都為 0。如果不是則遞增nonce值,重新按照上述方法計算,如果是,則本次計算的哈希值為要解決的題目的正確答案。誰先計算出正確答案,誰就獲得這個區塊的記賬權。
這裡的nonce值是用來找到一個滿足哈希值的數字,k是哈希值前導零的個數,標記了計算的難度,0越多計算難度越大。
PoW演算法的優點是相對公平、有容錯機制、完全去中心化、簡單易懂、容易實現。
PoW演算法的缺點是不適合私有鏈或者聯盟鏈,共識效率很低,每秒完成交易量少,存在阻塞和資源浪費問題,交易的服務費高。
比特幣採用的是PoW共識演算法。
PoS
PoS的核心原理是由系統權益代表算力來決定區塊記賬權,擁有的權益越大獲得記賬權的概率就越大。
這裡的權益是指每個節點占有貨幣的數量和時間,而貨幣就是節點所獲得的獎勵。PoS演算法充分利用了分散式線上記賬重的獎勵,鼓勵“利滾利”。
基於PoS演算法獲得區塊記賬權的方法與機遇PoW的方法類似,不同之處在於:節點計算獲取記賬權的方式不一樣,PoW是利用區塊的index、前一個區塊的哈希值、交易的時間戳、區塊數據和nonce值,通過SHA256哈希演算法計算出一個哈希值,並判斷前k個值是否都為0。而PoS是根據節點擁有感的股權或者權益進行計算的,每個節點在計算自己記賬權時,通過計算自己的股權或權益來評估,如果發現自己的權益最大,則將自己的區塊廣播給其他節點。
PoS將算力競爭轉變為權益競爭。與PoW相比,PoS不需要消耗大量的電力就能保證區塊鏈網路的安全性,同時也不需要在每個區塊中創建新的貨幣來激勵記賬者參與當前網路運行,這也縮短了達成共識所需要的時間。
PoS演算法中持幣越多或者持幣越久,幣齡就會越高,持幣人就越容易挖到區塊並得到激勵,而持幣少的人基本沒有機會,這樣整個系統的安全性實際上會被持幣數量較大的一部分人掌握,容易出現壟斷現象。
PoS演算法的優點是資源消耗低、達成共識周期短、交易服務費低。
PoS演算法的缺點是每秒完成的交易量較低、容易被壟斷以及無法處理分叉鏈的情況。
以太坊採用的是PoS共識演算法。
DPoS
在DPoS演算法中,通常會選出K個受托節點,它們的權利是完全相等的。受托節點之間爭取記賬權也是根據算力進行競爭的。只要受托節點提供的算力不穩定、電腦宕機或者利用手中的權利作惡,隨時可以被握著貨幣的普通節點投票踢出整個系統,而後備的受托節點可以隨時頂上去。
DPoS是在PoW和PoS的基礎上改進的,它的優點在於:
- 由投票選舉出的若幹信譽度高的受托人記賬,解決了所有節點均參與競爭導致消息量大,達成一致周期長燈問題。
- 每隔一段時間會調整受托人,避免受托人造假和獨權。
DPoS演算法的優點在於能耗更低、每秒完成交易量高、無壟斷情況、交易服務費低、更加安全。
DPoS演算法的缺點:持幣人投票的積極性不高。
DPoS演算法的缺點在於:故障問題解決效率低,易出現安全隱患,同時持幣人投票的積極性並不高。
以太股、EOS等使用的是DPoS。
作者:李潘 出處:http://wing011203.cnblogs.com/ 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。