以太坊的基本:交易

本文剖析了以太坊交易中的元数据、缓存和数据三个重要组成部分,手把手地教会读者看懂一笔交易的数据

作者 | Haym

来源 | @SalomonCrypto

发送了 ETH?有为 AMM 提供流动性?部署了新的合约?你所做的任何事都会在世界计算机上留下链上记录。想知道你的交易中有些什么吗?

交易 封面.png

以太坊计算中逐个原子单位的指南

以太坊是一台世界计算机:一个存在于上千台计算机网络之间的全球共享基础设施。

用户可以通过钱包(比如 MetaMask)与以太坊进行交互,钱包可以创建和发送交易到网络中。一旦接收了交易,它就会被写入区块中。

额外的益处:对数据进行哈希计算(应用哈希函数)

哈希函数:这是一段用于将任意数据量转换为一个压缩、统一数值的代码。它的输入数据可以是任意长度,但输出数据的长度则是一样的。

(好处)哈希函数不能反向运行。

交易 图2(1)(1).png

cr. @SalomonCrypto

一笔以太坊交易由三个部分组成:

  • 元数据(metadata),包括发送/接受的 ETH 金额、gas 详细信息以及签名数据
  • 缓存(cache),交易预计会使用的账户和私钥的列表。
  • 数据,交易的 payload(智能合约代码或者 API 调用)

e8ba0d466d37043d7b7251e4211210f7.png

元数据 —— 交易相关信息

以下的图片展示了所有元数据字段。我们会在接下来探讨其中不显著的部分。

c4c2c6b2ed4e93b7adfc47b4ed6e808e.png

元数据的图2(1).png

chainid —— 由 EIP-155 提出,用来保护链不受 ETC 的重放攻击。

type —— 这里有两种类型:一个新的合约(0x0)还有其他所有合约(0x2)。EIP-2718 提出了一个封装功能(0x2),让更多不影响以太坊核心规范的类型得以使用。

nonce —— 从特定地址发送过来的交易数量。一旦交易打包到区块上,钱包的 nonce 值就增加了。避免受到重放攻击。

to —— 接受交易的地址(钱包或智能合约)

value —— 将要转账的 ETH 数额。请注意 —— 这里只计算 ETH,不计算其他代币。

gas —— 这笔交易所使用的 gas 单位

maxFeePerGas —— 创建交易的用户愿意支付的最高费用(每 gas 要支付 WEI。译者注:WEI 是 ETH 的最小单位,1 个 ETH 相当于 10 的18次方 WEI。)它包括了基础费用和优先费。

maxPriorityFeePerGas —— 创建交易的用户在基础费用(base fee)之外愿意支付的最高优先费(每 gas 要支付的 WEI)。这笔费用会直接支付给矿工/验证者,作为激励打包的小费。

gasPrice —— 这笔交易需支付的每 gas 单位的成本

(r, s, v)—— 构成创建该交易的用户签名的三个值。它们可以用于验证用户是否在此交易上 EVM 执行之前许可了这笔交易。

更多信息,可以自行查阅:Elliptic Curve Digital Signature Algorithm (ECDSA)

缓存

这个部分包括了访问列表(accessList),它是交易将用到的地址和私钥的列表。这笔交易还可以使用该列表以外的资源,但成本会比较高。

交易 图5(1).png

交易 图6(2).png

访问列表是由 EIP-2929 提案提出的,让客户端可以获取/缓存交易期间的数据。

现在,通过访问列表获取地址和私钥数据的折扣是 9 折。但这个折扣会随着未来以太坊支持更多轻客户端而变得更多。

数据 —— 交易中传输的 payload 数据

数据可以用三种方式进行:

  • ETH 转账 —— 空白
  • 智能合约 API 调用 —— 函数和参数的名字
  • 新的智能合约 —— 智能合约的代码

交易 图7(1).png

交易 图片(2).png

输入字段的数据以二进制形式记录,但它可以转译成人类可读的形式。

交易 图8(1).png

交易 图9(1).png

输入字段存在于链上,但它不是 EVM 状态的一部分。它只是在交易期间为合约提供数据,无法被以太坊追踪到,也不能在共识层上使用。

EVM 只能使用在此交易中提供的数据;它无法查看过去的交易。

这一特质对于想要将历史数据写入以太坊区块链(比如,用于稍后的手动检索)但不考虑直接访问 EVM 的应用程序来说十分有用。

Rollup 是最早充分利用这个想法的一种应用程序。

有时间我们会谈谈 Rollup。现在,Rollup 依靠着这样一种现实:将数据写入输入字段比直接写入以太坊 EVM 状态中要相对便宜。

你现在可以看啦!这就是一笔以太坊交易的样子!

交易 图10(1).png

ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co 进行授权。

本文首发于:https://www.ethereum.cn/Technology/ethereum-transactions

点赞 0
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
ETH中文网
ETH中文网
https://ethereum.cn ECN 以太坊中国