Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 259|Jawab: 0

Penjelasan rinci tentang pengkodean blockchain Base58, Base58Check, Bech32, dan Bech32m

[Salin tautan]
Dipaparkan pada 2025-10-17 09:01:55 | | | |
Base58, Base58Check, Bech32, dan Bech32m adalah format pengkodean yang umum digunakan dalam teknologi blockchain, terutama digunakan untuk meningkatkan keterbacaan, mengurangi kesalahan, dan memastikan integritas data. Keempat kode ini memiliki keunggulan tersendiri dalam memastikan keamanan, kompatibilitas, dan kemampuan koreksi kesalahan, dan merupakan landasan penting dari sistem alamat blockchain modern.

Dasar58

"Base58" adalah metode pengkodean yang ditemukan oleh Satoshi Nakamoto, yang diadaptasi dari metode pengkodean terkenal "Base64". Kumpulan karakter Base64 meliputi: semua angka dan huruf besar dan kecil, serta dua simbol ("+" dan "/"); Sebanyak 64 karakter. Satoshi Nakamoto menghapus angka 0, huruf besar I dan O, huruf kecil l, dan simbol, dan menjadi Base58.

Kumpulan karakter: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz



Dasar58Periksa

Dibandingkan dengan Base58, pengkodean Base58Check hanya memiliki satu perhitungan checksum lagi. Seperti yang ditunjukkan di bawah ini:



Base58Check memecahkan masalah rawan kesalahan, sulit dikenali, dan tidak diverifikasi dalam metode pengkodean tradisional, menyediakan metode representasi yang aman, kompak, ramah manusia, dan mendeteksi kesalahan untuk data kunci dalam blockchain (seperti alamat dan kunci pribadi). Meskipun sekarang secara bertahap digantikan oleh Bech32 / Bech32m yang lebih canggih (untuk alamat SegWit), itu memainkan peran penting dalam ekosistem Bitcoin awal.

Bech32

"Bech32" adalah metode pengkodean yang ditentukan oleh BIP 0173, yang ditulis oleh Pieter Wuille dan Greg Maxwell. Namun, pengkodean ini juga memiliki asal-usulnya: "Bech" mengacu pada "BCH", algoritma pengkodean koreksi kesalahan siklik yang ditemukan oleh tiga matematikawan masing-masing pada tahun 1959 dan 1960 (nama BCH berasal dari nama ketiga matematikawan ini). "32" berarti bahwa kumpulan karakter metode pengkodean hanya memiliki 32 karakter: huruf kecil dan angka, tidak termasuk angka "1", huruf "b", "i" dan "o".



Pada awal BIP 0173, penulis menunjukkan aspek yang tidak diinginkan dari Base58:

  • Base58 menggunakan huruf Inggris besar dan kecil, yang membuat datanya ditarik ke dalam kode QR bukan dalam mode "alfabet numerik" yang lebih kecil, tetapi hanya dalam mode "data byte" yang lebih besar.
  • Penggunaan casing dan casing juga menyulitkan untuk menyalin, mengetik, dan membaca di keyboard ponsel.
  • Checksum membutuhkan dua operasi SHA256 berturut-turut, yang lambat dan tidak memiliki kemampuan untuk menemukan penempatan yang salah.
  • Sebagian besar metode pengkodean kesalahan yang dapat dilokalkan hanya berfungsi jika ukuran set karakter adalah pangkat prima, dan 58 bukan pangkat prima.
  • Base58 lebih kompleks untuk didekode dan lebih lambat untuk memecahkan kode.

Akibatnya, pendekatan baru Bech32 hanya menggunakan huruf kecil dan angka; Saat diperlukan, seperti saat menggambar kode QR, semua huruf ini dapat diganti dengan huruf kapital untuk representasi yang lebih ringkas. Kode QR yang lebih kecil, karena alamat Bech32 bersifat tunggal, Anda dapat mengkodekannya sebagai kode QR menggunakan mode alfanumerik. Ini berarti Anda dapat membuat kode QR yang lebih ringkas karena Base58 memerlukan huruf besar dan huruf kecil (artinya Anda tidak dapat menggunakan mode alfanumerik), sedangkan Bech32 tidak. Seperti yang ditunjukkan di bawah ini:



Seperti yang Anda lihat, terlepas dari alamat Bech32Berisi lebih banyak karakter, tetapi kemampuan untuk menggunakan pola alfanumerik berarti bahwa kode QR menggunakan lebih sedikit data secara keseluruhan

Pada saat yang sama, Bech32 memiliki kemampuan untuk menemukan kesalahan: ia tidak hanya dapat menemukan bahwa Anda telah membuat kesalahan penyalinan, tetapi juga menunjukkan bit mana yang telah Anda salin dengan salah (kemampuan untuk menemukan kesalahan ini jauh lebih unggul daripada Base58).

Faktanya, algoritma BCH juga memiliki fungsi "koreksi kesalahan": algoritma tidak hanya dapat menunjukkan bit mana yang telah Anda salin dengan salah, tetapi juga karakter apa yang seharusnya. Namun, penulis BIP 0173 menemukan bahaya yang melekat: di satu sisi, memperkuat koreksi kesalahan melemahkan kemampuan untuk menemukan kesalahan; Di sisi lain, jika pengguna terlalu mempercayai kemampuan koreksi kesalahan perangkat lunak, perangkat lunak dapat memperbaiki data yang salah yang dimasukkan oleh pengguna menjadi data yang "valid tetapi tidak berguna" - meskipun valid sebagai bagian dari data yang dikodekan BCH; Namun, ada kemungkinan bahwa skrip Bitcoin yang dipulihkan tidak berada dalam kendali penerima, atau bahkan siapa pun. Ini sangat berbahaya. Oleh karena itu, BIP 0173 memperingatkan: "Selain mengingatkan pengguna bit mana yang mungkin salah disalin, perangkat lunak tidak boleh menerapkan kemampuan koreksi kesalahan (memberikan saran koreksi)." ”

Selain itu, Bech32 mengikuti pola yang ditemukan dalam pengkodean Base58:

1. Data Bech32 akan dimulai dengan paragraf "data dengan makna (hrp)", mirip dengan awalan di Base58, yang dapat menunjukkan jenis data apa itu.
HRP dapat menggunakan lebih dari 32 karakter; Bech32 juga menggunakan angka "1" sebagai pemisah untuk memisahkan HRP dari data yang sebenarnya akan didekodekan.
Selain Bitcoin, ada banyak proyek lain yang juga mengadopsi Bech32; HRP digunakan untuk membedakan data dari item yang berbeda. Berikut daftar HRP terdaftar, yang sangat menarik (tetapi hanya menarik).
2. Bech32 juga merancang checksum yang menempati 6 karakter terakhir dari data yang dikodekan.

Bech32m

"Bech32m" adalah metode pengkodean yang ditentukan oleh BIP 0350. Tautan:Login hyperlink terlihat.Itu diusulkan karena pengembang menemukan kerentanan dalam pengkodean Bech32:

Ketika karakter terakhir adalah "p", memasukkan atau menghapus sejumlah "q" di depan karakter itu tidak akan menyebabkan kesalahan checksum (data akan tetap dianggap valid), makaMekanisme checksum benar-benar kehilangan fungsinyaSelesai.

Jika Anda tidak menambahkan skrip Bitcoin standar, masalah ini dapat dengan mudah diselesaikan: baik alamat P2WPKH maupun alamat P2WSH memiliki panjang tertentu, cukup tambahkan pemeriksaan panjang. Namun, mengingat kami juga akan menambahkan skrip standar baru di masa mendatang, panjang alamat dapat berubah, jadi masalah ini perlu diperbaiki.

Bech32m memperbaiki masalah ini dengan mengubah parameter di generator checksum Bech32.

Saat ini, Bech32m hanya digunakan untuk mengkodekan alamat untuk skrip "P2TR" yang ditambahkan dengan peningkatan "Taproot". Ini dapat digunakan dalam pengkodean alamat skrip standar lainnya di masa mendatang.

Referensi:

Login hyperlink terlihat.
Login hyperlink terlihat.
Login hyperlink terlihat.




Mantan:tiktok, Douyin menangkap paket dan mematikan skrip Frida, yang dapat menemukan lokasi patch file SO
Depan:Pengantar jenis alamat Bitcoin Legacy, Nested SegWit, Native SegWit, dan Taproot
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com