減輕 LMD GHOST 的 balancing attack 風險的提案

2021-09-29 21:09:55

譯者注:Balance attack 指的是攻擊者快速幹擾有相近算力子組的溝通。在此期間,攻擊者在一個子組發布交易(稱為交易子組),在另一個子組挖區塊 (稱為區塊子組),直到區塊子組的樹以高概率勝過交易子組的樹。Balance attack 的新穎之處在於利用 GHOST 協議把兄弟塊或叔塊算入選擇區塊得分的特性。這個策略使得攻擊者可以在與網絡隔離的情況下挖一個分支,在將它的分支並入競爭區塊鏈之前影響分支選擇過程。

eth2 的分叉選擇區別於 eth1 和“基於鏈 (chain-based)" 的 PoS 算法 (例如像 Peercoin 和 NXT 這些舊算法,但也有像 Tezos、Ouroboros 等的較新的算法) 的一個關鍵是,在 eth2,有非常多影響區塊”得分 (score)“的信息是並行到達的。

基於鏈的 PoS 算法:

減輕 LMD GHOST 的 balancing attack 風險的提案

(像在 eth2 裏) 每個 slot 上的委員會:

減輕 LMD GHOST 的 balancing attack 風險的提案

基於鏈的算法更容易證明其活性 (事實上,在某些情況裏活性已經被證明了),因為通常一次有一個單個行動者,使得它們充當"協作瓶頸(coordinating bottleneck)",讓每個人都對同一個分數達成共識。

下面是基於鏈的算法中活性的”稻草人證明概述“。

假設:

  • 在每個 slot 裏就有一個行動者 (即區塊提議者) 可以參與。

  • 誠實的區塊提議者在 slot 的前半發布他們的區塊

  • 網絡延遲的上限是半個 slot (因此是 δ<1/2,以 slot 為單位測量時間)。

  • 被分配到在 slot N+1 行動的行動者僅會基於他們在 slot N 前收到的信息行動。

我們對節點收到在時間 t 發出的信息的時間建模為區間  (t,t+δ) 的“雲” (到這裏為止,這只是陳述了同步假設的標准學術表述)。因此,存在兩種情況:

達成共識

減輕 LMD GHOST 的 balancing attack 風險的提案

沒有達成共識

減輕 LMD GHOST 的 balancing attack 風險的提案

請注意,只有當在 slot N 的參與者不誠實時才會出現沒有達成共識的情況。因此,如果被分配到某個 slot 的參與者是誠實的,那么要么 (i) 在該 slot 的末端每個參與者都對哪條是正確鏈達成共識,因為他們都是基於相同的信息計算分叉選擇的,要么 (ii) 攻擊者在之前那些他們沒有參與的 slot 上“用掉了” 一些儲備的參與權。因此,只有當攻擊者對每個誠實參與者有至少一個儲備的參與權時,即如果攻擊者被分到的 slot 多於誠實節點時 (也就是誠實大多數的假設被打破時),幹擾才能繼續。

現在看看”有很多並行證明“的情況。當有很多並行證明增加一個區塊的得分時,是沒有單一行動者創造瓶頸的。因此,攻擊者可以操縱網絡 (再加上有策略地對一些他們自己的驗證者廣播),以便在每個 epoch 末端構建就哪些信息算入分叉選擇沒有達成共識的狀態,從而使多條鏈中的某條鏈勝出。

請看論文 Ebb-and-Flow Protocols: A Resolution of the Availability-Finality Dilemma (動態協議:可用性與最終確定性兩難困境的解決方法),特別是第 4 和第 5 頁,那裏有對這種攻擊的說明。請注意,這種攻擊的確建基於一些在實踐中非常難以實現的網絡假設 (攻擊者對個人質押者的網絡延遲有非常精細的控制),但盡管如此,一個能抵抗這種攻擊的協議還是比一個不能的協議好。

提議的解決方案

提議的解決方案是引入明確的”同步瓶頸“小工具到分叉選擇上。特別是,我們可以增加以下規則:

1. 假設所有被分配到 slot N 的證明者的集體總權重為 W

2. slot N+1 裏的參與者僅會認為在 slot N 末前到達 (從參與者的角度) 的證明是有效的。

3. 在 slot N+1 的提議者應該在 slot N+1 的开端就馬上做提議。他們的提議其實是在選擇一條特定的鏈。在 slot N+1 的證明者看來,如果他們在 slot 進行了 1/3 之前就看到提議到達了,他們會將該提案視為等同於權重為 W/4 的證明 (這個得分調整只對 slot N+1 有效,在 slot N+1 後這個得分調整會復原)。

4. 把同步假設降低到 δ<1/3

減輕 LMD GHOST 的 balancing attack 風險的提案

分析

(請注意:為了分析的簡易,我們假設時鐘是完全同步的,以及任何實際的時鐘差異都是網絡延遲的一部分。)

在 slot 的末端,所有驗證者都已經收到一些證明集了。如果出現了攻擊 (例如,有 k≥1 的惡意證明者在 slot N 做證明),驗證者將很可能在每個區塊的得分上有分歧。但是,他們分歧的範圍將不會超過 k。假設 (在不喪失一般性的情況下) 有兩個競爭區塊,A 和 B,如果 score(A)−score(B)≥0,則 A "勝出",反之則 B 勝出。score(A)−score(B) 的分歧範圍的上限是 2k (即每個驗證者給出  score(A)−score(B) 值都將在[z,z+2k] 的範圍內,z 是個固定值)。

設 Wp 為提議者的權重 (即 Wp =上文論述的 W/4)。如果提議者是誠實的,他們肯定會遵循以下兩種行為:

1. 如果他們看到 score(A)−score(B)≥0,他們將提議 A 區塊,否則提議 B。

2. 他們將馬上提議他們的區塊,以保證所有的證明者都在期限前看到。

設 [z,z+2k] 為 score(A)−score(B) 分歧的區間。我們區分三種情況:

  • z<−2k

  • −2k≤z<0

  • z≥0

在情況 (1),提議者將給 B 投票,這樣證明者將看到在 [z−Wp,z+2k−Wp] 內調整過的得分;這裏整個區間都是負數,因此對 B 有充分的共識。

在情況 (3),提議者將投票給 A,這樣證明者將看到在 [z+Wp,z+2k+Wp] 內調整過的得分;這裏整個區間都是正數;因此對 A 有充分的共識。

在情況 (2),很大程度由提議者決定。取決於提議者的意見落在區間的哪個位置,提議者不是選擇 A 就是 B。因此,區間要么是 (i) [z−Wp,z+2k−Wp],要么是 (ii) [z+Wp,z+2k+Wp]。

如果是 Wp≥2k 的情況,請注意從情況 (2) 的定義 −2k≤z<0 來看,當 (2.i) z<0 且 2k−Wp≤0,即  z+2k−Wp 的上限是負數,也就是整個區間都是負的。當 (2.ii)  z>−2k 且 Wp≥2k,即 z+Wp>0,即整個區間都是正的。因此,充分共識是在 A 還是 B 取決於提議者的選擇。

現在,讓我們回到 Wp= W/4 的論述中。為了避免提議者起同步瓶頸的作用,上述推理中 Wp≥2k 的前提必須被打破;因此,必須有超過 W/4 的證明者在每個 slot 投票。

如果在任何單個 slot 中提議者起到了同步瓶頸的作用,所有誠實的證明者都將往該方向投票,使 score(A)−score(B) 的值與 0 偏差增大。為了避免其中一方在這個點上勝出,攻擊者必須在該 slot 展示足夠多的投票以與所有的誠實驗證者抗衡 (減去1/4 來抵消提議者在 slot 末端投票的效用);這需要遠超過 W/4 的證明。

因此,要維持一段時間的失活需要至少在每個 slot 上有 W/4 的惡意驗證者,或  ≥1/4 的驗證者是不誠實的。

來源 | notes.ethereum.org

作者 | Vitalik Buterin

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

btc日內再次下跌 短线應當如何處理?

盡管以太坊現貨ETF獲批是個好消息,但市場反應卻不如預期。在消息公布後,以太坊價格出現了小幅下跌,...

加密蓮
187 5個月前

7月23日、BTC(合約)ETH(合約)行情分析及操作策略

昨日收益還是不錯的,日內給出的現價空單分別止盈我們目標點位,恭喜跟上的朋友喫肉。時間一晃到月底了,...

倪老師
187 5個月前

幣圈院士:血與淚的教訓!交易者為何總是撞死在同一棵樹上?

幣圈院士談。交易市場中的幾種“死法” 在幣圈市場鱗次櫛比的海洋,風起雲湧,時常讓人感到驚手不及。在...

幣圈院士
195 5個月前

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...

168超神
192 5個月前

悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤

一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...

我是周悅盈
167 5個月前

btc完美盈利 晚間波動較大注意

昨日btc空單完美給到,最大化走出一千七百點空間~ btc: 日內开盤下跌繼續測試66000一线,...

加密蓮
175 5個月前