Verge Hack:它是怎樣的(第 1 部分)

時間扭曲、挖掘漏洞、DOS 攻擊等等。

加密貨幣愛好者喜歡告訴普通人區塊鏈協議的可靠性和安全性,這些協議為他們最喜歡的貨幣提供支持。 事實上,比特幣或以太坊等主要加密貨幣提供了相當程度的安全性,並且可以說比歷史上任何其他數字資產或支付系統都做得更好。 鑑於這些加密貨幣沒有任何東西支持,也不受任何人控制,這是一個相當大的成就。

然而,許多人敢於爭辯說,上述加密貨幣原則上不能被黑客攻擊。 這至少是一種戰術上的誤判,因為在某些情況下,這樣的言論可能會讓一個人處於尷尬的境地。 例如,如果貨幣仍然被黑客攻擊。

在這種情況下,如果沒有別的辦法,也許你至少應該解釋一下自己。

上個月,一名身份不明的黑客入侵了 Verge,這是一種相對較小的加密貨幣,專注於用戶匿名。 4月6日至1日期間,一名身份不明的黑客560次成功控制了Verge網絡,持續數小時,期間其他用戶無法進行支付。 更糟糕的是,在這些時間間隔內,黑客以每秒 80 個代幣(約 1 美元)的速度發行假冒 Verge 代幣。 結果,黑客鑄造了價值超過 XNUMX 萬美元的加密貨幣。

這種情況可以毫不誇張地說是災難性的。 Verge 遭到大規模黑客攻擊。

但這該怪誰呢? 這是 Verge 開發人員的錯誤、加密協議中的基本漏洞還是其他原因? 這種情況會發生在較大的加密貨幣上嗎?如果會發生,如何避免?

對於這種黑客攻擊,許多細節始終不清楚。 然而,在這種情況下,可以識別出主要的漏洞:

時間戳欺騙:無意的錯誤還是危險的謊言?

乍一看,這個漏洞似乎是一個bug,但實際上它是一個創建“不准確”時間戳的特殊函數。 在區塊鏈協議中,各個交易(通常是網絡成員之間的傳輸)被分組到單個塊中,然後進行驗證。 每個區塊都有一個關於其形成日期的時間戳。 即使區塊鏈協議正常工作,這些時間戳的順序也可能會被破壞 - 例如,區塊 100 的時間戳可能會變成 後 塊101。這是因為在拒絕向第三方授予權利的去中心化網絡中,建立適當的時間同步根本不容易。

鑑於數據通過點對點網絡傳播所需的時間不可預測,即使各方都善意行事,區塊也可能會出現亂序。 換句話說,在這方面至少必須允許有一點靈活性; 就 Verge 而言(至少在黑客攻擊之前),該協議允許節點對區塊中指示的當前時間“不一致”,並且去同步可能長達兩個小時。

黑客通過偽造時間戳開始攻擊。 他像過去一樣發送了區塊,但沒有超過允許的 2 小時,這意味著這些區塊仍然可以被其他網絡節點接受。

這最終可能影響網絡安全的原因在於工作量證明網絡挖礦的性質。

採礦難度:牆只有很高才能起到保護作用

為了分散 Verge 網絡,您需要確保小型設備(如 MacBook)可以運行網絡軟件。 這反過來又導致網絡支付量的限制,即區塊目標時間的設置(因此,每秒交易數量的限制)。 Verge 網絡的運行速度為每 1 秒 30 個區塊。 鑑於網絡是去中心化的,人們可以提出一個合理的問題:是什麼阻止參與者以更高的速度發送區塊? 這不是一個微不足道的問題:如果每個確認的區塊都給形成它的人帶來獎勵,那麼礦工確認盡可能多的區塊是有利的。

簡而言之,這個問題的解決方案就是工作量證明協議的解決方案。 為了使網絡驗證一個塊,它必須包含直接來自塊本身的數據的密碼學複雜計算問題的解決方案。 這個問題的本質是其複雜性可以很容易地改變。 Verge以1秒形成30個區塊為目標,根據當前區塊確認率不斷調整挖礦難度; 如果用戶決定分配更多的權力來挖掘和生成Verge塊,並且這些塊生成得更快,那麼協議就會增加挖掘難度,並且塊確認速度會減慢。 相反,隨著功率的減小和生成塊的時間的增加, 礦業 變得更容易。 因此,當工作正常時,即使在現實世界中,當外部因素發生變化時——經濟波動、加密貨幣的市場價格、能源市場、帝國的興衰等——Verge 網絡也會不斷對變化做出反應,並尋求將區塊的形成轉化為單位時間來達到目標。

Verge用來計算當前任務難度的算法稱為“Dark Gravity Wave”; 它計算 2 小時內區塊確認率的加權平均值。 這是一個複雜的算法,細節在這裡並不重要。 重要的是,挖礦的難度取決於最後一個區塊的形成速率,而這個速率的計算當然與時間戳相關。

這正是問題所在:如果你創建了足夠多的錯誤時間戳,平衡就會被打破。 這正是黑客所做的——來自區塊鏈的數據顯示,在整個黑客攻擊過程中,每隔一個區塊都會發送一個時間戳,該時間戳比當前時間早一小時左右,這極大地混淆了挖礦難度設置算法。 如果協議有感知能力並且可以說話,它會說類似這樣的話:“哦不! 最近形成的東西沒有足夠的塊! 可能是挖礦難度太高了,我們需要降低它!”

由於時間戳不斷被偽造,協議不斷降低任務的複雜性,直到挖礦變得異常簡單。 大致理解:該任務的平均難度小時為1393093,39131小時,攻擊過程中降至0,00024414,即挖礦難度下降了99.999999%。 任務的複雜性越低,可以形成並發送到區塊鏈的塊就越多; 攻擊的結果是,僅 1 秒就發送了一個區塊。

此次攻擊的獨創性在於,黑客繞過了挖礦難度的限制,並且並未突破它。 想像一下,安全系統是一堵包圍網絡的牆,這堵牆太高太堅固,無法攻破,也無法翻越。 另一方面,黑客找到了一種降低它的方法 - 並且簡單地跨過了它。

這個漏洞並不明顯,這令人不安。 這種對協議的公開攻擊將導致網絡聲譽惡化。 此外,區塊創建速度的提高允許創建比協議允許的更多的 Verge 幣。 如果您是一位經濟學家,主張建立具有可預測供應流量比率的可靠貨幣,那麼這種情況應該會讓您感到興奮。

然而,降低複雜性也並不是那麼糟糕。 就其本身而言,這實際上不會給攻擊者帶來任何優勢。 隨著難度的降低,區塊形成對於黑客來說確實變得更加容易,但對於其他人來說也變得更加容易——礦工們一如既往地繼續相互競爭。 在這種情況下,我們假設雖然區塊生成速度更快,但成功的礦工應該像以前一樣保持分佈式和民主。 換句話說,無論挖礦難度如何,為了接管網絡,攻擊者仍然需要控制至少 51% 的系統算力。

然而,這名黑客確實接管了整個網絡,並且利用遠少於總算力 51% 的資源來實現這一目標。 他通過利用該漏洞的第二個部分來做到這一點,其中涉及在 Verge 中使用多種挖掘算法。

待續...

給文章評分
區塊鏈媒體
添加評論