Defiサービス「bZx」で起こった価格操作取引に関する分析
マージン取引のDefiサービス「bZx」で、あるユーザーが1トランザクションで約1,271 ETH(355,880米ドル)の利益をあげたことが話題になっている。
このユーザーが1トランザクション内で連携させて利用したプロトコルは、dydx、compound、bZx、uniswapとなっている。トランザクションの流れを8つのプロセスに分けてを説明していく。
1)ユーザーはdydxのFlash loansを利用して、10,000ETHを借りる。
2)10,000ETHのうち5,500ETHをcompoundで担保にして、112WBTCを得る(ユーザーの手持ち通貨は4,500ETHと112WBTC)
3)bZxで1,300ETHを証拠金としてデポジットして、51.345576WBTCを担保に5637,6237ETHを借りるショートポジションを取る(通常のレートだと、1WBTCは38.5ETHだが、ショートポジションを取ったことでWBTCの価格が上がり、1WBTC=109.8WETHとなる)
4)Compoundで5500ETHを担保にして手にした112WBTCをUniswapを通して、6871.4127388702245ETHと交換する(この際の相場は、1WBTC=61.4WETH)
5)Flash Loansで借りた10,000ETHを返済する(3200ETH+6800ETH)
6)アービトラージによって、約71ETHの利益を得る。
7)さらに、2つのポジションが残っていることになる。それは、2)の処理で行なったcompoundで112WBTCを借りるために、担保した5,500ETHのポジションと4)の処理で4337.6237ETHを借りるために担保した51.345576WBTCのショートポジションである
8) 112WBTCに相当する約4300ETH(相場1WBTC=61.4WETH)を用いて、5500ETHの担保を解消する。
つまり、この取引を通して得た利益は、約71ETH+1200ETH(5500ETH-4300ETH)=1271ETH($355,880)となる
編集部のコメント
bZxを通して、ユーザーがDefiを価格操作しハックできた理由は、WBTCの市場流通量が少ないのにも関わらず、1ユーザーで供給と需要を無担保で行えたことにあると考えられます。無担保で行えたのは、Flash Loansと呼ばれているプロトコルのおかげです。Flash Loansは主にアービトラージに利用されていて、無担保でEtheremなどを借りることができます。
利用できる通貨は、「BAT、DAI、Ethereum、Kyber Network、ETHLend、ChainLink、Decentraland、Maker、Auguur、Synthetix、TrueUSD、USD Coin、USDT Coin、WBTC Coin、0x coin、Synthetix USD」となっています。
あたらしい経済編集部は、DeFi領域が未成熟だからこそ今回のハックが行われたと考えています。しかし、今後ともDeFiは日本の金融庁もフォーカスしているように、必ず大きくなる市場だと考えています。DeFiの発展に貢献しながら、緻密な分析記事など今後とも共有していければと考えております。
コメント:竹田匡宏(あたらしい経済)
(images:liuzishan)