1. 程式人生 > >20181117--深入淺出區塊鏈工作量證明

20181117--深入淺出區塊鏈工作量證明

記賬工作
大家爭相記賬,大家一起記賬就會引起問題:出現記賬不一致的問題,比特幣系統引入工作量證明來解決這個問題,規則如下:
一段時間內(10分鐘左右,具體時間會與密碼學難題難度相互影響)只有一人可以記賬成功
通過解決密碼學難題(即工作量證明)競爭獲得唯一記賬權
其他節點複製記賬結果
不過在進行工作量證明之前,記賬節點會做進行如下準備工作:
收集廣播中還沒有被記錄賬本的原始交易資訊
檢查每個交易資訊中付款地址有沒有足夠的餘額
驗證交易是否有正確的簽名
把驗證通過的交易資訊進行打包記錄
新增一個獎勵交易:給自己的地址增加12.5比特幣

驗證
在節點成功找到滿足的Hash值之後,會馬上對全網進行廣播打包區塊,網路的節點收到廣播打包區塊,會立刻對其進行驗證。

如果驗證通過,則表明已經有節點成功解迷,自己就不再競爭當前區塊打包,而是選擇接受這個區塊,記錄到自己的賬本中,然後進行下一個區塊的競爭猜謎。
網路中只有最快解謎的區塊,才會新增的賬本中,其他的節點進行復制,這樣就保證了整個賬本的唯一性。

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

進階閱讀比特幣區塊結構Merkle樹及簡單支付驗證分析,可以詳細瞭解區塊結構如何驗證交易。