Go-Ethereum

Geth PoA Clique 認為多少確認是安全的?

  • July 9, 2019

在乙太坊 PoW 中,建議至少等待 12 次確認。

$$ Q $$: Geth PoA Clique 算法適用什麼規則?


到目前為止我最好的猜測:

下限:確認區塊難度總和 >= (floor(N/2) + 1) * 2

上限:確認區塊難度總和 <= N * 2

其中 N = 網路中的封印者數量

我乘以 2 的原因是有序密封器對塊難度的貢獻為 2,否則為 1。


更新。在閱讀了關於 PBFT 的 Castro/Liskov 論文 ( http://pmg.csail.mit.edu/papers/osdi99.pdf ) 之後,我相信2*f + 1a 的確認規則N = 3*f + 1也適用於 Clique。至少作為下限。上限可以保持不變。請參閱下面的評論。

由於到目前為止沒有人提供答案,我將嘗試總結我對此的研究。如果有人能夠提供更好的“故事”,我會將復選標記切換到它。

閱讀Castor/Liskov 的 pBFT 論文後,我相信 pBFT 的 66,6% + 1 規則也適用於 Clique。因此,50% + 1 不足以確保交易在重組後不能從鏈中刪除。

到目前為止,我只有一個例子作為證明:在一個有 5 個密封器(N = 5)的系統中,我可以有一個不誠實的密封器 S3 能夠將網路分成 {S1,S2,S3} 和 {S3,S4,S5 }(例如通過 DDoS 攻擊),因此 {S2,S3} 無法與 {S4,S5} 通信。只要 S3 參與(50%+1),兩個網路都將繼續執行自己的分叉。當他反過來時,他可以提出一個帶有交易 TX 的有效區塊並將其僅發佈到 {S4,S5},而另一方面創建一個具有雙花交易 TX’ 的替代區塊僅發佈到 {S1,S2 }。在 {S3,S4,S5} 中 50%+1 確認後,他可以停止在該子網中發佈區塊,讓 {S1,S2,S3} 變得更重。之後,他可以解除通訊的封鎖,GHOST 協議會通過選擇較重的鏈來解決分叉,

從這個意義上說,確認的最小數量必須是:66.6% + 1 [更準確地說:N - floor((N-1)/3)] 不同的封印者已經確認了交易,這類似於 pBFT。

關於上面問題中定義的“上限”(確認塊難度的總和 <= N * 2)。這實際上是沒有意義的,因為 S3 可以讓兩個分支執行足夠長的時間來滿足這個條件,然後,他可以通過停止另一個分支中的通信來給他想要的分支一個優勢。

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