第二章:链上数据基础——区块链浏览器使用、交易哈希与地址解析、区块与交易结构、Gas费与MEV基础
各位同学好,我是你们的DeFi量化讲师。今天我们来聊聊链上数据。
说实话,很多做量化的人一上来就搞K线、搞技术指标,却忽略了最底层的东西——链上数据。我个人的观点是:不懂链上数据,你的量化策略就像在黑暗中开车。你看到的只是价格涨跌,却不知道背后资金在怎么流动、谁在买谁在卖。
这一章,我带你把链上数据的基础打牢。我们从最常用的工具开始,一步步深入到交易结构、Gas费,最后聊聊MEV——这个DeFi世界里最刺激也最危险的话题。
2.1 区块链浏览器:你的链上“显微镜”
区块链浏览器是什么?说白了,就是区块链的搜索引擎。你可以查任何地址、任何交易、任何区块的详细信息。
我个人最常用的是Etherscan(以太坊)和BscScan(币安智能链)。它们长得差不多,功能也类似。你想想看,如果你想知道某个巨鲸地址今天买了什么币,或者某个DEX池子里的流动性变化,用浏览器一查就出来了。
2.1.1 核心功能速览
- 地址查询:输入一个钱包地址,能看到它的余额、交易记录、代币持有情况
- 交易哈希查询:输入一笔交易的哈希值,能看到这笔交易的所有细节
- 区块查询:查看某个区块包含的所有交易、区块时间、Gas使用情况
- 合约验证:查看智能合约的源代码(如果项目方公开了的话)
- 代币信息:查看某个ERC-20代币的总供应量、持有者分布、转账记录
嗯,这里要注意一点:区块链浏览器查到的数据是“最终确认”的数据。也就是说,如果一笔交易还在pending状态,你可能查不到完整信息。我在做链上监控的时候,经常需要同时查pending交易池的数据,这个后面会讲到。
2.2 交易哈希与地址解析
交易哈希(Transaction Hash,简称TxHash)是什么?它是一笔交易的唯一标识符。你可以把它理解成快递单号——通过这个单号,你能查到这笔交易的完整路径。
一个典型的交易哈希长这样:0x1234...abcd(64位十六进制数)。
2.2.1 如何解析一笔交易?
在Etherscan上输入一个TxHash,你会看到这样的信息:
| 字段 | 含义 | 我的备注 |
|---|---|---|
| Transaction Hash | 交易哈希 | 唯一标识,不可篡改 |
| Status | 交易状态(成功/失败) | 失败不代表没扣Gas费! |
| Block | 交易被打包的区块号 | 区块号越小,交易越早 |
| From / To | 发送方和接收方地址 | 注意:To可能是合约地址 |
| Value | 转账金额(ETH) | 注意单位:1 ETH = 10^18 Wei |
| Gas Price | Gas单价(Gwei) | 1 Gwei = 10^9 Wei |
| Gas Used | 实际消耗的Gas数量 | 跟Gas Limit不同 |
| Logs | 事件日志 | 这是链上数据的宝藏 |
2.2.2 地址解析:从地址到行为
一个以太坊地址是40位十六进制数,前面加上0x。但光看地址你什么都不知道。我们需要解析它:
- EOA地址:普通用户钱包地址,由私钥控制
- 合约地址:智能合约部署后生成的地址,由代码控制
- 多签地址:需要多个签名才能操作的地址,常见于项目方金库
怎么区分?很简单:如果这个地址有合约代码,就是合约地址。在Etherscan上,合约地址旁边会有一个“Contract”标签。
我个人做量化分析时,会把地址分成几类:
- CEX地址(交易所地址)—— 资金进出的大动脉
- MEV机器人地址 —— 抢跑、三明治攻击的玩家
- 项目方地址 —— 发币、做市、解锁
- 巨鲸地址 —— 持仓大户
你想想看,如果你能实时监控这些地址的行为,是不是就能提前预判市场走势?这就是链上量化的核心逻辑。
2.3 区块与交易结构
区块链,说白了就是一个一个区块连起来的链条。每个区块里装着很多笔交易。
2.3.1 区块结构
一个区块包含以下关键信息:
- 区块高度:第几个区块,从0开始
- 时间戳:区块被挖出的时间
- 父区块哈希:上一个区块的哈希,形成链条
- 交易列表:这个区块包含的所有交易
- Gas Used / Gas Limit:区块消耗的Gas和上限
- 矿工/验证者:谁挖出了这个区块
2.3.2 交易结构深度解析
一笔交易在底层是什么样的?我们用代码来看:
// 以太坊交易结构(简化版)
{
"nonce": "0x1", // 发送方的交易序号
"gasPrice": "0x3b9aca00", // Gas价格,单位Wei
"gasLimit": "0x5208", // Gas上限
"to": "0x...", // 接收方地址
"value": "0xde0b6b3a7640000", // 转账金额,单位Wei
"data": "0x...", // 调用数据(如果是合约调用)
"v": "0x1c", // 签名参数
"r": "0x...", // 签名参数
"s": "0x..." // 签名参数
}
这里我要特别强调data字段。如果你调用的是合约,data里就包含了函数选择器和参数。比如Uniswap的swap交易,data里就藏着你要换哪个币、换多少。
我刚开始做链上分析时,就是靠解析这个data字段来追踪DEX交易的。后来发现,其实事件日志(Logs)更方便——但那是后话了。
2.4 Gas费与MEV基础
Gas费,是你在以太坊上做任何操作都必须支付的费用。它有两个组成部分:
- Gas Price:你愿意为每单位Gas支付的价格(单位Gwei)
- Gas Used:你的交易实际消耗的Gas数量
总Gas费 = Gas Price × Gas Used
举个例子:如果Gas Price是50 Gwei,Gas Used是21000(普通转账),那么总费用就是50 × 21000 = 1,050,000 Gwei = 0.00105 ETH。
2.4.1 Gas费的博弈
为什么Gas费会波动?因为区块空间有限。每个区块的Gas Limit大约是3000万左右。当网络拥堵时,大家竞价抢这个空间——谁出的Gas Price高,矿工就先打包谁的交易。
我个人做量化时,会实时监控Gas Price的走势。如果Gas突然飙升,往往意味着有大动作——可能是巨鲸在操作,也可能是某个热门项目在mint。
2.4.2 MEV:黑暗森林的入场券
MEV(Miner Extractable Value,矿工可提取价值),说白了就是矿工(或验证者)通过调整交易顺序来赚钱。
最常见的MEV攻击方式:
- 三明治攻击:在用户的大额买入交易前后插入自己的买卖单,吃差价
- 抢跑:监控mempool(待处理交易池),发现有利可图的交易就复制一份,设更高的Gas Price抢在前面执行
- 清算:在借贷协议中,监控抵押率不足的仓位,抢先清算获取奖励
我刚开始接触MEV时,觉得这东西太酷了——简直就是印钞机。后来自己试着写了一个简单的三明治机器人,结果亏了200美金。为什么?因为被别的机器人抢跑了。
嗯,这里要给大家泼盆冷水:MEV是零和博弈,甚至负和博弈。你赚的钱,就是别人亏的钱。而且现在MEV赛道已经非常拥挤,新手进去基本是送钱。
2.4.3 如何监控MEV活动?
你可以通过区块链浏览器来追踪MEV活动:
- 查看某个区块的Gas Price分布——如果前几笔交易的Gas Price异常高,很可能是MEV
- 查看Flashbots的打包交易——Flashbots是专门做MEV的基础设施
- 分析交易顺序——如果一笔交易前后紧跟着两笔看起来相关的交易,可能就是三明治
2.5 本章知识体系
下面我用一张图来总结本章的核心逻辑:
这张图把本章的核心内容串起来了。你想想看,从区块链浏览器入手,你能查到交易哈希和地址信息;理解了区块和交易结构,你就能读懂链上数据的底层逻辑;而Gas费和MEV,则是你在这个黑暗森林里生存必须掌握的武器。
好了,这一章的内容就到这里。链上数据这块,光看理论是不够的。我建议你打开Etherscan,随便找一笔交易,对照着本章的内容一步步解析。相信我,亲手操作一遍,比看十遍文章都管用。