Jalur Derivasi BIP-44: Bagaimana Wallet Menghasilkan Alamat
Saat Anda menyiapkan wallet kripto dan wallet tersebut menghasilkan seed phrase, satu seed itu harus dapat menghasilkan ribuan alamat di puluhan blockchain berbeda — masing-masing dengan private key, public key, dan format alamatnya sendiri. BIP-44 mendefinisikan struktur organisasi yang memungkinkan hal ini: pohon kunci hierarkis yang diturunkan dari satu root, dengan notasi jalur standar yang memastikan wallet tetap interoperabel.
Memahami jalur derivasi sangat penting bagi siapa pun yang perlu memulihkan dana di wallet lain, mengelola portofolio multi-koin, atau menelusuri saldo yang "hilang" setelah memulihkan seed phrase.
Hierarki Derivasi Kunci
BIP-32: Fondasinya
BIP-44 dibangun di atas BIP-32 (Hierarchical Deterministic Wallets), yang mendefinisikan metode untuk menurunkan pohon pasangan kunci tanpa batas dari satu master key. BIP-32 memperkenalkan dua konsep fundamental:
Derivasi child key — Dari extended key mana pun (private atau public key yang dikombinasikan dengan chain code), Anda dapat menurunkan child key pada berbagai indeks. Setiap child selanjutnya dapat menurunkan child miliknya sendiri, membentuk sebuah pohon.
Derivasi hardened vs. normal — Derivasi normal memungkinkan penurunan child public key dari parent public key (berguna untuk watch-only wallet). Derivasi hardened membutuhkan parent private key dan memberikan isolasi keamanan yang lebih kuat antarcabang. Indeks hardened secara konvensional ditulis dengan apostrof (misalnya, 44').
BIP-43: Field Purpose
BIP-43 menetapkan konvensi penggunaan level pertama dari pohon derivasi untuk menunjukkan "purpose" — pada dasarnya standar BIP yang diikuti. BIP-44 menggunakan purpose 44', BIP-49 menggunakan 49' (untuk alamat P2SH yang kompatibel dengan SegWit), BIP-84 menggunakan 84' (untuk SegWit native), dan BIP-86 menggunakan 86' (untuk Taproot).
BIP-44: Jalur Lengkap
BIP-44 mendefinisikan jalur derivasi lima level:
m / purpose' / coin_type' / account' / change / address_index
Setiap level memiliki makna spesifik:
| Level | Field | Hardened | Deskripsi |
|---|---|---|---|
| 1 | Purpose | Ya (44') | Mengidentifikasi standar derivasi |
| 2 | Coin Type | Ya | Mengidentifikasi mata uang kripto |
| 3 | Account | Ya | Memisahkan dana ke dalam akun logis |
| 4 | Change | Tidak (0 atau 1) | Eksternal (0) atau change internal (1) |
| 5 | Address Index | Tidak (0, 1, 2...) | Nomor alamat berurutan |
Purpose (44')
Field purpose selalu 44' untuk derivasi standar BIP-44. Nilai umum lainnya:
49'— BIP-49 (P2SH-wrapped SegWit)84'— BIP-84 (Native SegWit / Bech32)86'— BIP-86 (Taproot / P2TR)
Ini mendefinisikan jenis alamat yang berbeda dan dijelaskan di BIP masing-masing.
Coin Type
Coin type mengidentifikasi mata uang kripto mana yang dimiliki kunci turunan tersebut. Coin type yang terdaftar mencakup:
| Coin | Coin Type | Prefix Jalur |
|---|---|---|
| Bitcoin | 0' | m/44'/0' |
| Bitcoin Testnet | 1' | m/44'/1' |
| Litecoin | 2' | m/44'/2' |
| Dogecoin | 3' | m/44'/3' |
| Ethereum | 60' | m/44'/60' |
| Ethereum Classic | 61' | m/44'/61' |
| Cosmos | 118' | m/44'/118' |
| Solana | 501' | m/44'/501' |
| Cardano | 1815' | m/44'/1815' |
| Polkadot | 354' | m/44'/354' |
Registri lengkap coin type dikelola di SLIP-44 dan berisi lebih dari 1.000 entri.
Account
Level account memungkinkan pengguna membuat akun logis terpisah dalam wallet yang sama, mirip seperti memiliki beberapa rekening bank. Account 0' adalah default:
m/44'/0'/0'— Bitcoin Account 0m/44'/0'/1'— Bitcoin Account 1m/44'/60'/0'— Ethereum Account 0
Account menggunakan derivasi hardened, yang berarti mengetahui extended public key dari satu account tidak mengungkap kunci account lain. Ini memberikan isolasi privasi antar account.
Change
Level change membedakan antara:
- 0 (External chain) — Alamat yang diberikan ke orang lain untuk menerima pembayaran.
- 1 (Internal chain) — Alamat yang digunakan wallet secara internal untuk mengembalikan change ke diri sendiri.
Dalam model UTXO Bitcoin, saat Anda membelanjakan output transaksi, seluruh output harus dihabiskan. Jika Anda mengirim 0.5 BTC dari output 1 BTC, sisa 0.5 BTC dikirim ke change address yang dikendalikan wallet Anda. Change chain menjaga alamat-alamat ini tetap terpisah dari receiving address untuk tujuan organisasi dan privasi.
Ethereum dan blockchain berbasis account lainnya tidak menggunakan change chain dengan cara yang sama, karena tidak memiliki model UTXO. Wallet Ethereum biasanya hanya menggunakan external chain (change = 0).
Address Index
Address index adalah nomor berurutan alamat dalam sebuah chain. Wallet menaikkan penghitung ini setiap kali alamat baru dibuat:
m/44'/0'/0'/0/0— Receiving address pertamam/44'/0'/0'/0/1— Receiving address keduam/44'/0'/0'/0/2— Receiving address ketigam/44'/0'/0'/1/0— Change address pertamam/44'/0'/0'/1/1— Change address kedua
Jalur Derivasi untuk Mata Uang Kripto Utama
Bitcoin
Bitcoin menggunakan beberapa jalur derivasi yang sesuai dengan jenis alamat yang berbeda:
| Standard | Path | Address Type | Prefix | Example |
|---|---|---|---|---|
| BIP-44 | m/44'/0'/0' | Legacy (P2PKH) | 1... | 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa |
| BIP-49 | m/49'/0'/0' | SegWit-compat (P2SH-P2WPKH) | 3... | 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy |
| BIP-84 | m/84'/0'/0' | Native SegWit (P2WPKH) | bc1q... | bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 |
| BIP-86 | m/86'/0'/0' | Taproot (P2TR) | bc1p... | bc1p5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8ztwac72sfr9rusxg3297 |
Penting untuk pemulihan: Jika Anda memulihkan seed phrase di wallet baru dan tidak melihat saldo Anda, wallet tersebut mungkin memindai jalur derivasi yang berbeda dari yang digunakan wallet asli Anda. Coba beralih antara jenis alamat Legacy, SegWit, dan Taproot, atau tentukan jalur derivasi secara manual.
Ethereum
Ethereum biasanya menggunakan satu jalur derivasi:
m/44'/60'/0'/0/0 — Akun pertama
m/44'/60'/0'/0/1 — Akun kedua (beberapa wallet)
Namun, beberapa wallet (seperti Ledger Live) menurunkan banyak account pada level account:
m/44'/60'/0'/0/0 — Account 0
m/44'/60'/1'/0/0 — Account 1
m/44'/60'/2'/0/0 — Account 2
Sementara yang lain (seperti MetaMask) menaikkan address index:
m/44'/60'/0'/0/0 — Account 1
m/44'/60'/0'/0/1 — Account 2
m/44'/60'/0'/0/2 — Account 3
Ketidakkonsistenan ini dapat menimbulkan kebingungan saat pemulihan. Selalu catat software wallet mana yang membuat seed phrase Anda.
Solana
Solana menggunakan Ed25519 (kurva eliptik yang berbeda dari secp256k1) dengan jalur:
m/44'/501'/0' — Phantom, Solflare
m/44'/501'/0'/0' — Beberapa implementasi
Cardano
Cardano menggunakan skema derivasi kunci berbeda (Ed25519-BIP32 / CIP-1852) dengan jalur:
m/1852'/1815'/0'/0/0 — Alamat pembayaran pertama
m/1852'/1815'/0'/2/0 — Staking key pertama
Perhatikan field purpose 1852' (CIP-1852, dinamai dari tahun kelahiran Ada Lovelace), bukan 44'.
Derivasi Hardened vs. Normal
Memahami perbedaan derivasi hardened dan normal sangat penting untuk keamanan.
Derivasi Normal (Non-Hardened)
- Menggunakan indeks 0 hingga 2^31 - 1.
- Child public key dapat diturunkan dari parent extended public key tanpa parent private key.
- Keuntungan: Mendukung watch-only wallet (misalnya, server dapat menghasilkan receiving address baru hanya dengan xpub, tanpa pernah menyimpan private key).
- Risiko: Jika penyerang mendapatkan child private key DAN parent extended public key, mereka dapat menghitung parent private key dan semua sibling private key.
Derivasi Hardened
- Menggunakan indeks 2^31 hingga 2^32 - 1 (ditulis sebagai 0' hingga 2^31 - 1').
- Membutuhkan parent extended private key untuk menurunkan child key.
- Keuntungan: Kompromi child key tidak mengompromikan parent atau sibling.
- Risiko: Tidak dapat menurunkan child public key hanya dari parent extended public key (tidak ada fungsi watch-only di level ini).
Mengapa BIP-44 Menggunakan Derivasi Hardened untuk Tiga Level Pertama
Purpose, coin type, dan account semuanya hardened (44'/0'/0') karena:
- Kompromi private key alamat (di level non-hardened 5) tidak boleh mengompromikan account.
- Account harus terisolasi satu sama lain.
- Koin yang berbeda harus terisolasi satu sama lain.
Level change dan address index bersifat non-hardened (0/0) agar watch-only wallet dapat menghasilkan receiving address tanpa master private key.
Gap Limit
Wallet tidak memindai jumlah alamat yang tak terbatas. Spesifikasi BIP-44 memperkenalkan konsep "gap limit" — jumlah alamat tidak terpakai berurutan yang akan dipindai wallet sebelum berhenti. Gap limit standar adalah 20.
Jika Anda telah menghasilkan alamat 0 hingga 25, tetapi hanya alamat 0, 5, 10, dan 25 yang pernah menerima dana, wallet akan:
- Memindai alamat 0 — ada transaksi, lanjut.
- Memindai alamat 1–4 — tidak digunakan, tetapi masih dalam gap limit.
- Memindai alamat 5 — ada transaksi, reset penghitung gap.
- Melanjutkan sampai menemukan 20 alamat berurutan tanpa transaksi.
Masalah: Jika Anda menghasilkan banyak alamat di luar gap limit (umum pada pemroses pembayaran merchant), pemulihan wallet mungkin tidak menemukan semua dana Anda. Anda mungkin perlu menaikkan gap limit di pengaturan wallet saat pemulihan.
Gunakan SafeSeed Key Derivation Tool untuk menjelajahi jalur derivasi BIP-44 secara interaktif. Masukkan seed phrase (gunakan frasa uji, bukan yang asli) dan lihat bagaimana jalur derivasi yang berbeda menghasilkan alamat berbeda untuk koin yang berbeda. Semua pemrosesan terjadi di browser Anda.
Extended Keys: xpub, ypub, zpub
Extended key mengodekan material kunci beserta metadata tentang jalur derivasi:
| Prefix | Standard | Address Type | Network |
|---|---|---|---|
| xpub / xprv | BIP-44 | Legacy (P2PKH) | Mainnet |
| ypub / yprv | BIP-49 | SegWit-compat (P2SH-P2WPKH) | Mainnet |
| zpub / zprv | BIP-84 | Native SegWit (P2WPKH) | Mainnet |
| tpub / tprv | BIP-44 | Legacy (P2PKH) | Testnet |
Prefix memberi tahu software wallet jenis alamat mana yang harus diturunkan. Jika Anda mengekspor xpub dan mengimpornya ke wallet yang mengharapkan zpub, Anda akan melihat alamat yang berbeda (dan salah).
Peringatan Privasi Extended Public Key
Membagikan xpub (atau ypub/zpub) memungkinkan penerima untuk:
- Menurunkan semua receiving address masa lalu dan masa depan.
- Melacak seluruh riwayat transaksi dan saldo Anda.
- Mengaitkan alamat-alamat Anda satu sama lain, sehingga menghilangkan manfaat privasi dari penggunaan alamat baru per transaksi.
Jangan pernah membagikan extended public key kecuali kepada pihak yang benar-benar Anda percaya untuk privasi finansial Anda (misalnya akuntan Anda, atau watch-only wallet di server Anda sendiri).
Masalah Umum Jalur Derivasi
"Saya memulihkan seed phrase saya tapi saldo saya nol"
Ini adalah masalah jalur derivasi paling umum. Kemungkinan penyebab:
- Jenis alamat salah — Anda menggunakan alamat SegWit (BIP-84,
m/84'/0'/0') tetapi wallet baru memindai jalur Legacy (BIP-44,m/44'/0'/0'). Ganti jenis alamat. - Coin type salah — Beberapa wallet memakai coin type 0 untuk semua koin pada implementasi awal.
- Account salah — Anda mungkin menggunakan account 1 atau lebih tinggi.
- Gap limit — Alamat yang Anda gunakan berada di luar gap limit default 20.
- Jalur derivasi kustom — Beberapa wallet menggunakan jalur non-standar.
"Dua wallet saya menunjukkan alamat berbeda dari seed phrase yang sama"
Jika dua wallet menghasilkan alamat berbeda dari seed phrase yang sama, berarti keduanya menggunakan jalur derivasi atau jenis alamat yang berbeda. Periksa pengaturan derivasi di kedua wallet.
Checklist Pemulihan
Saat memulihkan wallet dari seed phrase:
- Verifikasi wallet mendukung BIP-39.
- Pilih jenis alamat yang benar (Legacy, SegWit, atau Taproot).
- Periksa jalur derivasi sesuai dengan wallet asli.
- Tingkatkan gap limit jika Anda menggunakan banyak alamat.
- Periksa semua account (bukan hanya account 0) jika Anda membuat banyak account.
Lanjutan: Jalur Derivasi Kustom
Beberapa kasus penggunaan lanjutan memerlukan jalur derivasi kustom:
- Setup multi-signature — BIP-48 mendefinisikan jalur derivasi untuk multisig wallet:
m/48'/0'/0'/2'(untuk multisig native SegWit). - Lightning Network — Beberapa implementasi Lightning menggunakan jalur derivasi kustom untuk channel key.
- Privacy wallet — Wasabi dan wallet berfokus privasi lainnya mungkin menggunakan jalur khusus.
Selalu dokumentasikan jalur derivasi yang Anda gunakan. Jika Anda tidak dapat merekonstruksi jalur secara tepat, Anda tidak dapat memulihkan dana.
FAQ
Apa itu jalur derivasi dalam kripto?
Jalur derivasi adalah notasi terstruktur yang menentukan cara menurunkan kunci atau alamat tertentu dari master seed dalam hierarchical deterministic (HD) wallet. Formatnya m/purpose'/coin_type'/account'/change/address_index, di mana tiap level mempersempit ke kunci tertentu dalam pohon derivasi.
Mengapa mata uang kripto yang berbeda memakai coin type berbeda?
Coin type yang berbeda memastikan seed phrase yang sama menghasilkan kunci terpisah dan tidak terkait untuk setiap blockchain. Ini mencegah interferensi lintas-chain yang tidak disengaja dan memastikan kompromi kunci pada satu chain tidak memengaruhi kunci pada chain lain.
Bisakah saya memakai seed phrase yang sama untuk Bitcoin dan Ethereum?
Ya. Seed phrase BIP-39 yang sama dapat menurunkan kunci untuk Bitcoin dan Ethereum (serta banyak mata uang kripto lainnya). Keduanya menggunakan jalur derivasi berbeda — Bitcoin di m/44'/0'/0' dan Ethereum di m/44'/60'/0' — jadi kunci dan alamat turunannya benar-benar independen.
Apa arti apostrof (') dalam jalur derivasi?
Apostrof menunjukkan derivasi hardened. Derivasi hardened memerlukan parent private key dan memberikan isolasi keamanan yang lebih kuat: kompromi child key tidak mengungkap parent atau sibling key. Level non-hardened (tanpa apostrof) memungkinkan derivasi child public key dari parent public key.
Mengapa wallet saya menunjukkan saldo nol setelah memulihkan seed phrase?
Penyebab paling umum adalah ketidakcocokan jalur derivasi. Wallet asli Anda mungkin menggunakan jenis alamat yang berbeda (Legacy vs. SegWit vs. Taproot), yang masing-masing memakai jalur derivasi berbeda. Coba ganti jenis alamat di wallet pemulihan, atau tentukan secara manual jalur derivasi yang digunakan wallet asli Anda.
Apa itu gap limit dan mengapa penting?
Gap limit adalah jumlah alamat tidak terpakai berurutan yang dipindai wallet sebelum menganggap tidak ada lagi alamat yang digunakan. Standar BIP-44 menetapkan ini di 20. Jika Anda membuat banyak alamat (misalnya untuk merchant yang menerima pembayaran), beberapa alamat berisi dana mungkin berada di luar gap limit dan tidak terlihat saat pemulihan. Tingkatkan gap limit di pengaturan wallet untuk menemukannya.
Apakah semua wallet menggunakan BIP-44?
Sebagian besar wallet modern mendukung BIP-44 atau penerusnya (BIP-49, BIP-84, BIP-86). Namun, beberapa wallet menggunakan jalur derivasi proprietari. Electrum, misalnya, menggunakan mnemonic dan skema derivasinya sendiri. Selalu dokumentasikan wallet mana yang membuat seed phrase Anda dan jalur derivasi apa yang digunakannya.