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

互联网 阅读 954 2022-03-18 19:27:00

引言:链上数据分析的流程可以从数据出发,来解读行为、意图乃至交易心理。

作者|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.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:春招零距离|就在明天!解锁4大关键词,提前GET空宣精彩 下一篇:获利逾170万美元!链上天眼复盘元宇宙项目Paraluni黑客攻击全过程

您可能感兴趣

  • 解读CKB版 “闪电网络” Fiber Network:比特币可编程性扩展的另一种思路
    解读CKB版 “闪电网络” Fiber Network:比特币可编程性扩展的另一种思路

    作者:NingNing行业周期与宏观金融周期共振,加密行业正处在与 2019 年相似的整体性迷茫之中,现阶段不仅流动性枯竭,叙事貌似也在枯竭。市场不但对 VC 叙事兴趣阙如,对反 VC 的 Meme 叙事也已经疲倦。就像每次哲学危机,人们都会回归柏拉图寻找出路,当加密行业危机时,我们也需要回归比特币、回归中本聪。正如 CKB 生态 RGB++ 协议创始人 Cipher 在最新 Blog 里所阐述的,加密行业需要对以太坊 “链上计算” 的路径依赖进行反思,回归P2P经济学,让计算归于链下,让验证归于链上。因

    每日资讯 2024-09-02 12:06 1313
  • 面对NFL球员工会起诉,“退圈”的DraftKings竟主动承认NFT是证券?
    面对NFL球员工会起诉,“退圈”的DraftKings竟主动承认NFT是证券?

    作者:Zen,PANews近日,美国国家橄榄球联盟球员协会 (NFLPA) 指控数字体育娱乐和游戏公司DraftKings 逃避了其 NFT 球员许可协议的付款义务。在放弃NFT业务后,涉嫌出售未注册证券而遭到集体诉讼的DraftKings又背上了一起官司。而有趣的是,在与NFLPA的纠纷中,DraftKings的立场似乎已从反驳转变为积极承认“NFT就是证券”。放弃NFT业务:驳回集体诉讼的动议遭到否决今年7月底,Draftkings在给用户的电子邮件中表示:“经过慎重考虑,DraftKings 决定终

    每日资讯 2024-09-02 12:06 1422
  • 简析两种最新比特币智能合约实现方案:OP_NET与Arch有何区别?
    简析两种最新比特币智能合约实现方案:OP_NET与Arch有何区别?

    作者:Cookie过去半个月,OP_NET 与 Arch 这两个比特币主网上的智能合约实现方案引发了较多的讨论。有意思的事情是,OP_NET 这个名字与大家熟悉的 OP_CAT 很像,都以「OP_」开头,具有很强的、让大家认为这哥俩差不多的迷惑性。所以,在开篇要和大家先提一嘴 OP_CAT。首先,OP_CAT 是比特币操作码,从去年开始有以「量子猫」Quantum Cats,也就是「大巫师」Taproot Wizards 的创始人 Udi Wertheimer 为首的社区力量一直在呼喊要「复活」OP_CA

    每日资讯 2024-09-02 12:06 1323
  • 争议不断,以太坊正在失去“万链之王”的权威
    争议不断,以太坊正在失去“万链之王”的权威

    作者:Climber,金色财经近期围绕以太坊的话题和争议越来越多,不仅 Vitalik 本人需要下场解释观点,就连以太坊基金会也要发布公告来平息社区的质疑声。在本轮牛市周期中,以太坊的表现可谓平平。而美国以太坊现货 ETF 的通过也并未让 ETH 走势如投资者期待般爆发,相反却在币价方面越走越低。这就不免让有着「万链之王」美誉的以太坊逐渐失去投资者和社区的尊重,进而质疑起有关以太坊的方方面面。争议不断,以太坊亟需重塑权威最近一段时间以来社区成员对 Vitalik 言论观点、以太坊基金会乃至以太坊生态系统的

    每日资讯 2024-09-02 12:06 1022
  • 从《黑神话:悟空》谈起,GameFi何时能取得真经?
    从《黑神话:悟空》谈起,GameFi何时能取得真经?

    作者:YBB Capital Researcher Zeke前言本文是市场垃圾时间中的一些闲聊,需要对传统游戏市场有一定程度了解。大家可以把这篇文章当作日记或者随想观看,这些只是我在游玩《黑神话:悟空》之后对GameFi的一些粗浅思考,以及对这个赛道未来的看法。一、游戏科学的九九八十一难三天全网销量破千万、Steam玩家同时在线峰值破235万、多家品牌联名周边销售爆火、国家级媒体多次采访、多个游戏取景地可凭游戏通关记录终身免费进入、86版《西游记》YouTube观看量超400万。以上,是《黑神话:悟空》上

    每日资讯 2024-09-02 12:06 710
  • Gavin Wood:如何防止女巫攻击进行有效空投?
    Gavin Wood:如何防止女巫攻击进行有效空投?

    演讲:Gavin WoodGavin 近期一直在关注的女巫攻击(civil resistance)的问题,PolkaWorld 回顾了 Gavin Wood 博士在 Polkadot Decoded 2024 上的主题演讲,想要探究 Gavin 在如何防止女巫攻击上的一些见解。什么是女巫攻击?你们可能知道,我一直在研究一些项目,我在编写灰皮书,专注于 JAM 项目,也在这个方向上做了一些代码的工作。实际上,在过去的两年时间里,我一直在思考一个非常关键的问题,这个问题在这个领域中非常重要,那就是如何防止女巫

    每日资讯 2024-09-02 12:06 1269
  • 市场热议,链抽象将成加密新叙事?
    市场热议,链抽象将成加密新叙事?

    2024年,加密货币领域的技术创新持续加速,链抽象(Chain Abstraction)逐渐成为行业内的焦点。链抽象技术的核心在于通过隐藏底层技术的复杂性,让用户能够更加便捷地在多个区块链之间进行操作。传统的区块链技术通常要求用户掌握不同链的操作流程,并需要应对跨链操作中的技术难题,这极大地吸引了新用户的进入。而链抽象的出现,则为这些问题提供了有效的解决方案,成为Web3建设不可忽视的重要一环。01、什么是链抽象及其作用链抽象能够将不同的区块链之间的差异整合在一个统一的操作界面中,使得用户只需一个账户即可

    每日资讯 2024-09-02 12:05 560
  • 今日日报|马斯克和特斯拉赢得“被指控操纵狗狗币”的诉讼;稳定币支付平台Bridge完成5800万美元融资
    今日日报|马斯克和特斯拉赢得“被指控操纵狗狗币”的诉讼;稳定币支付平台Bridge完成5800万美元融资

    今日要闻提示:马斯克和特斯拉赢得驳回指控他们操纵狗狗币的诉讼OpenAI和Anthropic已同意将其主要新AI模型在发布前共享给美国政府OKX将上线Hamster Kombat(HMSTR)现货交易X平台纽约总部将于9月13日关闭,预计将迁往得州萨尔瓦多总统布克尔成为《时代》杂志最新一期封面人物稳定币支付公司Bridge完成5800万美元融资数据:MATIC、SHIB、UNI代币头部地址持仓均超50%网龙今年上半年通过出售2.9亿元的加密货币,获利5100万元人民币监管消息美国众议院计划在9月举行多场加

    每日资讯 2024-09-02 12:05 1062