伴随上周爱死机的NFT事件,WEB3的世界里基建(与用户认知)严重薄弱的缺点,俨然成了众多爱好者想要深入的阻碍(实在被mint后NFT在哪里问烦了)。
所以如果你有以下这些疑惑,那么本文就是适合你的路引!
- 从交易所导出到我自己的钱包,到账了吗?
- mintNFT的交易完成了,那我的资产在哪里?
- 都说链上数据公开,如何提取无聊猿的全量持有用户?
- 听说链上有各种奇特的套利机器人,他们在哪?
链上数据依据其所在的公链不同,几乎都会有各自的区块链浏览器。而Etherscan.io 就是以太坊的入口。
本文从背景数据出发,解读块/交易/地址的详细信息含义,结合Etherscan的拓展统计信息案例,希望能帮助大家进一步打开web3的大门!
1、Etherscan能做什么?
以太坊中一切交互均公开,使用交易哈希(交易ID)即可查看一切相关活动,包含代币、智能合约以及钱包地址。
虽然Etherscan无需注册,但也可以创建个人账号,以便使用其附加功能。例如,为队列交易、访问开发者工具和创建数据源设置提醒通知。
这就好比,你如果发现了马斯克的地址,那么可以监听到他的每一笔交易走向。
2、Etherscan不能做什么?
Etherscan他并未开通以太坊钱包功能或存储私钥服务。所以,你也无法只用它来开展交易。如果你想要交易或存储加密货币,就需要加密货币钱包,如Trust Wallet、MetaMask、Math Wallet或是币安链钱包。
结合钱包管理私钥之下,才可使用Etherscan的便捷合约操作功能,执行一些基础的合约函数调用交易的发起。例如上周的爱死机NFT的mint交易详情可见:当奈飞的NFT忘记了web2的业务安全
3、Etherscan都有什么?
主要分3大类
- 基础性的规范数据查询入口
- 进阶性的常用数据统计分析
- 开发者用的定制化接口服务
3.1 公共基础信息
我们知道,所谓区块链是将若干笔交易执行后打包成块,发布并记录账本的技术,所谓合约是交易中利用备注区域携带了定制的代码,从而可以在虚拟机中执行代码逻辑。记录下每笔交易的原始信息,就可以逐个回放从而还原全部过程。
这涉及到公共信息的三个部分:交易,区块,地址。也就是下图中3个区域
而中间夹着的就是最常用的基本信息:
- ETHER PRICE:当前eth兑换美元的价格
- TRANSACTIONS:总交易数
- MED GAS PRICE:每笔交易的手续费单价
- MARKET CAP:总资产市值
- TRANSACTION HISTORY:近14天每天交易总数
- DIFFICULTY和HASH RATE:不做探讨
3.2 交易详情里有什么?
咱们任意选择一个最新的交易点进去,大多数数据都是一目了然的。
就像一个快递的整个生命周期:
- 快递单号是多少(Transaction Hash)
- 投递是否成功(Status)
- 对方什么时候收到(Timestamp)
- 从哪儿来from,到哪儿去to
- 被哪个快递员打包(block)
- 信封内有什么(value+input data)
- 邮费是多少(Transaction Fee)
值得注意的是,to地址可以是合约,可以是用户的地址(EOA),也可以是 0x0 这代表创建新的合约(虽然在 Etherscan 上他会用返回的合约地址作为 to 的位置)
上方还有一些其他信息的入口
log:代表这笔交易执行过程中,所执行的若干函数调用顺序以及主要参数
state:代表交易涉及方的一些状态,很少用
comments:评论,这是中心化的功能不是链上数据。
3.3 块详情里有什么?
块的信息,相对复杂其实对状态分析意义不大。
有技术性的参数,比如区块奖励/叔块奖励/Burnt fees,不做展开讨论了
3.4 地址详情里有什么?
注意,这里的信息源自链上,但实际是由Etherscan二次整理而得。
如果你在好奇自己地址累计的各种ERC20代币如何找到,就可以从Token列表内查阅,
如果买过ENS域名的也可以通过域名快速找到自己地址,这里我的地址是通过自己程序做碰撞出的靓号(最后4位是b14c,有个14)
下方则是若干种交易类型的归档入口,
其中internal Tx是内部交易,属于我调用了某个合约,而此合约功能复杂,他再发起交易去调度其他
合约获取某些返回信息的时候,由合约作为from方的交易就是内部交易了
某些地址经过较多的用户投诉+官方验证,则右侧打上风险标签,一个红色盾牌,说明他可能是某个钓鱼合约,或者他是某个黑客盗取资金后转入的地址。
还有个Analytics是基础的分析报表,他能解答的问题就更多了,比如
- 某大户地址其余额的变动,关注某行业KOl新买了什么NFT。
- 某合约近期交易量,体现其背后产品热度的最基础指标
如果此地址是合约的话,还能看到有个contract栏目
比如爱死机NFT的事件中
- 分析其采用1271动态验签名技术,就是走1,看源代码
- 查询各个类型的1155协议nft被mint了多少次,状态查询则是走2,无需gas
- 执行mint得到自己的nft属于发起交易,有状态改变走3,需要消耗gas。
警告⚠️:此功能需要确保智能合约本身没有问题,否则还是有可能会危及你的资产安全,不建议新手使用
4、进阶统计信息
当然链上数据公开,这点打破了很多web2行业的壁垒,也由此催生出Etherscan上一些基础的统计入口,我整体梳理如下(开局的图展开)
这里信息就太繁杂了不做列举,而是从举例解读如何组合这些信息
关注某些大户的动向:Top Accounts
关注排队的交易队列:Pending Txns
排队说明还未打包,关注此队列犹如上帝视角判断将会发送什么,而黑客可以通过提高gas price从而让自己的交易提前打包插队。尤其是NFTmint的时候,都卡在许可mint的一个块内打包出去。
ERC20头部信息列表:防钓鱼,也可以一览式看到当前符合ERC20的合约有53W种,其中按流通市值排序最大的是BNB以及USDT,其持有地址数量等信息。
从Charts & Stats 中他数据众多,不同角色的关注点不同。
比如作为合约技术研究者,就会关注gas相关,因为部署上链消耗gas多,需要找一个gas 费用较低的时间点。
如果关注不同公链状态,则可关注跨链可以得到其他公链生态的TVL(总锁仓额)。
如果你还在琢磨于这个生态是否值得研究,可以关注 Ethereum Daily Verified Contracts Chart
每一份合约,可能就是一个产品都意味着整体生态的繁荣。
5、定制化信息提取
当然,都看到这里了,想必你是颇具动手能力的同学,除了看报表,如何破除直接网页导出excel的数量限制,比如批量提取交易量top1W的项目?比如研究某个黑客程序如何牟利与收益多少?就需要结合api文档做定制化信息提取
详细开发文档:https://docs.etherscan.io/
最后通过简单的url请求即可获取到信息,比如查询指定地址余额:
使用:
/api?module=account&action=balance&address=0x&tag=latest&apikey=YourApiKeyToken
得到:
{status: "1",message: "OK",result: "1111"}