Nakamoto(中本聰)提出的工作量證明機制(PoW)同時包含了分布式共識的激勵和懲罰機制。
(一)激勵機制
如前述所言,
區塊鏈是一個公共可見的賬本,用來記錄交易的歷史信息。當一筆新的資產交易被創建時,資產轉出方須通過簽名腳本來證明自己是資產的合法使用者,并且指定輸出腳本來限制未來對本交易的使用者(資產收入方)。
如果是合法創建并簽名的,則該筆交易現在就是有效的,它將被廣播到區塊鏈網絡并被傳送,每一個收到交易的節點將會首先驗證該交易,確保只有有效的交易才會在網絡中傳播,而無效的交易將會在第一個節點處被廢棄,直至抵達挖礦節點。
挖礦節點在驗證交易后,會將這些交易添加到自己的內存池中,構建新的區塊。在PoW機制,礦工們接著通過反復嘗試求解一種基于哈希算法的數學難題來競爭獲得記賬權,具體而言,礦工不斷更換區塊頭的填充隨機數并計算這個區塊頭信息的哈希值,看其是否小于當前目標值。
如果小于,則成功“出塊”,隨后礦工將這個區塊發給它的所有相鄰節點。這些節點在接收后進行一系列的檢查標準去驗證區塊的正確性。檢查的標準包括區塊的數據結構和區塊包含的交易合法有效;區塊頭的哈希值小于目標難度(確認包含足夠的工作量證明)等。一旦一個節點驗證了一個新的區塊,它就會將新的區塊連接到累積了最大工作量證明的區塊鏈中,礦工挖礦成功。
在上述過程中,礦工獲得兩方面獎勵:
一是代幣獎勵。礦工構建的新區塊中的第一筆交易是一筆特殊交易,稱為創幣交易或者Coinbase交易。礦工挖礦成功后,將獲得這筆新創造的加密代幣。在
比特幣網絡,每隔10分鐘將一個新的區塊添加至鏈上,每添加一個區塊可以獲得50枚比特幣作為獎勵(每四年減半)。
二是記賬決策權與交易手續費。礦工擁有記賬決策權,有權決定將哪些交易添加至新構建的區塊,并對收錄在區塊內的所有交易收取手續費。
(二)懲罰機制
通過懲罰設計,PoW設置了兩道門檻:第一道門檻設在礦工競爭記賬權的時候,使得礦工不能隨便“發言”(新增區塊)。
一方面,礦工為獲得記賬權,須不斷求解哈希難題,因此付出“不菲”的成本,這一成本是沉沒成本,只要礦工想參與“發言”,那么無論他最終能否成功“發言”,他均必須付出這一筆建言成本;
另一方面,由于哈希難題的驗證要比求解來得簡單,對新出區塊的驗證成本微乎其微,因此只要礦工一錯誤“發言”(如交易無效、格式不符等),就會很快地被其他節點檢測出來廢棄掉,他之前付出的建言成本相當于對他的懲罰。
第二道門檻則設在區塊被成功添加區塊鏈后的修改,使得礦工不能隨意更改區塊鏈。在比特幣網絡,每2016個區塊(大約兩周)后,所有客戶端把新區塊的實際數目與目標數量相比較,并且按照差異的百分比調整目標哈希值,來增加(或減少)產生區塊的難度,確保每10分鐘 1 塊的恒定出塊速度。
挖礦難度值的提高,增加了攻擊的成本。攻擊者如果要構造出一條比真實區塊鏈更長的秘密區塊鏈,需要在比特幣網絡產出6個區塊的同時秘密產出7個區塊。
截至2018年2月,專業的比特幣挖礦機器(以Bitmain生產的AntMiner S9為例)價格為2700美元,這臺礦機以2017年2月27日為基準可挖0.0012枚比特幣。一臺AntMiner S9每天耗電33度,按照居民用電價格計算,大概每天的電費是2.6美元。假定AntMiner S9的折舊年限為3年,可推算每天固定資產折舊為2700/(365*3)=2.5美元,加上耗電費用2.6美元,得到挖出一枚比特幣的生產成本為(2.5+2.6)/0.0012=4250美元。
那么,無論攻擊成功與否,攻擊者都要付出4250*7=29750美元,約3萬美元的成本,而且這一成本隨著挖礦難度的增加不斷上升,再加上與誠實者的算力競爭,顯然對算力提出了巨大的要求:只有掌握了比特幣全網51%算力的攻擊者,才可以用這些算力來重新計算已經確認過的區塊。
上述兩道門檻使得無論是新增還是更改區塊,均要付出不菲的成本,尤其是對后者的要求更為苛刻,這就是Nakamoto面對“拜占庭將軍問題”的全新思路。從某種意義上來說,PoW機制的“工作量”相當于現代資產交易或拍賣的保證金制度,免除了隨意報價,同時還確保了比特幣各區塊哈希值的唯一性及難以篡改,這正是PoW這一機制設計精巧的地方。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。