區塊鏈研究實驗室|可延展性攻擊:爲何如此重要

加密領域的許多人都聽說過“交易延展性”,並且它是“不好的”。但是,什麼是“交易延展性”,爲什麼不好?讓我們快速瞭解一下。

在像比特幣這樣的加密貨幣中,交易是在用戶之間轉移價值的原子操作。用戶創建事務並將其發佈到網絡。這些交易傳播網絡並最終被挖掘到區塊鏈中。接收者使用區塊鏈來確定交易是否得到確認。

在隨着成千上萬筆交易的進行,用戶如何快速識別它們以便能夠區分它們?如何在不使用某些緩慢的全局註冊表系統的情況下,以一整套相同的方式快速地,唯一地標識全球範圍內的所有斷開連接的用戶的交易?答案很簡單,您可以使用交易的加密hash作爲標識符。

加密散列允許任何人僅使用數據本身派生任何數據的指紋。指紋是唯一的,每次計算都是一樣的。即使更改1位數據,指紋哈希也會完全更改。

在比特幣中,事務的散列稱爲事務的txid,並充當該事務的通用唯一標識符。

很好,那麼什麼是延展性?

交易可延展性

可延展性是指在不使事務失效的情況下更改事務(TXID)標識符的能力。根據加密貨幣的不同,有很多方法可以做到這一點。跨所有加密貨幣的通用方式是通過簽名延展性,這是本文的重點。

ECDSA數字簽名的數學原理,可以更改簽名,但不會使其失效。雖然這不允許僞造這些簽名,但允許攻擊者更改包含這些簽名的事務的txid,這可能會導致嚴重後果。

可延展性攻擊

假設bob通過一個帶有標識符x的事務向alice支付了一些比特幣,假設在挖掘之前,x被擴展爲一個新的標識符x’。alice收到了付款,但bob不知道。既然alice知道bob不知道,她就騙bob再次付款。她重複這一過程,直到bob最終意識到發生了什麼,但這可能爲時已晚。在現實世界中,這種攻擊是按以下方式在交易所執行的:

 


在這種情況下,攻擊者:

1.紅色圓圈一女巫Sybil節點

2.使用女巫Sybil節點包圍交換節點(黃色圈)。

3.從交易所提款。

4.提款X離開交易所後,Sybil節點將提款延展至X'。

5.X'會傳播到網絡中。

當X'被挖掘到下一個區塊時,攻擊者已收到提款X',但是交易所後端尚未確認收到提款,因爲它正在區塊鏈中尋找X。知道這一點,攻擊者將繼續:

6.要求交易所重複提款,因爲“還沒有通過”。

7.沖洗結果並重復提款。

取決於交易所的規模大小,攻擊者可以採用“寄生策略”,通過這種方式,只需不斷少量體現就可以耗盡交易所。這使攻擊者可以在未發現的情況下,重複體現直到交易所管理人員發現爲止。或者攻擊者也可以採用“吸血鬼策略”,從而在系統管理員做出響應之前,以高頻率的大筆撤資消耗掉交易所。

無論採用哪種策略,這都是一個問題,加密貨幣架構師都需要去解決可延展性問題。

注意:實際上對於步驟(2)攻擊者無需完全包圍交易所節點。儘管攻擊成功的可能性較低,但僅需要幾個連接即可執行攻擊。包圍得越多,概率越高。

解決可延展性問題

比特幣(BTC)通過引入隔離見證(Segwit)而“解決了”延展性,隔離見證將簽名與TXID計算隔離開來,並用對該簽名的不可更改的哈希承諾來代替它。該散列用作指向簽名的指針,該簽名存儲在另一個數據結構中。爲了驗證交易簽名,驗證者使用哈希在其他數據結構中查找簽名,然後執行常規的ECDSA驗證。這消除了簽名作爲交易可延展性的來源,因爲它們存儲在交易之外,並且不能將指向簽名的哈希指針進行延展。但是它引入了對包含簽名的其他數據結構的依賴性。比特幣的一個小折衷,但意義重大。

雖然Segwit本身並不是一個壞主意,但部署和由此產生的部署政治在比特幣社區內部引起了分裂。這導致社區分爲比特幣(BTC)和比特幣現金(BCH)。儘管將隔離見證(Segwit)吹捧爲主要原因,但潛在的問題更多是與隔離見證的部署有關,而不是技術問題。另外,“永遠不要軟叉,永遠不要硬叉”的政策暗示着1MB塊大小實際上是鎖定的,這對於許多人來說是不可接受的。

反對隔離見證(Segwit)的技術論點更多地與它作爲軟叉的無用複雜性有關,而與它作爲硬叉的健全性無關。作者認爲,Segwit作爲軟叉是使比特幣破裂的源頭。然而作爲硬叉的Segwit是(並且仍然是)技術上合理的延展性解決方案。

本文轉載公衆號:區塊鏈研究實驗室,專注區塊鏈技術,產品社羣,經濟模型等全方位的知識體系輸出,爲大家帶來不一樣的社羣學習體驗。歡迎加入作者微信社羣:csschan1120

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章