PoW 工作量證明 go實現

2021-09-01 10:25:33 字數 1007 閱讀 1569

proof-of-work 簡稱 pow,即為工作量證明

⚫通過計算乙個數值,使得拼揍上交易資料後內容的值滿足規定的上限,在節點成功 找到滿足的 hash 值之後,會馬上對全網進行廣播打包區塊,網路的節點收到廣播 打包區塊,會立刻對其進行驗證

⚫網路中只有最快解密的區塊,才會新增的賬本中,其他的節點進行複製,這樣就保 證了整個賬本的唯一性

⚫假如節點有任何的作弊行為,都會導致網路的節點驗證不通過,直接丟棄其打包的 區塊,這個區塊就無法記錄到總賬本中,作弊的節點耗費的成本就白費了,因此在 巨大的挖礦成本下,也使得礦工自覺自願的遵守位元幣系統的共識協議,也就確保 了整個系統的安全

type block struct 

func generatefirstblock(data string) block

func generationhashvalue(block block) string

//產生新的區塊

func generatenextblock(data string, oldblock block) block

func pow(diff int, block *block) string else

}}

優點

挖礦機制本身比較複雜,難度的自動調整,區塊獎勵逐步減半,這些是基於經濟學原理,能吸引和鼓勵更多人參與其中

越先參與的獲得越多,會促使加密貨幣初始階段迅速發展,網路節點迅速擴大,位元幣吸引了n多人參與挖礦

通過挖礦,發行新幣,把位元幣分散給了個人,實現了相對的公平

缺點

算力是計算機硬體提供的,直接耗費電力,對能源的直接消耗

隨著發展,算力已經不是單純cpu能搞定的了,gpu,fpga,以及asic礦機,這些可能不是個人能輕鬆實現的,導致算力中心化,長遠來看,與去中心和背道而馳,網路的安全受到威脅

位元幣區塊獎勵每4年減半,挖礦成本越來越高,當挖礦成本高於挖礦收益時,挖礦的積極性降低,整體網路不穩定

共識演算法之Pow工作量證明演算法go語言實現

pow演算法的簡介 pow演算法的代表性應用就是位元幣系統,pow演算法的原義是工作量證明演算法,故名思意就是幹多少活的證明。其實就是暴力求值,通過暴力迴圈 找到乙個合適的雜湊值,這篇文中由詳細的介紹 package main import crypto sha256 encoding hex en...

區塊鏈初始化與實現POW工作量證明

package blc import time strconv bytes crypto sha256 定義區塊 type block struct 定義區塊生成hash的方法 func block block sethash byte 4.生成hash hash sha256.sum256 blo...

區塊鏈初始化與實現POW工作量證明

package blc import time strconv bytes crypto sha256 定義區塊 type block struct 定義區塊生成hash的方法 func block block sethash byte 4.生成hash hash sha256.sum256 blo...