比特幣在沒有目標難度的情況下還能工作嗎?
假設比特幣節點根本沒有目標難度,而是每 10 分鐘接受一次具有最大 PoW 的區塊。忽略增加的頻寬(因為節點會廣播幾個候選塊),這會起作用嗎?還是對可調整的目標難度有一些技術需求?
編輯:澄清一下,我的意思是每個塊都被接受,但只有累積工作量最大的鏈被認為是規範的。也就是說,如果幾天前有一個弱區塊,而你挖了一個得分較高的區塊,那麼該弱區塊不會失效。如果你想重寫故事那麼遠,你需要替換它上面的每個塊。也就是說,它和比特幣一樣,沒有目標難度。節點只接受所有塊,並通過對每個候選提示的累積工作求和來計算最佳塊。
a) 就分佈式系統中的時間達成一致,尤其是兩個事件之間經過了多長時間,b) 確定何時準確找到候選塊,這並非易事。此外,當節點在離線後趕上鍊提示時,它無法確定是否在分配的時間範圍內實際找到了塊。
所以現在,我們需要發送更多數據,然後執行某種共識算法來同意是否/哪些候選人被及時送出,而不是有人找到一個區塊並宣布它。
但遺憾的是,我仍然看不到達成共識需要目標難度。
毫無困難,如果找到下一個塊,它就變得主觀了,因為標準不再是二元的。如果有任何困難是可以接受的,我們每時每刻都會發現數十億個區塊。假設所有這些區塊公告通過網路級聯。現在每個節點都會收到多個公告並進行不必要的區塊驗證,即使它們只轉發他們迄今為止在給定高度看到的最佳區塊。礦工如何知道何時應該切換到下一個高度?他們怎麼知道他們已經在高處看到了最好的街區?重組將一直在發生。如果礦工不斷地切換其區塊模板的前一個區塊以更新到最新狀態,他們將幾乎完全探勘與最終最佳鏈不兼容的候選區塊。大多數工作量證明將完全被浪費,並且根本不會有助於網路的安全性。此外,網路上的頻寬負載將急劇增加,以傳播所有塊。
尤其是擁有較大算力份額的礦工現在有各種額外的角度來攻擊前一個區塊而不是向前推進,例如自私挖礦和 Finney 攻擊變得更容易。擺脫困難會阻礙區塊鏈的進展,甚至會使多次確認變得不可靠。
比特幣設計的關鍵是創建一個系統,提供可靠的交易記錄*,無需任何中央協調或仲裁*。相反,比特幣是一個分佈式系統,其中使用“共識算法”達成共識,該算法可以由網路上的每個節點重複評估。
由於比特幣在今天執行,“區塊週期”的目標是明確定義的,並得到所有節點的同意。節點可以僅使用來自鏈的知識(即目標難度)來驗證某個塊是否是有效解決方案,而無需依賴任何時鐘。
在您提出的系統中,您無法僅通過查看區塊來判斷您是否看到了“10 分鐘時間跨度中的最佳區塊”。這意味著在不知道所有其他候選者的情況下,您不知道該塊是否是有效塊。結果是,當出現具有較低雜湊值的塊時,您認為有效的塊可能會變為無效。這是按照目前的方案不可能發生的事情,並且會產生嚴重的後果。今天,一個被認為有效的區塊可以安全地被開採,因為超過有效區塊所需的工作預計與繼續在該區塊上進行的工作大致相同。在您的方案中,只需找到更好的塊即可使先前接受的解決方案無效,然後您會根據現在無效的塊破壞工作”
所以當你開始在一個區塊上挖礦時,你需要確信你知道一個有效的解決方案,並且這個解決方案將保持有效。挑戰的通常方法是中央仲裁者收集候選人並決定選擇哪個塊並永久修復該決定。正如我在介紹中已經說過的,任何依賴於中央可信賴服務的東西都不符合比特幣的主要目標。