他们是黑客吗? (预言机黑客?DEX 黑客?)
他们是攻击者吗? (闪电贷攻击者?智能合约攻击者?)
或者这是套利行为? (套利……糟糕的 DeFi 设计?)
2020 年 2 月14~18 日发生的两起涉及 bZx 的「攻击」事件,引发了一些有存在主义意味的反思,焦点是市场的做市商和交易员有没有新的设计空间。虽然这些攻击让人感觉新鲜,但如果我们拆解一下超前交易(front-running)的不同组成部分,就会发现这些攻击不过是另一种味道的超前交易。
链闻注: Front running,译作超前交易,或抢先交易,香港译作扒头交易,一般指交易员在执行客户买卖委托之前,先替自己的账户买卖,因为他知道客户的订单将改变市场价格。或者是交易员在自己发表的研究报告未广泛传播之前,先行买卖股票的行为。
如果说在法币的证券 / 衍生品交易市场,一切都是证券欺诈……那么在 DeFi 中,一切都是超前交易。
什么是超前交易?
超前交易包含三部分:
一个设置(下套)的交易
一个操纵市场的交易
一个获利了结的交易
上图:第一步,设置一个陷阱;第二步,操纵市场;第三步,获利了结。
下面,我将展示如何应用此框架来理解法币市场里的「市场操纵」问题,继而拆解 bZx 掠夺模式,并分析到底是什么让区块链上的超前交易成为一种未在法币市场出现过的新攻击模式。不仅如此,我还将解释为什么 DeFi 合约可以采用「无价」(priceless)的设计模式来解决相关问题。
传统市场操纵
假设你想针对某个股票进行某种内幕交易,比如特斯拉(股票代码:TSLA),你可能会(天真地)按如下步骤操作:
一个设置交易
-
购买一些短期 TSLA 看跌期权(puts)。
一个市场操纵交易
-
找到一个办法,在现货市场借入并抛售 TSLA 股票,如果在这个交易结束时,你能逃脱且不用偿还这些 TSLA 股票,那就更好了。
一个获利了结的交易
-
出售 / 行使你的短期 TSLA 看跌期权。
上图:第一步,购买 TSLA 看跌期权;第二步,卖掉(借来的?) TSLA;第三步,行使看跌期权。
这是一种非常幼稚的内幕交易操作,也是超前交易的一种形式(在 TSLA 股票被大量抛售之前,你的 TSLA 看跌期权就超前交易了)。那些盯着内幕交易的人,往往会监控可疑的大型期权交易,以发现这种设置交易。我不是律师,但是我想,这么操作的人大多数都会被抓住,因为要设置这种陷阱又不暴露个人身份且在交易间不留下痕迹,那是非常难的。在后面章节中我们会发现,这一操作弱点在 DeFi 里如何成为一个强项。
这个 「三步框架」也适用于更多的传统超前交易:
一个设置的交易
-
下一些出售 TSLA 的限价单(如果您有一些 TSLA 股票,那就这么做;如果没有,请先购买)。
一个市场操纵的交易
-
说服某个人购买大量的 TSLA 股票。也许你是一位投资银行家或私人财富顾问,认识某个有充足现金来推动这个市场的人。
-
购买某人的 TSLA 的订单流(Order Flow)。也许你认识某个观察到很多 TSLA 散户订单的经纪商,他愿意把这些订单通过你路由到交易所去交易。
-
有几种方式可以操作:
一个获利了结的交易
-
一旦你的市场操纵交易使得 TSLA 的买单价格上涨,并超过你的限价单的价格,你就可以推高的价格出售 TSLA 并获利走人。
我们在下面会发现,在 DeFi 中,这些交易并不总是按线性顺序发生。
拆解 bZx 式掠夺
下面我们把此框架应用于第一次 bZx 攻击,更详细的报道可在此查看。
一个设置的交易
-
在闪电贷借入 ETH,并用这些 ETH 在 Compound 上借入 wBTC。
一个市场操纵的交易
-
使用部分借入的 ETH 在 bZx 上建一个 5 倍 wBTC / ETH 多头头寸。
-
bZx 将在 KyberSwap 上发起大量 wBTC / ETH 的买入(路由到 Uniswap)以实现杠杆作用,从而导致 wBTC / ETH 价格在流动性不足的市场中飙升。
一个获利了结的交易
-
在 Uniswap 上以推高的价格出售 wBTC,获得 ETH。
-
如果这个市场操纵的交易成功,你获得的 ETH 不仅足够用来偿还第一步的 ETH 贷款,还有一些超额利润。
上图:bZx 遭到的第一次攻击。
步骤一:借入 ETH,借入 wBTC;步骤二:在 bZx 上开 5 倍 wBTC / ETH 多头,从而在 KyberSwap 上触发大量 wBTC / ETH 的买入;步骤三:卖出 wBTC,还掉 ETH 贷款,并获得额外 ETH 利润。
下面,我们将此框架应用于第二次 bZx 攻击,关于该攻击的详细报道可以在此查看。
一个设置的交易
-
在闪电贷借入 ETH,卖出部分 ETH 换取 sUSD。
一个市场操纵的交易
-
使用借入的另一部分 ETH,在 KyberSwap 上购买 sUSD (路由到 Uniswap),从而促使 sUSD / ETH 价格在流动性不足的市场中飙升。
一个获利了结的交易
-
按推高的价格,用第一步获得的 sUSD 在 bZx 上借到 ETH。
-
如果这个市场操纵的交易成功,你获得的 ETH 不仅足够偿还此前的贷款,还能有一些超额利润。
上图:bZx 第二次攻击。
步骤一:借入 ETH,卖一部分 ETH 换得 sUDS;步骤二:在 KyberSwap 卖出一些 ETH 换取 sUSD;步骤三:在 bZx 用 sUSD 借入 ETH,这样不但偿还了此前贷款还获得额外的 ETH 利润。
是什么让 DeFi 不同?
为什么本文标题会定为「一切都是超前交易」呢?如果使用上面的框架来分析其他 DeFi 黑客 / 掠夺 / 操纵事件,我们将看到:
设置交易和市场操纵交易是无法被制止的。只要人们可以在链上借用资产,并在去中心化交易所(DEX)上进行交易,步骤 1 和步骤 2 就总会发生。
获利了结的交易,矿工应该能识别出来。如果发觉某交易的发起人将获得一笔给定利润,这笔交易的矿工(执行人)可以向交易发起人收取「矿工可提取价值」,也有人称之为「榨干超前交易」(dry front-running)。
如果三个步骤是按顺序执行,以上陈述总为真;如果超前交易者在区块链的一个交易内完成所有三个步骤,那么上述陈述就更加正确了。当然,此时矿工也能更容易的识别出获利了结的交易。
另一个让 DeFi 不同的重要因素是闪电贷。不过,在本文提及的框架中,闪电贷仅影响三个交易中的一个:它使市场操纵交易比以往更有效。有几种方案可以减少闪电贷的影响:
-
交易所可以通过建设更有深度、流动性更高的市场来解决问题,但这很难,且耗费时间(一个魔高一尺道高一丈的游戏)。
-
DeFi 项目(比如放款 / 借款协议)可以尝试更多的使用抗市场操纵的价格流(price feeds),比如 TWAPs、medianizers 等。这最终会变成一个「猫鼠游戏」,直到执行市场操纵交易的成本高于从获利了结交易赚得的利润。
-
DeFi 项目可以选择不使用链上的价格流,而选择以一种「无价」(priceless)或「乐观」(optimistic) 方式操作。
在我看来,这些选择中的最后一个似乎最有吸引力。这就得重新设计 DeFi 协议中的激励结构,但我非常希望能参与这方面的对话。您可以在 这里 查看一个示例,它详细介绍了如何构建一个「无价」版本的 BitMEX,你也可以密切关注后续文章,我会试着重新设计一些知名 DeFi 项目的「无价」版本。
来源链接:http://lildex.com/everything-is-front-running/
撰文:Linda Xie,区块链投资机构 Scalar Capital 联合创始人,Coinbase 早期产品经理
翻译:卢江飞
来源:链闻