Back

助記詞與路徑

介紹

很多人以為助記詞(Mnemonic)是將私鑰(Private Key)轉換成人類能理解的單字,但事實上並非如此。助記詞是一種用於創建私鑰和地址的工具,它允許用戶安全地存儲和備份加密貨幣錢包的助記詞。助記詞與路徑(Derivation Path)結合使用,可以創建多個地址,從而實現更靈活的錢包管理。

本文將探索助記詞與路徑的關係,並解釋如何使用路徑創建多個地址,以及助記詞在區塊鏈技術中的重要性。

技術背景

助記詞技術是基於以下幾個 Bitcoin 改進計畫(BIP)而發展出來的:

  • BIP-39: 定義了助記詞的創建和使用規範。助記詞是一組單詞,可以用來創建私鑰。這些單詞來自一個標準化的詞彙表,確保助記詞的唯一性和可讀性。
  • BIP-32: 定義了層次確定性錢包(Hierarchical Deterministic Wallets, HD Wallets)。HD 錢包允許用戶從一個種子創建多個私鑰和地址,並且可以通過路徑進行管理。
  • BIP-44: 定義了多帳戶層次確定性錢包的結構。BIP-44 規範了如何使用路徑來創建不同類型的地址(例如外部鏈和內部鏈)。

這些 BIP 協議共同構建了現代加密貨幣錢包的基礎,使得用戶可以安全地管理多個地址和私鑰。

助記詞的工作原理

助記詞並不是將私鑰轉換為人類可理解的單字,而是使用者先建立助記詞,然後由軟件(如錢包應用程式)將助記詞轉換為私鑰和地址。具體步驟如下:

  1. 創建助記詞: 用戶使用錢包應用程式創建一組助記詞(例如 12 或 24 個單詞)。
  2. 助記詞轉換為種子: 助記詞被轉換為一個二進制數值。
  3. 以種子創建私鑰: 使用種子和路徑(Derivation Path)創建私鑰。私鑰是用於簽署交易的秘密數據。
  4. 以私鑰創建地址: 私鑰被用來創建公鑰,然後公鑰被哈希(例如使用 SHA-256 和 RIPEMD-160)創建地址。

這個過程確保了助記詞可以安全地創建多個私鑰和地址,從而實現錢包的多地址管理。

路徑(Derivation Paths)

路徑是一種用於創建不同私鑰和地址的方法。路徑通常表示為一個類似於 m/44'/60'/0'/0/0 的字符串。每個部分都有特定的含義:

m

主路徑
表示這是一個主路徑(Master Path)。

44'

用途(Purpose)
表示這是一個 BIP-44 兼容的錢包。' 表示這是一個硬分歧(Hardened Derivation),即不能從父路徑推導出私鑰。

60'

網絡編號(Coin Type)
表示這是以太坊(Ethereum)網絡。不同的網絡有不同的編號。
(例如 Bitcoin 是 0,以太坊是 60)

0'

帳戶(Account)
表示這是首個帳戶。用戶可以通過改變這個數字來管理多個帳戶。

0

變更(Change)
表示這是外部鏈(External Chain),用於接收資金。內部鏈(Change)用於存儲變更,通常用於交易的輸出。

0

索引(Index)
表示這是首個地址。用戶可以通過改變這個數字來創建多個地址。

通過改變路徑中的不同部分,可以創建不同的私鑰和地址。例如,改變索引(Index)可以創建多個地址,而改變帳戶(Account)可以管理多個帳戶。

注意:網絡編號(Coin Type)需要由 Satoshi Labs 注冊並寫入列表,以確保所有用戶使用統一的編號。這樣可以避免因為記憶錯誤導致的資產遺失。網絡編號的列表可以參考 SLIP-44

實際例子

下面是一個示例,展示相同的助記詞如何創建不同網絡的地址:

助記詞:abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
網絡編號

Ethereum (60)
Tron (195)

路徑

Ethereum
m/44'/60'/0'/0/0
Tron
m/44'/195'/0'/0/0

私鑰(Private Key)

Ethereum
1ab42cc412b618bdea3a599e3c9bae199ebf030895b039e9db1e30dafb12b727

Tron
b5a4cea271ff424d7c31dc12a3e43e401df7a40d7412a15750f3f0b6b5449a28

如上所述,相同的助記詞可以創建不同網絡的地址。這是通過改變路徑中的網絡編號(Coin Type)實現的。

安全考慮

助記詞是創建私鑰和地址的種子。如果助記詞外洩,攻擊者可以完全控制用戶的錢包和所有資產。因此,安全存儲和備份助記詞至關重要。

  • 不與助記詞相關的軟件: 不要將助記詞存儲在任何軟件中,除了用於創建私鑰和地址的錢包應用程式。這些軟件可能會被黑客攻擊或竊取助記詞。
  • 離線存儲: 最安全的方法是將助記詞寫在紙上,並存儲在安全的地方。這樣可以避免數位設備被黑客攻擊。
  • 加密存儲: 如果必須在數位設備上存儲助記詞,請使用強大的加密工具(如 AES-256)進行加密。並確保密碼足夠複雜且安全。
  • 多重備份: 為助記詞創建多個備份副本,並存儲在不同的位置。這樣可以防止單一備份被損壞或遺失。
  • 定期檢查: 定期檢查助記詞的安全性,並確保沒有被竊取或泄露。

如果助記詞外洩,請立即將所有相關的地址轉移到新的錢包中,並更換助記詞。這樣可以防止攻擊者竊取資產。

常見誤解

有關助記詞和路徑,有一些常見的誤解。以下是一些常見的誤解及其解釋:

  • 助記詞只能創建一個地址:

    誤解:很多人以為每條助記詞只能創建一條地址,停用地址時必須連同助記詞一同放棄。

    事實:助記詞並非單獨使用,而是需要連同「路徑(Derivation Path)」一同使用才能做到助記詞本應有的效果。通過改變路徑中的不同部分,可以創建多個地址。

  • 助記詞可以逆向創建私鑰:

    誤解:有些人以為助記詞可以逆向創建私鑰,即從私鑰可以得到助記詞。

    事實:助記詞和私鑰的創建順序是固定的:助記詞 → 私鑰 → 地址。這個順序不能逆轉。不過,有一種名為虛榮地址(Vanity Address)的做法,是先產生自己喜歡的地址格式,然後通過暴力破解找出符合要求的助記詞或私鑰。

  • 所有助記詞都相同:

    誤解:有些人以為所有助記詞都是相同的,或者可以互換使用。

    事實:助記詞是唯一的,每個助記詞創建的私鑰和地址都是不同的。助記詞的唯一性確保了每個錢包的獨特性。

  • 路徑不重要:

    誤解:有些人認為路徑不重要,或者可以隨意更改。

    事實:路徑在助記詞創建地址的過程中起著關鍵作用。不同的路徑會創建不同的地址。如果路徑錯誤,可能會導致資產遺失或錯誤地址創建。因此,正確理解和使用路徑非常重要。

進階主題

在了解助記詞和路徑的基本概念之後,以下是一些進階主題,可以幫助用戶更深入地理解和使用這些技術:

  • 虛榮地址(Vanity Address):

    虛榮地址是指用戶自定義的地址格式,例如以「1Bitcoin」開首的 Bitcoin 地址。創建虛榮地址通常需要使用暴力破解的方法,即通過嘗試不同的助記詞或私鑰,直到找到符合要求的地址。這是一種高計算量的過程,通常需要專門的軟件和硬件支持。

  • 多簽錢包(Multi-Signature Wallets):

    多簽名錢包需要多個私鑰的簽名才能進行交易。這種錢包可以提高安全性,因為即使一個私鑰被竊取,攻擊者仍然需要其他私鑰才能進行交易。多簽名錢包通常與助記詞結合使用,以便管理多個私鑰。

  • 層次確定性錢包(Hierarchical Deterministic Wallets, HD Wallets):

    HD 錢包是一種錢包結構,允許用戶從一個種子創建多個私鑰和地址。HD 錢包通常與助記詞結合使用,以便管理多個地址。HD 錢包的結構使得用戶可以方便地管理多個帳戶和地址,並且可以通過路徑進行靈活的管理。

  • 第三方工具:

    有許多工具和庫可以幫助用戶創建、管理和使用助記詞和路徑。例如,BIP39 Generator 可以幫助用戶創建助記詞,並顯示對應的私鑰和地址。其他工具還包括助記詞轉換器、路徑創建器等。使用這些工具可以幫助用戶更輕鬆地理解和使用助記詞和路徑技術。