主页 > 华为手机怎么安装不了imtoken > 你不知道的以太坊交易:深度解析“全球计算机”

你不知道的以太坊交易:深度解析“全球计算机”

以太坊交易类型_以太坊交易今日价格_sitebitett.com 以太坊怎么交易

点击上方“统一时代”订阅!

unitimes.io

以太坊交易今日价格_以太坊交易类型_sitebitett.com 以太坊怎么交易

全球视野,独到见解

sitebitett.com 以太坊怎么交易_以太坊交易今日价格_以太坊交易类型

点击查看大图:tokenanalyst.io

作者| 席德谢卡

翻译|王俊杰

编辑 | 波波

来源 | 区块链营(ID:blockchain_camp)

上图不是艺术效果,而是2019年1月1日以太坊所有智能合约交易的数据可视化图像。

以太坊交易类型_sitebitett.com 以太坊怎么交易_以太坊交易今日价格

上图中的每个节点代表一个地址,相互连接的边会有不同的颜色,代表不同的函数调用。 当天共发生了 575,372 次函数调用,而区块链中调用了 1654 次函数。 这些函数调用中的大部分(32%)是智能合约之间的传递函数以太坊交易类型,如图中央巨大的紫色部分和外围的其他颜色所示。

但你这是什么意思?

人们在分析和比较区块链数据时,很多人会看交易数据。 当然,这没有错。 例如以太坊交易类型,可以通过比特币区块链的底层交易账本追溯对应比特币的所有者。

与比特币相反,以太坊不追踪所有权,而是基于其去中心化计算架构追踪交易数据(任何数据都可以看作键值对)。 从这个角度来看,以太坊区块链用于同步和存储系统的状态变化,而以太坊则用于衡量和控制任何智能合约的执行成本。

作为以太坊区块链的原生数字货币,以太币可以看作是一种实用货币,以换取以太坊“全球计算机”的使用权。

以太坊转账流程

对于很多不熟悉以太坊的人来说,直接按照转账路径走可能更直观,因为这样可以直接看到“全球计算机”的流程。

下面简单说明一下这个过程:

让我们以杰克为例。 Jack 是一名智能合约开发者。 他想将自己的以太坊转移到他拥有的智能合约中。 交易流程如下:

以太坊交易类型_以太坊交易今日价格_sitebitett.com 以太坊怎么交易

但是在这次交易中,他并没有转出以太币,只是给智能合约发送了一些额外的数据,让它执行代码中的distribute函数。 为了在区块链上运行这个功能,他需要支付一笔客观的汽油费——作为使用“全球计算机”的手续费。

以太坊交易今日价格_sitebitett.com 以太坊怎么交易_以太坊交易类型

智能合约收到Jack的指令后,开始运行这个函数。 作为运行的结果,该函数(以“5”为参数)使第一个合约调用其他三个相关合约,从而将其中的代币分配给它们的前 5 名持有者(根据内部存储的每个合约记录)。

sitebitett.com 以太坊怎么交易_以太坊交易类型_以太坊交易今日价格

其他三个合约必须调用另一个内部函数 (getTop5) 来查找内部存储中的前 5 个代币持有者。 三个合约分别找出自己的5个地址后,最终会激活代币转账功能,将自己余额中的代币转入对应地址(有的是其他相关合约本身)。

以太坊交易今日价格_以太坊交易类型_sitebitett.com 以太坊怎么交易

虽然这只是一种假设情况,但可以理解智能合约生态系统内在的复杂性及其潜在的多米诺骨牌效应:一旦启动了一系列合约到合约的代码执行,价值将在这些地址之间持续流动。 (如图所示)。

区块链:为机器而生

虽然只有外部账户(非智能合约,“普通”地址)可以发起转账,但智能合约可以与所有这些交易及其数据进行交互,从而引发潜在的连锁反应。

事实上,我们可以看到以太坊上智能合约涉及的交易数量大于账户之间的交易数量。

以太坊交易今日价格_sitebitett.com 以太坊怎么交易_以太坊交易类型

通过:tokenanalyst.io

因此,智能合约不仅承担了以太坊主链上的大部分活动,而且还开始负责以太坊上不断增长的新智能合约的创建。

以太坊交易今日价格_以太坊交易类型_sitebitett.com 以太坊怎么交易

简而言之,区块链上的一段代码正在创建另一段代码。

如果我们根据以太坊的历史来看智能合约创建的演变,我们可以看到虽然智能合约创建的速度在增加,但非合约“外部拥有”账户(或 EOA)创建的新合约数量爆炸不是由智能合约创建的新合约引起的,而是相应的增长。

以太坊交易今日价格_sitebitett.com 以太坊怎么交易_以太坊交易类型

根据上图,随着今年早些时候采用更复杂的智能合约开发和部署模型,数字激增尤为明显。

交易背后的真相

众所周知,以太坊“全球计算机”的核心是以太坊虚拟机(EVM)。 它本质上是以太坊节点的 CPU,处理区块和交易。 上文提到,单个以太坊交易所会触发一系列的计算过程,所有这些都需要经过 EVM 处理。

需要注意的是,在考察区块链数据时,我们通常观察到的只是表面上的初始交易信息。 它触发的各种行为隐藏在表面之下,通常不会出现在最常见的区块和交易查询中。

虽然 etherscan 的“内部交易”功能允许您拼凑一些相关线索,以获得可信和完整的交易数据,但您需要在每个交易执行时完整记录 EVM 的状态。 您可以将这些状态视为快照,及时捕获事务对下游的影响。

以太坊交易今日价格_sitebitett.com 以太坊怎么交易_以太坊交易类型

在任何时候,虚拟机状态记录都由虚拟机操作码组成,类似于传统计算机的汇编代码。 例如,0x01 表示 ADD(或增加),0x60 表示 PUSH1(将 1 个字节压入堆栈)。

不过,我们可以从更抽象的角度来看state的含义,通常被称为trace结构的镜头——它是由Parity的一个node模块实现的。 总的来说,每条轨迹都代表以某种方式改变 EVM 的行为(这是对交易的反应)。

以太坊交易类型_以太坊交易今日价格_sitebitett.com 以太坊怎么交易

奇偶校验为我们描述了三种主要类型的迹线:

目前,整个以太坊区块链有近 10 亿条痕迹。 这些跟踪的一个子集可能是能够执行 ERC20 令牌交易或 CryptoKitty 交易的函数调用。

这些轨迹中的每一条都有数量不等的子轨迹,这些子轨迹是由原始轨迹进​​一步调用其他合约(或自身)形成的,这就是前面介绍的多米诺骨牌效应。

以太坊交易类型_sitebitett.com 以太坊怎么交易_以太坊交易今日价格

当本文完成时,有 4,749,778 条轨迹,其中有 10 多个子轨迹。

这里要注意一点:你不能仅仅通过添加和减去一个地址转入和转出的 ETH 来计算账户余额,因为在子跟踪和函数调用期间 ETH 易手最终会影响交易本身。

通过tracing traces和subtraces,可以获得很多信息,这让我们可以在更高的抽象层次上理解到底发生了什么。

Solidity 是一种用于编写以太坊智能合约的高级编程语言。 使用 Solidity 的应用程序二进制接口 (ABI),我们可以将跟踪中的原始十六进制数据解码为它表示的特定函数调用(Solidity 函数)。 每个智能合约都有自己的ABI,通过ABI对函数调用进行解码,我们可以跟踪整个合约运行时间内的每一个“动作”,以及每分钟的所有“动作”。

下图是所有已分析函数调用的子集,按历史上对每个函数的调用次数排列。 可以看出一些特定的函数,比如transfer、transferFrom,使用频率很高。 这是因为这些功能是 ERC20 标准的一部分。

以太坊交易类型_sitebitett.com 以太坊怎么交易_以太坊交易今日价格

通过:tokenanalyst.io

以太坊交易类型_以太坊交易今日价格_sitebitett.com 以太坊怎么交易

在执行这些函数时,开发者可以选择输出“事件(Event)”。 事件是驻留在事务日志中的 Solidity 的高级构造,表示智能合约已执行某些操作。 您可以将其视为程序的“输出”。 虽然不是每个智能合约都有“事件”,但“事件”通常被轻客户端和dApp开发者用来“观察”智能合约上发生的特定活动,并在前端界面上做出响应。

下图是所有分析事件的一个子集,按每个事件发生的次数排列:我们再次看到交易事件的激增,这是 ERC20 交易发生的信号机制。

以太坊交易今日价格_sitebitett.com 以太坊怎么交易_以太坊交易类型

通过:tokenanalyst.io

概括

分析链上数据,尤其是以太坊的数据,光看交易记录是不够的!

现在,每一个去中心化交易所、去中心化自建组织、dapp和Defi项目都会有不同的智能合约,每一个都有自己的功能和事件,所有这些都代表了每个项目和生态系统的不同方面。 事情。

经过深入分析,我们越来越意识到合约间价值转移的巨大影响及其多米诺骨牌效应。 在不久的将来,以太坊的使用者将不再是人类,而是活跃的代码。

以太坊的这种转变正在加速发生。

原文链接:

【文章版权归原作者所有,其内容和观点不代表Unitimes立场。 转载文章只为传播更有价值的信息。 合作或授权请发邮件至editor@unitimes.media或加微信unitimes2017】

sitebitett.com 以太坊怎么交易_以太坊交易类型_以太坊交易今日价格