BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

閃電貸:一筆以太坊交易能做什麼?

以太坊爱好者
特邀专栏作者
本文約4173字,閱讀全文需要約6分鐘
閃電貸就是“可組合性” 最極端的形態,極端到一切只在一瞬發生。
AI總結
閃電貸就是“可組合性” 最極端的形態,極端到一切只在一瞬發生。

編者按:本文來自:以太坊愛好者(ID:ethfans)編者按:本文來自:

以太坊愛好者(ID:ethfans)以太坊愛好者(ID:ethfans)

編者按:本文來自:

以太坊愛好者(ID:ethfans)

以太坊愛好者(ID:ethfans)

編者按:本文來自:

以太坊愛好者(ID:ethfans)

以太坊愛好者(ID:ethfans)

,譯者& 撰文:阿劍,Odaily經授權轉載。

標題:

Flashloans,魔法互聯網貨幣的新發明

鏈圈一直聲稱要變革金融業,最近終於開始有點跡象了,因為年輕的銀行家跟技術人員開始結盟了。

最新的一種玩法叫做“閃電貸(flash loan)”,就是說,你可以用代碼來指定一系列的操作,只要你的操作能保證在一筆交易內完成還款,你就可以無條件地貸款。

區塊鏈上的一筆“交易”(transaction)裡可以做很多事情;你不僅可以轉一次賬,你甚至可以在一筆交易中完成50 筆資金轉移。因為智能合約就跟計算機程序一樣,你發交易,就等同於“調用某個智能合約裡的某個函數”;一筆交易中可以調用很多個函數,自然也就能完成很多操作。

“閃電貸” 所要求的是,所有的操作都必須在一筆交易內完成(如果不能在一筆交易內還款就不能貸出資金)。所以你必須把所有步驟都編程到一筆發往智能合約的交易裡,把“借款、轉移(執行)、還款” 都包括進去。

……

如果交易結束時你不能還款,則交易就會失敗,就像所有事情都沒有發生過一樣。假設,一開始閃電貸合約給了你1 萬ETH,如果交易結束時沒有還上1 萬ETH,那就相當於你從來沒借出過1 萬ETH,因為當節點在執行交易時,只要交易失敗,則這筆交易中的所有操作都會全部回滾,就像沒事發生過。

很反直覺對吧?要是沒有執行所有操作並成功返回足夠的資金,那些ETH 就跟沒有動過一樣。

……

好吧,我們也覺得這就是魔法。這種魔法是一個圖靈完備的網絡(圖靈完備的編程語言+ 可自動執行的“賬戶” 即智能合約)上的最新發明。

所有運行以太坊軟件的計算機節點都運行著這個閃電貸智能合約,當這個程序(智能合約)被上鍊的的交易激活之後,就相當於合約在執行這筆交易指定的操作,如果最後能完成還款,則合約傳出“執行成功”,整個網絡的狀態完成更改;而如果不能完成還款,合約傳出“失敗”,交易影響到的其它合約狀態更改失敗,被改變的只有閃電貸合約的狀態。

  • 你要是聽得云裡霧裡,那也正常,因為這是一個全新的領域。你得懂編程才能使用這種合約,因為你需要連貫地指定每一個步驟。不過,如果你願意花幾週學習Solidity 教程,你也可以拿到免費的資金用於套利,用於捕捉一切可以用連貫的一系列步驟來完成的獲利機會。

  • 舉個例子,有個傢伙一把賺了36 萬美元,就一筆交易!這一事件也讓閃電貸抓住了所有人的眼球。

  • 但這並不是去中心化領域的唯一發明。比如,Fulcrum 具有超強的流動性;dYdX 智能合約支持免費的閃電借貸(flash borrowing),跟flash loan 是一樣的。一個新的DeFi 項目,Aave,也在用flash loan 的名義提供這樣的功能。

還有一種觀點認為,可以把CDP(MakerDAO 單質押品穩定幣系統中用戶的穩定幣債倉)這樣有點近似於永久貸款的債,變成一種像期票的token 。 (譯者註:在MakerDAO 系統升級(2019 年11 月)以前,只要你提供質押品,你就可以貸出DAI,利息不會實時償還,只在你還款時償還,所以只要你的質押品足夠多,你可以藉錢借到永久,因此近似於永續債務。)

……

閃電男孩

< https://etherscan.io/tx/0x4555a69b40fa465b60406c4d23e2eb98d8aee51def21faa28bb7d2b4a73ab1a9>


所謂套利,就是利用不同市場上的價格差來賺錢。套利的機會在所有金融市場上都存在,數字資產也不例外。套利活動可以幫助減小一種資產在不同市場上的價格差,因為套利活動也可以增加流動性

……

閃電貸的設計本意是讓開發者可以任意借貸而無需提供質押物。整個借貸、償還的過程都會在一筆交易內完成!開發者可以從Aave 協議的儲蓄資金池中貸出資金,條件是交易結束後,從資金池中藉出的流動性會原樣返回到池中去。如果不能返回那麼多流動性,交易就會失敗、回滾,保證儲蓄資金池中的資金不受損失。

在去中心化交易所之間套利

如此一來,就有更多人可以參與套利和清算,因為沒有初始資本要求。套利一般來說沒有什麼資本要求(100 美元到1 萬美元都有),但清算則要求大量資本來平掉債務人的倉位。 Compoud 和單質押品DAI(即SAI)中的平倉常常要投入價值超過100 萬美元的ETH 或者DAI。

PeckShield:硬核技術解析,bZx協議遭黑客漏洞攻擊始末

為展示閃電貸無可限量的潛力,我們做了一次套利,但實際上它可以用在很多別的地方。你可以查查我們發出的這筆交易:

(譯者註:從上面兩張圖中可以看出,交易所包含的操作是連貫性的,從A 地址轉移資金到B 地址,又從B 地址轉移到C 地址,最終回到合約地址)

PeckShield:硬核技術解析,bZx協議遭黑客漏洞攻擊始末

2 月15 日,有一位黑客動用借貸得來的大筆資金,先後使用Compound 協議置換資產、幹擾Uniswap 市場上的資產價格、影響Kyber 的報價,並最終通過bZx 提供的槓桿交易功能獲利,這一切,都是在一個區塊內完成的。更準確地說,這是在一筆交易內完成的,所用的正是上文提到的、由dYdX 協議提供的閃電貸款功能。

具體經過,在此不表,可見由PeckShield 和Hydro 社區提供的詳盡分析:

PeckShield:硬核技術解析,bZx協議遭黑客漏洞攻擊始末

DeFi 低調分享| 如何空手套白狼51 個BTC

從這些詳盡的分析中我們可以知道,這位黑客獲利的關鍵一環在於,他用借來的資金操縱了Uniswap 及Kyber 上的資產價格,而bZx 協議正是使用Kyber 作為其價格信息提供機制(也稱“預言機”),並最終在槓桿功能中給了黑客非常多的token,黑客拿到這些資產後賣出,就能償還一開始閃電貸的貸款。當然,黑客沒有平掉自己在bZx 協議的槓桿,也就是沒有還錢。

事情出來以後,bZx 團隊動用管理密鑰,把黑客的收益凍結了。

這件事在整個圈子裡引發了很多討論,包括但不限於:bZx 的處理方式是否合理? DeFi 協議應不應該留有管理員密鑰?去中心化的預言機到底安不安全?閃電貸的出現是好事還是壞事。

計算機科學裡面有個術語叫做“原子化”,指的是處理事務時,能否保證相關的操作總是同時成功、同時失敗,而絕不會陷入某些操作成功,某些操作失敗的境地;如果能,那就是保證了“原子性”。

但如果這兩件事情的處理具有原子性,你可以直接做一個操作同時搶票和預定酒店,到了時間如果搶票失敗,也會自動退訂酒店。這可以帶來極大的便利。

如果換一個具體的例子,你會發現這個概念絕不陌生:你想去某個地方旅遊,你總是希望交通和住宿能夠同時確定,比如,如果你搶得到高鐵票,你想挑一個離高鐵站近一些的酒店A;但如果你不能搶到高鐵票,你會想要挑另一家酒店B,甚至你會考慮換一個旅遊地點。

這時候你會發現,如果每個事項都得分別確定,你就只能安裝很多個APP 並且在它們之間不斷切換,非常麻煩。比如,如果不預訂A,又怕訂不上酒店;預訂了A,如果票搶不到,你又得退訂。

但如果這兩件事情的處理具有原子性,你可以直接做一個操作同時搶票和預定酒店,到了時間如果搶票失敗,也會自動退訂酒店。這可以帶來極大的便利。

同理,當你需要換乘才能到達目的地時,你也會希望路程上的多個車票要么一次買齊,要么全部不買,免得還要手動退票。

說起來很簡單,也符合大家的願望,但這種東西在我們的生活中仍然是極為罕見的。我們還是得下載很多個App,關注很多個公眾號和小程序。

但以太坊不是這樣。把以太坊當成一台計算機,把智能合約都當成程序,用戶發起的交易就像你在操作電腦一樣,能夠包含在一筆交易中的操作天然就具有原子性。程度的多寡是一回事,但—— 你真的可以一次性把這些程序用個遍,而且一旦某個操作沒有得到自己預期的結果就可以撤銷自己所有的操作,像沒事發生過一樣。

美好、強大到有點不真實。

提起DeFi,很多人會提到可組合性(composability)。一開始大家想的是,(舉例而言)有了MakerDAO,我們就有了穩定幣DAI;有了DAI 就可以做借貸市場啦,還可以做保證金交易(提供槓桿)。大家的想像有兩種,一種是:這些產品是可以自由結合的,而且互相都沒有准入措施,這樣功能當然會更強大,當然能創造價值;另一種是:這意味著,DeFi 具有創造性的潛力,從長期來看它必定會越來越繁榮,因為互相結合總能孕育出更為強大的功能。

但這兩種想法都幾乎沒有指明不同協議相結合時的具體樣貌,也沒有指明這種結合發生時候的時間概念。換句話來說,更多是從功能互補的角度來想像及闡述的,不是從計算機的角度來想像的。

投资
智能合约
ETH
歡迎加入Odaily官方社群