60 / 736XPUB

Extended Public Key (xpub)

Kunci publik diperluas BIP32

Kamu ingin memeriksa pembayaran masuk lewat ponsel, tetapi tidak ingin menaruh kunci untuk membelanjakan uang di sana. Di sinilah xpub berguna: kamu bisa menyiapkan alamat dan memantau bagian tertentu dari dompet tanpa memberikan kunci privat untuk menandatangani transaksi. Namun, kata ‘publik’ bukan berarti sebaiknya diumumkan kepada semua orang.

Extended Public Key (xpub) mengikuti BIP32, aturan untuk menyusun kunci dalam dompet. Dengan xpub, perangkat lunak dapat menghitung kunci publik lain dalam bagian tertentu dari dompet, lalu memakai aturan alamat yang sesuai untuk menyiapkan alamat penerimaan dan memantau pembayaran. Untuk membelanjakan dana, tetap diperlukan tanda tangan digital: persetujuan transaksi secara kriptografis. Tanda tangan itu dibuat dengan kunci privat, yang tidak terdapat dalam xpub. Jadi, xpub tidak menggantikan kunci privat atau Seed Phrase, cadangan dompet yang ditulis sebagai urutan kata.

Anna menyimpan kunci dompet Bitcoin di perangkat keras dan ingin memeriksa lewat ponsel apakah pelanggan sudah membayar. Ia memindahkan konfigurasi publik akun yang dipilih ke ponsel. Di dalamnya ada xpub, tetapi tidak ada kunci privat. Ponsel menjadi Watch-only Wallet: dapat memantau alamat terkait, menyiapkan alamat baru, dan menyusun transaksi yang belum ditandatangani. Untuk mengirim uang, tetap diperlukan tanda tangan perangkat yang menyimpan kunci rahasia. Dengan cara serupa, toko daring dapat membuat alamat berbeda untuk setiap pesanan tanpa menaruh kunci pembelanjaan di server. Pemisahan ini membatasi dampak pembobolan server, tetapi tidak mengatasi semuanya: penyerang bisa menampilkan alamatnya sendiri kepada pelanggan untuk pembayaran baru. [1] [5]

Biasanya kamu memberikan satu alamat Bitcoin kepada orang yang akan membayar. Xpub membuka pandangan yang jauh lebih luas. Orang yang mengetahui xpub akun dan aturan pembentukan alamatnya dapat menurunkan alamat penerimaan serta kembalian, lalu menghubungkan riwayat dan saldonya. Cakupannya adalah cabang yang dapat diturunkan, bukan otomatis semua akun dalam dompet. Jika kamu memberikan xpub kepada layanan pembukuan atau penjelajah blok pihak lain, layanan itu bisa menyimpan salinannya dan memantau pembayaran mendatang. Memutus hubungan di aplikasi tidak mencabut salinan yang sudah diberikan. Untuk satu pembayaran, biasanya satu alamat cukup; berikan akses lebih luas hanya jika ada alasan yang jelas. [1] [5]

Dompet BIP32 membentuk pohon kunci dari satu titik awal. ‘Cabang’ di sini berarti kelompok kunci turunan, bukan bagian jaringan atau rantai blok. Dari xpub, penurunan hanya bisa dilanjutkan melalui langkah non-hardened. Jenis lainnya, Hardened Derivation, memerlukan data privat dan membentuk batas yang tidak bisa dilewati xpub saja. Susunan umum BIP44 menempatkan batas ini sebelum setiap akun. Karena itu, mengekspor xpub satu akun tidak dengan sendirinya membuka akun lain. Kedalaman ekspor juga penting: xpub cabang penerimaan saja memberikan cakupan lebih sempit daripada xpub seluruh akun, yang biasanya juga mencakup alamat kembalian. [1] [6]

Kunci publik yang sama bisa menghasilkan alamat Bitcoin berbeda jika aturan yang digunakan berbeda. Output transaksi mencatat suatu jumlah dana beserta syarat untuk membelanjakannya nanti. Aplikasi perlu mengetahui jenis output, misalnya Native SegWit atau Taproot, serta cabang dan nomor yang akan diturunkan. Awalan ypub dan zpub menurut SLIP-0132 dapat memberi petunjuk jenis alamat, tetapi bukan uraian lengkap dompet. Output Descriptor lebih tepat: teks yang menjelaskan kunci dan aturan pembentukan alamat serta syarat pembelanjaan. Di dalamnya bisa terdapat asal kunci, jalur derivasi, dan checksum untuk mendeteksi salah ketik. Checksum memeriksa keutuhan penulisan, bukan apakah pengirimnya dapat dipercaya. Tidak semua descriptor hanya berisi data publik; ada yang memuat kunci privat. Bedakan keduanya sebelum membagikannya. [2] [3] [4]

Periksa dahulu jaringan, akun yang dipilih, jenis alamat, dan jalur derivasi, yaitu petunjuk posisi kunci dalam pohon. Bandingkan beberapa alamat penerimaan dengan dompet asal. Untuk dompet perangkat keras, gunakan layar tepercaya pada perangkat sesuai petunjuk produsen. Nama akun yang sama saja tidak cukup. Saldo nol setelah impor belum tentu berarti uang hilang: mungkin yang dipantau adalah akun lain, jenis alamat lain, atau rentang nomor alamat yang terlalu kecil. Jangan memasukkan kata pemulihan ke situs sembarangan untuk mengatasinya. Jika hanya perlu memantau, cari ekspor konfigurasi publik, bukan Seed Phrase atau xprv, yaitu kunci privat diperluas. [4] [5]

Xpub sendiri bukan kunci penandatanganan. Namun, BIP32 memiliki hubungan penting: xpub induk, disebut parent xpub dalam dokumentasi, bersama kunci privat keturunan non-hardened memungkinkan perhitungan kunci privat induk. Jika keturunannya lebih jauh, semua langkah kembali ke induk tersebut harus non-hardened, dan jalur yang sesuai perlu diketahui untuk menghitungnya. Ini bukan berarti mengetahui alamat saja cukup untuk mencuri. Bahayanya ada pada gabungan informasi publik yang bocor dan kunci rahasia dari cabang yang sama. Penyerang bisa memperoleh kunci lain di bawah induk itu. Batas hardened memisahkan akun, tetapi tidak melindungi kembali kunci privat yang sudah terungkap. [1]

Dompet Multisig bisa meminta, misalnya, dua tanda tangan dari tiga kunci. Namun, mengetahui bahwa dua kunci bisa dipulihkan belum cukup. Untuk membentuk kembali syarat pembelanjaan yang benar, diperlukan juga data publik kunci lain yang terlibat, susunannya, jumlah tanda tangan yang diminta, dan aturan derivasi. Karena itu, selain cadangan rahasia, simpan konfigurasi dompet, misalnya descriptor publik yang memuat semua xpub yang diperlukan. Konfigurasi ini bukan kewenangan untuk membelanjakan, tetapi bisa menjadi bagian penting pemulihan. Master fingerprint, pengenal delapan karakter heksadesimal untuk kunci awal, membantu mencocokkan konfigurasi. Ini bukan identitas yang dijamin unik: kunci berbeda bisa memiliki fingerprint yang sama. [4] [5]

Kunci publik digunakan untuk memeriksa tanda tangan yang dibuat oleh kunci privat pasangannya. BIP32 menambahkan chain code, nilai 32 byte untuk menurunkan kunci berikutnya. Pasangan inilah yang membentuk kunci publik diperluas. Format yang dipindahkan juga memuat versi dan posisi dalam pohon: kedalaman, fingerprint induk langsung, dan nomor anak. Ini berbeda dari jalur lengkap sejak kunci pertama dompet. Jadi, xpub bukan satu alamat penerimaan, kata sandi akun, atau daftar transaksi. Dompet pemantau mencari transaksi untuk alamat terkait di rantai blok. [1]

Fungsi CKDpub dalam BIP32 mengambil kunci publik induk, chain code, dan nomor anak. Dengan HMAC-SHA512, perhitungan kriptografis menggunakan masukan tersebut, fungsi ini menyiapkan data untuk kunci publik berikutnya dan chain code baru. Nomor yang bisa diturunkan secara publik berada dari 0 sampai 2³¹−1. Nomor hardened dimulai pada 2³¹ dan biasanya ditandai dengan apostrof atau huruf h dalam jalur; untuk nomor ini, CKDpub dari xpub saja tidak cukup. Mengulang langkah yang diizinkan menghasilkan keturunan, bukan saudara atau leluhur kunci yang diekspor. Jika muncul hasil tidak valid yang langka sebagaimana dijelaskan BIP32, implementasi melanjutkan ke indeks berikutnya. Pengguna biasa tidak perlu menghitungnya sendiri; yang penting adalah memindahkan konfigurasi dengan benar. [1]

Sebelum dikodekan menjadi teks, catatan standar BIP32 berukuran 78 byte: versi 4, kedalaman 1, fingerprint induk 4, nomor anak 4, chain code 32, dan data kunci 33 byte. Base58Check menambahkan checksum dan mengubahnya menjadi 111 karakter. Versi publik untuk jaringan utama Bitcoin diawali xpub, sedangkan untuk jaringan uji diawali tpub. Pasangan privatnya diawali xprv dan tprv. Tpub tidak berarti Taproot. Awalan berasal dari byte versi dan tidak menjelaskan semua aturan alamat. Saat mengimpor, perangkat lunak harus memeriksa validitas kunci publik juga, bukan hanya huruf awal atau panjangnya. [1] [3]

Untuk gambaran yang lebih utuh, baca entri ini bersama HD Wallet, Watch-only Wallet, Privasi Bitcoin, Derivation Path, Bitcoin, Output Descriptor. Entri ini juga dirujuk dari HD Wallet, Cold Storage, Watch-only Wallet, Output Descriptor.

DOC · 001BIP 32 — Hierarchical Deterministic WalletsSpesifikasi DOC · 002BIP 380 — Output Script Descriptors General OperationSpesifikasi DOC · 003SLIP-0132 — Registered HD Version BytesSpesifikasi DOC · 004Bitcoin Core — Output DescriptorsDokumentasi DOC · 005Trezor — What Is a Public Key (XPUB)?Dokumentasi DOC · 006BIP 44 — Multi-Account Hierarchy for Deterministic WalletsSpesifikasi
Direvisi: Utamakan sumber · Bukan nasihat investasi