Lompat ke konten

Jalur derivasi dompet: standar, penemuan, dan pemulihan

Pelajari bagaimana jalur derivasi dompet memilih kunci anak deterministik, bagaimana tingkat hardened dan konvensi akun berbeda, serta bagaimana memverifikasi jalur selama pemulihan.

Diperbarui

Hanya untuk tujuan edukasi; bukan merupakan nasihat investasi atau rekomendasi investasi. Investasi dapat mengakibatkan kerugian.

Jawaban langsung

Jalur derivasi dompet adalah urutan indeks anak yang teratur yang memberitahu algoritma derivasi kunci deterministik node mana yang harus dipilih dari pohon kunci. Dalam notasi BIP-32 yang umum, m/84'/0'/0'/0/7 dimulai dari node privat master m dan menelusuri lima anak. Tanda apostrof menandai anak BIP-32 yang diperkuat. Sebuah jalur adalah metadata routing: itu bukan kunci privat, tidak mengenkripsi seed, tidak mengidentifikasi saldo blockchain, dan tidak dapat memulihkan apa pun tanpa materi root dan algoritma derivasi yang benar.

Untuk dompet gaya BIP-44, templatenya adalah m / purpose' / coin_type' / account' / change / address_index. Level-level memiliki makna yang disepakati, bukan label sembarangan. purpose memilih konvensi dompet, coin_type memisahkan namespace aset yang terdaftar, account memisahkan akun logis, change biasanya membedakan alamat terima eksternal (0) dari alamat kembalian internal (1), dan address_index memilih satu daun. BIP-44 mengamankan tiga level pertama dan meninggalkan dua level terakhir tidak diamankan agar kunci publik ekstensi akun dapat menurunkan alamat terima dan kembalian tanpa memegang kunci pribadi.

Mnemonic yang sama dapat menghasilkan banyak set alamat yang valid tetapi tidak terkait. Untuk Bitcoin, jalur kunci tunggal yang umum termasuk m/44'/0'/account'/change/index untuk P2PKH, m/49'/0'/account'/change/index untuk P2WPKH yang disematkan dalam P2SH, m/84'/0'/account'/change/index untuk SegWit P2WPKH asli, dan m/86'/0'/account'/change/index untuk Taproot P2TR kunci tunggal. Sebuah dompet juga harus mengetahui output atau konstruksi skrip; sebuah jalur saja bukan kebijakan dompet Bitcoin yang lengkap.

Ekosistem lain menggunakan kembali sebagian dari notasi ini tanpa menjamin semantik yang identik. Ether terdaftar sebagai tipe koin BIP-44 60, dan m/44'/60'/0'/0/index adalah konvensi akun yang dimiliki secara eksternal yang umum, tetapi implementasi dompet telah menggunakan beberapa tata letak akun. Kunci EVM yang sama dapat menghasilkan alamat akun yang sama di beberapa jaringan EVM meskipun saldo dan riwayat transaksi bersifat spesifik rantai. Kunci BLS validator Ethereum menggunakan ERC-2333 dan ERC-2334 alih-alih BIP-32; jalur m/12381/3600/account/use mereka tidak memiliki apostrof dan tidak dapat bekerja sama dengan pohon BIP-32. Oleh karena itu, pemulihan membutuhkan implementasi, kurva, seed atau frasa sandi, konvensi jalur, jaringan, dan konstruksi alamat yang tepat, bukan string yang tampak masuk akal.

Cara mengidentifikasi dan memverifikasi jalur derivasi

1. Tentukan bahan root dan algoritma derivasi

Catat format mnemonic, daftar kata, frasa sandi opsional, seed mentah atau kunci diperluas, serta implementasi perangkat lunak atau keras yang membuat dompet. BIP-39 mengodekan 128 sampai 256 bit entropi sebagai mnemonic dan menurunkan seed 512-bit dari mnemonic serta frasa sandi yang tepat; setiap frasa sandi menghasilkan seed yang valid secara sintaksis tetapi berbeda. BIP-32 kemudian menurunkan kunci diperluas secp256k1 dari seed. Keluarga dompet lain dapat memakai skema mnemonic, kurva, fungsi derivasi kunci, atau aturan kunci master yang berbeda, sehingga kata yang sama tidak membuktikan root yang sama.

2. Identifikasi standar, jaringan, dan fungsi kunci

Tentukan apakah target adalah kunci pembayaran Bitcoin, akun yang dimiliki secara eksternal EVM, kunci validator, penandatangan multisig, administrator kontrak, atau otoritas lain. Catat chain dan jaringan, standar dan versi yang berlaku, kurva kunci, jenis output atau alamat, dan aplikasi dompet. Registrasi tipe koin SLIP-0044 mengalokasikan namespace; hal ini tidak membuktikan bahwa setiap dompet untuk aset tersebut mengikuti BIP-44, mendukung sebuah proyek, atau mencegah chain lain menurunkan kunci yang sama di tempat lain.

3. Uraikan setiap komponen jalur secara tepat

Perlakukan / sebagai batas antara node induk dan anak, serta pertahankan setiap indeks, kedalaman, dan penanda hardened. Dalam BIP-32, kunci anak normal memakai indeks 0 sampai 2^31 - 1, sedangkan kunci anak hardened memakai 2^31 sampai 2^32 - 1 dan lazim ditulis dengan ', h, atau H. Jadi 7' mengodekan nomor anak 2^31 + 7, bukan anak normal 7. Pastikan bagaimana antarmuka impor menyatakan root, apakah menerima jalur lengkap atau sufiks relatif, dan apakah kunci diperluas yang diekspor sudah berada di bawah sebagian jalur itu.

4. Kaitkan jalur dengan semantik alamat atau keluaran

Untuk dompet BIP-44-family Bitcoin, konfirmasikan purpose, coin_type, account, change, dan address_index, kemudian konfirmasikan secara independen jenis skrip dan jaringan yang dimaksud. BIP-49, BIP-84, dan BIP-86 sengaja menggunakan nilai tujuan berbeda sehingga tipe output yang tidak kompatibel tidak muncul diam-diam dalam satu akun. Untuk dompet multisig atau deskriptor, pertahankan setiap asal kunci, sidik jari master, sufiks derivasi, ambang batas, urutan kunci, konstruksi skrip, dan checksum; satu jalur tidak dapat merekonstruksi kebijakan lengkap.

5. Reproduksi penemuan akun dan alamat

Jangan menyimpulkan kerugian dari satu akun default yang kosong. Pemeriksaan penemuan BIP-44 memeriksa akun secara berurutan dan memindai rantai eksternal, menggunakan batas celah alamat 20 untuk alamat yang tidak terpakai secara berturut-turut. Dompet yang membuat alamat di luar celah tersebut, menggunakan cabang internal secara tidak biasa, melewatkan akun, atau menerapkan tata letak proprietary mungkin tidak ditemukan oleh pemindaian default. Cari hanya dengan data watch-only tepercaya atau turunan offline, tetapkan batas secara eksplisit, dokumentasikan setiap cabang yang dicari, dan hindari mengunggah mnemonic atau kunci privat ekstensi ke situs web.

6. Verifikasi identitas dompet sebelum mengandalkan saldo

Bandingkan sidik jari utama, kunci publik ekstensi tingkat akun jika diperlukan, jalur asal penuh, dan beberapa alamat penerima serta perubahan yang sebelumnya direkam. Untuk Bitcoin, turunkan skrip output atau deskriptor yang diharapkan dan query jaringan yang benar untuk riwayat transaksi, termasuk output yang sudah dibelanjakan. Untuk rantai berbasis akun, verifikasi chainId, alamat, kontrak token, dan aktivitas historis secara tepat. Saldo kosong adalah bukti yang lemah: alamat mungkin salah, jaringan atau indeks mungkin berbeda, atau aset mungkin sudah dipindahkan.

7. Pulihkan atau migrasikan melalui alur yang terkendali

Gunakan perangkat lunak yang terverifikasi dan kompatibel dalam lingkungan yang terpercaya; sebaiknya impor deskriptor hanya-tonton atau kunci publik akun untuk penemuan sebelum mengekspose materi tanda tangan. Uji penandatanganan dan pemulihan dengan akun terisolasi atau transaksi kecil, kemudian cocokkan alamat yang diturunkan, riwayat on-chain, kepemilikan output, biaya, dan status akhir. Jika rahasia telah dimasukkan ke dalam alat pemulihan yang tidak terpercaya, anggap rahasia tersebut telah dikompromikan dan migrasikan semua aset, peran kontrak, persetujuan, tugas validator, dan otoritas pemulihan ke root baru daripada terus menggunakan dompet hasil pemulihan tersebut.

Contoh perhitungan

Menguraikan jalur Bitcoin dengan derivasi hardened

Pertimbangkan m/84'/0'/2'/1/17. Bidangnya adalah purpose SegWit native 84', jenis koin Bitcoin 0', akun 2', cabang internal atau kembalian 1, dan indeks alamat 17. Karena indeks hardened BIP-32 menambahkan 2^31 = 2,147,483,648, nomor anak terserialisasi adalah 84' = 2,147,483,732, 0' = 2,147,483,648, dan 2' = 2,147,483,650. Dua indeks terakhir tetap berupa indeks normal 1 dan 17; menghapus satu apostrof memilih subpohon lain, bukan ejaan yang setara.

Celah penemuan yang menyembunyikan alamat terpakai

Misalkan cabang eksternal telah memakai alamat pada indeks 0 dan 5, lalu dompet memindai 6 sampai 25 dan menemukan 20 alamat berturut-turut yang belum digunakan. Menurut aturan celah BIP-44, penemuan berhenti pada 25; alamat terpakai pada 26 berada setelah syarat berhenti dan terlewat. Memperluas pemindaian ke batas eksplisit yang terdokumentasi dapat menemukannya, tetapi penyebabnya adalah dompet sumber membuat alamat melewati celah standar tanpa aktivitas di antaranya.

Menghitung pencarian pemulihan yang dibatasi

Catatan pemulihan tidak menyebut mana dari 4 keluarga purpose Bitcoin (44', 49', 84', dan 86') yang dipakai, maupun mana dari 3 akun, 2 cabang, dan 20 indeks pertama. Pencarian awal berisi 4 × 3 × 2 × 20 = 480 kandidat leaf. Menemukan alamat yang dikenal hanya mengidentifikasi jalur kandidat, belum tentu seluruh dompet; kembalian, indeks berikutnya, akun lain, deskriptor, dan riwayat masih harus diperiksa. Dimensi eksplisit membuat pemulihan dapat direproduksi dan mencegah tebakan tanpa batas.

Mengapa xpub akun bukan data publik biasa

Untuk kunci anak BIP-32 non-hardened, skalar privat mengikuti child = parent + tweak (mod n). Dalam contoh sederhana modulo 101, jika data derivasi yang terungkap oleh kunci publik diperluas akun menetapkan tweak = 37 dan skalar privat anak 12 bocor, maka parent = 12 - 37 mod 101 = 76. BIP-32 sebenarnya memakai orde grup secp256k1 dan nilai HMAC, tetapi akibat aljabarnya sama: xpub induk bersama kunci privat turunan non-hardened yang sesuai dapat mengungkap kunci privat diperluas induk dan subpohonnya. Batas akun hardened menahan kegagalan ini.

Risiko dan kekurangan peninjauan

  • Mnemonic atau frasa sandi salah: Satu kata, urutan kata, aturan normalisasi Unicode, atau frasa sandi yang berbeda menghasilkan root lain yang mungkin tampak valid.
  • Skema derivasi salah: Menerapkan BIP-32 pada dompet yang memakai skema mnemonic, kurva, KDF, atau algoritma kunci master lain akan menurunkan kunci yang tidak terkait.
  • Jaringan atau jenis koin salah: Root yang benar dalam namespace lain dapat menghasilkan alamat yang tampak wajar sementara blockchain tujuan belum ditelusuri.
  • Purpose atau skrip salah: Tertukarnya 44', 49', 84', atau 86' dapat menghilangkan jenis keluaran Bitcoin yang benar-benar berisi dana.
  • Penanda hardened hilang: 7, 7', 7h, dan 7H dapat ditafsirkan berbeda atau ditolak; kunci anak hardened dan normal tidak dapat dipertukarkan.
  • Indeks akun salah: Hanya memeriksa akun 0' dapat melewatkan dana atau kewenangan pada akun logis berikutnya.
  • Cabang eksternal dan kembalian tertukar: Hanya memindai cabang 0 dapat melewatkan keluaran kembalian di cabang 1 atau struktur cabang khusus dompet.
  • Indeks alamat salah: Cocoknya alamat pertama yang dikenal tidak membuktikan bahwa indeks berikutnya, indeks yang dilewati, atau alamat impor telah diperiksa.
  • Kegagalan celah alamat: 20 alamat eksternal berturut-turut yang belum digunakan dapat menghentikan pemindaian BIP-44 sebelum pemakaian nonstandar berikutnya.
  • Akun terlewat: Penemuan akun berurutan dapat berhenti pada akun kosong dan tidak mencapai akun yang dibuat setelahnya.
  • Kebijakan Bitcoin tidak lengkap: Tanpa deskriptor, skrip, ambang, urutan kunci, sidik jari, dan checksum, jalur mungkin tidak dapat membuat ulang keluaran yang berisi dana.
  • Konvensi khusus dompet: Aplikasi dapat memakai struktur lama, proprietary, atau migrasi yang tidak dicantumkan oleh alat pemulihan umum.
  • Kebocoran privasi kunci publik diperluas: xpub dapat mengungkap kelompok alamat, riwayat, saldo, dan alamat anak non-hardened di masa depan.
  • Paparan berlebihan kunci privat diperluas: Mengimpor xprv dapat mengekspos seluruh subpohon, bukan hanya satu leaf yang diperlukan untuk operasi.
  • Kompromi kunci induk BIP-32: xpub induk bersama satu kunci privat anak non-hardened yang sesuai dapat mengungkap kunci privat diperluas induk dan subpohonnya.
  • Keyakinan palsu pada format alamat: Alamat yang valid secara sintaksis tidak membuktikan seed, jalur, jaringan, skrip, atau kepemilikan yang dimaksud.
  • Kebingungan blockchain dengan alamat sama: Satu kunci EVM dapat menghasilkan alamat yang sama di beberapa jaringan, tetapi saldo, nonce, token, dan risikonya terpisah.
  • Perangkat lunak pemulihan berbahaya: Situs, ekstensi, alat berbagi layar, pemantau clipboard, keylogger, atau perangkat palsu dapat mencuri rahasia root.
  • Impor dan sweep tertukar: Impor mempertahankan kewenangan lama; sweep atau migrasi membuat transaksi sehingga biaya dan tujuan harus ditinjau.
  • Pemulihan tidak lengkap: Menemukan satu saldo tanpa memverifikasi tanda tangan, kembalian, kontrak token, peran, persetujuan, kunci validator, dan cadangan dapat membiarkan aset tersembunyi atau terekspos.

Kesalahpahaman umum

Apakah jalur derivasi merupakan kata sandi atau rahasia?

Tidak. Sebuah jalur biasanya menggambarkan struktur publik dan harus dipertahankan sebagai metadata pemulihan. Ini tidak menggantikan mnemonic, passphrase, seed, kunci pribadi, atau kebijakan dompet. Mempublikasikan sebuah jalur dapat mengungkapkan informasi organisasi, tetapi kepemilikan jalur saja tidak memberikan wewenang untuk menandatangani.

Apakah mnemonic yang sama selalu memulihkan dompet yang sama secara otomatis?

Tidak. Hasilnya juga tergantung pada skema mnemonik, kata sandi tepat, pemrosesan seed, algoritma derivasi, jalur, kurva, jaringan, dan konstruksi alamat atau skrip. Perangkat lunak dompet mungkin memilih pengaturan default yang berbeda bahkan ketika menerima kata-kata yang sama.

Apakah jenis koin mencegah penggunaan kunci di blockchain lain?

Tidak. Jenis koin adalah namespace turunan dan konvensi kompatibilitas, bukan izin protokol. Perangkat lunak dapat menurunkan atau menggunakan kembali kunci di tempat lain, dan jaringan EVM biasanya mengekspos alamat akun yang sama untuk kunci pribadi yang sama.

Apakah akun hasil pemulihan tanpa saldo membuktikan aset telah hilang?

Tidak. Ini hanya membuktikan bahwa alamat dan jaringan tertentu yang ditanyakan saat ini tidak menunjukkan saldo yang terdeteksi. Jalur yang salah, akun, cabang, jenis skrip, batas penemuan, pengindeksan token, atau pemilihan jaringan semuanya dapat menyembunyikan riwayat yang dimaksud.

Dapatkah alat pemulihan mencoba semua jalur yang mungkin dengan aman?

Tidak. Ruang pencarian bisa besar, konvensi dompet tidak sepenuhnya universal, dan mengekspos rahasia utama kepada alat yang tidak tepercaya itu sendiri merupakan sebuah kejadian kerugian. Gunakan asal-usul, sidik jari dan alamat yang tercatat, penemuan offline terbatas, dan perangkat lunak yang terverifikasi untuk mempersempit pencarian.

Topik terkait

Sumber

Navigasi

Cari di wiki...