猫鼠游戏:低 gas 费的主网交易?

date
May 21, 2023
slug
cheap-transactions
status
Published
tags
airdrop
summary
type
Post
撸毛人知道自己在骗项目方的钱, 项目方知道自己在骗VC的钱, VC知道自己在骗LP的钱, LP知道自己投资的做市商割起来散户毫不留情, 撸毛人赚的钱做交易亏完了。 —— https://twitter.com/xcl2022/status/1659983265397350400

前言

项目方真的讨厌女巫吗?不见得。有人来批量刷交易让数据更好看,岂不是天上掉下来的美事。但项目方又不能明面上支持女巫行为,于是添加了各种筛选条件来过滤明显过分的行为。
在撸猫圈的“精撸号”概念中,以太坊主网上的交互记录往往是最大痛点:动辄数十美元的 gas 费,谁看谁心疼。一些人开始想,有没有什么“便宜”的交易?从我目前看到的推特讨论中,大致就这些:账户间转账 (transfer)、代币授权 (approve / setApprovalForAll)、ETH <> WETH 打包交易 (wrap & unwrap —— deposit / withdraw)。
这些确实是不错的手段。但是如果我们把条件放严苛些,回顾一下 OP 空投:
Application Transaction: Any transaction, excluding token transfer and approval transactions.
怎么办呢?我最近摸索出了一些其他的(至少暂时还未被作为筛选条件)的“便宜”交易方法。

正文

Blur: Bidding

0x0000000000a39bb272e79075ade125fd351887ac
策略:
function deposit() public payable
存入 0 即可。
解析:
根据 Blur 的规则,要在 Blur 上出价,需要先将 ETH 存入 Blur Pool,合约会 mint 等量的 Blur Pool Token 给你的钱包,可以随时兑换回 ETH。

实现了 ERC20Votes 的代币

示例合约地址: BIT 0x1A4b46696b2bB4794Eb3D4c26f1c55F9170fa4C5 ENS 0xc18360217d8f7ab5e7c516566761ea12ce7f9d72 UNI 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984
策略:
function delegate(address delegatee) public
delegatee 填写 0x0000000000000000000000000000000000000000 .
解析:
观察如下两笔交易:
第一笔 delegate,花费0.004e,gas=35: https://etherscan.io/tx/0x6c4f8290a0966e522cfb09e592b29047ae74985dc27bc535b81f5ba1ee8160dc
第二笔 delegate,花费0.001e,gas=36:https://etherscan.io/tx/0xcf697cbb99d9bb12f40d443890034a6d39bc9591886d03bc7a601fd0f8b216a9
为什么第二笔交易相比之下省了这么多钱?实际上,他第二次填入的 delegatee 没变!
notion image
那么,当一个地址未进行任何授权交易时,它的 mapping 会是谁?答案是黑洞地址。
 
 

LooksRare: Transfer Manager

0x000000000060c4ca14cfc4325359062ace33fe3d
策略:
function grantApprovals(address[] operators)
根据文档,填写为 [”0x0000000000E655fAe4d56241588680F86E3b2377”] .
解析:
这是在 LooksRare 首次上架 NFT 时需要执行的步骤,允许 LooksRare: Exchange V2 (0x0000000000E655fAe4d56241588680F86E3b2377) 动用你的 NFT.
像 approve? 但它的函数签名不一样呀!

Blur.io: Marketplace

0x000000000000ad05ccc4f10045630fb830b95127
策略:
function incrementNonce()
直接调用即可。
解析:
/**
  * @dev Cancel all current orders for a user, preventing them from being matched. Must be called by the trader of the order
  */
  function incrementNonce() external {
      nonces[msg.sender] += 1;
      emit NonceIncremented(msg.sender, nonces[msg.sender]);
  }

债务 (debt) 代币

由借贷协议发行的债务代币。这类代币比较少,能有大量人交互的就更少了,这里直接给出筛选结果。
Aave: WETH Variable Debt V2:0xF63B34710400CAd3e044cFfDcAb00a0f32E33eCf
Aave Ethereum Variable Debt WETH:0xeA51d7853EEFb32b6ee06b1C12E6dcCA88Be0fFE
Bend debt bearing WETH:0x87ddE3A3f4b629E389ce5894c9A1F34A7eeC5648
ParaSpace Variable Debt Token WETH:0x87F92191e14d970f919268045A57f7bE84559CEA
Aave: DAI Variable Debt V2:0x6C3c78838c761c6Ac7bE9F59fe808ea2A6E4379d
策略:
这类合约有一个 function approveDelegation(address delegatee, uint256 amount)方法,详细解释可以看 AAVE 的文档:
从结果的角度看,它的gas花费和普通的 approve() 几乎没有差别,但可以做到函数签名不同。
delegatee 填自己,amount 填 0。(其实和approve一样填谁无所谓,反正自己又没有这个代币)

常驻且一直有较多交互的 Freemint NFT

!fundrop

Zerion DNA 1.0

LSD 流动性质押协议

参考图片:Ethereum LSD providers share of staked ETH. Source: DeFi Llama
notion image
下面提到的协议不包含tx的函数签名为 deposit 的。

Frax Finance: frxETH Minter

Function: submit() ***
MethodID: 0x5bcb2fc6

Lido Finance

Function: submit(address _referral)
MethodID: 0xa1903eab

StakeWise

Function: stake() ***
MethodID: 0x3a4b66f1

ether.fi

  • 创建账户
Function: confirmEligibility(bytes32 _hash)
MethodID: 0x54e64580

老牌 DeFi 协议

Compound V3

  • Supply 之前的 Allow 操作,例如:
Function: allow(address who, bool status) ***
MethodID: 0x110496e5
#
Name
Type
Data
0
who
address
1
status
bool
true

桥 (Layer 2)

Zora Bridge

Function: depositTransaction(address _to, uint256 _value, uint64 _gasLimit, bool _isCreation, bytes _data) ***
MethodID: 0xe9e05c42

Linea Bridge

Function: sendMessage(address _to,uint256 _fee,bytes _calldata)
MethodID: 0x9f3ce55a

Bungee Refuel

Function: depositNativeToken(uint256 destinationChainId,address _to)
MethodID: 0xe56461ad
 

© e 2021 - 2023 site logo