Mengapa alamat Anda tak seperti milik mereka: format alamat dan mengapa pengiriman gagal

·6 mnt baca·Oleh SSP Editorial Team
Sampul SSP Academy: format alamat kripto dan pengiriman yang gagal

Mengapa alamat Anda tak seperti milik mereka: format alamat dan mengapa pengiriman gagal

Cepat atau lambat, setiap orang yang berswakelola menemui momen membingungkan yang sama. Anda menyalin alamat penerimaan untuk mengirimi diri sendiri sedikit Bitcoin, dan alamat itu tak seperti alamat-alamat yang pernah Anda lihat. Atau sebuah bursa menolaknya. Atau Anda mengirim Bitcoin Cash ke sesuatu yang persis tampak seperti alamat Bitcoin lalu menghabiskan satu jam yang tak menyenangkan untuk mencari tahu apa yang terjadi.

Tak satu pun dari ini sewenang-wenang. Format alamat mengodekan informasi nyata tentang bagaimana koin bisa dibelanjakan, dan begitu Anda bisa membacanya, kebingungan itu nyaris menguap seluruhnya.

Sebuah alamat adalah seperangkat syarat pembelanjaan

Model pikir yang berguna bukan «alamat adalah nomor rekening». Melainkan ini: sebuah alamat adalah uraian padat tentang apa yang harus benar agar koin ini bisa berpindah.

Kirim ke alamat yang berawalan 1, dan syaratnya adalah satu kunci publik tertentu harus menghasilkan tanda tangan. Kirim ke alamat bc1q… jenis yang lebih panjang, dan syaratnya bisa jadi dua kunci tertentu harus sama-sama menandatangani. Rantai yang sama, uang yang sama, aturan yang sama sekali berbeda — dan format alamat adalah cara rantai itu memberi tahu Anda aturan mana yang berlaku.

Itulah sebabnya format berkembang biak. Setiap kali Bitcoin mendapat cara baru mengunci koin, ia butuh cara baru pula untuk menuliskan di mana koin itu terkunci.

Format yang akan Anda temui di Bitcoin

Legacy — 1… Yang asli. Bayar ke hash kunci publik: satu kunci, satu tanda tangan. Didukung di mana-mana, dan paling mahal untuk dibelanjakan, karena data tanda tangan dihitung penuh terhadap ukuran blok.

Skrip — 3… Bayar ke hash skrip. Koin terkunci pada sebuah skrip, bukan pada sebuah kunci — kuorum multisig, kunci waktu, apa saja. Alamatnya adalah hash dari syarat-syarat itu, jadi dari luar Anda tak bisa tahu syaratnya apa. Begitu pula SegWit awal diselundupkan demi kompatibilitas.

SegWit asli — bc1q… Bech32. Data tanda tangan dipindahkan ke struktur saksi terpisah, yang membuat pembelanjaan lebih murah dan memperbaiki kelenturan transaksi. Bech32 memakai huruf kecil, punya jumlah periksa lebih kuat daripada base58, dan dirancang agar salah ketik terdeteksi alih-alih diterima diam-diam.

SegWit asli hadir dalam dua panjang, dan bedanya penting:

  • Total 42 karakter — P2WPKH. Satu kunci, satu tanda tangan.
  • Total 62 karakterP2WSH. Sebuah skrip — misalnya multisig dua-dari-dua.

Taprootbc1p… Yang terbaru. Privasi lebih baik dan pembelanjaan rumit lebih murah, dengan ongkos bahwa beberapa layanan lama masih belum menerimanya.

Mengapa alamat SSP tampak tak biasa

Di sinilah orang terkejut, dan penjelasannya memuaskan.

SSP adalah dompet multisig dua-dari-dua. Koin Anda tak terkunci pada satu kunci — koin itu terkunci pada sebuah skrip yang menuntut tanda tangan dari ekstensi peramban sekaligus dari ponsel Anda. Artinya alamat Bitcoin SSP adalah P2WSH, bukan P2WPKH, jadi ia berbentuk bc1q yang panjang: 62 karakter, bukan 42 yang biasa dikenal kebanyakan orang.

Kalau Anda menatap alamat Anda dan merasa ia kepanjangan, memang seharusnya begitu. Panjang tambahan itu adalah hash dari skrip dua-dari-dua, bukan hash dari satu kunci publik. Alamatnya lebih panjang karena syaratnya lebih kaya.

Kadang ini menyandung layanan lama yang hanya mencocokkan pola bentuk pendek. Itu keterbatasan di pihak mereka — P2WSH sudah sepuluh tahun umurnya — tapi ada gunanya tahu mengapa galat itu muncul, sebab pesannya biasanya cuma «alamat tidak sah» yang tak menolong.

Setiap rantai membuat pilihan yang berbeda

SSP mendukung beberapa rantai UTXO, dan tiap rantai menulis alamat multisig dengan caranya sendiri:

RantaiJenis skrip di SSPAlamat tampak seperti
BitcoinP2WSHbc1q… (62 karakter)
LitecoinP2WSHltc1q…
Bitcoin CashP2SHbitcoincash:p…
DogecoinP2SHdiawali 9 atau A
ZcashP2SHt3…
RavencoinP2SHdiawali r
FluxP2SHt3…

Litecoin mengikuti rancangan Bitcoin dari dekat dan hanya mengganti awalan yang terbaca manusia, itulah sebabnya alamatnya terasa akrab. Zcash dan Flux memakai versi dua byte, yang memberi awalan khas t3 untuk alamat skrip. Dogecoin memilih byte versinya sendiri, jadi alamat skripnya diawali 9 atau A — sama sekali tak mirip alamat D… satu-kunci yang sudah dikenal.

Yang penting, awalan alamat sebuah rantai adalah konstanta di tingkat konsensus, bukan urusan merek. Merekalah alasan sebuah dompet bisa menolak alamat sebelum Anda mengirim apa pun.

Jebakan Bitcoin Cash, dan mengapa CashAddr ada

Ada satu potongan sejarah yang layak diketahui karena benar-benar bisa membuat Anda kehilangan uang.

Ketika Bitcoin Cash memisahkan diri dari Bitcoin pada 2017, ia mewarisi format alamat Bitcoin persis — byte versi yang sama, 0x00 untuk alamat kunci dan 0x05 untuk alamat skrip. Alamat BCH legacy dan alamat BTC legacy tak bisa dibedakan. Bukan mirip. Identik secara struktur.

Orang-orang terus-menerus mengirim BTC ke alamat BCH dan BCH ke alamat BTC, karena tak ada perangkat lunak yang bisa membedakannya. Koinnya tak musnah — kunci pribadi yang sama mengendalikan keduanya — tapi memulihkannya berarti mengimpor kunci ke dompet rantai yang lain, sesuatu yang tak bisa dilakukan banyak pengguna dengan aman.

CashAddr adalah pembetulannya: format bergaya bech32 dengan awalan bitcoincash:, sengaja dibuat tak kompatibel dengan milik Bitcoin agar pengiriman lintas rantai gagal dengan berisik alih-alih berhasil diam-diam. Itulah sebabnya SSP menampilkan alamat Bitcoin Cash dengan awalan lengkap. Tampak bertele-tele. Bertele-telenya itulah fiturnya.

Mengapa pengiriman gagal, dan apa arti tiap kegagalan

«Alamat tidak sah». Biasanya kegagalan jumlah periksa — salah ketik, tempelan yang terpotong, untaian bech32 dengan huruf besar-kecil tercampur. Bech32 tak peduli besar-kecil huruf, tapi tak boleh tercampur; sebagian jalur salin-tempel merusak ini. Kadang artinya layanan pengirim tak mendukung format Anda.

«Jenis alamat tak didukung». Layanan mengenali alamatnya tapi menolak mengirim ke sana — biasanya bursa lama yang tak pernah menambahkan Taproot, atau yang hanya menangani SegWit bentuk pendek. Bukan tugas Anda memperbaikinya; pakai jalur penarikan lain atau alamat perantara.

Salah rantai sama sekali. Di sini awalan bech32 yang terbaca melindungi Anda: bc1 dan ltc1 berbeda, dan dompet memeriksanya. Rantai base58 lebih berisiko, karena alamat Dogecoin yang sah juga sah secara struktur di beberapa rantai lain.

Terkirim, tapi tak ada yang sampai. Entah Anda menatap penjelajah rantai yang keliru, entah dananya masuk ke alamat sah yang bukan milik Anda. Tak ada penarikan kembali.

Aturan praktisnya

Salin, jangan pernah mengetik. Tiap format punya jumlah periksa justru karena manusia sering salah ketik. Jangan suruh ia mengerjakan pekerjaan yang semestinya tak perlu ada.

Cocokkan awalan dengan rantainya lebih dulu. Bitcoin itu bc1, 1, atau 3. Litecoin itu ltc1, L, atau M. Bitcoin Cash itu bitcoincash:. Satu lirikan ini menangkap kesalahan-kesalahan yang mahal.

Harapkan alamat multisig lebih panjang. Kalau Anda memakai SSP atau dompet berbasis skrip mana pun, bentuk panjang itulah yang benar. Panjang bukan gejala kekeliruan.

Kirim uji coba kecil dulu bila tujuannya baru, terutama ke bursa dan terutama untuk jumlah besar. Biayanya remeh dibanding pilihan yang lain.

Pakai alamat penerimaan baru bila dompet Anda menawarkannya. Memakai ulang alamat menautkan transaksi-transaksi Anda satu sama lain bagi siapa pun yang mengamati rantai. Menghindarinya tak berbiaya apa-apa.

Format alamat tampak seperti remeh-temeh sewenang-wenang sampai Anda sadar bahwa masing-masing adalah pernyataan tentang bagaimana koin boleh berpindah. Dibaca begitu, menerima ke dompet Anda berhenti menjadi lompatan iman dan berubah menjadi sesuatu yang benar-benar bisa Anda periksa — dan itulah seluruh maksud dari memegang kunci Anda sendiri.

Bagikan artikel ini

Artikel terkait