第15节:安全事故5-出块相关攻击

小白入门:https://github.com/dukedaily/solidity-expert ,欢迎star转发,文末加V入群。

区块链中的交易排序是由矿工决定的,这使得矿工有套利空间,针对同一区块中的交易,主要有三种方式进行套利:

  1. 抢跑:指通过让特定交易排在目标交易前而获利,主要针对清算和套利交易;
  2. 尾随:指通过让特定交易排在目标交易之后而获利,主要针对预言机交易或大单交易;
  3. 三明治攻击:上述两种攻击形式的结合,让目标交易恰好加载两笔特定构造交易中间,从而获利。
    • 这种攻击大大拓宽了可攻击的范围,哪怕是一笔普通的AMM交易,都有可能成为针对对象。
    • 攻击者的第一笔构造交易制造更大的交易价格波动,待目标交易执行完成之后,紧接着执行第二笔构造交易,换回发动攻击的代币完成获利。
  4. 全节点矿工在交易确认前已经知道交易信息,所以它可以:
    • 获取对自己有利的信息,构造高gasfee交易,提前成交(谜底等协议)
    • 扩大approve授权额度:被授权人在委托人的新授权额度确认之前,可以构造一笔交易将原始的授权转移给别人,这样最终相当于委托人授权了:旧额度+新额度。

交易排序问题进一步导致了MEV(矿工可提取手续)问题,这是区块链发展的重要研究方向之一。