【科普】一文讲明白"科学家",都用那些手段,让我们更接近神!
March 26th, 2022

有人说科学家是币圈神一样的存在,也有人说币圈是上帝赐给程序员最好的贺礼。。

我也一直好奇,通过搜集学习资料,一点点扒开他们神秘的外衣~~

币圈 以太坊生态链上的科学家,大概这几种攻击方式

抢跑(Front-running),

尾随(back-running),

和三明治攻击(sandwich attack)

闪电贷 (flashloan) ,

套利(arbitrage),

一、先复习下几个基本知识点

**区块链是如何记录和确认交易的?

**区块链是一个分布式系统,所以物理上要达成共识,确保记录交易的顺序。。最初中本聪 采用了 工作量证明 与最长连原则来确保,即区块的先后顺序,代表了时间顺序也就是交易顺序。 所以算力节点只需要对区块顺序达成一致即可。

2.所以,要想抢占时间顺序,本质上是抢占区块时间。

普通用户在交易交易在被递交后,会进入一个交易池(MEMPool)的地方。

矿工从交易池中选择交易打包进入下一区块。

这些交易会有一个顺序。 物理时间只是一个因素,而更重要的是旷工费。更高的旷工费能更快的确定区块时间。只有区块打包完成变成区块时间,交易才算被确认。

所以,GAS 在和一个链上都很关键。

以太坊 ,BSC关于底层的机制是差不多的。但是币安智能链 和以太坊有一些不一样,也不是二层链。

—— 扩展阅读
币安智能链基于权益的权威证明

1、什么是抢跑?

**抢跑(front-running)
定义:**指在同一个区块中,通过让某笔交易排在目标交易(被攻击交易)前而获利;在清算和套利交易中常发生。

冲土狗的时候,每次我们买不到。每次都被科学家抢了。网速快? 手速快?

其实网速再快,手速再快也是对物理事件毫秒秒级的影响,对区块时间影响忽略不计。。但是GAS 是可以到分秒的事件

也就是你手速网速物理事件比人家快乐100ms,但是人家GAS 比你高,区块确认比你提前了30秒。 你就败下来了

不但败了。DEX是根据可用的流动性自动调整价格,你不但浪费了gas,没抢到交易,浪费了gas。第二次,你不得不以更高的价格去再次下单。

科学家可以手动调大GAS,比你跑的更快,然而他们还不是最快的。

以太坊上,最快的是是矿工。矿工是打包交易的人,他们不仅能看见交易,甚至知道哪些交易会进入下一个区块,以及这些交易在同一区块中的顺序。
从技术角度而言,矿工可以通过对交易次序的干预,把自己的交易插入到合适的位置。在 Front Running 这件事上,没有人比矿工更具优势。

——扩展阅读其实front running 在现实世界中证券法中是被禁止的, 历史上有一个男孩, 造成了全球股市最大的FlashCrash 闪崩事件。
视频:https://www.youtube.com/watch?v=za6-ykbukug

2、什么是尾随(back-running)

back-running
**定义:**尾随(back-running):指在同一个区块中,通过让特定交易排在目标交易后而获利;在Oracle交易或大额交易中常发生。

不知道大家有人玩pancake 上的 预言机猜涨跌。下图。

操控很简单。
就是利用区块back-running 发生在交易最后的无法控制的30秒内。。就能改变方向。

3、什么事夹子,即三明治攻击(Sandwich Attcks)

三明治夹击(sandwich Attacks):该方式是以上两种形式的结合,让被攻击的交易夹在两笔矿工“伪造”的特定交易中间而获利。

一般热门一点的盘子(交易量过百万),都会有夹子。
我举个例子。这是昨天我看 TITI 这个项目上夹子。。前几日交易量都在百万以上。

2a4f被夹
2a4f被夹

上图中 9cc1 就是一个夹子机器人, 而2a4f 就是被攻击的对象。

再来看 抢先交易的那个机器人:

再看那个正常交易的。

上述案例,同样两个针对某交易对的买单,先被执行的交易将获得更多代币。当一个投资者执行一笔单比金额较高、滑点设置较大、Gas 设置偏低的交易时,很容易遇到“被夹”的情况,

Bot 会在同一时间段发送两笔 Gas 更高的交易,抢在你前面买入,而又紧随你的订单之后卖出,就将投资者“夹”在中间,完成了低买高卖的一次套利行为,可谓是将“毫无风险”地获利。不少交易者可能从未注意,就一直在默默地被鱼肉着。

4 、闪电贷(FlashLoan)

**闪电贷:是 DeFi无抵押贷款的新思路:**所有操作都在一笔交易(一个区块)中完成,它允许借款人无需抵押资产即可实现借贷(但需支付额外较少费用)。因为代码保证在一定时间内(以太坊大约是13秒)偿还借款,如果资金没有返还,那么交易会被还原,即撤消之前执行的所有操作,从而确保协议和资金的安全。

闪电贷本身是一个DeFI 一种借贷的功能方法。 正常操作其实并无不妥。。

然而,黑客总是想的更加深远。

攻击方法:

  • 借钱:黑客从一个支持闪电贷的借贷协议借入大量代币 A
  • 操纵价格:黑客在 DEX 上,将大量的 A 代币换成 B 代币,导致 A 的价格剧烈下跌,B 的价格剧烈上涨,脱离真实的市场水平。由于受害的 DeFi 借贷协议只从这一个 DEX 获取价格数据,因此受害协议的 A 价格也下跌,B 价格也上涨
  • 攻击借贷协议:黑客到被害协议进行借贷,抵押代币 B,借出比原来更多的代币 A (由于价格数据被操纵,A 的价格很低,因此可以借到高于正常量的 A )
  • 还钱:将得到的部分代币 A 还贷,多余部分的 A 就是攻击得到的利润,闪电贷过程结束

扩展阅读(闪电贷套利机器人的实现)
https://blog.infura.io/build-a-flash-loan-arbitrage-bot-on-infura-part-i/
https://blog.infura.io/build-a-flash-loan-arbitrage-bot-on-infura-part-ii/

由于他只是一项工具,功能和API都是现成的。
实际上,使用闪电贷也不是一定要编写代码,目前有许多的乐高式的闪电贷 DApp 能够让你以拼积木的形式使用闪电贷,就像我们日常使用的 Workflow 一样方便:

  • DeFi Saver
  • Collateral Swap
  • Furu Combo

比起写具体的代码,通过这些工具来使用闪电贷,也能更好的使用体验。 (我还没试过)

5、套利(arbitrage)

搬砖套利的工作原理大致如下:

可以针对某一个特定币:

  • ETH在Uniswap中价值80 U,而在Sushiswap中则价值100 U。
  • 那么我们 在Uniswap上购买1 ETH,然后立即在Sushiswap上出售, 就可以赚取20 U(扣除汽油和费用之前)。

这就是典型的套利交易。俗称搬砖

也可以是某几个交易对:

  • 假设有交易对 Pair0 和 Pair1,只要他们之间有差价,就可以进行套利条件(抛开 gas 费的考虑)
  • 调用合约开始套利
  • 合约计算 Quote Token 的价格,假设 Pair0 中 Quote Token 价格较低,
  • 那么套利过程为如下:
  1. 通过 flash swap ,从 Pair0 中借取数量为 x 的 Quote Token,此时我们产生了一笔负债,在交易结束前,我们需要向 Pair0 偿还数量为 y1 的 Base Token(借出 Token 和还入 Token 不同,这个是 Uni flash swap 的功能,只要保证交易对 k 值不变即可)
  2. 将借来的 Quote Token 在 Pair1 中全部卖出,得到数量为 y2 的 Base Token
  3. 向 Pair0 偿还 Base Token,数量为 y1
  4. 交易结束,净利润为 y2 - y1
    这里的关键点是计算需要借出的 Quote Token 数量,使得套利的收益最大化。

程序员都是用程序扫描检测,
然后自动自动套利,也就是auto-arbitrage。 **这tmd 妥妥的印钞机啊。**这也是为什么主流币在各个链上虽然池子,流通数量不不一。但最终价格都是趋同。

要玩套利,还需要自己资金实力雄厚。一般至少每个链上有个几千几万U,可以做自动套利。可以有一些收益。

这里再次感谢LOWB社群(https://t.me/loser_coin) G总
给了我一套完成度很高的源代码。 目前通过自己的调整修改,能在BSC,ETH上跑起来了。

完整的自动套利代码
完整的自动套利代码

不得不说,LOWB社群确实大牛实在太多。 未来公链也是十分值得期待, 现在还是要多囤点lowb。

最后,祝,大家

暴富!

暴富!!

暴富!!!

Subscribe to 已废弃
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from 已废弃

Skeleton

Skeleton

Skeleton