Difficulty

工作量證明是為了安全還是效率?

  • November 7, 2018

我正在閱讀工作量證明(又名:pow、目標門檻值、難度等);我的理解是 pow 增加了驗證區塊頭的要求,因此良性和惡性節點都需要合理的時間來創建有效區塊;但我不明白這個速率限制與安全有何關係;即使沒有pow,讓每個區塊都是有效的,只要良性節點擁有大部分算力,他們就不能保證主鏈正確形成嗎?

例如,假設良性節點佔多數:

  • 使用 pow,惡性節點以mblks/min 生成新塊,而良性節點以bblks/min 生成新塊,並且b > m;
  • 沒有 pow,惡性節點以100000mblks/min 生成,而良性節點以100000bblks/min 生成;我們仍然有100000b > 100000m(儘管公共分類賬現在變得更大了);

上面是一個極端的例子,但你可以想像逐步調整 pow,從目前的 10 blks/min 到 20 blks/min,再到 30blks/min 等等。比特幣協議是否會因為調整而變得不那麼安全?

原則上,是的,即使在“極端情況”下,您的建議也可以奏效。但在實踐中,如果創建一個有效區塊只需要很少的工作,那麼每秒就會創建數万億個區塊(無論是好人還是壞人),並且不可能簡單地儲存或傳輸這麼多數據,而不是提到試圖將它們分類成一個鏈。您還會有更多的人通過創建多個命名同一個父節點的塊來互相踩踏,從而導致區塊鏈中出現許多需要一段時間才能解決的分叉。

但是改變難度時間表以使區塊以更高的平均速度創建並沒有錯(請注意,比特幣標準是每分鐘 0.1 個區塊,即每 10 分鐘一個區塊,而不是每分鐘 10 個區塊)。每分鐘 0.1 個塊的選擇是任意的,不同的速率可以正常工作。例如,萊特幣使用每分鐘 0.5 個區塊的速率。

最好不要太快,這樣大部分時間塊之間至少有幾秒鐘的時間,並且在找到新塊之前,該塊有機會通過網路傳播。否則你會得到更多的叉子,如上所述。

另請注意,一個常見的誤解是減少出塊時間會加快交易確認。交易對雙花的安全性與在區塊鏈上完成的總工作有關,而不僅僅是區塊的數量。因此,如果比特幣像萊特幣一樣將塊率提高到每分鐘 0.5 個,這意味著每個塊只展示了以前的 1/5 的工作量。要獲得與目前 6 次確認標準同等的安全性,您現在必須等待 30 次確認,而且仍需要 60 分鐘。

因此,雖然提高塊率不會有任何特別的問題(除了通過硬分叉更改協議所固有的問題),也不會有任何顯著的好處。

引用自:https://bitcoin.stackexchange.com/questions/80783