Go-Ethereum

乙太坊區塊時間評估

  • February 19, 2022

Solana 文件說:

在工作量證明共識中,這些區塊時間需要非常長(約 10 分鐘),以盡量減少多個驗證者同時生成新的有效區塊的機率。Proof of Stake 共識中沒有這樣的限制,但是如果沒有可靠的時間戳,驗證者就無法確定傳入塊的順序。流行的解決方法是用掛鐘時間戳標記每個塊。由於時鐘漂移和網路延遲的變化,時間戳只能在一兩個小時內準確。為了解決這個變通辦法,這些系統延長了區塊時間,以提供合理的確定性,即每個區塊的中位時間戳總是在增加。

Solana 文件說:

我的評價:

讓我們快速討論一下乙太坊的工作量證明。出塊時間太短了(3秒)。這種情況下,可以同時解決多個塊,如果是這樣,一個塊將被丟棄,另一個塊將被添加。現在,機會是節點不知道他們應該將哪個塊添加到他們的鏈中,但我想,無論哪個首先傳播給他們,他們都會添加。所以,簡而言之,這是一個問題,因為即使同時開采了 2 個塊,milliseconds解決它們時仍然存在差異,但是由於時間不能這麼信任,因此接收到這樣 2 個塊的節點可以’ t決定將哪個添加到鏈中,因此添加第一個收到的那個(它可能已經收到了一個塊 -blockA之後解決了blockB,但仍然收到blockA由於網路傳播)。這就是索拉納所說的問題,因為這有點不公平。

Q1:我的評估和 Solana 描述的上述問題是否正確?

Q2:從我上面複製/粘貼的段落中,它提到了這一點:

由於時鐘漂移和網路延遲的變化,時間戳只能在一兩個小時內準確。

為什麼這麼說an hour or two?乙太坊不允許添加與接收方區塊的本地時間相差超過 10 秒的區塊。任何的想法 ?

讓我們快速討論一下乙太坊的工作量證明。出塊時間太短了(3秒)。這種情況下,可以同時解決多個塊,如果是這樣,一個塊將被丟棄,另一個塊將被添加。現在,機會是節點不知道他們應該將哪個塊添加到他們的鏈中,但我想,無論哪個首先傳播給他們,他們都會添加。所以,簡而言之,這是一個問題,因為即使同時開采了 2 個塊,它們在被解決時仍然會有毫秒的差異,但是由於時間不能如此信任,接收到這樣 2 個塊的節點可以’不決定將哪個添加到鏈中,因此添加最先收到的那個(它可能已經收到了一個塊 - 在塊 B 之後解決的塊 A,但由於網路傳播仍然收到了塊 A)。然後'

乙太坊的目標阻塞時間是 13 秒,我想這是一個錯字。我知道如果您知道在您的時間範圍內創建塊的真正順序,人們可能會認為這種情況是不公平的。但是沒有人這樣做,正如您所說的“時間不可信”。在這種情況下(並假設兩個區塊導致相同的總難度並且具有大致相同的時間戳),沒有辦法做出“公平”的決定,因為你不能接受任何時間戳證明是有效的,你不能依賴接收順序也不是由於網路不穩定。

有趣的一點是,這樣的決定(先選擇/最後選擇)實際上可以用於對抗 PoW 網路來進行自私的挖礦攻擊,因為它給出了將選擇哪個分支的指示,比特幣和乙太坊的目前選擇規則都是 50如您在此處看到的,在相同高度/相同難度的競爭塊的情況下,每個塊的 % 機會(如果您好奇,本文對此進行了解釋

雖然此解決方案並非旨在解決您所描述的公平問題(它首先是一種針對自私挖礦的緩解機制),但我可以很容易地爭辯說,當沒有什麼可以確定地證明/反駁時,50 / 50 似乎你能做出的最公平的決定。

Q1:我的評估和 Solana 描述的上述問題是否正確?

他們真正談論的問題並不是真正的公平,而只是 PoW 區塊鏈中的分叉機率。這個機率基本上與塊率和塊大小有關(塊越大傳播時間越長)。當您將這種機率與糟糕的時間定義相結合時,您會陷入無法像您的範例中那樣區分衝突塊(事件)的情況,並且有一段時間區塊鏈處於不一致狀態。

他們只是利用分散時間同步中現有的困難來介紹他們的歷史證明,我將其理解為基於連續事件的集中時間定義,而不是分散的增加全球時間度量(如果有意義的話)。

Q2:從我上面複製/粘貼的段落中,它提到了這一點:

由於時鐘漂移和網路延遲的變化,時間戳只能在一兩個小時內準確。

我對這句話感到非常驚訝,並且顯然同意@Mikko Ohtamaa 的評論。電腦通過 NTP 定期同步時間並保持相對接近,我也很確定同步頻率已定義,因此平均時鐘漂移變得幾乎毫無意義……

我希望這能回答你的問題。

引用自:https://ethereum.stackexchange.com/questions/122064