iT邦幫忙

0

Day 7:交易流程從發起到上鏈

  • 分享至 

  • xImage
  •  

今天把「交易」拆成具體步驟:從使用者在錢包按下送出,到區塊被打包並確認入住鏈上。理解每一步能幫助你看出哪些地方會被攔截、被操控或遭遇攻擊,進而採取對應防護。

交易流程:發送 → 廣播/等待 mempool → 打包進區塊 → 驗證 → 確認(confirmations)。
攔截/操控常發生在:簽署階段、mempool(被前跑/夾擊)、礦工/驗證者(重排/審查)。
防護關鍵:檢查簽名內容、用硬體錢包、選可靠 RPC 或私有 relay、適度等待確認數。

詳細步驟(含可能被操控的點)

  1. 發送交易(Wallet) ← 最原始的起點
    使用者在錢包(例如 MetaMask、硬體錢包)建立交易:to, value, data, gasLimit, gasPrice/MaxFee/MaxPriorityFee, nonce, chainId 等欄位。
    錢包用 私鑰簽章(digital signature)產生已簽名的 raw transaction。
    可能被攔截/操控的點(Point A):
    惡意 dApp 或釣魚頁面誘導你簽署「看起來正常但實際是別的」交易(簽署陷阱)。
    使用不安全或被植入惡意程式的軟體錢包;私鑰或助記詞外洩。
    防護建議:仔細讀簽署訊息內容;用硬體錢包簽章;確認連到正確的網站與合約地址。

  2. 廣播到網路 & Mempool(交易池)
    已簽名的交易被送到 RPC 節點或直接廣播到 P2P 網路,進入各節點的 mempool(等待被打包的暫存池)。
    在 mempool 中,任何能看到交易的人(礦工、驗證者、機器人)都能預覽這筆交易內容(除非你使用私有 relayer)。
    可能被操控的點(Point B):
    前跑 / 夾擊(Front-running / Sandwich):監視 mempool 的交易機器人會插入一筆高費用交易(在你之前或之後)來獲利。
    交易替換(Replace-by-fee)或取消:發送者或攻擊者可用更高費用替換相同 nonce 的交易。
    RPC 提供者(例如公共節點)可能審查或延遲廣播。
    防護建議:使用私有 relayer 或直接連自有節點;用 EIP-1559 設定合理的 MaxPriorityFee;對敏感交易考慮私下發送(private tx)或使用 MEV-protection 工具。

  3. 打包進區塊(Miner / Validator)
    礦工(PoW)或驗證者(PoS)把 mempool 中的交易選入 candidate block,通常依據交易手續費排序。
    成功生成/簽署區塊後,該區塊被廣播至全網。
    可能被操控的點(Point C):
    重排 / 審查:礦工/驗證者可以選擇不包含或重排某些交易(例如進行 MEV 提取或配合審查)。
    51% / 控制權威問題:若攻擊者掌握太多權力,可能重寫鏈史(極端情況)。
    防護建議:在高風險情況下等待更多確認;選擇信譽良好的公鏈或 layer2;分散風險。

  4. 驗證(Validation by other nodes)
    其他節點驗證區塊與其中交易:簽名、nonce、gas、狀態轉換是否正確。
    驗證通過後,節點把區塊接在本地鏈上。
    注意點:短暫的 chain reorg(分叉)可能導致先前的區塊被替換;因此單一確認仍有風險。

  5. 確認(Confirmations / Finality)
    一筆交易被包含在區塊後會有「確認數」(每新增一個後續區塊都算一個確認)。
    根據交易重要性,建議等待不同數量的 confirmations(越多越安全)。
    PoS 系統可能在協議層提供更快的最終性(finality)保證,但細節視鏈而定。
    防護建議:大額交易等待較多 confirmations;對高敏感度業務採行額外風控(例如多重簽章、多重驗證)。

概念圖(ASCII 示意,標示可操控點)
[User Wallet] --(簽章)-> [RPC Node / P2P] --(broadcase)-> [Mempool]
|(Point A: 被誘簽/私鑰外洩) |(Point B: 前跑/審查/替換)

[Miner/Validator]
|(Point C: 選擇/重排/審查)

[New Block -> Broadcast]

[其他節點驗證 -> Append]

確認數增加(1..N)

把交易流程拆細後會發現:看似「按一下送出」的動作,背後其實有很多攻擊面與信任點。從簽章階段的釣魚陷阱,到 mempool 裡的前跑機器人,再到礦工/驗證者可能的審查或重排——每一步都有可能影響最終交易結果。作為使用者或開發者,掌握這些流程不只是學術上的理解,而是實務上的防護基礎:用硬體錢包、仔細檢查簽署內容、選擇可靠的節點與 relayer、並在必要時等待足夠的 confirmations,都是降低風險的簡單方法。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言