过去一年的时间里,DeFi可谓是迅速崛起,发展态势极其迅猛。虽然DeFi尚处于发展早期阶段,但活跃度和参与度都呈指数地在增长。在DeFi中,交易被打包的顺序极大地影响了DeFi的经济利益。例如,在 UniSwap 中,同样两个针对某交易对的买单,先被执行的交易将获得更多代币。若你在一笔买单前买入同样的代币,然后又赶紧卖出,则将毫无风险的获利。
用户A用10个x买入y。此时x=11,y=9.9,用户A获得0.91y。(x*y依然等于常量1000)
- 用户B用10个x买入y。此时x=12,y=8.33,用户B获得0.75y。(x*y依然等于常量1000)
- 用户A卖出所有y。此时x=10.82,y=9.24,用户A获得1.18x。(x*y依然等于常量1000)
以上例子可以看出,用户A通过提前交易,发出两个交易,一前一后包裹用户B交易,则可以“无风险的”获利。这里打上双引号是因为需要假设没有其他同样策略的用户A出现。在真实的市场环境中,用户B是一个真实的用户,而用户A则是一个机器人。
以UniSwap为例,当前市场上充斥着大量的提前交易机器人。这些机器人时刻监控着出现在以太坊mempool中的用户交易。如果用户是大额买入某币,那么它们立刻发出两笔交易,一笔是抢在用户之前(比用户交易Gas更高)买入该币,另一笔在用户之后(可以采用和用户Gas稍低或相同)卖出该币。
从技术层面来讲,想要把机器人创造出来并不难。那以太坊岂不是成了一个强盗肆意妄为的天堂?难道没有办法可以制约机器人了吗 ?
别着急,当然有,那就是运用其它机器人!
由于机器人之间也分不同级别,并拥有不同的策略。如果你去认真分析现在的以太坊交易,不但普通用户遭受机器人的打劫,较弱的机器人也会受到较强的机器人的打劫。
另外一个制约机器人的点是用户交易失败。所谓交易失败,是指用户的交易执行时,因为超过用户设置的滑点(slippage),而导致交易无法完成的情况。在上面的例子中,如果用户交易失败,那么机器人将无利可图,不但如此,它们还要损失掉矿工费,和交易手续费。
而非常讽刺是,让机器人最为害怕的用户交易失败,却是由机器人自己造成的(过多的机器人抢在用户前买入某币,导致用户买入时价格相差过大)。当你在浏览器中看到某个交易有这样的报错,它大多是因为机器人的打劫:普通用户害怕机器人,小机器人害怕大机器人。然而大机器人并不是终结。这里食物链的顶端不是别人,正式大家熟悉的矿工。
交易的排序决定了利润的分配,而对交易排序有决定权的则是矿工。矿工加入到这场收割的游戏彻底改变机器人的格局。