為什麼 Ripple 的共識過程有 80% 的門檻?
如果 UNL 中 80% 的節點接受,則交易被確認。這 80% 的數字從何而來?也可以是 79% 或 81% 嗎?51%呢?
不同的節點可以有不同的門檻值(例如,為了更快的交易),還是它們都必須遵循相同的規則?
如果驗證者等到其他驗證者宣布共識後才自己聲明共識,那麼任何驗證者都不會宣布共識。所以你必須宣布共識,並希望你證明是對的。大多數時候你會。如果不是,您以後將無法確定結果,也不會將其傳遞給客戶。
如果您使用 75% 的數學確定性門檻值,很多時候您將無法確定並且必須重複該過程。如果你為數學確定性選擇了 90% 的門檻值,那麼你幾乎總是可以確定,但你會浪費時間。
影片有點誤導。事實上,任何門檻值都可以使用,如果你真的達成共識,你仍然會有數學上的確定性。但是,如果您將門檻值設置得太低,您將很少有把握。80% 是我們為數學確定性選擇的門檻值,因為它是一種折衷方案,可以經常快速地達到確定性。
也許這還不夠清楚。讓我換一種方式試試。當我們將交易報告為完全驗證時,我們希望在數學上確定這一點。我們不會做這樣的報告,直到我們這樣做。選擇 80% 作為共識門檻值可以讓我們快速達成共識,需要至少 20% 的驗證者完全惡意以延遲共識,並允許我們(在後面的步驟中)幾乎始終在數學上確定結果.
請注意,幾乎所有時間並非總是如此。有時,我們達到了 80%,後來並不確定結果。在這種情況下,我們會等到下一輪共識完成,並希望我們在這一輪中表現更好。
假設出於某種愚蠢的原因,您將門檻值設置為 10%。你會認為你一直有共識。但同樣明顯的是,很多時候並沒有真正的共識。如果有,你可以肯定它已經發生了(因為你會看到它)。但這通常不會發生,然後驗證者將不得不重新同步,客戶端將耐心等待網路自行修復,以便確認他們的交易。
通過共識過程的賬本仍然被“驗證門”擋住。在他們通過這道門之前,他們不會向客戶報告“完全驗證”。
80% 在模擬中工作得非常非常好。驗證者可以根據需要自由更改此門檻值。也許在未來的網路拓撲中,不同的門檻值將提供更好的性能特徵。
凌晨 3 點很難寫清楚。也許我會在我更清醒的時候重寫這個。