共識與網路
工作量證明
工作量證明,是一種透過「讓嘗試本身就很昂貴」來決定誰能加入下一個區塊的辦法。每個參與者都在搶著解一道沒有捷徑的數字難題——你只能靠一次又一次地猜,每秒上億次地猜,才可能找到答案。誰先撞上一個有效答案,誰就贏得發布下一個區塊的權利。這實際上是一場代價高昂的數字抽獎,而「多買彩券」意味著「多燒電」。
這道難題建立在密碼學雜湊之上。礦工把區塊資料,加上一個可以隨意更改的數字(叫隨機數 nonce),一起丟進雜湊函數裡運算,期望算出來的結果小於某個目標值——就像擲骰子,需要擲出一個低於極小門檻的數。這裡沒有任何取巧的辦法:唯一的策略就是不停地改隨機數、再重算,直到走運為止。可一旦有人找到了答案,其他所有人都能在一瞬間驗證它。難以產生,卻極易核對。
正是這種不對稱守護著整條鏈。由於每個區塊都嵌入了前一個區塊的雜湊,要想改寫一筆舊交易,攻擊者就必須重做那個區塊的工作量,以及它之後的每一個區塊,而且速度還要快過整個誠實網路延長鏈條的速度——這是一項貴到天文數字的任務。工作量證明,就是比特幣讓一個無領袖網路對歷史達成一致的方式:累積工作量最多的那條最長鏈,就是所有人都認作真相的那一條。
block + nonce → hash nonce=1 → 9f3a... (too big, retry) nonce=2 → c10b... (too big, retry) ... nonce=87142 → 0000a3... (below target — winner!)
不斷更改隨機數,直到雜湊值以足夠多的零開頭。找到它很慢,核對它卻是一瞬間的事。
用這種方式保護一條鏈會消耗大量電力,這也是一些較新的鏈改用權益證明的原因。
又稱
另見