Etherscan 區塊鏈瀏覽器完整實務操作指南:以太坊鏈上數據查詢與分析方法

本指南從實務操作的角度詳細說明 Etherscan 的各項功能與進階使用技巧,涵蓋錢包地址查詢、交易追蹤、區塊分析、智能合約驗證、Gas 費用計算、API 使用方法與批量查詢自動化。特別強調「自我查證」的概念,幫助讀者建立獨立的鏈上資料驗證能力,是所有以太坊使用者必備的工具指南。

Etherscan 區塊鏈瀏覽器完整實務操作指南:以太坊鏈上數據查詢與分析方法

概述

Etherscan 是以太坊網路最廣泛使用的區塊鏈瀏覽器,也是所有以太坊使用者必備的工具。無論是查詢交易狀態、核對錢包餘額、驗證智能合約,還是分析鏈上數據,Etherscan 都是第一線的查詢介面。本指南從實務操作的角度出發,詳細說明 Etherscan 的各項功能與進階使用技巧,幫助讀者建立獨立的鏈上資料驗證能力。

本指南特別強調「自我查證」的概念:在區塊鏈世界中,任何資訊都可以透過鏈上數據進行驗證。學會使用 Etherscan 不僅能提升對以太坊的理解,更能幫助識別虛假訊息、避免詐騙,並做出更有依據的決策。

數據更新說明:本指南內容基於 Etherscan 2026 年 3 月版本。Etherscan 介面可能隨版本更新而有所變動,建議讀者以實際操作為準。


一、Etherscan 基本概念與功能總覽

1.1 什麼是區塊鏈瀏覽器

區塊鏈瀏覽器(Block Explorer)是一種讓使用者能夠瀏覽和查詢區塊鏈上所有交易與數據的工具。與傳統網路的搜尋引擎類似,但查詢的對象是區塊鏈上的不可篡改記錄。

區塊鏈瀏覽器的核心功能:

┌─────────────────────────────────────────────────────────────┐
│                    區塊鏈瀏覽器架構                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  區塊鏈網路                                                 │
│  ├── 區塊 #20,000,000                                       │
│  │   ├── 交易 1: 0x1234... → 0x5678..., 1 ETH             │
│  │   ├── 交易 2: 0xabcd... → 0xefgh..., 0.5 ETH           │
│  │   └── ...                                               │
│  ├── 區塊 #19,999,999                                      │
│  └── ...                                                   │
│                                                             │
│         │                                                   │
│         ▼                                                   │
│  ┌─────────────────────────────────────────────────────┐   │
│  │              Etherscan 區塊鏈瀏覽器                │   │
│  │  • 建立索引                                            │   │
│  │  • 提供 Web 介面                                       │   │
│  │  • 顯示人類可讀的資訊                                  │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│         │                                                   │
│         ▼                                                   │
│  ┌─────────────────────────────────────────────────────┐   │
│  │              使用者查詢                              │   │
│  │  • 錢包地址                                           │   │
│  │  • 交易哈希                                           │   │
│  │  • 區塊高度                                           │   │
│  │  • 合約位址                                           │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.2 Etherscan 主要功能模組

Etherscan 功能模組:

首頁(Home)
├── 區塊鏈總覽
│   ├── 最新區塊高度
│   ├── 平均 Gas 價格
│   ├── 網路交易量
│   └── ETH 市場價格
│
├── 區塊瀏覽
│   ├── 區塊列表
│   ├── 區塊詳情
│   └── Uncle 區塊
│
├── 交易查詢
│   ├── 交易狀態
│   ├── 交易詳情
│   └── 交易歷史
│
└── 其他工具
    ├── ENS 查詢
    ├── 代幣追蹤
    └── API服務

區塊(Blocks)
├── 待確認區塊
├── 已確認區塊
└── Uncle 區塊

交易(Transactions)
├── 最新交易
├── Pending 交易
└── 交易搜尋

代幣(Tokens)
├── ERC-20 代幣
├── ERC-721 NFT
└── ERC-1155 半同質代幣

智能合約(Contracts)
├── 合約驗證
├── 合約交互
└── 讀寫操作

工具與服務(Tools)
├── Ether 單位換算
├── ENS 解析
├── 區塊哈希計算
└── 批量交易查詢

1.3 介面佈局說明

Etherscan 主頁面佈局:

┌────────────────────────────────────────────────────────────────┐
│  [Logo] Etherscan    [Search Bar: 輸入地址/交易/TxHash...]   │
├────────────────────────────────────────────────────────────────┤
│  [Blocks] [Transactions] [Tokens] [NFTs] [Contracts] [Tools] │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  ┌──────────────────────┐  ┌────────────────────────────────┐ │
│  │   區塊鏈統計         │  │   最新區塊                     │ │
│  │   ETH 價格: $3,245   │  │   Block #20,456,789           │ │
│  │   Gas: 28 Gwei      │  │   ├─ 交易: 187 筆             │ │
│  │   區塊: 20,456,789  │  │   ├─ 金額: 1,245.3 ETH        │ │
│  │  難度: 55.2 PH      │  │   └─ Gas Used: 89%            │ │
│  └──────────────────────┘  └────────────────────────────────┘ │
│                                                                │
│  ┌──────────────────────┐  ┌────────────────────────────────┐ │
│  │   熱門代幣           │  │   最新交易                     │ │
│  │   1. ETH            │  │   0xabcd... → 0xefgh...        │ │
│  │   2. USDC           │  │   1.5 ETH, 2 mins ago          │ │
│  │   3. USDT          │  │   0x1234... → 0x5678...        │ │
│  │   ...               │  │   0.8 ETH, 5 mins ago          │ │
│  └──────────────────────┘  └────────────────────────────────┘ │
│                                                                │
└────────────────────────────────────────────────────────────────┘

二、錢包地址查詢實務

2.1 基本地址資訊查詢

錢包地址查詢是最常用的功能之一。透過 Etherscan,可以查看任何以太坊地址的完整交易歷史和當前餘額。

查詢步驟

錢包地址查詢流程:

1. 在搜尋框輸入以太坊地址
   - 格式:0x開頭的42位元十六進制字元
   - 例如:0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb1
   
2. 按 Enter 或點擊搜尋按鈕

3. 查看地址概覽頁面

地址概覽頁面資訊說明

地址概覽頁面(以 ENS 解析後的地址為例):

┌────────────────────────────────────────────────────────────────┐
│  Address: vitalik.eth (0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045) │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  Overview(總覽)                                              │
│  ├── Balance: 1,234.5678 ETH ($4,012,345.67)                   │
│  ├── ETH Value: $4,012,345.67 (@ $3,250.00/ETH)               │
│  ├── Transactions: 1,234 筆                                    │
│  └── Last TX: 2026-03-24 12:34:56 (2 hours ago)               │
│                                                                │
│  [Tokens] [Transactions] [Internal Txns] [Comments] [Profile] │
│                                                                │
└────────────────────────────────────────────────────────────────┘

各欄位詳細說明

欄位說明實務意義
Balance地址當前 ETH 餘額可確認地址的真實持有量
ETH Value以美元計價的 ETH 價值評估地址的財力規模
Transactions總交易筆數評估地址的活躍程度
Last TX最後交易時間評估地址的最近活動
Tabs多種資料視圖深入分析不同類型交易

2.2 交易類型詳解

Etherscan 將交易分為三種主要類型:

交易類型分類:

1. Normal Transactions(普通交易)
   - ETH 轉帳
   - ERC-20 代幣轉帳
   - 最常見的交易類型
   - 由外部擁有帳戶(EOA)發起

2. Internal Transactions(內部交易)
   - 智能合約執行的轉帳
   - 例如:Aave 借款、Aave 還款
   - 透過 CALL 操作碼實現
   - 顯示合約間的價值流動

3. ERC-20 Token Transfers(代幣交易)
   - 特定代幣的轉帳記錄
   - 包含 transfer、approve、transferFrom
   - 需要展開查看代幣詳情

Internal Transactions 查看方法

Internal Transactions 分析:

為什麼重要:
- 追蹤 DeFi 操作流程
- 識別閃電貸交易
- 理解合約間的價值流動

查看步驟:
1. 進入地址頁面
2. 點擊「Internal Txns」標籤
3. 展開每筆交易查看詳情

範例:Uniswap Swap 操作
┌─────────────────────────────────────────────────────────────┐
│ Internal Txns                                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│ [Call] Uniswap V2: Router 02                               │
│ From: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045         │
│ To: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D            │
│ Value: 0.5 ETH                                            │
│                                                             │
│   [Call] WETH: WETH                                        │
│   From: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D      │
│   To: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2       │
│   Value: 0.5 ETH (Wrapped)                                │
│                                                             │
│     [Call] Transfer                                        │
│     From: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2    │
│     To: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045      │
│     Value: 0.5 WETH                                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

2.3 代幣餘額與持有分析

ERC-20 代幣查詢

ERC-20 代幣餘額查詢:

1. 進入地址頁面
2. 點擊「Tokens」標籤
3. 查看持有的所有代幣

常見代幣對照:
┌────────────────────────────────────────────────────────────────┐
│ Token Transfers                                              │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│ [FT] USD Coin (USDC)                                         │
│ Balance: 12,500.00 USDC                                      │
│ $12,500.00 (@ $1.00)                                         │
│                                                                │
│ [FT] Tether USD (USDT)                                       │
│ Balance: 5,230.00 USDT                                       │
│ $5,230.00 (@ $1.00)                                          │
│                                                                │
│ [NFT] CryptoPunks #1234                                      │
│ Token ID: 1234                                               │
│                                                                │
│ [FT] UNI Token                                               │
│ Balance: 1,250.00 UNI                                       │
│ $6,250.00 (@ $5.00)                                          │
│                                                                │
└────────────────────────────────────────────────────────────────┘

FT = Fungible Token(同質化代幣)
NFT = Non-Fungible Token(非同質化代幣)

代幣轉移記錄分析

代幣轉移記錄解讀:

範例:追踪 USDC 大額轉移

┌────────────────────────────────────────────────────────────────┐
│ Token Transfer                                                │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│ Method: Transfer                                              │
│ From: 0xA0b8... (Binance Hot Wallet)                        │
│ To: 0xd8dA... (Vitalik's Address)                           │
│ Tokens: 1,000,000 USDC                                       │
│                                                                │
│ Transaction Hash: 0xabcd1234...                               │
│ Block: #20,456,789                                           │
│ Status: Success (/)                                          │
│ Timestamp: 2026-03-24 12:34:56 + UTC                         │
│                                                                │
│ [View Transaction] [View Receipt]                            │
│                                                                │
└────────────────────────────────────────────────────────────────┘

三、交易查詢與分析方法

3.1 交易狀態解讀

交易狀態說明

交易狀態類型:

1. Success(成功)
   - 交易已成功執行
   - 狀態標記:綠色勾選 (/)
   - 區塊已最終確認

2. Failed(失敗)
   - 交易執行失敗
   - 狀態標記:紅色叉叉 (X)
   - 可能原因:
     * Gas 不足
     * 合約執行錯誤
     * 重放攻擊防護
     * Nonce 衝突

3. Pending(待確認)
   - 交易在記憶體池中等待
   - 狀態標記:時鐘圖示
   - 尚未被區塊包含

4. Dropped & Replaced(已丟棄)
   - 被新交易取代
   - 通常因為:
     * 用戶取消交易
     * 用更高 Gas 替換

交易失敗原因分析

常見交易失敗原因:

1. Out of Gas(Gas 不足)
   - 最常見的失敗原因
   - 已執行的操作消耗完 Gas
   - 解決方案:增加 Gas Limit

2. Reverted(回滾)
   - 合約邏輯判斷失敗
   - require() 條件不滿足
   - 查看「Status」與「Error」欄位

3. Nonce Too Low(Nonce 過低)
   - 交易 Nonce 與 pending Nonce 不匹配
   - 通常因重複提交或替換導致

4. Replacement Underpriced(替換費用過低)
   - 嘗試以較低 Gas 替換 pending 交易
   - 新交易 Gas 必須高出 10%

查詢失敗交易的具體原因:
1. 點擊交易 Hash 進入詳情頁
2. 滾動至「Status」區塊
3. 查看「Actual Tx Cost/Fee」
4. 點擊「Click to see More」展開完整錯誤

3.2 交易費用計算

Gas 費用組成

EIP-1559 後的費用結構:

交易費用 = Gas Used × (Base Fee + Priority Fee)

範例計算:

假設:
- Base Fee = 30 Gwei
- Priority Fee = 2 Gwei
- Gas Used = 21,000 (ETH 轉帳)

費用計算:
Total Fee = 21,000 × (30 + 2) = 21,000 × 32 = 672,000 Gwei
         = 0.000672 ETH
         = $2.18 (@ $3,250/ETH)

若為 ERC-20 轉帳(Gas Used = 65,000):
Total Fee = 65,000 × 32 = 2,080,000 Gwei
          = 0.00208 ETH
          = $6.76 (@ $3,250/ETH)

Etherscan 交易費用顯示

交易費用欄位說明:

┌────────────────────────────────────────────────────────────────┐
│ Transaction Receipt                                            │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  Transaction Hash: 0x7f4e9c8b3a2d1e0f...                      │
│                                                                │
│  Status: Success (/)                                          │
│  Block: #20,456,789                                           │
│  Confirmations: 245                                           │
│                                                                │
│  Timestamp: 2026-03-24 12:34:56 + UTC                         │
│                                                                │
│  From: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045           │
│  To: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb1            │
│  Value: 1.5 ETH ($4,875.00)                                  │
│                                                                │
│  Gas Limit: 21,000           <-- 交易設定的最大 Gas          │
│  Gas Used by Txn: 21,000     <-- 實際消耗的 Gas              │
│  Gas Fee: 0.000672 ETH       <-- 實際支付的費用              │
│  Gas Price: 32 Gwei (0.000000032 ETH)                        │
│  Priority Fee / Tip: 2 Gwei                                   │
│  Burnt: 0.00063 ETH            <-- EIP-1559 燃燒部分          │
│                                                                │
│ Txn Type: 2 (EIP-1559)                                        │
│  Max Fee: 50 Gwei                     <-- 最大願付費用       │
│  Max Priority Fee: 2 Gwei              <-- 最大礦工小費     │
│                                                                │
└────────────────────────────────────────────────────────────────┘

3.3 交易追蹤實務

追蹤錢包之間的資金流動

資金流向追蹤方法:

目標:追踪某地址的所有資金流入流出

步驟:
1. 查詢目標地址
2. 查看「Transactions」標籤
3. 分析轉入轉出記錄
4. 點擊相關交易進一步追蹤

圖示化分析:

    輸入                      目標地址                   輸出
    ────                      ────────                   ────
    Binance ──────────────►    │                           │
    5 ETH                     │    0xd8dA...               │
                               │    Balance: 10 ETH         │─────► Aave
    Coinbase ─────────────►    │                           │ 3 ETH
    3 ETH                      │                           │
                               │                           │─────► Uniswap
    Kraken ───────────────►    │                           │ 2 ETH
    2 ETH                      │                           │
                               │                           │─────► 未知地址
                                  │                           0.5 ETH
                                  │
                                  └─────────────────────────────► Unknown
                                                              1.5 ETH

大額交易識別

識別大額交易的技巧:

1. 使用「Token Transfers」過濾
   - 設定最小轉帳金額閾值
   - 追蹤穩定幣大額轉移

2. 標記標的地址標籤
   - Etherscan 提供社群標籤
   - 常見標籤:
     * Binance Hot Wallet
     * Coinbase Hot Wallet
     * Aave Contract
     * Uniswap Router
     * 攻擊者地址

3. 追蹤鯨魚活動
   - 設定 100 ETH 以上的轉帳提醒
   - 使用 Etherscan 的「Watch List」功能

四、區塊與網路狀態查詢

4.1 區塊資訊解讀

區塊結構說明

區塊 #20,456,789 詳情:

┌────────────────────────────────────────────────────────────────┐
│ Block #20,456,789                                              │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  Hash: 0xabcd1234efgh5678...                                  │
│  Parent Hash: 0x9876zyla... (指向上一區塊)                    │
│  Timestamp: 2026-03-24 12:34:56 + UTC (12 secs ago)          │
│  Transactions: 187 transactions                              │
│                                                                │
│  Difficulty: 55.2 PH                                           │
│  Total Difficulty: 58,432 PH                                  │
│                                                                │
│  Size: 178 KB                                                  │
│  Gas Used: 13,245,000 (89% of gas limit)                      │
│  Gas Limit: 15,000,000                                        │
│                                                                │
│  Miner: 0x1a2b3c4d5e6f... (Ethermine)                         │
│  Reward: 2.162 ETH                                            │
│  Uncles: 1 uncle                                              │
│  Uncle Reward: 0.0625 ETH                                     │
│                                                                │
└────────────────────────────────────────────────────────────────┘

欄位說明:
- Hash:區塊的唯一識別符
- Parent Hash:鏈接到前一個區塊
- Timestamp:區塊時間戳
- Difficulty:挖掘難度
- Gas Used/Limit:區塊空間利用率
- Miner:區塊提議者(PoS 中的驗證者)
- Reward:區塊獎勵

區塊瀏覽實務

實務應用場景:

1. 確認交易已上鏈
   - 等待 12 秒(平均區塊時間)
   - 建議等待 12-24 秒確認

2. 計算確認數
   - 從當前區塊高度減去交易區塊高度
   - 12 個確認 = 網路最終確認

3. 估算未來區塊時間
   - 觀察最近區塊的時間戳
   - 計算平均區塊時間

區塊時間分析腳本(Python):

import requests

def get_block_times(start_block, end_block, etherscan_api_key):
    """
    計算指定區塊範圍的平均區塊時間
    """
    total_time = 0
    prev_timestamp = None
    
    for block_num in range(start_block, end_block + 1):
        url = f"https://api.etherscan.io/api"
        params = {
            'module': 'proxy',
            'action': 'eth_getBlockByNumber',
            'tag': hex(block_num),
            'boolean': True,
            'apikey': etherscan_api_key
        }
        
        response = requests.get(url, params=params).json()
        block = response['result']
        timestamp = int(block['timestamp'], 16)
        
        if prev_timestamp:
            total_time += timestamp - prev_timestamp
        
        prev_timestamp = timestamp
    
    avg_time = total_time / (end_block - start_block)
    return avg_time

# 計算最近 100 個區塊的平均時間
avg_block_time = get_block_times(20456789 - 100, 20456789, 'YOUR_API_KEY')
print(f"平均區塊時間: {avg_block_time:.2f} 秒")

4.2 Uncle 區塊理解

Uncle 區塊說明:

什麼是 Uncle 區塊?
- 在工作量證明(PoW)中稱為 Uncle Block
- 在權益證明(PoS)中稱為 Orphaned Block
- 是有效的區塊,但因延遲未被納入主鏈

以太坊 PoS 中的處理:
- 在 PoS 機制下,區塊最終確定性更快
- 軟最終性:~12-15 分鐘(2-3 epochs)
- 硬最終性:超過 2/3 驗證者投票確認後不可逆

為什麼了解 Uncle/Orphan 很重要?
- 理解網路延遲對交易的影響
- 評估礦工/驗證者的收益
- 評估網路的去中心化程度

4.3 網路狀態儀表板

Etherscan 網路統計頁面:

主要指標:

1. 區塊鏈狀態
   - 最新區塊高度
   - 平均區塊時間
   - 網路難度
   - Hash Rate(算力)

2. 經濟指標
   - ETH 價格(USD)
   - 市場情緒指標
   - Gas 價格趨勢
   - ETH 發行/燃燒率

3. 驗證者指標
   - 驗證者數量
   - 質押總量
   - 年化收益率
   - 質押率

4. 交易市場
   - 待處理交易數
   - 平均 Gas 價格
   - Gas 使用率
   - 交易吞吐量(TPS)

實用語法:追蹤網路健康

┌────────────────────────────────────────────────────────────────┐
│  Gas 使用率警示                                                 │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  IF Gas Used / Gas Limit > 90%:                               │
│     THEN 網路可能擁堵                                           │
│          建議提高 Gas Price                                     │
│          預期費用將上升                                         │
│                                                                │
│  IF Gas Used / Gas Limit < 50%:                               │
│     THEN 網路空閒                                               │
│          可使用較低 Gas Price                                   │
│          節省交易費用                                           │
│                                                                │
└────────────────────────────────────────────────────────────────┘

五、智能合約查詢與分析

5.1 合約位址查詢

查詢合約資訊

智能合約查詢:

1. 輸入合約位址
   - 例如:Uniswap V2 Router
   - 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

2. 查看合約總覽
   ┌────────────────────────────────────────────────────────────────┐
   │ Contract: Uniswap V2 Router 02                                 │
   ├────────────────────────────────────────────────────────────────┤
   │                                                                │
   │  Balance: 2,345.67 ETH                                         │
   │  Name: Uniswap V2 Router                                      │
   │  Contract Creator: 0xf160...                                   │
   │  Transaction Hash: 0x1234...                                  │
   │  Compiler Version: v0.8.20+commit.a1b2c3d4                     │
   │  Optimization: Yes (200 runs)                                  │
   │  EVM Version: Default                                          │
   │                                                                │
   │  [Read Contract] [Write Contract] [Code] [Read Proxy]         │
   │                                                                │
   └────────────────────────────────────────────────────────────────┘

合約標籤與分類

常見合約類型標籤:

1. 交易所合約
   - DEX Router
   - DEX Factory
   - Order Book

2. 借貸合約
   - Lending Protocol
   - Liquidation Bot
   - Interest Rate Model

3. 穩定幣合約
   - Stablecoin
   - Bridge Token
   - Wrapped Asset

4. NFT 合約
   - ERC-721
   - ERC-1155
   - Marketplace

5. 基礎設施合約
   - ENS Registry
   - Oracle
   - Aggregator

5.2 合約代碼閱讀

Read Contract(讀取合約)

Read Contract 實務:

用戶無需支付 Gas 即可查詢合約狀態

常見讀取函數:

1. 餘額查詢
   - function balanceOf(address) returns (uint256)
   - 查詢特定地址的代幣餘額

2. 總供應量
   - function totalSupply() returns (uint256)
   - 查詢代幣總發行量

3. 授權額度
   - function allowance(owner, spender) returns (uint256)
   - 查詢某地址對另一地址的授權額度

4. 合約狀態變數
   - 直接讀取 public 變數
   - 讀取映射(mapping)值

Read Contract 頁面範例:

┌────────────────────────────────────────────────────────────────┐
│ Read Contract                                                   │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  [Contract] [Read as Proxy]                                    │
│                                                                │
│  balanceOf                                                     │
│  ─────────────────────────────                                 │
│  address _owner [0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045] │
│  [Read]                                                        │
│  → Result: 12500000000                                         │
│     (125.00000000 USDC)                                        │
│                                                                │
│  totalSupply                                                   │
│  ─────────────────────────────                                 │
│  [Read]                                                        │
│  → Result: 8500000000000000                                    │
│     ($85,000,000,000 USDC)                                    │
│                                                                │
│  allowance                                                     │
│  ─────────────────────────────                                 │
│  address owner [0xd8dA...]                                     │
│  address spender [0x7a25...]                                   │
│  [Read]                                                        │
│  → Result: 0                                                  │
│                                                                │
└────────────────────────────────────────────────────────────────┘

Write Contract(寫入合約)

Write Contract 實務:

用戶需要支付 Gas 執行寫入操作

注意事項:
1. 確認交易目標和參數
2. 估算 Gas 費用
3. 理解交易不可逆轉

常見寫入操作:
- Transfer(轉帳)
- Approve(授權)
- Mint(鑄造)
- Burn(銷毀)
- Swap(交換)
- Deposit(存款)
- Withdraw(提款)

連接錢包方式:
1. 點擊「Connect to Web3」
2. 選擇錢包(MetaMask, Coinbase Wallet 等)
3. 確認連接
4. 填寫函數參數
5. 點擊「Write」發起交易

5.3 合約原始碼驗證

驗證合約的重要性

為什麼要驗證合約原始碼?

1. 透明度
   - 任何人都可查看合約邏輯
   - 確認沒有後門或惡意程式碼

2. 安全性
   - 社群可審計合約
   - 發現潛在漏洞

3. 信任建立
   - 項目方展示誠信
   - 吸引用戶使用

4. 功能展示
   - Etherscan 可直接顯示 ABI
   - 方便開發者整合

驗證步驟

合約驗證流程:

1. 前往合約頁面
   - 進入未驗證的合約頁面
   - 點擊「Code」標籤
   - 點擊「Verify and Publish」

2. 填寫驗證表單
   ┌────────────────────────────────────────────────────────────────┐
   │ Contract Verification                                         │
   ├────────────────────────────────────────────────────────────────┤
   │                                                                │
   │  Contract Address: 0x...                                       │
   │                                                                │
   │  Contract Name: MyContract                                     │
   │  Compiler: v0.8.20 (下拉選單)                                  │
   │                                                                │
   │  Optimization: ○ Yes ○ No                                      │
   │  If Yes, runs: [200]                                          │
   │                                                                │
   │  EVM Version: Default (下拉選單)                               │
   │                                                                │
   │  Enter the Solidity Contract Code below:                       │
   │  ┌────────────────────────────────────────────────────────┐    │
   │  │ // SPDX-License-Identifier: MIT                       │    │
   │  │ pragma solidity ^0.8.20;                              │    │
   │  │ ...                                                    │    │
   │  └────────────────────────────────────────────────────────┘    │
   │                                                                │
   │  Constructor Arguments (如果有的話):                           │
   │  ┌────────────────────────────────────────────────────────┐    │
   │  │ 0x...                                                  │    │
   │  └────────────────────────────────────────────────────────┘    │
   │                                                                │
   │  [Verify and Publish]                                          │
   │                                                                │
   └────────────────────────────────────────────────────────────────┘

3. 驗證成功後
   - 合約頁面顯示原始碼
   - Read/Write Contract 可用
   - ABI 資訊可下載

六、進階查詢技巧

6.1 進階搜尋語法

Etherscan 搜尋技巧:

1. 地址搜尋
   直接輸入地址:0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
   使用 ENS:vitalik.eth
   搜尋標籤:binance.eth

2. 交易哈希搜尋
   直接輸入:0x7f4e9c8b3a2d1e0f9...

3. 區塊高度搜尋
   區塊號:20456789
   區塊哈希:0xabcd...

4. 代幣搜尋
   代幣符號:USDC
   合約地址:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48

5. 標籤搜尋
   user:@vitalikbuterin
   contract.name:"Uniswap V2"

6. 複合搜尋
   範例:address:0xd8dA... from:0x123... to:uniswap

6.2 API 使用方法

Etherscan API 申請與使用

Etherscan API 概述:

免費方案限制:
- 每秒 5 個請求
- 每天 100,000 次請求
- 部分進階 API 需付費

申請 API Key:
1. 前往 https://etherscan.io/apis
2. 登入帳戶
3. 點擊「API Keys」
4. 建立新的 API Key

主要 API 端點:

1. 取得餘額
GET /api?module=account&action=balance&address=0xd8dA...&tag=latest&apikey=YOUR_API_KEY

Response:
{
  "status": "1",
  "message": "OK",
  "result": "41234567890123456789"
}

2. 取得交易列表
GET /api?module=account&action=txlist&address=0xd8dA...&startblock=0&endblock=99999999&page=1&offset=10&sort=desc&apikey=YOUR_API_KEY

3. 取得代幣餘額
GET /api?module=account&action=tokenlist&address=0xd8dA...&apikey=YOUR_API_KEY

4. 取得 Gas 價格
GET /api?module=gastracker&action=gasoracle&apikey=YOUR_API_KEY

5. 取得區塊資訊
GET /api?module=proxy&action=eth_getBlockByNumber&tag=latest&boolean=true&apikey=YOUR_API_KEY

Python API 範例

"""
Etherscan API Python 範例

使用 etherscan-py 庫或直接使用 requests
"""

import requests
import time

class EtherscanAPI:
    """Etherscan API 包裝類"""
    
    BASE_URL = "https://api.etherscan.io/api"
    
    def __init__(self, api_key):
        self.api_key = api_key
    
    def _make_request(self, params):
        """發送 API 請求"""
        params['apikey'] = self.api_key
        response = requests.get(self.BASE_URL, params=params)
        data = response.json()
        
        if data['status'] != '1':
            print(f"API Error: {data.get('message')}")
            return None
        
        return data['result']
    
    def get_eth_balance(self, address):
        """取得 ETH 餘額"""
        params = {
            'module': 'account',
            'action': 'balance',
            'address': address,
            'tag': 'latest'
        }
        wei_balance = self._make_request(params)
        if wei_balance:
            return int(wei_balance) / 1e18  # 轉換為 ETH
        return None
    
    def get_transactions(self, address, start_block=0, end_block=99999999):
        """取得交易列表"""
        params = {
            'module': 'account',
            'action': 'txlist',
            'address': address,
            'startblock': start_block,
            'endblock': end_block,
            'sort': 'desc'
        }
        return self._make_request(params)
    
    def get_token_transfers(self, address, contract_address=None):
        """取得代幣轉移記錄"""
        params = {
            'module': 'account',
            'action': 'tokentx',
            'address': address,
            'sort': 'desc'
        }
        if contract_address:
            params['contractaddress'] = contract_address
        return self._make_request(params)
    
    def get_gas_price(self):
        """取得當前 Gas 價格"""
        params = {
            'module': 'gastracker',
            'action': 'gasoracle'
        }
        return self._make_request(params)


# 使用範例
api = EtherscanAPI('YOUR_API_KEY')

# 查詢 Vitalik 的 ETH 餘額
vitalik_address = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
balance = api.get_eth_balance(vitalik_address)
print(f"Vitalik ETH 餘額: {balance:.4f} ETH")

# 查詢 Gas 價格
gas = api.get_gas_price()
if gas:
    print(f"建議 Gas Price:")
    print(f"  Safe: {gas['SafeGasPrice']} Gwei")
    print(f"  Propose: {gas['ProposeGasPrice']} Gwei")
    print(f"  Fast: {gas['FastGasPrice']} Gwei")

6.3 批量查詢與自動化

批量查詢技巧:

1. 錢包餘額批量查詢

Python 批次查詢:

def batch_balance_check(addresses, api):
    """批量查詢多個地址的 ETH 餘額"""
    results = {}
    
    for i, address in enumerate(addresses):
        balance = api.get_eth_balance(address)
        results[address] = balance
        
        # 避免 API 限流
        if (i + 1) % 5 == 0:
            time.sleep(1)
    
    return results

# 使用
addresses = [
    '0xd8dA...',  # Vitalik
    '0x6Bbd...',  # CZ
    '0x28C6...',  # Coinbase
]

balances = batch_balance_check(addresses, api)
for addr, bal in balances.items():
    print(f"{addr}: {bal:.4f} ETH")


2. 交易記錄分析腳本

def analyze_address_activity(address, api, days=30):
    """
    分析地址在最近 N 天內的活動
    
    輸出:
    - 總交易筆數
    - 總轉入/轉出金額
    - 平均 Gas 費用
    - 最活躍的交易對手
    """
    # 取得交易記錄
    transactions = api.get_transactions(address)
    
    if not transactions:
        return None
    
    # 過濾近 N 天的交易
    now = time.time()
    cutoff = now - (days * 24 * 3600)
    
    recent_txs = [
        tx for tx in transactions
        if int(tx['timeStamp']) > cutoff
    ]
    
    # 計算統計
    total_received = sum(
        int(tx['value']) for tx in recent_txs
        if tx['to'].lower() == address.lower()
    ) / 1e18
    
    total_sent = sum(
        int(tx['value']) for tx in recent_txs
        if tx['from'].lower() == address.lower()
    ) / 1e18
    
    return {
        'total_transactions': len(recent_txs),
        'total_received': total_received,
        'total_sent': total_sent,
        'net_flow': total_received - total_sent
    }

七、常見應用場景

7.1 驗證 DeFi 協議操作

追蹤 Uniswap 交易

Uniswap Swap 操作分析:

目標:驗證一筆 Uniswap Swap 是否成功完成

步驟:

1. 在 Etherscan 輸入交易哈希
   - 從錢包應用或區塊瀏覽器複製哈希

2. 查看交易詳情
   - Status: Success
   - To: Uniswap V2 Router
   - Input: swapExactETHForTokens / swapExactTokensForETH

3. 查看 Internal Transactions
   - 確認代幣實際轉移
   - 驗證收到的代幣數量

4. 交叉驗證
   - 在 Uniswap 介面查看交易歷史
   - 比較區塊瀏覽器的數據

典型 Swap 交易的 Internal Txns:

[Call] Uniswap V2: Router 02
  └─ [Call] WETH: deposit
  │     └─ [Call] ERC-20: Transfer
  └─ [Call] WETH: transfer
  │     └─ [Call] ERC-20: Transfer
  └─ [Call] Uniswap V2: Pair: WETH-USDC
        └─ [Call] ERC-20: Transfer

追蹤 Aave 借款還款

Aave 操作分析:

存款操作:
1. 確認 To 地址為 Aave Pool 合約
2. 查看 Method 為 supply
3. Internal Txns 顯示 ERC-20 Transfer
4. 錢包餘額減少,協議餘額增加

借款操作:
1. 確認 To 地址為 Aave Pool 合約
2. 查看 Method 為 borrow
3. Internal Txns 顯示 ERC-20 Transfer
4. 借款代幣轉入錢包

還款操作:
1. 確認 To 地址為 Aave Pool 合約
2. 查看 Method 為 repay
3. Internal Txns 顯示 ERC-20 Transfer
4. 錢包餘額減少,債務減少

清算操作:
1. 確認 To 地址為 Aave Pool 合約
2. 查看 Method 為 liquidationCall
3. Health Factor 低於 1
4. 擔保品被部分清算

7.2 識別詐騙與可疑活動

識別可疑地址的方法:

1. 檢查地址標籤
   - 是否為已知的交易所地址
   - 是否為已知的項目方地址
   - 是否有社群標記的風險

2. 分析交易模式
   - 突然的大量轉入/轉出
   - 與多個不明地址交易
   - 交易頻率的異常變化

3. 檢查合約互動
   - 是否與未驗證的合約互動
   - 是否授權給不明合約
   - Approve 金額是否異常大

4. 驗證官方資訊
   - 對比官方公告的合約地址
   - 查看 Etherscan 上的官方驗證
   - 檢查項目方的 GitHub 程式碼

危險信號清單:

□ 未驗證的合約原始碼
□ 合約未開源
□ 異常大的代幣授權
□ 與 Mixer/Tornado Cash 交易
□ 短時間內大量交易
□ 交易對手為已知風險地址
□ 錢包地址餘額異常
□ 交易 gas 費用異常

7.3 估算交易時間與費用

Gas 費用優化策略:

1. 查看當前網路狀態
   - 訪問 Etherscan Gas Tracker
   - 查看 Pending 交易數量
   - 分析 Gas 使用率趨勢

2. 選擇適當的 Gas Price

┌────────────────────────────────────────────────────────────────┐
│ Gas Price 選擇指南                                              │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│  速度優先:                                                                   │
│  - 使用 Fast Gas Price                                         │
│  - 通常在 1-2 個區塊內確認                                     │
│  - 適合緊急操作                                                 │
│                                                                │
│  平衡選擇:                                                                   │
│  - 使用 Average Gas Price                                       │
│  - 通常在 5 個區塊內確認                                       │
│  - 適合一般交易                                                 │
│                                                                │
│  費用優先:                                                                   │
│  - 使用 Safe Gas Price                                         │
│  - 可能需要 10+ 區塊確認                                       │
│  - 適合非緊急操作、大量交易                                     │
│                                                                │
└────────────────────────────────────────────────────────────────┘

3. 預估確認時間

使用 Python 計算:

def estimate_confirmation_time(gas_price_gwei, current_fast_gwei):
    """
    估算交易確認時間
    
    參數:
    - gas_price_gwei:用戶設定的 Gas 價格
    - current_fast_gwei:當前 Fast 建議 Gas 價格
    """
    ratio = gas_price_gwei / current_fast_gwei
    
    if ratio >= 2.0:
        return "1-2 區塊 (~12-24 秒)"
    elif ratio >= 1.5:
        return "3-5 區塊 (~36-60 秒)"
    elif ratio >= 1.0:
        return "5-10 區塊 (~1-2 分鐘)"
    elif ratio >= 0.8:
        return "10-20 區塊 (~2-4 分鐘)"
    else:
        return ">20 區塊 (4+ 分鐘,可能pending)"

# 範例
gas_price = 35  # Gwei
current_fast = 30  # Gwei

print(estimate_confirmation_time(gas_price, current_fast))
# 輸出:1-2 區塊 (~12-24 秒)

八、結論

Etherscan 是以太坊生態系統中最基礎也最重要的工具之一。掌握 Etherscan 的使用方法,不僅能幫助您驗證鏈上交易、分析協議互動,更能提升對整個區塊鏈運作機制的理解。

核心技能總結

技能應用場景價值
地址查詢驗證錢包餘額、追蹤資金流向自我驗證能力
交易分析確認交易狀態、了解費用結構決策依據
合約查詢審計合約邏輯、執行合約操作安全使用 DeFi
API 使用批量數據分析、自動化工具效率提升
風險識別識別可疑地址、避免詐騙資產保護

持續學習建議

  1. 每天花 10 分鐘查看 Etherscan 首頁的網路統計
  2. 每次進行 DeFi 操作後,在 Etherscan 驗證結果
  3. 嘗試使用 API 建立自己的鏈上數據追蹤系統
  4. 關注 Etherscan 的新功能和更新

參考資源

資源網址
Etherscan 首頁https://etherscan.io
Etherscan API 文檔https://docs.etherscan.io
Gas Trackerhttps://etherscan.io/gastracker
代幣追蹤https://etherscan.io/token-tracking
Etherscan 驗證工具https://etherscan.io/verifyContract

最後更新:2026年3月

版本:1.0

作者:以太坊鏈上分析組

延伸閱讀與來源

這篇文章對您有幫助嗎?

評論

發表評論

注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。

目前尚無評論,成為第一個發表評論的人吧!