猫鼠游戏:低 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 没变!
那么,当一个地址未进行任何授权交易时,它的 mapping 会是谁?答案是黑洞地址。
LooksRare: Transfer Manager
0x000000000060c4ca14cfc4325359062ace33fe3d
策略:
function grantApprovals(address[] operators)
根据文档,填写为 [”0x0000000000E655fAe4d56241588680F86E3b2377”] .
解析:
这是在 LooksRare 首次上架 NFT 时需要执行的步骤,允许 LooksRare: Exchange V2 (0x0000000000E655fAe4d56241588680F86E3b2377) 动用你的 NFT.
像 approve? 但它的函数签名不一样呀!
Blur.io: Marketplace
0x000000000000ad05ccc4f10045630fb830b95127
策略:
function incrementNonce()
直接调用即可。
解析:
债务 (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
下面提到的协议不包含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