“閃電貸” 的多米諾骨牌效應或加快以太坊2.0的到來

買賣虛擬貨幣
閃電貸,是近來人們一直關注的焦點。近日,兩名駭客利用閃電貸(flash loans)攻擊了保證金交易協議 bZx,先是一次涉及金額為 35 萬美元的攻擊,隨後是一次涉及金額為 60 萬美元的模仿攻擊(copycat attack)。總而言之,這些攻擊令人驚歎。在每次攻擊中,一個身無分文的攻擊者可以瞬間借入價值數十萬美元的以太幣(ETH),透過一系列易受攻擊的鏈上協議,從被盜資產中提取數十萬美元,然後償還他們的以太幣鉅額貸款。所有這些操作都在一瞬間完成,也就是說,在以太坊的一個交易中完成。我們不知道這些攻擊者是誰,也不知道他們來自哪裡。兩個攻擊者基本上都是空手而來,然後捲走了價值幾十萬美元的資產,沒有留下任何痕跡。自從這些攻擊發生後,我一直在思考有關閃電貸以及其對去中心化金融(DeFi)安全性的影響。我認為,這需要拿出來與你們共同思考。簡而言之:閃電貸是一個巨大的安全威脅。但閃電貸並沒有消失,我們需要仔細思考它們對未來去中心化金融安全帶來的影響。什麼是閃電貸?
2018 年,以太坊區塊鏈上的開源銀行 Marble 首次提出閃電貸的概念。Marble 將自己稱為 “智慧合約銀行”,它提出了一個雖簡單但十分巧妙的去中心化金融創新:透過智慧合約實現零風險貸款。如何做到零風險貸款?傳統的貸方需要承擔兩種形式的風險。一個是違約風險:如果借款人卷錢跑路了,那顯然很糟糕;另一個是非流動性風險:如果貸方在錯誤的時間裡出借了太多資產,或者沒有及時收到還款,貸方可能會失去流動性,從而無法履行自己的義務。閃電貸減輕了這兩種風險。閃電貸的基本工作原理如下:在這筆交易中,你想要多少資金,我都會借給你。但是,在這筆交易結束之前,你需要至少將借走的資金還清。如果你沒法還清,我會自動回滾你的交易!簡單地說,如果你沒有還清貸款,整件事情就會被還原,就好像這筆貸款從未發生一樣。

這種操作只能發生在區塊鏈網路上。你不能在中心化交易所上實現閃電貸。因為智慧合約平臺一次只處理一筆交易,交易中發生的所有事件都作為一項批次操作被序列執行。你可以將其視為交易執行期間的 “凍結時間”(freezing time)。另一方面,中心化交易所中可能存在競態條件,以至於你的交易訂單無法正常執行。在區塊鏈網路上,所有程式碼都能一行接一行地執行。

閃電貸漏洞檢測程式碼,來源:0x 研發人員雷姆·科布洛門(Remco Bloemen)

讓我們思考一下這其中涉及的經濟學原理。傳統的貸方會得到兩方面的補償:他們承擔的風險(違約風險和非流動性風險)以及借出資本的機會成本(例如,如果我可以從其他地方獲得該借出資本 2% 的利息,借款人必須支付給我超過 2% 的無風險利息)。

閃電貸不一樣。閃電貸沒有風險,也沒有機會成本!這是因為借款人在其閃電貸期間擁有 “凍結時間”,在其他人看來,該系統的資金從未處於風險之中,也從未深受其累。因此,它不可能在其他地方賺取利息(它沒有機會成本)。

這意味著,從某種意義上說,成為一個閃電貸貸方很容易,且無需成本。這完全不合常理。那麼,在市場供求平衡時,一筆閃電貸的成本應該是多少?

基本上,閃電貸應該是免費的。或者,更恰當地說,會有一筆很小的費用,主要用來分攤包含額外的三行程式碼在以太坊上執行的成本,以使得資產可以快速借出。

閃電貸不能收取傳統意義上的利息,當然,如果閃電貸貸方收取更高的利率,就會很快被其他收取更低利率的閃電貸池所取代。

閃電貸使資本成為真正的商品。這種惡性競爭不可避免地會導致零收費或少量的象徵性收費。目前,交易平臺 dYdX 的閃電貸費用為零。而 AAVE 對閃電貸本金收取 0.09% 的費用。我認為,這是不可持續的,事實上,他們的社羣也已經開始呼籲將費用削減為零。

閃電攻擊對安全的影響

我越來越相信,閃電貸的重要影響是解鎖了閃電攻擊,即由閃電貸進行資本密集型攻擊。我們在最近的 bZx 駭客攻擊中就能夠看到這一點,我認為這只是一個開始。

· 為什麼閃電貸對攻擊者特別有吸引力?主要有以下兩個原因。

· 許多攻擊需要大量的前期資金(例如預言機操縱攻擊)。如果你在價值 1,000 萬美元的以太幣上獲得正投資回報率(ROI),這可能不是套利。

閃電貸最大限度地減少了攻擊者的汙名。就算我知道如何用 1,000 萬美元的以太幣來操縱預言機,如果我擁有那麼多以太幣,我也不想用自己的資金去冒險。我的以太幣將被標上汙點,交易所可能會拒絕我的存款,很難再進行洗錢。這簡直太冒險了!但是,如果我用閃電貸貸出的 1,000 萬美元,有誰會在乎呢?一切都會順利進行。dYdX 的抵押池,基本上沒有可能被汙染,而那就是我的貸款來源。

如今,交易所黑名單已經成為了區塊鏈網路安全模型的一部分,你可能不喜歡這一點。它相當脆弱和中心化。但這是一個很重要的現實,因為它揭示了這些攻擊背後的基本原理。

中本聰(Satoshi)在比特幣白皮書中說過,比特幣不會受到安全攻擊,因為:

“攻擊者會發現遵守規則會比破壞財富的體系和合法性更有利可圖。”

有了閃電貸,攻擊者在攻擊遊戲中不再需要進行偽裝。閃電貸從根本上改變了攻擊者所承擔的風險。

記住,閃電貸可以累積!但受限於 gas 的限額,你可以在一次交易中(超過 5,000萬美元)將每個閃電貸的可貸資金池集合起來,然後將所有資金投入到一個容易遭受攻擊的合約中。這是一個價值 5,000 萬美元的重錘,現在任何人都可以去砸一個鏈上糖果盒,可以很容易就砸出錢來。這太可怕了。

從長遠來看,這一切意味著什麼?我認為對 bZx 的攻擊改變了一切。

這不會是最後一次閃電攻擊。第二次 bZx 攻擊是對第一次攻擊的模仿,我認為,在未來幾個月內,將會掀起一波攻擊浪潮。現在,來自世界最偏遠地區的數千名聰明的青少年,正在戳倒這些去中心化金融樂高積木,用顯微鏡對它們進行搜尋,嘗試發現其中是否有某種漏洞,可以讓它們發動閃電攻擊。如果他們能夠成功地找到並利用一個漏洞,他們就可以賺到幾十萬美元,這對世界大多數地區的人來說,都是一筆能夠改變人生命運的資金。

而對於協議來說,閃電攻擊意味著威脅模型已經發生了改變。bZx 遭到閃電攻擊,與 DAO 駭客入侵後遭受重入攻擊(re-entrancy)一樣令人尷尬:你將淪為加密貨幣行業的笑柄。你應該已經看到這種情況發生了。

這些事件也讓我想到了密碼學中的一個老概念:礦工可提價值(MEV)。MEV 是礦工可以從區塊鏈系統中獲得的總價值,包括區塊獎勵和手續費,但也包括更惡性的價值提取方式,比如對交易進行重新排序或將惡意交易插入區塊等。

歸根結底,應該把這些閃電攻擊都看作是記憶體池中可以賺大錢的單筆交易。例如,在第二次的 bZx 攻擊中,駭客在單筆交易中獲得了價值 64.5 萬美元的以太幣。如果你是一名礦工,並且你將要開始挖礦一個新區塊,想象一下,看看前一個區塊包含的交易,然後對自己說:“等等,什麼?上一個區塊包含 64.5 萬美元的利潤?我還要挖一個大約只有 500 美元交易的新區塊?”

與其對區塊鏈網路進行擴充套件,不如回到過去嘗試重寫歷史,成為閃電攻擊者。想想看:只是這一筆交易,就比礦工老老實實挖礦 4 個多小時賺得多!

就好像有一個特殊的超級區塊,裡面包含 1,000 倍的正常區塊獎勵。如你所料,這樣的一個超級區塊,正常情況應該是一堆礦工競爭,然後某個礦工自己獲得這個區塊。

均衡狀態下,所有的閃電攻擊最終都應該由礦工來完成。(請注意,最終他們也應該盜取所有的鏈上套利和流動性。)但具有諷刺意味的是,這將對閃電攻擊起到威懾作用,因為這將使得攻擊者無法利用他們發現的漏洞來獲利。也許礦工們最終會透過私人渠道來收集攻擊程式碼,並向未來的攻擊者們支付一筆中介費。從技術上講,這可以透過零知識證明來實現。

這些都相當科幻,礦工們顯然不會這麼做。

為什麼?

有很多理由。首先,操作起來很困難,會涉及大量的工作,以太坊虛擬機器(EVM很難被模擬,風險也很高,存在導致資金損失或造成孤塊的漏洞,從而引發軒然大波,流氓採礦池可能會出現公關危機,並被冠以 “以太坊敵人” 的稱號。目前,如果礦工這麼做了,可能會在商業層面以及在孤塊上損失更多,這比他們嘗試攻擊的成本更高。

這是目前的真實情況,但不會持續很久。

這為以太坊加速過渡到以太坊 2.0 提供了另外一個動力。以太坊上的去中心化金融,雖然令人驚歎和著迷,但已經絕對和不可挽回地被打破了。去中心化金融在基於工作量證明的區塊鏈上不穩定,因為所有高價值交易都會被礦工重新分配。

對於可以大規模執行的系統,往往需要最終性(finality),即礦工無法對已確認的區塊進行重寫。這將保護以前的區塊不被重新分配。另外,如果去中心化金融協議存在於獨立的以太坊 2.0 分片上,它們將不容易受到閃電攻擊。

據我估計,閃電攻擊給了我們一個很小但有用的啟示,即:這只是一個開始,我們離建好未來金融體系的可持續架構還有很長的一段路要走。

目前,閃電貸仍會是新常態。也許從長遠來看,以太坊上的所有資產,包括交易所、Uniswap 持有的所有抵押品,甚至 ERC-20 本身,都可以用於閃電貸。

但誰知道呢?畢竟也只是寫幾行程式碼的事。

哈西布·庫雷希(Haseeb Qureshi)是跨國加密貨幣風險基金蜻蜓資本(Dragonfly Capital)的管理合夥人。本文系作者本人觀點,不代表 CoinDesk 中文版立場。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;