在使用 BTC、Doge、LTC、BCH 等帳戶轉帳時,你可能會注意到,交易詳情中的發起地址與你的帳戶地址不同,或在你設置的收款人地址之外出現了其他收款地址。
以上圖為例,Alice 的帳戶地址為 bc1p9wzw…hej46,轉了 0.00008 BTC 給收款人 Bob,Bob 的地址是 bc1pum2…egs3p。但當 Alice 打開這筆轉帳記錄的詳情頁時發現,交易發起地址為 bc1pkyccky…st20w,同時在代幣轉移記錄中,除了收款人 Bob 的地址 bc1pum2…egs3p,另外還出現了一個收款地址 bc1pfa…z0se0(專業術語稱呼它為找零地址)。
這裡有兩個你可能會覺得疑惑的點:
- 為什麼帳戶地址與交易詳情頁中的發起地址不一致?
- 為什麼除了收款人地址外,還有一個找零地址?
先來回答第二個問題,找零地址是什麼?回顧一下現金的找零機制,當 Alice 去商店買東西,Alice 從錢包中拿出一張面額為 100 元的紙幣給了店員 Bob,但商品只值 80 元,Bob 就會給 Alice 找零 20 元,Alice 接過錢放入錢包中。而數位貨幣世界裡的找零機制也是類似的,如果 Alice 帳戶地址裡有 10 個 BTC,轉 8 個給 Bob(收款人地址),而剩下需找零的 2 個 BTC 則會進入錢包自動為 Alice 創建好的找零地址,而不是返回 Alice 原來的帳戶地址。
在 BTC、Doge、LTC、BCH 網路的找零機制中,每筆交易都由輸入(資金來源)和輸出(資金去向)組成。找零地址就是當輸入金額大於輸出金額時,剩餘的部分(即找零)被發送到的地址。
這種設計是為了讓交易更加安全和私密,避免所有代幣都存放在同一個地址中。因為如果只有一個地址,那麼一旦外界獲得了你的地址,就能追蹤到你的所有交易記錄。而透過找零地址機制,你的代幣分散存儲在不同的地址,別人就很難獲取你的資產資訊。
接下來再來回答第一個問題,為什麼帳戶地址與交易詳情頁中的發起地址不一致?
以比特幣帳戶為例,帳戶首頁顯示的是你的比特幣主地址,也叫帳戶地址,但當你轉帳時,錢不一定是從帳戶地址中去出,錢包會從你帳戶地址中的代幣,和找零地址中的代幣(過往轉帳時獲得的找零)中選擇合適的金額作為轉帳輸入,如果選擇的是過往轉帳創建的找零地址,那麼這次交易的發起地址就是以前的找零地址,與帳戶地址不一樣。而如果這一次轉帳的輸入總額超過了轉帳的數量和礦工費用,剩餘的代幣便又會被發送到新的找零地址。
但請注意,當你在帳戶首頁查看帳戶餘額時,它會匯集所有地址,包括你用來接收錢的主地址、子地址以及找零地址錢包中的代幣數量總和。此外,儘管你有很多不同的地址,但由於錢包是透過一套助記詞來管理所有這些地址的。所以只要你備份了這套助記詞,你就可以控制錢包中的所有代幣,無論它們存放在哪個地址。
需要注意的是,如果你的帳戶是透過私鑰導入的,由於單個私鑰無法生成找零地址,找零將會返回至原地址。
相關閱讀: