# 【教程】Etherscan 查看账户类型、资产数据、合约以及交易

By [twodam.eth](https://paragraph.com/@twodam) · 2022-02-23

---

Etherscan 可以说是目前以太坊事实上的基础设施，查询链上地址和交易信息，在此基础之上，他们还利用这些海量的数据实现各种好用的功能，今天在这篇文章简单描述一些。 同时也希望帮助到更多非开发者的用户，让大家能够知道如何通过区块链浏览器去查询确认一些数据，知道自己在做什么，也知道项目方承诺的是否与链上行为相符等。

账户类型
----

以太坊上有两种账户：EOA 以及合约，EOA 也就是一般大家使用的普通地址，通过私钥控制；而合约就比较特殊，没有私钥，所有功能都通过写在智能合约内的代码执行，不能自主运行，一定要由 EOA 地址发送交易才能触发合约。

怎么识别呢？Etherscan 上会显示对应地址的类型以及一些标签：

![PolyNetwork 攻击者](https://storage.googleapis.com/papyrus_images/ef4e12d7be29a28927c6ba453e81e55a5e9e7d06f7e5e3ae643e88ac620a0dae.png)

PolyNetwork 攻击者

![Uniswap V3 交易路由合约](https://storage.googleapis.com/papyrus_images/24c430441fbde9ecb6fef787a9ad8bfa2cd341052fddfb70cb73c5b5f959b33c.png)

Uniswap V3 交易路由合约

可以看到左上方地址详情会显示前缀 “Address“ 或 “Contract“，对应的就是普通地址跟合约的区别了，普通地址是只要有私钥就可以发起交易，而合约则要看情况，不同类型的实现版本会有不同的约束。 有的合约出现漏洞会影响所有用户，有的合约则安全性良好，推特上一般也会有人去研究各种热门合约，不懂开发的用户也可以多看看报告，重视资产风险。 这些标签都是可以点进去查看的，例如 [Heist](https://etherscan.io/labelcloud/heist) 是那些盗取了很多 ETH 或 Token 的地址/交易，[Blocked](https://etherscan.io/accounts/label/blocked) 是被托管稳定币提供商（例如 USDT 和 USDC ）屏蔽。

资产数据
----

目前 Etherscan 已经对 ERC20 / ERC721 / ERC1155 这三种标准有了很好地支持，前两种对应的就是我们常见的 Token 和 NFT，ERC 1155 是一种相对较新的协议，可以说是融合了 Token 和 NFT 的特性，支持一个合约多种类型代币。

![地址详情页](https://storage.googleapis.com/papyrus_images/6e0bd73fb22214947b77f375b941e34a613663b89e926d10f5899c8c82093670.png)

地址详情页

### 资产详情

相比之前下拉菜单中简略的余额展示，这个详情页面还会列出合约地址、价格和 24h 价格变动，对于流动性仓位以及 NFT 类资产，Etherscan 也能分类展示其资料。

![流动性仓位及 NFT 类资产](https://storage.googleapis.com/papyrus_images/0670dc2cb09e0b2e44c38ee7698e699977fc3347f2d2f0ce8b929ad9919fed8e.png)

流动性仓位及 NFT 类资产

最近 Etherscan 针对 NFT 的详情页做了更新，可以看到当前图像、拥有者并通过 Blockscan 进行通信。在 NFT 交易的最后点击 View NFT 就可以进入[这个页面](https://etherscan.io/nft/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d/7917)：

![ERC721 交易列表](https://storage.googleapis.com/papyrus_images/29f9f2313308a76c150088664396f3393ccc55a4a71782deb10790536847960b.png)

ERC721 交易列表

![NFT 详情页](https://storage.googleapis.com/papyrus_images/4960a630fa6d11187d12450758f40ef0e93a03079b2bfbe813b87d29a1dd0fa2.png)

NFT 详情页

### 账户分析

Etherscan 上可以[查询](https://etherscan.io/address/0xd8da6bf26964af9d7eed9e03e53415d37aa96045#analytics) ETH 或 Token 的余额以及转入转出的趋势数据，也可以看到作为发送方和接收方时所使用的 Gas 费用。

![账户分析](https://storage.googleapis.com/papyrus_images/57da238d98e145905d79196eeafecdb1f3d714e26da6fd5b4302ccec4fd8ba98.png)

账户分析

合约
--

智能合约是以太坊上很重要的一个组成部分，基于 EVM 编写的代码形成链上合约，是如今链上各种应用的基础。智能合约的应用如 Gnosis 多签用于管理资产，Uniswap 路由用于去中心化交易，Token 和 NFT 作为治理和会员凭证以及资产的上链等。

链上资产越来越多样化，形形色色的应用越来越多，作为链上逻辑层的智能合约，安全性是一个很大的问题。提交给专门的机构去做合约审计是一个基本的保障，但有审计报告不意味着绝对安全，是否安全很大程度上取决于背后开发团队的能力和安全意识。

下面用 [Uniswap V3 的路由合约](https://etherscan.io/address/0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45#code)来举例说明：

![合约信息](https://storage.googleapis.com/papyrus_images/c024a5cd744ad4d523fb87bb6190ce6b31a9f8dcaeeec58ebec43655f7e3ff7a.png)

合约信息

### 代码查看与定位

开发者应该熟悉 GitHub 这个开源代码协作平台，每个项目都会自己的代码仓库。

以太坊上的智能合约是编译成 EVM 指令，以字节码形式存储的。为了公开给所有人查看，确认以及审计，Etherscan 提供了验证合约的方法，源代码编译后符合链上数据，就可以通过验证。

可以使用搜索框和 Ctrl + F 网页搜索关键字快速定位到指定代码片段。

### 查询与执行合约

一般的项目都是智能合约搭配网站页面，其实如果知道执行什么方法和传递什么参数，直接在 Etherscan 上也是可以连接钱包执行合约指定方法的。

我看有些教程会教怎么绕过网页，直接去铸造一些 NFT，这也是一个使用场景。进阶一点，可以去搭配各种工具如使用 Flashbot 提交隐私交易（避免被抢跑等）等。

多签钱包也是一种智能合约，之前写过一篇[详细教程](https://mirror.xyz/twodam.eth/ionThZ1Z5RgZb24_jEBFYv8qaRfV8nK4yLhSaMargoM)，这里不再赘述。

![执行合约方法](https://storage.googleapis.com/papyrus_images/abff6f58a088f8962b905688120487a6851892be1109c4fbd6e82b0e875a7ccf.png)

执行合约方法

交易
--

区块链上的一个重要概念就是 Transaction 交易了，一笔交易包含发送方、接收方、区块信息、Gas 费用、传递的数据、触发的事件以及各种内部交易。

还是拿 [Uniswap V3: Router 2](https://etherscan.io/address/0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45) 举例，在交易列表可以根据交易是否确认，该地址作为发起方还是接收方等信息来过滤交易信息。

![交易列表](https://storage.googleapis.com/papyrus_images/ae7f98ffcfd1ffc5b73765f994701ac1a1f9a9a5b46fbd1d5b1cc30efa5eb966.png)

交易列表

接下来我们看一个具体的[交易](https://etherscan.io/tx/0x129b2ddaf2a46e2f15c99b15bb37838a9b986311a1fa3b276de5359bd92e31a0)：

![交易详情](https://storage.googleapis.com/papyrus_images/b4d642d3fd018b9b8c2471b9655b8747b909ee434ad8f5199609ac44efd32e96.png)

交易详情

常见的数据大家应该都熟悉，消耗多少 Gas，交易是否成功，交易对象是谁。

这里注意下，大家平时使用 MetaMask 等钱包是可以看到地址和交易 ID 的，推特上有些人会推荐每次都新建钱包去尝试新的协议，如果大家懂的话，在交易前后也可以在钱包或区块浏览器上检查：

*   交易对象地址是否正确，会不会出现明明应该跟合约交互，但实际收款对象却是一个普通地址？
    
*   交易是否成功？当然有时钱包提示确认，区块浏览器却还在索引，这个是正常现象，节点同步需要时间。
    
*   这笔交易实际执行的是合约的什么方法？参数对不对？会不会张冠李戴，最终受益方是其他人？
    

不过执行的方法这点有时候很难看出来，尤其是 Uniswap 这种 multicall 的方式：

![Multicall](https://storage.googleapis.com/papyrus_images/1c217783b1de8950788a48644ddfe008ef5736b53f72f3e1a35c2190d7997ac2.png)

Multicall

* * *

> Don’t trust, verify.

这篇文章到这里就告一段落啦，最近意识到并不是所有用户都是开发者，也不是所有人都有能力去验证合约逻辑和交易数据。再加上行业早期，这种造福效应以及 FOMO 情绪，很多时候人们可能并不在乎项目是否真的有价值，有机会赚到钱才是动力，不一定会花时间验证。

让交易/签名这种交互更加具有可读性，是钱包、区块浏览器以及各种协议正在努力的方向。

---

*Originally published on [twodam.eth](https://paragraph.com/@twodam/etherscan)*
