當我們在看Etherscan的時候,到底在看什麼?
作者: 十四君
伴隨上週愛死機的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"}