什么是以太坊内部交易和代币交易

当使用像Etherscan这样的以太网区块链探测器来检查地址时,你可能会遇到某些具有交易,内部交易和代币交易的地址。要理解它们之间的区别,我们首先要了解以太坊上的外部和内部地址的概念。

外部和内部地址

以太坊中有两种类型的地址(帐户):外部和内部。

当用户创建一个地址时,它被称为外部地址,因为它用于从外部访问区块链,来自“用户世界”。

当你将智能合约部署到以太坊区块链时,会生成一个内部地址,该地址用作指向正在运行的区块链程序(已部署的智能合约)的指针。你可以从外部将其作为调用函数的目标,或者你可以从内部对其进行定位,以便另一个已部署的合同可以调用已部署的合同上的函数。

值得注意的是,以太坊区块链上的所有交易都是通过外部账户设置的。即使一个智能合约应该调用另一个,而另一个又转而调用其他的,第一笔交易必须由外部账户完成。尽管正在开发解决方案,但目前无法从外部自动调用交易。

外部和内部帐户之间的主要区别如下:

外部地址具有私钥,用户可以访问。内部地址不能直接作为钱包访问,只能通过调用其功能来使用。

交易类型

这将我们带回到交易类型。我们来看看这个地址吧。

地址在交易Transactions选项卡中有几个条目:一些是传出的,一些是传入的。这些交易是外部交易全部来自外部账户。因此,根据屏幕截图,我们可以看到这个地址7天前从这个地址收到5以太,12天前从Binance钱包收到0.2以太。但是如果我们查看最新的发件人,我们会看到一些更有趣的条目:

这个地址一直在向个人发送以太,但它也做了其他事情:它促成了EOS众筹并撤回了EOS代币。大多数这些交易发送0以太;他们只是调用函数。例如,这笔交易显示,差不多半年前,我们的主人公在EOS Crowdsale合约中称之为索赔功能,这导致了众人向该人发送312代币作为回报。

这笔交易的细节并不重要。我们只是看它来正确定义Transactions选项卡:

交易Transactions选项卡列出了由外部帐户发起的所有交易,无论是谁发起了它们,无论是接收者或发送者。

现在让我们看看第一个地址的第二个标签:内部交易。

注意:并非所有地址都有此选项卡。它仅在内部交易实际发生在账户上时才会出现。

让我们看看其中一个,例如这一个

这是对ENS(以太坊名称服务)域名服务的出价,它允许实体注册像bitfalls.eth这样的eth域,这样人们就可以直接向它发送以太,而不是像0xbE2B28F870336B4eAA0aCc73cE02757fcC428dC9那样冗长而神秘的地址。该交易将自己描述为发送给ENS-Registrar合约,然后合约将0.94以太发送到最初形成拍卖的地址,然后合约称为终结函数。

但是,如果仍然需要通过外部帐户的交易启动内部交易,这又如何呢?最初的发起TX是外部的,是的,但是这个特定的交易只是在区块链内发生的一系列交易中的一个,从合约到合约。由于合约被另一个合约(ENS拍卖过程)触发而自动发回以太,它被记录为内部交易,因为以太的发送是智能合约中内置的逻辑的结果,并且不是由来自外面的人。因此:

内部交易Internal Transactions选项卡列出了由于一个或多个先前交易而由内部帐户启动的所有交易。

代币交易

最后,还有Token Transfers选项卡。

有些不言自明的代币交易是仅仅执行以下操作的交易:发送代币。有问题的代币必须是ERC20代币(即具有标准化功能),然后如果交易的唯一目的是发送代币,它将在此处列出。在这里,我们可以看到垃圾邮件代币的示例:8天前将1500个BOBx代币发送到该地址。代币垃圾邮件(空投)是推广ICO项目的常用方法。Airdrops让收件人不知道代币来自哪里。当他们谷歌为该项目,其谷歌SERP评级增长和反向链接创建。考虑到构建自己的代币几乎是免费且非常简单的,这种特殊的营销成本几乎为零。10美元更精确,如果我们更仔细地看待交易,这就变得很明显了……

我们可以看到它确实是一个空投,其中有许多地址作为接收者。

你还会注意到代币是从“0x00000”发送的……那么这意味着什么?如何将null地址作为起源?这只是意味着这一个垃圾邮件交易也是代币的来源。该代币创建并一举分发给100人,仅售10美元。你可以通过查看输入数据来查看此特技的一部分地址。

结论

你现在知道如何解释Ethersum上Etherscan中的交易类型,并且可以合理程度地确定转移给谁,何时以及从何处转移,以及确定触发它的内容。这将在你未来对以太坊区块链的探索中派上用场。

======================================================================

分享一些比特币、以太坊、EOS、Fabric等区块链相关的交互式在线编程实战教程:

  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • 深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
  • Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
  • Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是什么是以太坊内部交易和以太币交易