區塊鏈共識演算法(1)POW,POS,DPOS

區塊鏈共識演算法(1)POW,POS,DPOS

目錄

1.PoW:Proof of Work

1.1概述

比特幣在Block的生成過程中使用了PoW機制,一個符合要求的Block Hash由N個前導零構成,零的個數取決於網路的難度值。難度的調整是在每個完整節點中獨立自動發生的。每2016個區塊,所有節點都會按統一的公式自動調整難度,這個公式是由最新2016個區塊的花費時長與期望時長(期望時長為20160分鐘即兩週[20160/60/24=14day],是按每10分鐘一個區塊的產生速率計算出的總時長)比較得出的,根據實際時長與期望時長的比值,進行相應調整(或變難或變易)。也就是說,如果區塊產生的速率比10分鐘快則增加難度,比10分鐘慢則降低難度

網路的難度值可以用下面的公式計算:
新難度值 = 舊難度值 * ( 過去2016個區塊花費時長 / 20160 分鐘 )
工作量證明需要有一個目標值。比特幣工作量證明的目標值(Target)的計算公式如下:
目標值 = 最大目標值 / 難度值
其中最大目標值為一個恆定值:
0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
目標值的大小與難度值成反比。比特幣工作量證明的達成就是礦工計算出來的區塊雜湊值必須小於目標值

PoW
雜湊函式產生的 hash 值是隨機的, 而且對原始資料一個很小的改動就能使得 hash 值和之前完全不一樣.,為了能得到一個合法的區塊, 我們可以往區塊裡新增一個冗餘的整數 nonce, 通過不斷地嘗試不同的 nonce 來找到合法的區塊 (例如可以從 1 開始不斷地累加嘗試)。當某個節點提供出一個合理的Block Hash值,說明該節點確實經過了大量的嘗試計算,當然,並不能得出計算次數的絕對值,因為尋找合理hash是一個概率事件。當節點擁有佔全網n%的算力時,該節點即有n/100的概率找到Block Hash.

1.2PoW優缺點

PoW即工作量證明,這是一種非常巧妙的方法。

它的優點是:
1)演算法簡單,容易實現;
2)節點間無需交換額外的資訊即可達成共識;
3)破壞系統需要投入極大的成本;


它的缺點也非常明顯:
1)浪費能源,會耗費大量電力;
2)區塊的確認時間難以縮短;
3)新的區塊鏈必須找到一種不同的雜湊演算法,否則就會面臨比特幣的算力攻擊;
4)容易產生分叉,需要等待多個確認;
5)永遠沒有最終性,需要檢查點機制來彌補最終性

1.3應用平臺

基於POW演算法的優點:安全, 完全的去中心化。 主流的數字幣都採用了這種方案; 如達世幣,萊特幣,以太經典,比特幣等。但是其效率低,平均每秒只能處理 5 到 7 個交易。


2.PoS:Proof of Stake

2.1概述

在 PoW中找到一個合法的區塊需要進行大量的計算, 會花費大量的電力和時間。為了加快生成區塊的速度, 於是誕生了PoS。
PoS:股權證明,類似於財產儲存在銀行,這種模式會根據你持有數字貨幣的量和時間,分配給你相應的利息。 簡單來說,就是一個根據你持有貨幣的量和時間,給你發利息的一個制度,在股權證明PoS模式下,有一個名詞叫幣齡,每個幣每天產生1幣齡,比如你持有300個幣,總共持有了30天,那麼,此時你的幣齡就為9000,這個時候,如果你發現了一個PoS區塊,你的幣齡就會被清空為0。你每被清空365幣齡,你將會從區塊中獲得0.05個幣的利息(假定利息可理解為年利率5%),那麼在這個案例中,利息 = 9000 * 5% / 365 = 1.23個幣,這下就很有意思了,持幣有利息。

F(Timestamp) < Target * Balance
balance 表示賬戶餘額, Timestamp是一個時間戳, 一般對 Timestamp會有一個時間範圍的限制, 例如一個小時, 也就是一個節點最多隻能嘗試 7200 次。
與POW相比,式子左邊的搜尋空間由Nonce變為Timestamp,Nonce值域是無限的,而Timestamp極其有限,一個合格區塊的區塊時間必須在前一個區塊時間的規定範圍之內,時間太早或者太超前的區塊都不會被其他節點接納。式子右邊的目標值引入一個乘積因子餘額,可見餘額越大,整體目標值(Target * Balance)越大,越容易找到一個區塊。因為Timestamp有限,POS鑄造區塊成功率主要與Balance有關。
PoS的設想是非常好的——採用PoS的貨幣的安全性直接與使用者相關,省去了礦工這個媒介。POS簡單說就是,每當發表一條訊息的時候,不用證明你付出了什麼代價,而要證明你擁有一定數量的錢。而擁有錢代表著,如果你作弊損害了這個系統的安全性,你的錢會貶值,這變相地讓你付出了代價。這東西更好的一點是,如果採用PoS,實際上連挖礦獎勵都不需要,因為PoS實際上不需要付出任何代價

2.2PoS優缺點

PoS即權益證明,它將PoW中的算力改為系統權益,擁有權益越大則成為下一個記賬人的概率越大。這種機制的優點是不像PoW那麼費電,提高了處理效率; 基於 POS 的 Ethereum 每秒大概能處理 30 筆交易左右。
但是也有不少缺點:
1)沒有專業化,擁有權益的參與者未必希望參與記賬;
2)容易產生分叉,需要等待多個確認;
3)永遠沒有最終性,需要檢查點機制來彌補最終性;


2.3應用平臺

恆星幣,狗狗幣,點點幣,雲儲幣等,ETH

2.4 PoS與PoW

POW 就是社會主義 按勞分配 多勞多得
POS 就是資本主義 按錢分配 錢生錢

3.DPoS:Delegated Proof of Stake

3.1概述

DPoS:Delegated Proof of Stake,委任權益證明
位元股的DPOS機制,位元股依靠使用信譽系統以及無摩擦、實時投票的機制,來創造出一個有限信任的團體。團體中的參與成員有權利創造區塊,將其加入區塊鏈並禁止非受信的參與方加入其中。這些受信任的參與方通過隨機分配的方式決定創造區塊,並且每一輪還會被改變中文名叫做股份授權證明機制(又稱受託人機制),它的原理是讓每一個持有位元股的人進行投票,由此產生101位代表 , 我們可以將其理解為101個超級節點或者礦池,而這101個超級節點彼此的權利是完全相等的。從某種角度來看,DPOS有點像是議會制度或人民代表大會制度。如果代表不能履行他們的職責(當輪到他們時,沒能生成區塊),他們會被除名,網路會選出新的超級節點來取代他們。DPOS的出現最主要還是因為礦機的產生,大量的算力在不瞭解也不關心比特幣的人身上,類似演唱會的黃牛,大量囤票而絲毫不關心演唱會的內容。

3.2 優缺點

DPoS在PoS的基礎上,將記賬人的角色專業化,先通過權益來選出記賬人,然後記賬人之間再輪流記賬。這種方式依然沒有解決最終性問題。
DPOS已經投入實際使用,成為位元股的核心共識演算法。


參考文獻:
[1] https://zhuanlan.zhihu.com/p/24486576
[2] https://blog.csdn.net/lsttoy/article/details/61624287
[3] https://www.jianshu.com/p/fb5edf031afd
[4] https://blog.csdn.net/erice_s/article/details/79768257
[5] http://www.8btc.com/onchain-paper-antshares