从区块链读取数据是免费的。但是,写入(更改记录在区块链上的数据)需要你发起一笔交易。为了确保用户对其交易的复杂性负责,gas用于衡量执行交易所需的计算工作和存储。

什么是以太坊交易?

以太坊交易是经过加密签名的数据消息,带有指令,以促进ETH从一个帐户转移到另一个账户,或者与部署在该区块链上的智能合约进行交互。但首先,以太坊上的账户类型有哪些?

以太坊账户类型

以太坊账户分为两类:外部拥有账户和合约账户。

这些账户都可以接收、持有甚至发送ETH和其他代币。

它们还可以进一步与部署在该区块链上的智能合约进行交互。

外部拥有账户(EOA)

此帐户类型派生自私钥。它们生成调用ETH网络执行某些操作的交易。

EOA的突出之处在于,它们的创建是无成本的。

合约账户

智能合约部署在以太坊的网络上,它们存储和执行代码。

创建合约帐户是有成本的,因为你要使用以太坊的网络存储。

它们通过响应其接受到的交易来触发交易。

从外部账户转移到合约账户

从外部账户执行交易到合约账户会触发代码,包括转移代币和创建一个新的合约。

在两个外部拥有帐户之间转移ETH

通过转移ETH,你指示以太坊网络减少帐户1的余额,增加帐户2的价值,如下所示。

查看两个外部帐户之间的交易

下面是Etherscan上的一个转账交易示例。你可以找到交易发送地址、接收地址和输入数据。

转移ERC20代币

代币合约扮演什么角色?代币合约是映射帐户地址和余额的智能合约。如下图示例:

当将代币从一个帐户转移到另一个帐户时,两个帐户会根据代币合约进行更新。

以下示例显示了10个代币从地址0x2299…3ab7转移到地址0x1f59…3492。作为交易的一部分,一个帐户地址的余额减少,而另一个帐户地址的余额增加。

转移ERC20代币和ETH有什么区别?

转移ERC20代币和ETH之间的显著区别是,交易地址是代币的合约地址,而不是我们想要发送代币的帐户。

当你将ERC-20代币从你的钱包发送到另一个钱包时,请注意,在'𝙏𝙤'部分,你找到的是代币的合约地址,而不是接收实体的地址。