工作量證明

工作量證明（Proof-of-Work，PoW）是一種對應服務與資源濫用、或是阻斷服務攻擊的經濟對策。

一般要求使用者進行一些耗時適當的複雜運算，並且答案能被服務方快速驗算，以此耗用的時間、設備與能源做為擔保成本，以確保服務與資源是被真正的需求所使用。此概念最早由和於1993年的學術論文提出，而工作量證明一詞則是在1999年由與Ari Juels.所發表。現時此技術成為了加密貨幣的主流共識機制之一，如比特幣所採用的技術。

技術原理 

工作量證明最常用的技術原理是雜湊函數。由於輸入雜湊函數的任意值，會對應到一個結果，而只要變動一個位元，就會引起雪崩效應，所以幾乎無法從反推回，因此藉由指定尋找的特徵，讓使用者進行大量的窮舉運算，就可以達成工作量證明。

我們若指定的16進位值的前四值，求，這樣統計上平均約要運行216次雜湊運算，才會得到答案，但驗算只要進行一次就可以了。如果想要增加難度，那就增加指定的位數即可。以SHA256函數舉例，假設我們要處理資料Hello World，並找出前四值為0000的，如果從Hello World0開始加上一個十進位數ASCII進行窮舉猜測，到Hello World107105時才會得到符合條件的：

 0000BFE6AF4232F78B0C8EBA37A6BA6C17B9B8671473B0B82305880BE077EDD9

驗算時只要將Hello World107105代入SHA256函式一次即可。

加密貨幣的應用

由於加密貨幣多由區塊鏈所建構，而區塊鏈本來就要依賴雜湊函數來做為資料正確無誤的擔保，所以在加密貨幣上使用工作量證明，是非常簡明的設計。由分散在各處的計算機，競賽誰能最早找出，搭配原本要打包的資料的窮舉猜測值（nonce），誰就等同獲得該區塊的打包權（記帳權）。此猜測值被找出後，與資料、雜湊值一起打包成塊後廣播，經多數節點確認與承認，打包者就能獲得打包該區塊所提供的獎勵。一般採用工作量證明的加密貨幣，好比比特幣，會設定成隨著參與競賽的算力增減，而調整找尋猜測值的難度，以維持合理的運作速度。

優點
架構簡明扼要、有效可靠。
由於要獲得多數節點承認，那攻擊者必須投入超過總體一半的運算量（51%攻擊），才能保證篡改結果。這使得攻擊成功的成本變得非常高昂，難以實現。
某種程度上是公平的，你投入越多的算力，你獲得打包權的機率也等比增加。

缺點
非常浪費能源。投入在一種加密貨幣上的能源，可能會超過一個小型國家的總使用量。
由於加密貨幣在世界上已成為一種投資標的，所以技术人员開發出了由ASIC組成的特製計算设备（矿机），壟斷算力。這與加密貨幣的去中心化思想背道而馳。
也因此，後期開發的加密貨幣有針對抗ASIC的演算法設計，例如以太坊採用的Ethash（Dagger-Hashimoto）算法。
後期開發的加密貨幣陸續使用了POS機制（例如以太坊）或DPOS機制（例如比特股﹑EOS）。

目前使用 PoW 機制的虛擬貨幣，市值排名前十的為： 

 BTC 比特幣
 DOGE 狗狗幣
 LTC 萊特幣
 XMR 門羅幣
 ETC 以太坊經典
 BCH 比特幣現金
 CFX
 BSV
 ZEC
 RVN

參考

參閱 
 區塊鏈
 雜湊函數
 加密貨幣
 加密電子貨幣列表
持有量證明

外部連結
 
 bit gold Bit gold.  Describes a complete money system (including generation, storage, assay, and transfer) based on proof of work functions and the machine architecture problem raised by the use of these functions.

密碼學
理論計算機科學
密碼貨幣
電腦安全