Fundamentals ·

HD Wallet Và Đường Dẫn Phái Sinh Giải Thích (BIP44)


Khi bạn thiết lập ví tiền mã hóa và nhận seed phrase 12 từ, bản sao lưu duy nhất đó cho bạn quyền truy cập mọi tài khoản ví sẽ tạo --- trên Bitcoin, Ethereum, Solana và bất kỳ chain được hỗ trợ nào. Cơ chế này gọi là HD wallet, và hệ thống địa chỉ được quản lý bởi đường dẫn phái sinh.

Hướng dẫn này giải thích cách HD wallet biến một seed thành số lượng khóa không giới hạn, đường dẫn phái sinh như m/44'/60'/0'/0/0 thực sự có nghĩa gì, và tại sao chọn đúng đường dẫn quan trọng khi bạn chuyển giữa các ví hoặc blockchain.

HD Wallet Là Gì?

HD là viết tắt của Hierarchical Deterministic. Thuật ngữ đến từ BIP32, đặc tả được công bố năm 2012 định nghĩa cách phái sinh cây cặp khóa mật mã từ một gốc duy nhất.

Hierarchical (Phân cấp) nghĩa là các khóa được tổ chức trong cấu trúc cây --- khóa cha có thể tạo khóa con, và con có thể tạo cháu. Cây có thể phân nhánh sâu tùy cần.

Deterministic (Xác định) nghĩa là quy trình có thể lặp lại. Cho cùng gốc (master seed), cùng cây khóa được tạo ra mỗi lần, trong mọi ví tuân theo tiêu chuẩn.

Trước HD wallet, mỗi địa chỉ mới yêu cầu tạo và sao lưu private key ngẫu nhiên riêng. Nếu bạn tạo 100 địa chỉ, bạn cần 100 bản sao lưu. HD wallet loại bỏ vấn đề này. Bạn sao lưu seed một lần, và mọi khóa ví phái sinh trong tương lai đã được bao gồm.

Gốc cây đến từ seed phrase BIP39. Mnemonic được chuyển thành seed nhị phân 512 bit qua PBKDF2 (như mô tả trong BIP39 Giải Thích). Seed 512 bit được chia thành master private key (256 bit) và master chain code (256 bit). Cùng nhau, chúng tạo thành gốc từ đó toàn bộ cây phát triển.

Phân Tích m/44'/60'/0'/0/0

Đường dẫn phái sinh là địa chỉ trong cây xác định một khóa cụ thể. Hãy giải mã m/44'/60'/0'/0/0, đường dẫn tiêu chuẩn cho địa chỉ Ethereum đầu tiên:

m / 44' / 60' / 0' / 0 / 0
│   │      │     │    │   │
│   │      │     │    │   └── Chỉ mục địa chỉ (0 = địa chỉ đầu tiên)
│   │      │     │    └────── Thay đổi (0 = bên ngoài/nhận, 1 = nội bộ/thay đổi)
│   │      │     └─────────── Tài khoản (0 = tài khoản đầu tiên)
│   │      └───────────────── Loại coin (60 = Ethereum)
│   └──────────────────────── Mục đích (44 = tiêu chuẩn BIP44)
└──────────────────────────── Khóa chủ (gốc cây)

Phân tích từng cấp:

m --- Khóa chủ. Mọi đường dẫn phái sinh bắt đầu ở đây. Đây là gốc được phái sinh trực tiếp từ seed.

44' --- Mục đích. Số 44 chỉ ra đường dẫn này tuân theo tiêu chuẩn BIP44 cho ví đa tài khoản, đa coin. Dấu nháy đơn (') đánh dấu đây là phái sinh "hardened", nghĩa là khóa con không thể tính từ public key cha --- cần private key. Đây là biện pháp bảo mật.

60' --- Loại coin. Mỗi tiền mã hóa được gán một số bởi SLIP-44. Ethereum là 60. Bitcoin là 0. Solana là 501. Cấp này cho phép một seed phục vụ nhiều blockchain mà không xung đột khóa.

0' --- Chỉ mục tài khoản. Hãy nghĩ đây là các ví riêng trong ví của bạn. Tài khoản 0 là mặc định. Hầu hết người dùng không vượt quá tài khoản 0.

0 --- Cấp thay đổi. Trong mô hình UTXO của Bitcoin, 0 nghĩa là địa chỉ bên ngoài (nhận) và 1 nghĩa là địa chỉ nội bộ (thay đổi). Ethereum không dùng địa chỉ thay đổi tương tự, nhưng cấp này được giữ để tương thích.

0 --- Chỉ mục địa chỉ. Đây là số cuối cùng tăng dần để tạo địa chỉ mới. Chỉ mục 0 là địa chỉ đầu tiên, chỉ mục 1 là thứ hai, v.v.

BIP44 Và SLIP-44 Loại Coin

BIP44 chuẩn hóa cấu trúc đường dẫn phái sinh ở trên. SLIP-44 duy trì sổ đăng ký số loại coin. Mỗi blockchain được gán một số nguyên duy nhất. Một số gán phổ biến:

Loại Coin Blockchain Đường Dẫn Mặc Định
0 Bitcoin m/44'/0'/0'/0/0
2 Litecoin m/44'/2'/0'/0/0
60 Ethereum (và chain EVM) m/44'/60'/0'/0/0
144 XRP m/44'/144'/0'/0/0
195 Tron m/44'/195'/0'/0/0
501 Solana m/44'/501'/0'/0'
9006 Avalanche (C-Chain) m/44'/60'/0'/0/0

Lưu ý Avalanche C-Chain sử dụng loại coin 60 (loại Ethereum) vì C-Chain tương thích EVM. Tương tự với Polygon, Arbitrum, OptimismBase --- tất cả sử dụng m/44'/60'/0'/0/0, nghĩa là cùng địa chỉ Ethereum hợp lệ trên tất cả mạng này.

Các Chain Khác Nhau, Đường Dẫn Khác Nhau

Trong khi chain EVM chia sẻ đường dẫn Ethereum, chain không phải EVM sử dụng quy ước riêng.

Đường Dẫn Bitcoin

Bitcoin đã phát triển qua nhiều định dạng địa chỉ, mỗi cái có tiêu chuẩn phái sinh riêng:

Tiêu chuẩn Đường dẫn Loại Địa Chỉ Tiền Tố
BIP44 m/44'/0'/0'/0/0 Legacy (P2PKH) 1...
BIP49 m/49'/0'/0'/0/0 Nested SegWit (P2SH-P2WPKH) 3...
BIP84 m/84'/0'/0'/0/0 Native SegWit (bech32) bc1q...
BIP86 m/86'/0'/0'/0/0 Taproot bc1p...

Hầu hết ví Bitcoin hiện đại mặc định BIP84 (native SegWit) vì phí giao dịch thấp hơn. Nếu bạn khôi phục seed trong ví và tiền không xuất hiện, ví có thể đang quét sai đường dẫn phái sinh.

Đường Dẫn Solana

Solana sử dụng ed25519 thay vì secp256k1, nên phái sinh khác về cấu trúc. Đường dẫn tiêu chuẩn là m/44'/501'/0'/0'. Xem Hướng Dẫn Tạo Ví Solana cho hướng dẫn chi tiết.

BIP84 vs BIP44: Tại Sao Bitcoin Có Nhiều Tiêu Chuẩn

BIP44 (m/44'/0'/...) tạo địa chỉ legacy P2PKH (định dạng 1...). BIP49 (m/49'/0'/...) tạo địa chỉ nested SegWit P2SH (định dạng 3...). BIP84 (m/84'/0'/...) tạo địa chỉ native SegWit bằng mã hóa bech32 (định dạng bc1q...).

Điểm mấu chốt là cả ba định dạng có thể được phái sinh từ cùng seed phrase. 12 từ của bạn không thay đổi. Điều thay đổi là cấp mục đích trong đường dẫn: 44, 49 hoặc 84.

Khi tạo hoặc khôi phục ví Bitcoin, luôn kiểm tra ví sử dụng tiêu chuẩn phái sinh nào mặc định. Để khám phá định dạng địa chỉ Bitcoin chi tiết, xem Định Dạng Địa Chỉ Tiền Mã Hóa Giải Thích.

Phái Sinh Khóa Từng Bước

Đây là cách phái sinh đầy đủ hoạt động từ seed phrase đến địa chỉ Ethereum:

Bước 1: Mnemonic Sang Seed

Mnemonic 12 từ được xử lý qua PBKDF2-HMAC-SHA512 với 2.048 vòng lặp và muối "mnemonic" (cộng passphrase tùy chọn). Đầu ra là seed nhị phân 512 bit.

Bước 2: Seed Sang Master Key

Seed 512 bit được xử lý qua HMAC-SHA512 với khóa "Bitcoin seed". 256 bit trái thành master private key. 256 bit phải thành master chain code.

Bước 3: Master Key Sang Khóa Con

Bắt đầu từ master key, mỗi cấp đường dẫn phái sinh thực hiện hàm phái sinh khóa con (CKD). Cho con hardened (đánh dấu '), private key và chain code cha được đưa vào HMAC-SHA512 cùng với chỉ mục con.

Bước 4: Private Key Sang Public Key

Tại cấp cuối, private key con được chuyển thành public key qua nhân đường cong elliptic. Cho Ethereum, sử dụng đường cong secp256k1.

Bước 5: Public Key Sang Địa Chỉ

Public key được hash để tạo địa chỉ blockchain. Cho Ethereum, hash Keccak-256 và lấy 20 byte cuối. Cho Bitcoin, SHA-256 rồi RIPEMD-160, sau đó mã hóa Base58Check hoặc bech32.

Bạn có thể thấy toàn bộ quy trình bằng Ethereum Address Generator hoặc Bitcoin Address Generator của SafeSeed.

Tại Sao Điều Này Quan Trọng Trong Thực Tế

Hiểu đường dẫn phái sinh không chỉ là lý thuyết. Đây là các tình huống cụ thể mà nó quan trọng:

  • Khôi phục ví trong phần mềm khác. Nếu bạn chuyển từ Ledger sang Trezor, đảm bảo đường dẫn phái sinh khớp. Cùng seed cộng đường dẫn khác bằng địa chỉ khác và tiền dường như mất.
  • Truy cập nhiều chain. Seed phrase đã bao gồm Polygon, Arbitrum và chain EVM khác --- tất cả sử dụng loại coin 60 Ethereum. Không cần sao lưu riêng.
  • Gỡ lỗi tiền mất. Nếu khôi phục seed Bitcoin mà không thấy số dư, thử chuyển giữa đường dẫn BIP44, BIP49 và BIP84 trong cài đặt ví.
  • Tạo địa chỉ cho mục đích cụ thể. Bằng cách tăng chỉ mục tài khoản (cấp thứ ba), bạn có thể tạo ví logic riêng biệt --- một cho chi tiêu hàng ngày, một cho lưu trữ dài hạn --- tất cả từ cùng seed phrase.

Hệ thống đường dẫn phái sinh là thứ biến đổi một seed phrase duy nhất thành ví đa chain, đa tài khoản. Đó là lớp hạ tầng giúp tự quản lý tiền mã hóa hiện đại vừa mạnh mẽ vừa dễ di chuyển. Khi bạn hiểu nó, bạn có thể chuyển giữa ví, chain và định dạng địa chỉ với sự tự tin.