情人節幣圈合約圖片
❶ 怎麼洗閃電貸的錢
如果我跟你說,有人不需要你任何抵押物,也不需要做任何信用檢查就可以借給你幾百萬美金,你會怎麼想?
如果我又說,這筆錢只能借給你一秒鍾,你又會怎麼想?
在區塊鏈上的去中心化金融領域,我剛才說的這些並不是逗你玩,而是真實存在的服務。並且已經有人利用這類服務,用少到幾乎可以忽略不計的成本賺取了巨額利潤。
這種服務就是閃電貸Flash Loan。
閃電貸的原理
要理解閃電貸的原理,我們先要了解以太坊交易的原子性。
所謂原子性就是,以太坊的一筆交易是不可分割的最小單位,要麼成功,要麼失敗,不可能成功一半失敗一半。
舉個例子,張三向李四轉一個以太幣。如果交易成功,那麼張三賬戶上少一個以太幣,李四賬戶上多一個以太幣。如果失敗,那張三賬戶不變,李四賬戶也不變。
不可能出現交易成功一半失敗一半,也就是張三少一個以太幣但李四賬戶不變,或者李四多一個以太幣但張三賬戶不變。
我們知道,以太坊的交易除了以太幣轉賬外,還可以調用智能合約。
調用智能合約也具有原子性。如果一個智能合約改變了多個數值,那這個調用如果成功,這些數值都會被改變,如果失敗則這些數值都不會被改變。不會出現一次調用改變了部分數值而另一部分數值保持不變。
更重要的是,如果一筆交易調用了多個智能合約,那所有這些調用也具有原子性,要麼這些調用都成功,要麼都失敗。不會出現部分成功,部分失敗。
閃電貸就是利用了以太坊交易的原子性。
閃電貸規定,你可以從我這里借出任意多的代幣,只要我有。隨便你用它干什麼,但是必須要保證在同一個交易里歸還本金和利息。
由於這筆交易有原子性,要麼成功、要麼失敗。如果成功你還本付息,放貸機構賺利息。如果失敗,就等於這筆操作從來沒有發生過,也就是你從來沒有借過錢。
由於這里我們用技術保證了,放貸機構穩賺不賠,所以就根本不需要抵押物和什麼信用檢查。
而且由於你只是瞬間佔用了這些資金,所以利息是很低的。比如aave每筆閃電貸只收萬分之九的手續費。
由於所有的借和還是在一個交易里瞬間完成,所以這種貸款方式就有了這個名字,閃電貸。
套利
剛才我們講了閃電貸對於放貸機構的好處。那就是穩賺不賠。
那這種只能借一瞬間的貸款對於借款者有什麼用呢?
顯然,你用這些錢去買一套房子,或者進行其它區塊鏈下的投資是不可能的。但是我們可以在一借一還之間,通過調用其它智能合約來賺錢。
一種比較簡單的賺錢方法是套利交易(Arbitrage)。
假設有一種代幣T,它在去中心化交易所DEX A的價格是50USDT,而在去中心化交易所DEX B的價格是55USDT。
那我們就可以構建這樣一筆交易。
從閃電貸合約F中借出100,000USDT
在去中心化交易所DEX A以50USDT的價格買入2000個代幣T
在去中心化交易所DEX B以55USDT的價格賣出2000個代幣T,得到110,000 USDT,賺取差價
還給閃電貸合約F,100,000USDT本金,加利息,假設是100USDT。那剩下的9900USDT就是我們的利潤。
通過以上這波操作,我們只需要付出十幾美元最多幾十美元的以太坊gas費就能空手套白狼,賺取近一萬美元的利潤。大家覺得是不是很妙呢?
閃電貸攻擊
當然,上面那個例子都是假設一切都是理想情況。有經驗的幣圈老韭菜都知道,實際上這種套利機會是很少的。
正當的方法賺不到錢,有人就動歪腦筋,通過不正當的方法賺錢。
有一些黑客就利用某些智能合約的漏洞。他們通過閃電貸獲取資金,然後利用這筆巨資攻擊有漏洞的智能合約竊取利益。這就是臭名昭著的閃電貸攻擊。
在2020年情人節晚上,黑客利用閃電貸和bZx協議的漏洞,用不到100美元的成本獲利超過350,000美元。
攻擊的過程是這樣的。280
黑客從dYdX協議,0成本借出 10,000 ETH ,當時價值2,800,000美元
他把其中的5500ETH抵押到Compound協議借出112WBTC
他又把其中的1300ETH轉入bZx,並用5倍杠桿賣出ETH買入WBTC。bZx為了完成這筆交易,他通過另一個協議kyber network在去中心化交易所uniswap里大量拋出ETH購買WBTC。由於uniswap相應池子深度不夠,導致在uniswap上WBTC/ETH 的價格由正常的38.5被推高到109.8。
然後黑客利用這個被推高的價格,拋出第二步中借出的WBTC,以高於市場平均價兩倍的平均價格:61.4獲得6871ETH
利用這6871ETH加上手裡沒用的3200ETH,還掉從dYdX借出的1000ETH。
這樣僅僅一個交易,黑客手裡憑空多出了71ETH。
這還沒完,大家還記得黑客在compound這條線的操作嗎?黑客之前質押5500ETH最後砸出了6871ETH,用來歸還閃電貸。
但是,歸還閃電貸之後,這5500ETH的倉位還在黑客手裡。
由於其它市場上WBTC/ETH 只有38.5,黑客立馬在其它交易市場用4300ETH換取了112WBTC,從compound里換出了5500ETH的押金,又賺了1200ETH,總共1271ETH。
按當時價格計算,黑客空手獲利$355,880。而他付出的成本只是一些以太坊的gas費,估計不會超過100美元。這簡直都不是空手套白狼,而是空手套大象了。
老實說,看這起攻擊的報告時,我真是忍不住拍案叫絕。雖然君子愛財取之有道。黑客偷錢肯定是不對的,但是他的手法的確是高,實在是高。
這次攻擊,簡單來說就是bZx協議里有個bug沒有檢測出風險,於是用五倍資金在uniswap上把錢對敲給了黑客。
由於發起這類攻擊需要百萬美金級別的資金。如果沒有閃電貸,黑客不容易籌集到如此多資金來攻擊,即使有那麼多錢,黑客可能也不願冒風險,萬一一個手滑攻擊不成,還賠了夫人又折兵。
有了閃電貸,黑客可以憑空借出大量資金,而且如果攻擊失敗,他可以放棄這筆交易回滾所有操作,就當什麼事情也沒發生過,除了一些以太坊gas費,也不會損失什麼。黑客和閃電貸dYdX協議沒有任何風險穩賺不賠,compound協議上也是一次正常的借貸和還款。
倒霉的就是bZx了,誰叫你有bug呢。
總結
從這我們也可以看出,閃電貸攻擊一般並不是攻擊閃電貸,而是利用閃電貸提供的資金攻擊其它有漏洞的去中心化金融協議。
有些人一聽閃電貸攻擊,就以為閃電貸是什麼洪水猛獸,把閃電貸批評一通。我說這純粹是瞎比比。
我認為閃電貸用技術手段提供了無風險借貸,提高了資金利用率,這絕對是一種創新。
黑客用它來干壞事,壞的是黑客而不是閃電貸。就好像壞人借了銀行錢去干壞事,你總不能罵銀行吧。
聽了我講那麼多,你是不是有點心潮澎湃,也想用閃電貸套個白狼啥的?
不過利用閃電貸需要編寫智能合約代碼,有一定的技術門檻。要想賺錢,先學寫代碼吧。