工作證明(Proof of work,PoW)描述了一種系統,它需要付出不小但可行的努力,以阻止對計算能力的輕率或惡意使用,例如傳送垃圾郵件或發起拒絕服務攻擊。2004年,Hal Finney透過使用SHA-256雜湊演算法的“可重用工作證明”的思想,將這一概念應用於保護數字貨幣。
2009年推出後,比特幣成為芬尼PoW理念的第一個被廣泛採用的應用(芬尼也是第一筆比特幣交易的接受者)。工作證明也構成了許多其他加密貨幣的基礎,允許安全、分散的共識。
這一解釋將側重於工作證明,因為它在比特幣網路中發揮作用。比特幣是一種數字貨幣,由一種稱為“區塊鏈”的分散式賬本支撐。該賬本包含所有比特幣交易的記錄,按順序“區塊”排列,因此任何使用者都不得將其持有的比特幣消費兩次。為了防止篡改,賬本是公開的,或者說是“分散式的”;修改過的版本很快就會被其他使用者拒絕。
在實踐中,使用者檢測篡改的方法是透過雜湊,即作為工作證明的長串數字。將給定的一組資料透過雜湊函式(比特幣使用SHA-256),它將只生成一個雜湊。但是,由於“雪崩效應”,即使對原始資料的任何部分進行微小更改,也會導致完全無法識別的雜湊。無論原始資料集的大小如何,給定函式生成的雜湊值都是相同的長度。雜湊是一個單向函式:它不能用於獲取原始資料,只能檢查生成雜湊的資料是否與原始資料匹配。
對於現代計算機來說,僅僅為一組比特幣交易生成任何雜湊值都是微不足道的,因此為了將該過程轉化為“工作”,比特幣網路設定了一定程度的“難度”。調整該設定,以便“挖掘”一個新的區塊,透過生成有效雜湊值(大約每10分鐘)新增到區塊鏈中。設定難度是透過為雜湊建立一個“目標”來實現的:目標越低,有效雜湊集就越小,生成一個雜湊就越困難。實際上,這意味著一個以非常長的零字串開始的雜湊。
“工作證明”最初是為解決日益嚴重的垃圾郵件問題而提出的。
既然給定的一組資料只能生成一個雜湊,那麼礦工如何確保生成的雜湊低於目標值?它們透過新增一個稱為nonce的整數(“使用一次的數字”)來改變輸入。一旦找到一個有效的雜湊,它就會被廣播到網路中,並將塊新增到區塊鏈中。
採礦是一個競爭的過程,但它更像是一種彩票而不是一場競賽。平均來說,有人會每十分鐘產生一個可接受的工作證明,但誰會是任何人的猜測。礦工們**在一起,以增加開採區塊的機會,從而產生交易費用,併在有限的時間內獎勵新創造的比特幣。
工作證明使得改變區塊鏈的任何方面都極為困難,因為這種改變需要重新挖掘所有後續區塊。這也使得一個使用者或一組使用者很難壟斷網路的計算能力,因為完成雜湊函式所需的機器和能量是昂貴的。
如果採礦網路的一部分開始接受替代工作證明,則稱為
工作證明要求計算機隨機參與雜湊函式,直到它以正確的最小前導零數到達輸出。例如,2016年9月14日開採的區塊#429818的雜湊值為00000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d。成功雜湊的塊獎勵是12.5 BTC。
該區塊將始終包含2012年的交易,涉及1000多個比特幣,以及前一區塊的標頭。如果有人試圖將交易金額更改為0.000001比特幣,則生成的雜湊將無法識別,網路將拒絕欺詐企圖。
PoW要求網路上的節點提供證據,證明它們已經消耗了計算能力(即工作),以便以分散的方式達成共識,並防止不良行為者超越網路。
這項工作本身就是武斷的。對於比特幣,它涉及SHA-256雜湊演算法的迭代。不過,一輪雜湊運算的“贏家”將mempool中的事務聚合併記錄到下一個塊中。因為“贏家”是按完成的工作比例隨機選擇的,它激勵網路上的每個人誠實行事,只記錄真實的交易。
因為它們是分散的和點對點設計的,像加密貨幣網路這樣的區塊鏈需要某種方式來實現共識和安全性。工作證明就是這樣一種方法,這種方法使其資源過於密集,無法試圖超越網路。其他的證據機制也存在,資源密集度較低,但也有其他缺點或缺陷,如股權證明(PoS)和燒毀證明。如果沒有證明機制,網路和其中儲存的資料將容易受到攻擊或盜竊。
對。它使用基於SHA-256雜湊函式的PoW演算法來驗證和確認交易以及發行新的比特幣。
PoS是一種共識機制,它根據節點持有的硬幣數量隨機分配節點來挖掘或驗證阻止交易。錢包中持有的代幣越多,有效授予它的採礦權就越多。雖然PoS的資源密集度要低得多,但它還有其他一些缺陷,包括在較小的altcoins中有51%的可能性受到攻擊,以及囤積代幣而不使用代幣的動機。