Xpub: apa yang diungkap kunci publik wallet Bitcoin Anda
Xpub memungkinkan siapa pun menemukan semua alamat sebuah akun Bitcoin, dan dengan itu seluruh riwayatnya, tanpa bisa membelanjakan. Apa yang diungkapnya, risikonya, dan kepada siapa memberikannya.
Xpub (kunci publik yang diperluas) adalah kunci publik sebuah akun wallet Bitcoin yang menjadi asal semua alamatnya: siapa pun yang memegangnya melihat setiap pembayaran yang diterima dan dikirim akun ini, tetapi tidak bisa membelanjakan apa pun.
Isi sebuah xpub
Standar BIP32 menjelaskan wallet deterministik hierarkis: satu seed menghasilkan seluruh pohon kunci. Kunci yang diperluas menambahkan kode rantai (chain code) pada kunci, yang dipakai untuk menghitung kunci-kunci turunannya. Menurut BIP32, mengetahui sebuah kunci publik yang diperluas memungkinkan rekonstruksi semua kunci publik turunannya yang tidak diperkeras (non-hardened).
Wallet menyusun kunci-kunci ini mengikuti jalur BIP44: m / purpose' / coin_type' / account' / change / address_index. Xpub yang ditampilkan wallet adalah xpub di tingkat account'. Xpub ini mencakup dua rantai alamat: 0 untuk alamat penerimaan, 1 untuk alamat kembalian (change), yang menerima uang kembalian dari pengiriman Anda sendiri.
xpub, ypub, atau zpub
Prefiksnya menunjukkan jenis alamat yang dipakai akun:
| Prefiks | Standar | Jalur akun pertama | Alamat |
|---|---|---|---|
xpub | BIP44 | m/44'/0'/0' | Alamat lama, yang diawali 1 |
ypub | BIP49 | m/49'/0'/0' | SegWit bersarang, yang diawali 3 |
zpub | BIP84 | m/84'/0'/0' | SegWit native, yang diawali bc1q |
Ketiganya adalah jenis kunci yang sama: hanya byte versinya yang berubah, dan karena itu huruf-huruf awalnya.
Apa yang diungkap sebuah xpub
- Semua alamat akun, yang lalu dan yang akan datang: alamat diturunkan satu per satu, tanpa batas.
- Seluruh riwayat: setiap penerimaan, setiap pengiriman, setiap jumlah, karena blockchain bersifat publik.
- Saldo akun, kapan saja.
- Tidak ada untuk membelanjakan: tanpa kunci privat, tidak ada transaksi yang bisa ditandatangani.
BIP32 sendiri memberikan contoh penggunaan ini: menyerahkan kunci publik yang diperluas dari sebuah akun kepada auditor memungkinkannya melihat semua pembayaran masuk dan keluar, tanpa akses ke kunci rahasia mana pun. Siapa pun yang memegang xpub Anda memiliki pandangan auditor itu, selamanya: xpub tidak bisa dicabut.
Risiko yang perlu diketahui
Xpub saja tidak bisa membelanjakan. Namun BIP32 memperingatkan: mengetahui sebuah kunci publik yang diperluas ditambah kunci privat tidak diperkeras mana pun yang diturunkan darinya sama dengan mengetahui kunci privat diperluas induknya. Dengan kata lain, xpub Anda dan kunci privat dari satu saja alamat Anda sudah cukup untuk membelanjakan seluruh akun.
Tingkat account' diperkeras: kebocoran seperti itu tetap terbatas pada akun yang bersangkutan dan tidak menjangkau akun lain dari seed yang sama. Jadi, ekspor xpub, jangan pernah kunci privat sebuah alamat, dan jangan pernah memberikan frasa pemulihan Anda.
Cara perangkat lunak menemukan alamat
Perangkat lunak yang membaca xpub menurunkan alamat secara berurutan dan berhenti setelah serangkaian alamat yang tidak pernah dipakai: BIP44 menetapkan batas ini (gap limit) di 20. Jika Anda membuat lebih dari 20 alamat berturut-turut tanpa memakainya, perangkat lunak yang mengikuti aturan ini tidak akan melihat alamat-alamat sesudahnya.
Untuk membaca saldo, perangkat lunak lalu bertanya ke sebuah server atau node, alamat demi alamat. Server itu pun mengetahui semua alamat Anda dan bisa menghubungkannya satu sama lain: inilah kebocoran lainnya, yang tidak berasal dari xpub itu sendiri, tetapi dari cara membacanya.
Sebelum memberikan xpub Anda
- Tanyakan siapa yang menyimpannya: aplikasi yang menyimpan xpub Anda di servernya mengetahui akun Anda selama ia menyimpannya, dan kebocoran datanya akan mengeksposnya.
- Utamakan pembacaan lokal: wallet yang terhubung ke node Anda sendiri, atau alat yang menurunkan alamat di perangkat Anda, tidak menitipkan xpub kepada siapa pun.
- Satu akun per penggunaan: akun lain (
account'berikutnya) memiliki xpub lain, yang tidak mengungkap apa pun tentang akun-akun lainnya.
Cara CentraFIN membaca xpub Anda
CentraFIN membaca xpub Anda di perangkat Anda: browser Anda menurunkan alamat, membaca saldonya melalui koneksi terenkripsi end-to-end, dan menyimpan semuanya di brankas yang dienkripsinya sendiri. Server CentraFIN tidak pernah melihat xpub Anda, alamat, ataupun saldo. Setiap alamat selalu dibaca di node yang sama, yang dipilih secara acak, agar tidak ada node yang melihat seluruh akun. Detailnya ada di halaman Bitcoin.
Sumber
- BIP32: wallet deterministik hierarkis
- BIP44: jalur derivasi dan gap limit
- BIP49: ypub, SegWit bersarang
- BIP84: zpub, SegWit native
Pertanyaan umum
Bisakah bitcoin dicuri dengan xpub?
Tidak dengan xpub saja: xpub tidak bisa menandatangani. Jika ditambah kunci privat salah satu alamat akun itu, bisa: seluruh akun.
Apakah xpub cukup untuk melihat saldo saya?
Ya. Xpub memberikan semua alamat akun, dan blockchain memberikan saldo serta transaksinya.
Apa yang harus dilakukan jika xpub saya bocor?
Xpub tidak bisa dicabut: siapa pun yang memegangnya akan selalu melihat akun ini. Untuk selanjutnya, gunakan akun baru yang xpub-nya belum pernah dibagikan. Namun, transfer dari akun lama tetap akan terlihat.
Apa beda xpub, ypub, dan zpub?
Jenis alamat akunnya: alamat yang diawali 1 untuk xpub, 3 untuk ypub (SegWit bersarang), bc1q untuk zpub (SegWit native).
Kendalikan aset Anda
Akun Anda siap dalam satu menit, tanpa kata sandi.