pow(proof of work)工作量證明
-工作量證明即挖礦,通俗來說就是幹的越多,收穫越多。
-即通過與或運算,來計算出乙個滿足規則的隨機數,即獲得了本次的記賬權。
-在發出本輪需要記錄的資料之後,全網其他節點驗證之後一起儲存。
-乙個符合要求的區塊雜湊值block hash由n個前導的零組成(零的個數取決於網路難度值),如果要得到合理的區塊雜湊,則需要進行大量的計算,計算時間取決於機器的雜湊運算速度。
-當某個節點提供了乙個合理的block hash值,說明該節點確實進行了大量的嘗試運算,是概率事件。
-當節點占有全網n%的算力時,該節點有n/100的概率找到block hash。
-區塊鏈是基於網際網路的去中心化賬本,各節點均需要有乙份完整的賬本,但是各個節點不能同時記賬(節點在不同的環境,會接收不同的資訊),否則會導致賬本的不一致,而共識機制即規定了哪個節點有權記賬。
-新區塊鏈必須找到一種不同的雜湊演算法,否則面臨位元幣算力攻擊。位元幣已經吸引全世界大部分算力,其他再用pow共識機制的區塊鏈應用很難獲得相同的算力來保障安全。
應用:位元幣
-以每個節點的計算能力(即「算力」)來競爭記賬權,即pow機制。
-位元幣系統中任一節點若想生成乙個新的區塊並寫入區塊鏈中,必須解出bitcoin系統中的難題,即完成一定量的工作。(將不同的nonce輸入,進行sha-256雜湊運算,找出滿足給定數量前導0的雜湊值)
-難題的三要素:工作量證明函式、區塊、難度值
工作量證明函式:sha-256函式
難度值:由區塊hash的前導0的個數決定(零的個數越多,則難度越大),並且被設定為無論節點算力如何,區塊產生速率為10min乙個。
注意:1、雜湊函式為單向函式(即由隨機數計算雜湊值較容易,但是由雜湊值倒推隨機數較難),即可認為得到小於目標難度的結果,大概率是通過計算(完成工作)獲得的。
2、關於難度值:
(1)為何用0的個數來標誌難度值:模擬擲骰子n次,定義「6以下」,難度係數為1,則「3以下」難度係數為2,「1以下」難度係數為6,即需要6倍的工作量。
(2)難度更新方法:在位元幣中規定乙個256位的整數為難度1,即0x00000000fffff...f。
若需要10min恆定,即全網算力需要約10min才可以滿足此規則(挖礦的hash小於這個數),則算力提高n倍時,難度值也要提高n倍。位元幣系統沒2016個區塊更新一次難度,即演算法如下:
[ new_target ] = [ prev_target ] * [ 前2015個區塊生成所需要的時間 ] / 1209600
注:1209600即每10min出乙個區塊時,出2016個區塊所需要的秒數
優點:1、容錯方面允許全網50%的節點出錯,若要破壞系統,則需要投入極大成本(若你有全球51%的算力,則可嘗試攻擊bitcoin)。
2、完全去中心化,節點自由進出;
3、演算法簡單容易實現,節點無需交換額外資訊即可達成共識。
缺點:1、不適合私有/聯盟鏈,為最終一致性,非強一致性且共識效率低。
2、每次達成共識需要全網共同參與運算,使得共識達成的周期長,效率低下,不合適商業應用,可監督性弱。
3、容易產生分叉,需要等待多個確認,區塊確認時間難以縮短
4、浪費能源,一來機器進行數學計算來獲得記賬權,資源消耗大於其他共識機制
5、永遠沒有最終性,需要檢查點機制來彌補其最終性。
6、某些礦池算力過大,因而可能違反去中心化。
區塊鏈共識演算法之POW
pow,proof of work,即工作量證明,是著名公鏈bitcoin所採用的共識演算法。那麼pow到底是什麼玩意呢?簡單來說,pow就是乙個證明,證明你確實做了一定量符合要求的工作。通常 這份工作 做起來有些難度,但是驗證方卻很容易通過結果來驗證是否做了相應的工作。一句話介紹下位元幣的pow到...
區塊鏈 PoW 共識機制的原理與認識
有效可靠 因為雜湊函式具有免碰撞 隱匿性以及不存在比窮舉更好地方法來使得雜湊值落在特定的範圍。利用時間戳 非對稱加密 雜湊函式以及共識機制解決了拜占庭將軍的問題。實現了去中心化 pow 的共識機制解決了去中心化結構中各個節點間資料不一致的問題。同時這一機制保證了在這個系統中每乙個節點的公平性,即每乙...
區塊鏈 共識演算法POS,DPOS
pos proof of stake 大多數地方叫權益證明,其實可以看作是股權證明,也是一種共識演算法,在基於權益證明的數字貨幣中,下乙個區塊的選擇是根據不同節點的股份和時間進行隨機選擇的。打個比方說,假如你買了1萬個數字貨幣,然後就放在pos機制中,這樣你就擁有了機會去獲得新的區塊從而得到獎勵,機...