區塊鏈錢包

用來管理加密貨幣的應用通常被稱為錢包,錢包地址類似於你的「銀行帳號」,可以公開給任何人用來接收轉帳,不同鏈上的錢包格式不同,如下

  • 乙太坊區塊鏈錢包地址,0x 開頭:0x32Be343B94f860124dC4fEe278FDCBD38C102D88
  • Tron區塊鏈錢包地址,T 開頭:TNSiV57C3zKD6bvmD7WSDsu92VZnjAdvjH

錢包分類

依錢包位置可分為

中心化錢包(Centralized Wallet)

  • 由第三方(交易所或平台)代管私鑰與資產,用戶僅透過帳號密碼登入操作。私鑰不在用戶手上,平台擁有控制權。
  • 例如:Binance、Coinbase、FTX 交易所內建錢包。
  • 優點:操作簡單,適合新手。
  • 缺點:資金受平台安全性影響,若平台被駭,資產可能受損(如 FTX 事件)。

去中心化錢包(Decentralized Wallet / Non-custodial Wallet)

  • 用戶自行持有私鑰與資產的管理權,平台無法干預用戶資產。
  • 例如:MetaMask、Trust Wallet、Phantom。
  • 優點:資產完全掌握在自己手上,不受第三方限制。
  • 缺點:私鑰或助記詞若遺失,資產無法找回;操作相對複雜。

去中心化錢包可分為2種:

熱錢包(Hot Wallet)

  • 連線到網路的錢包,方便隨時進行交易與資產操作。
  • 例如:MetaMask、Binance Wallet、Coinbase Wallet。
  • 優點:即時交易便利性高。
  • 缺點:因為長期連網,較易成為駭客攻擊目標,安全性較低。

冷錢包(Cold Wallet)

  • 完全離線儲存私鑰的錢包,只有在簽名交易時才會短暫連線。
  • 例如:Ledger Nano、Trezor 硬體錢包。
  • 優點:安全性最高,不易受駭。
  • 缺點:使用上較為不便,需額外裝置或步驟操作。

根據錢包的產生方式可以分為2種

確定性錢包(Deterministic Wallet / HD Wallet)

  • 利用一組「種子(Seed Phrase / 助記詞)」即可生成所有私鑰與地址。這種方式是透過演算法從同一個種子推導出無限個地址。
  • 只需要備份一次助記詞(通常12、18或24個單詞),就能隨時還原所有錢包地址與私鑰。

優缺點:

  • 只需備份助記詞即可還原整個錢包。
  • 易於管理大量地址。
  • 大部分現代錢包(如 MetaMask、Ledger、Trezor)都是 HD 錢包。

非確定性錢包(Non-deterministic Wallet / Random Wallet)

  • 每個私鑰都是「隨機獨立產生」的,無共同關聯性。每產生一個新地址,就會隨機生成一組新的私鑰。
  • 備份方式是每一組私鑰都要單獨備份,否則遺失即無法找回該地址資產。

優缺點:

  • 每個私鑰是獨立的,若一組私鑰洩漏,其他私鑰不受影響。
  • 早期的錢包設計,多見於舊版 Bitcoin-Qt、Electrum(早期版本)。
  • 備份與管理困難,生成一個新地址就要備份一次私鑰。

助記詞(Mnemonic Phrase)

  • 在去中心化錢包中常會看到
  • 如果忘記錢包密碼,只要你記住這些單詞,按照順序在錢包中輸入,就能恢復錢包並且進行任意操作
  • 如果別人拿到了你的助記詞,就等於拿到了你的私鑰,就可以對你的資產進行掌控了。
  • 助記詞是由錢包根種子(Seed)轉換而來的一組易於記憶的單詞(通常是 12 或 24 個英文字),可用來推導出錢包的主私鑰及其下所有衍生地址與子私鑰,符合 BIP32,BIP39,BIP44等規範。
  • 範例:toe little globe cousin miss wink thank vibrant arrive any clump hockey


轉帳流程

1. 發起交易請求

  • 你在錢包輸入:
    • 收款方地址
    • 轉帳金額
    • (有時會調整手續費 Gas Fee)
  • 點擊「發送」或「確認」。

2. 錢包組合交易資料 (Transaction Data)

錢包會把這些資訊打包成一筆「待簽名的交易」,包含:

  • 你的錢包地址(公鑰對應的地址)
  • 目標地址
  • 轉帳金額
  • 手續費(Gas Fee)
  • 其他區塊鏈需要的參數(例如 Nonce、鏈 ID)

3. 用私鑰進行數位簽名(本地完成)

  • 錢包在本地裝置內部,用你的私鑰對交易資料進行簽名。
    • 簽名過程只會產生一組數位簽章(Signature),私鑰本身不會離開裝置。
  • 這個簽章是區塊鏈節點認證交易合法性的「憑證」,證明是你本人授權。

4. 廣播(Broadcast)簽名後的交易到區塊鏈網路

  • 錢包將簽名後的交易資料傳送給區塊鏈節點(礦工 / 驗證者)。
  • 節點會進行檢查:
    • 簽名是否有效(透過公鑰驗證)
    • 你的帳戶餘額是否足夠
    • Nonce 是否正確(防止重播攻擊)

5. 交易打包進區塊(出塊)

  • 節點將合法的交易打包進區塊,當區塊被鏈上其他節點確認(確認數足夠),交易就被視為完成。
  • 這時候資產才正式從你的錢包地址轉到對方地址。

6. 錢包同步鏈上資料,顯示交易結果

  • 你的錢包會去區塊鏈查詢交易狀態(例如區塊瀏覽器 API),一旦確認交易上鏈,就會顯示「交易成功」。
  • 對方地址也會收到相對應的資產。

Nonce

Number used once指的是「只使用一次的數字」,對於每個帳戶(Address),每筆交易都需要附上一個唯一的 Nonce 值,並且這個值必須是從 0 開始,依序遞增(不可以跳號)。

  • 確保每筆交易唯一。
  • 防止重放攻擊(Replay Attack)。
  • 幫助區塊鏈維持交易順序。

上述指的是交易用的Nonce,使用POW鏈中的區塊也會出現Nonce,2個用途不同。另外POS鏈中的區塊不使用Nonce

Chain ID

鏈識別碼是用來識別不同區塊鏈網路的唯一編號。

  • 每一條鏈(如 Ethereum mainnet、Ropsten 測試網、Polygon、BSC 等)都擁有一個唯一的 Chain ID。
  • 在交易簽名中包含 Chain ID,可以防止交易在其他鏈上被重新播放。
  • Chain ID 的概念定義在 EIP-15510
  • EVM 相容鏈ID整理 https://chainlist.org/

Signature

從以太坊(Ethereum)和大多數 EVM 鏈的應用場景來看,常見的簽名方式可以大致分為三種:

Transaction Signature

  • 用途:屬於交易簽名,用來簽署鏈上交易,例如轉帳、呼叫合約函數等。
  • 格式:簽署的是一個 RLP 編碼後的交易資料(含 nonce、gas、to、value、data 等)。
  • 執行後果:簽名後的交易可以被廣播到網路並寫入區塊鏈,實際會消耗 Gas。
  • 用戶會看到的操作:轉帳 ETH、發送 ERC20、操作 NFT。

Sign Personal Message

  • 用途:屬於訊息簽名,用來簽署「非格式化的純文字資料」。
  • 格式:會自動加上前綴:”\x19Ethereum Signed Message:\n” + length + message,再進行雜湊與簽名。
  • 常見用途
    • 用戶登入驗證(例如 “Login to DApp with this wallet”)
    • 提供某些 off-chain 授權證明(例如「我同意某個聲明」)
  • 執行後果:不會寫入區塊鏈,也不消耗 Gas。
  • 特色:適合讓使用者簽「人類可讀」的字串,但無法被合約直接驗證。

Sign Typed Data (EIP-712)

  • 用途:屬於訊息簽名,用來簽署「結構化資料」,通常是 JSON 對象。
  • 格式:支援結構化資料與 domain separator,格式複雜但更安全、易於合約驗證。
  • 常見用途
    • Meta-transactions(使用者簽名授權,Gas 由第三方代付)
    • DEX 簽署訂單(如 0x Protocol, OpenSea)
    • DAO 投票、DeFi 授權(如 Permit)
  • 執行後果:本身不消耗 Gas,但產生的簽名可被合約驗證與執行後續操作。

小結:

類型用途是否進鏈是否消耗 Gas特點
Transaction Signature交易簽名:轉帳、合約互動YesYes鏈上操作
Personal Message訊息簽名:登入、聲明NoNo純字串簽名,簡單但無法合約驗證
Typed Data (EIP-712)訊息簽名:授權、Meta Tx、DEX訂單NoNo結構化,可供合約驗證,安全性高


區塊鏈瀏覽器

區塊鏈瀏覽器是一種用來「查詢區塊鏈數據」的網站工具或平台,它讓用戶能夠直接查詢到區塊鏈上的公開資料,例如:

  • 交易紀錄
  • 錢包地址餘額
  • 區塊資訊
  • 智能合約內容
  • 代幣流通狀況
  • 網路狀態(Gas Fee、節點數量)

常見區塊鏈瀏覽器的官方網址:

Bitcoin 區塊鏈瀏覽器

Ethereum 區塊鏈瀏覽器

Tron 區塊鏈瀏覽器