透过地址数据,提前看清链上的“危”与“机”


引言:链上数据分析的流程可以从数据出发,来解读行为、意图乃至交易心理。
作者|Mabrary
责任编辑|小欧
链上数据的核心,是藏在每个链上地址内的数据。
今天,我们从地址数据开始解读,由浅入深、按照从整体到细节的顺序,以“以太坊的工作原理”为基线,理解浏览器中的每个地址下的数据都代表什么?
首先 ,我们把地址数据中需要了解的概念,按照从浅到深的顺序分为三级,大家可以根据自己的基础有选择地阅读:
一级关键词:普通交易|合约交易
二级关键词:外部账户|内部账户|内部交易
三级关键词:Transfer|Transaction|事件|日志

一、以太坊交易类型
首先,以太坊中的交易可以大致分为两种:外部地址交易(图1)&合约交易(图2)。

图1:外部账户地址交易概览页
数据来源:OKLink以太坊浏览器
普通地址交易,是指仅涉及以太坊Ether的转移,不涉及合约的调用以及以太坊中其它资产的交易。
普通交易中的数据可以大概分为四大块:交易哈希、时间等归于交易索引(index),提供定位交易的信息。
交易金额具体是指Ether转移的数量,交易的发送方(sender)和接收方(receiver)互为本次交易中的交易对手。
Gas费的消耗是本次交易发送方需要承担的交易成本。

图2:0x513d和Metamask Router合约交易概览页
数据来源:OKLink以太坊浏览器
我们看到,涉及智能合约的浏览器交易概览页会多出三块内容:
(1) 以太坊执行交易的内部过程(内部交易);
(2) 资产转账的结果(资产转账);
(3) 合约执行的入参(输入数据);
相比普通交易,合约交易页顶部还多了两个标签(蓝色):内部交易和事件日志。
那么,什么是内部交易?为什么普通地址之间的交易没有内部交易的标签?内部交易标签内呈现的信息如何解读?内部交易(Internal Transaction)和普通交易(Transaction)的区别在哪?
要回答上面前三个问题我们需要了解两个概念:外部账户&内部账户。

二、外部账户&内部账户
以太坊的地址(账户)分为外部账户(即实体账户)和内部账户(即合约账户)两种。
用户通过手中的私钥访问外部地址,而内部地址不能被当作钱包直接访问,只能通过调用它们的函数使用。
外部账户就是以太坊以外世界的实体(人)想访问以太坊世界的代理,也是以太坊这个世界计算机的状态发生改变最初始的源头。
我们知道以太坊状态的改变由交易(普通交易)发起,如果交易对手为一个智能合约,则交易中的输入数据(input)就会作为虚拟机执行合约时的入参触发合约方法。合约方法被调用执行后可能还会触发其它合约中的方法,如此形成一个链式反应,这些链式反应的中间过程即为内部交易。

图3:链式反应
现在,我们再来看一下浏览器中的普通地址交易(图1),就明白为什么没有内部交易的标签项了——因为这是一个从外部账户到外部账户之间的转账,发送方没有在输入数据中附加代码,接收方也没有可执行的合约方法。
而图2的合约交易由0x514d的外部账户地址发起至0x881d的合约账户,发起方0x514d通过输入数据(input data)告诉合约0x881d所需调用的合约方法(function)以及方法所需传入的参数。
合约中的方法被调用后会继续调用其他合约中的方法。比如,在第一条内部交易中Metamask的Router合约会继续调用(call)接收方0x74de(Matic的合约地址)中的方法……最终形成一个调用链条,这就是我们所说的内部交易。

图4:
0x513d和Metamask Router合约交易内部交易标签页(注:内部交易详情页记录的交易只涉及Ether的转移)
需要注意的是,由于以太坊区块链中只存储以太坊虚拟机(EVM)处理交易后的状态,并不存储计算过程。
所以,以上展示的内部交易信息并不存储在区块链中,而当中发生以太坊转账(红框)的结果则最终会更新在t+1的世界状态中。其中一部分执行结果会体现在“合约地址转账”里。

图5:Token Transfer部分
回过头来,我们再来回顾一下外部账户的概念。
虽然外部账户的行为有时并不直接导致以太坊世界状态的改变(外部账户余额的变化或合约账户状态的变化),但追踪这些变化的源头一定来自外部账户,而这时直接导致改变的原因就是合约方法的执行。
读到这里,大家在脑中可能已经积累了一些疑问:
我们经常会在一些描述中看到两个词:Transfer和Transaction,两个词都可以被翻译为转账,那它们有何不同呢?
上面提到的0x881d合约如何知道被调用了哪个合约方法?
第三个标签事件日志(Log)是什么?它的作用在哪里?它们都会记录在区块链上吗?
我们一个一个来回答~

三、交易和事件
1. Transfer和Transaction有何不同?
Transfer通常指资产归属权的转移,可以分为原生资产的转账和其它标准资产的转账(如ERC20、ERC721等);而Transaction是指交易的发起者,也就是from地址(外部账户),向矿工提交的交易请求,如果被矿工成功纳入到区块中并完成共识,则该笔交易生效,否则会被告知交易失败。
那发起者提交的交易到底包含哪些信息呢?这就需要我们了解一个交易是如何在链上发生的。

图6:Transaction数据组成
我们重点解释第三部分。这部分从程序执行逻辑上是交易发送者输入以太坊虚拟机执行此交易的初始信息:虚拟机操作对象(接收方 To)、从交易发送方转移到操作对象的资产(Value),以及虚拟机运行时入参(input)。
其中 To 为空时,意味着虚拟机无可操作对象,此时虚拟机将利用 input 内容部署一个新合约。
2. 下面我们还是以上面的合约交易(图2)为例回答第二个问题:0x881d合约如何知道被调用了哪个合约方法?
这需要我们对入参进行解析。输入数据去除0x后的前八位代表合约方法识别符(5f575529),后边数据为方法所需的参数。

其中,合约方法识别符为合约方法经过SHA-3哈希算法后保留前八个字符得到的。
因此,虽然我们不知道合约源码,但是根据前八位的识别符,我们可以在其它已知方法源码的记录中匹配到该方法:
swap(string aggregatorId, address tokenFrom, uint256 amount, bytes data)。
由于智能合约中的方法经常会被复用其他合约中,因此同一个方法(识别符)可能对应多个合约。

图7:输入数据解析
3. 第三个标签事件日志(Log)是什么?它的作用在哪里?它们都会记录在区块链上吗?
在一个合约源码中,不仅会定义合约方法(function),还会定义事件event abc()和提交事件emit abc(),执行过提交的事件就会被记录在日志中,最后日志会被记录在一个调用合约的交易的receipt函数中。
我们以SushiSwap的合约0x7f8F7Dd53D1F3ac1052565e3ff451D7fE666a311的源码为例,他们定义了Sync事件,还会提交该事件并记录在日志中。

图8:SushiSwap合约部分源码
然而,在日志中存储事件并不是为了日后可以被智能合约访问,**智能合约是不能监听(listen)到日志中的数据的。**事实上,事件用于通知外面的用户区块链上发生的事情。
例如,当你在以太坊地址上收到一笔资产时,钱包的接口就会为你推送一条到账提醒,这实际上是钱包的前段接口监听到了链上发生的一个事件。
由于事件提交事件的代码在合约源码中,它的执行也是以去中心化的方式进行,且最终被保存在区块链上。因此,日志中的数据是可信的。
另一个开发者使用事件的原因是日志是一种更便宜的存储方式,日志中存储数据的成本大约是8 gas/byte,而在合约变量中存储数据的成本为625 gas/byte。

图9:
0x513d和Metamask Router合约交易事件日志标签页
为了描述事件,一条日志通常会包含几个有索引(Indexed)的Topic,和没有索引的Data。
其中,Topic0为通常包含发生事件名称的签名(keccak256哈希值),包括其参数的类型(uint256,字符串等)。还是以上面0x513d和Metamask Router合约交易为例,红字部分的日志中记录了在执行SushiSwap合约时在日志中记录的事件。
[Topic0]:
0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1
就是将事件Sync (uint112 reserve0, uint112 reserve1)运行Keccak256算法得到的。另外,…1f0f和…d552是事件中的两个参数。
我们调取了OKLink全节点一整年的事件日志(2021.3.15-2022.3.16),我们看到Transfer的事件是最多的,上面分析的Sync事件排名第三~

图10:事件方法排名

四、小结
本篇文章,我们从两种交易类型的概览入手,分析了外部账户地址之间的交易数据和外部账户地址触发的合约方法执行过程。两种交易都包含交易索引、对手方、交易金额和成本。
此外合约交易中,合约方法的调用过程除了在发起方和接收方之间的一次会被区块链记录,其它合约内部的调用过程均不上链,只有执行的结果和提交事件会被记录在区块链中。
由此可见,读懂链上数据不仅有助于帮助交易者从特定行为和意图进行分析,还能预测市场整体的心理状态和心理预期....
内容源自:欧科云链学院,部分内容与原篇略有调整。




1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
Oasis 协议基金会启动 ROFL 主网:面向 AI 应用的 TEE 可验证链下计算框架
2024 年 7 月 2 日 — 专注于人工智能和隐私保护的 Oasis Layer 1 区块链的治理机构 Oasis 协议基金会,正式宣布推出 Runtime Offchain Logic(ROFL
-
稳定币不是Web3专属,传统企业全面入场
1.背景:稳定币需求持续增长过去,稳定币仅被视为加密世界的重要工具,主要用于链上交易和资产避险等。如今,稳定币的角色正在发生深刻转变。稳定币总市值自 2018 年年末的 6.5 亿美金,至 2025
-
亏损必赔 0费率:BitMart重构交易保障范式
2025 上半年的加密市场,是一场高波动性与用户流失压力并存的生存竞赛。据 CoinGecko 数据,大部分中心化交易所现货交易量萎缩,创下 2024 年以来最大季度跌幅。在比特币主导地位攀升的“吸血
-
不赔偿国内受害者,FTX 的破产律师自己赚了多少钱?
谁在做决定、依据何种标准行事、最终受益者又是谁?作者:Sleepy,BlockBeats2025 年 7 月 4 日,FTX 债权人代表 Sunil 在社交平台发布了一份 FTX 破产清算的文件截图,
-
Lorenzo 推出测试网产品 USD1 OTF,率先落地基于 USD1 的链上真实收益基金
深潮 TechFlow 消息,7 月 4 日,链上资产管理平台 Lorenzo 正式推出其首个 OTF(On-chain Traded Fund)测试网产品 —— USD1 OTF,也是其首个以 U
-
Matrixport:比特币或将突破关键阻力位,迈向新交易区间
深潮 TechFlow 消息,7 月 4 日,据Matrix on Target最新周度报告显示,比特币价格虽持续横盘于窄幅震荡区间,但多项技术指标和市场数据暗示其可能即将突破关键趋势线阻力,迈向新的
-
AI赛道下一个大叙事?盘点值得关注的vibe coding项目
今年初开始,「vibe coding 氛围编码」逐渐成为 AI 圈热门的讨论方向之一。而在币圈,随着比特币保持强势,大家对于山寨季的渴望也愈来愈强。币圈的 AI 赛道经过 AI meme 和 AI A
-
Hotcoin Research | 链上炒股时代来临:股票代币化热潮解析与展望
本文将围绕股票代币化的基本原理、优势、代表平台以及其对加密市场和传统金融格局的影响展开详细解析,并探讨股票代币化未来可能的发展路径。作者:Hotcoin Research一、引言随着加密资产ETF和R
- 成交量排行
- 币种热搜榜