yang ane kurang mengerti, kenapa dalam satu program bitcoin core, namun ada fungsi yang tidak dapat dijalankan pada semua wallet.
maksud ane, seperti halnya dumpprivkey yg bisa buat wallet legacy, namun tidak berfungsi di wallet descriptor.
Pada dasarnya, Legacy Wallet (yang didesain oleh Satoshi) men-generate address dari sebuah private key dan secara spesifik jika menginginkan untuk men-generate, contoh P2PKH address lain didalam satu wallet maka itu akan membutuhkan Private Key lainnya, sementara Private key tersebut tidak memiliki keterkaitan satu sama lainnya. Sehingga bisa juga diasumsikan jika Legacy Wallet hanyalah merupakan wallet yang berisi dari sekumpulan Private Key.
Sementara Descriptor Wallet didesain untuk dapat memberikan dukungan yang lebih optimal terhadap sistem Script dari Bitcoin itu sendiri, sehingga Descriptor Wallet difungsikan sebagai wadah untuk menyimpan keseluruhan metadata dari satu kesatuan proses (Key dan Address saling terkait dan dihasilkan dengan cara yang sama, serta berasal dari sumber yang sama), dan memiliki kejelasan bagaimana Key tersebut digunakan. Jadi pada dasarnya Descriptor Wallet tidak lagi merupakan wallet berbasis Key seperti halnya Legacy Wallet, namun merupakan wallet dengan basis Script.
Oleh karena itu kenapa Descriptor Wallet tidak support dengan beberapa argumen dari Legacy Wallet seperti halnya "dumpprivkey" karena dianggap tidak sejalan dengan konsep Descriptor Wallet diciptakan. Semisalpun ingin meng-import private key ke dalam sebuah Descriptor Wallet, itu harus dalam bentuk Descriptor yang tentunya akan mendeskripsikan, script (Output descriptors) apa yang digunakan dan bagaimana Key akan dipergunakan.
Trims atas infonya mas.
jadi untuk mengetahui private key pada wallet descriptor, membutuhkan tool diluar bitcoin core.
lumayan beresiko juga jika pada saat terburu2 namun malah lupa mematikan sambungan internet.
Jika khawatir bisa terjadi leak informasi pada saat menggunakan tools atau 3rd app, maka pilihannya balik lagi dengan menggunakan Python atau Node JS yang dirunning di PC sendiri. Hanya tinggal merubah script yang sebelumnya men-generate mnemonic secara random, menjadi Fixed Root Key.
const mnemonic = bip39.generateMnemonic();
const seed = bip39.mnemonicToSeedSync(mnemonic);
const root = bip32.fromSeed(seed, testnet);
const xprv = root.toBase58();
Diganti dengan :const xprv = 'BIP32 Root Key';
const root = bip32.fromBase58(xprv, testnet);
Setelah Code diganti menjadi "Fixed BIP32 Root Key", maka agan akan dengan gampang mengetahui seluruh private key dari masing-masing address berdasarkan dengan Derivation Path yang digunakan.
Misal agan ingin mengetahui Private Key dari address "mn7SYDKH1oS17mSisoeQYaSx2Mg1Z7gbAm" yang ada di sebuah Descriptor Wallet.
- Pada Console Bitcoin Core
>>> getaddressinfo 'mn7SYDKH1oS17mSisoeQYaSx2Mg1Z7gbAm'
- Catat "hdkeypath" dari address tersebut.
- Penulisan "hdkeypath" dari Bitcoin Core perlu dirubah agar bisa dibaca di Node JS. Contoh :
m/44h/1h/0h/0/1 dirubah menjadi
m/44'/1'/0'/0/1- Lalu tinggal menginput "hdkeypath" ke
script yang ada di Node JS.