Proof-of-Work

有保證的工作量證明系統嗎?

  • April 26, 2018

在我看來,諸如hashcash之類的工作量證明系統實際上並不能證明已經執行了一定數量的工作例如,在hashcan的情況下,第一個隨機散列選擇不能幸運嗎?因此幾乎沒有執行任何實際的“工作”?

我的問題是存在(和實用性)的方法,這些方法可以保證在一定機率內,在每種情況下都執行了給定的**最小“工作量” ,而不會影響平均大量。

那麼在 hashcash 上,未能證明工作的機率就是“走運”的機會。因此,對於 20 位零散列目標,大約是百萬分之一(2^20 空間中的前幾次隨機嘗試)。因此,百萬分之幾的雜湊罐實際上不會做任何工作。但是,如果我想將這種工作證明失敗的機率降低到更低,那麼簡單地增加零位空間是行不通的,因為它也會大大增加平均工作量。

將其與壓縮文件(例如 zip)的工作量進行比較。這是一個更可控的工作量,大致與輸入長度成正比。

假設我們製造了一個不可預測的文本生成器,輸入到 zip 中,輸入到雜湊函式中。工作量證明是生成器種子和最終雜湊。生成器輸出長度控制工作量,並且說你可以“猜測”最終的散列實際上是不可能的(與 1:2^20 相比)。

但是這個例子並不實用,因為它是對稱的,需要進行相同的工作進行驗證。

那麼,是否有任何保證(在機率範圍內)不對稱的工作證明系統?

您可以使用由多個子任務組成的挑戰。

例如,提供一個唯一的隨機字元串 $ R $ 並要求 $ n $ 具有不同的字元串 $ R $ 作為前綴,其 SHA256 和以 $ z $ 零。

在單個雜湊計算中,幸運猜測的機率為 $ 2^{-4z} $ ,因此在一個挑戰中多次幸運猜測的機率將非常小,如果 $ z = 10 $ .

通過挑戰所需的 SHA256 計算的數量為 $ n \times 2^{4z} $ , 但只有 $ n $ 需要進行雜湊計算來檢查結果(加上一點額外的東西來檢查沒有兩個字元串是相同的)。

這是不可能的,因為如果解決方案是有效可驗證的,那麼總是有可能(即使它發生的機率可以忽略不計)猜測它並驗證它是否有效

引用自:https://crypto.stackexchange.com/questions/55909