> bech32 | segwit | bc1 <
// Bech32 - kodowanie adresów Bitcoin SegWit z wykrywaniem błędów
Adresy Bitcoin
Natywny format dla adresów Bitcoin SegWit zaczynających się od bc1.
Lepsze wykrywanie błędów
Lepiej wykrywa i lokalizuje błędy niż format Base58Check.
Przyjazny kodom QR
Małe litery pozwalają tworzyć mniejsze i bardziej czytelne kody QR.
>> informacje techniczne
Jak działa Bech32:
Bech32 używa alfabetu złożonego z 32 znaków (bez łatwo mylonych znaków) oraz kodu BCH do wykrywania błędów. Adres składa się z części czytelnej dla człowieka (HRP), separatora 1, danych oraz sześciu znaków sumy kontrolnej.
Struktura:
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 bc = HRP (główna sieć Bitcoin) 1 = separator qw508d = dane (grupy 5‑bitowe) kv8f3t4 = suma kontrolna (ostatnie 6 znaków)
Dlaczego warto używać Bech32:
- >Adresy Bitcoin SegWit
- >Faktury Lightning Network
- >Adresy kryptowalut
- >Kodowanie odporne na błędy
- >Optymalizacja pod kątem kodów QR
>> najczęstsze pytania
Czym jest Bech32?
Bech32 to format base32 z sumą kontrolną, używany głównie dla adresów Bitcoin SegWit. Został zaprojektowany jako bardziej niezawodna alternatywa dla starszych formatów adresów dzięki lepszemu wykrywaniu błędów.
Jaka jest różnica między Bech32 a Bech32m?
Bech32m to ulepszona wersja, która naprawia słabość w oryginalnym algorytmie sumy kontrolnej Bech32. Używana jest dla adresów Taproot (bc1p), podczas gdy klasyczne adresy SegWit używają Bech32.
Dlaczego adresy Bech32 są pisane małymi literami?
Adresy złożone wyłącznie z małych liter generują mniejsze kody QR i są łatwiejsze do wpisania. Format nie rozróżnia wielkości liter, ale dla spójności przyjęto konwencję używania małych liter.
Czym jest HRP?
HRP (Human Readable Part) identyfikuje typ adresu i sieć. Przykładowo bc oznacza główną sieć Bitcoin, tb sieć testową, a ltc — Litecoin.
// Krótka ściąga
| value | Znak |
|---|---|
| 0 8 16 24 | q g s c |
| 1 9 17 25 | p f 3 e |
| 2 10 18 26 | z 2 j 6 |
| 3 11 19 27 | r t n m |
| 4 12 20 28 | y v 5 u |
| 5 13 21 29 | 9 d 4 a |
| 6 14 22 30 | x w k 7 |
| 7 15 23 31 | 8 0 h l |
// Przykłady kodu
Charset qpzry9x8gf2tvdw0s3jn54khce6mua7l (32 symbols, no 1 b i o) Format <hrp> + "1" + <data> + <6-char checksum> (max 90 chars) HRP bc (Bitcoin) | tb (testnet) | ltc (Litecoin) | lnbc (Lightning) Checksum Bech32 constant 1 (BIP-173) | Bech32m constant 0x2bc830a3 (BIP-350) Example bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
>> Więcej pytań
P: Czym różni się Bech32 od Bech32m?
O: Ten sam format i zestaw znaków, ale inna stała sumy kontrolnej: Bech32 (BIP-173) używa 1, Bech32m (BIP-350) używa 0x2bc830a3. Bech32m służy do SegWit v1 i wyższych, czyli Taproot (bc1p…); Bech32 do v0 (bc1q…).
P: Dlaczego w alfabecie Bech32 brakuje 1, b, i oraz o?
O: 32 znaki qpzry9x8gf2tvdw0s3jn54khce6mua7l pomijają mylące symbole: 1 jest separatorem, a b, i, o przypominają 6, 1 i 0. Kod jest poprawny tylko małymi albo tylko wielkimi literami, nigdy mieszanymi.
P: Jak dobrze suma kontrolna Bech32 wykrywa błędy?
O: 6 znaków kontrolnych opiera się na kodzie BCH. Gwarantuje wykrycie każdego błędu do 4 znaków i znacznie lepiej niż Base58Check wychwytuje literówki. Długość jest ograniczona do 90 znaków.