快速理解閃電網絡替換交易循環攻擊

2023-10-23 16:10:27

最近(202310月下旬)比特幣社區爆出閃電網絡可能存在重大缺陷,用戶可以構造一種攻擊手法來偷錢,英文名叫“lightning replacement cycling attack”。

我讀了它的原理,中文名可譯成“閃電網絡循環替換交易攻擊”。

它的攻擊原理如下。

首先解釋下閃電網絡的工作原理:

1.alice和bob雙方开通一個支付通道,就是共同开通一個2-2籤名的地址,他們一人持有一把私鑰。

alice和bob分別往這個2-2籤名的地址裏充值0.5btc0.6btc(金額可以任意選擇,我只是舉例),這兩筆充值交易都是發生在比特幣主鏈上的,礦工是要確認的。這樣這個支付通道的初始狀態就是0.5btc屬於alice,0.6btc屬於bob,我們記為(alice:0.5btc;bob:0.6btc)。

這樣在這個2-2籤名地址裏,alice和bob就可以相互支付,比如alice可以支付給bob0.1btc,這樣狀態通道的狀態就變成了0.4btc屬於alice0.7btc屬於bob,(alice:0.4btc;bob:0.7btc)。並且這樣的交易是不需要到比特幣主鏈上打包,只是發生在alice和bob之間的記账,這就叫支付通道。

alice和bob之間可以任意轉账,而不需要到主鏈結算,這就節省了大量的礦工費,並且可以實時到账,不再需要10分鐘的區塊確認。

但如果只能在兩個人之間相互轉账交易,那也沒啥用。

2.bobcarol之間也开通一個支付通道,初始狀態是bob有1.0btc,carol0btc,記為(bob:1.0btc;carol:0btc)。

3.這時,你看alice和bob之間有支付通道,bob和carol之間也有支付通道。

那alice就可以通過bob,向,carol支付比特幣。

支付過程如下:alice向carol支付0.1btc,事實在上述兩個支付通道裏發生如下的狀態變更

1)alice和bob之間的狀態變更為(alice:0.3btc;bob:0.8btc)

2)bob和carol之間的狀態變更為(bob:0.9btc;carol:0.1btc

3)這樣就完成了從alice向carol轉0.1btc的交易。

4.當越來越多的雙方打开支付通道,並且實現了相互聯通,就形成了一個支付網絡了,我們稱之為閃電網絡。

當然詳細的技術解釋太復雜了,上述就是最精簡的解釋。

下面介紹下閃電網絡循環替換交易攻擊的大致過程,詳細的技術細節我也講不明白,那些opcode、合約和函數有點復雜。

1.攻擊者是alicecarol兩人,這兩人合謀去攻擊bob,bob是受害者。

2.alicecarol支付0.3btc

1)初始狀態通道如下(alice0.3btc;bob:0.8btc)和(bob:0.9btc;carol:0.1btc

2alicebob之間的狀態通道應該變更為(alice:0;bob:1.1btc

3bobcarol之間的狀態通道應該變更為(bob:0.6btc;carol:0.4btc

3.alice和carol決定合夥騙bob的0.3btc

1carol一直不去認領確認自己收到了來自alice支付的0.3btc,即carol不將閃電網絡的收款回執信息發給bob。這樣就導致bob也無法在閃電網絡內將alice0.3btc合法的納為己有。

2)到了一定時間,alice耍賴,直接在比特幣主鏈發起清算交易tx1,聲稱自己還有0.3btc,而bob在和他的狀態通道裏只有0.8btc

tx1這筆交易中有0.3btc是發給alice自己的地址(單籤),這樣alice就是試圖將不屬於自己的0.3btc偷為己有。

3)因為bob沒有拿到carol的收款回執,所以bob無法證明(alicebob)這個狀態通道當中狀態應該修改為(alice0btcbob1.1btc

4)一旦tx1在鏈上被打包,即alice真的偷到了0.3btc後,carol就會立刻在閃電網絡裏收下0.3btc,將收款回執發給bob

5)這樣,alice沒有真實發出0.3btcbob,而carol卻真實收到了bob0.3btc。所以bobalicecarol合夥偷走了0.3btc

6)注意alice在主鏈上發起tx1偷幣交易時,bob是有反制措施的,即向主鏈發起交易tx2證明alice在作弊,但因為bob沒有拿到carol的收款回執,所以tx2這筆交易還是挺麻煩的,但理論上是可做到。

而alice在看到tx2後,就會再次使用更高礦工費的辦法,重置tx1,以誘使礦工打包tx1,而拒絕tx2,這就所謂的“替換交易(replacement)”。

7)而目前开發者說,alice和carol的合謀,確實是可以讓讓bob的tx2在比特幣主鏈礦工上看起來更難合法化,而想要更清楚地證明tx2是合法的,需要修改協議,並且對主鏈來說是一個軟分叉,這就難了。

上述就是閃電網絡循環替換交易攻擊大致過程,具體的技術原理太復雜了,我也看不明白,我只是假設在網上看到的开發者發布的技術細節是正確的。

攻擊的辦法是兩個夾一個,而交易所是天然的和所有用戶开通了支付通道,所以交易所要遭殃了。

最後,我感覺這也不是啥大不了的事,軟件哪有沒bug的啊,會有辦法修復的。

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

推薦文章

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

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

加密蓮
107 3個月前

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

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

倪老師
106 3個月前

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

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

幣圈院士
111 3個月前

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

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

168超神
106 3個月前

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

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

我是周悅盈
88 3個月前

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

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

加密蓮
95 3個月前