> bech32 | segwit | bc1 <
// Bech32 - エラー検出付き Bitcoin SegWit アドレスエンコード
Bitcoin アドレス
bc1 で始まる Bitcoin SegWit アドレス向けのネイティブ形式。
高精度なエラー検出
Base58Check よりも優れたエラー検出と位置特定が可能。
QR コードに最適
すべて小文字のデザインにより、QR コードが小さく読み取りやすくなります。
>> 技術情報
Bech32 の仕組み:
Bech32 は 32 文字のアルファベット(紛らわしい文字を除外)と BCH コードによるエラー検出を組み合わせた形式です。アドレスは、人間が読める部分(HRP)、区切り文字 1、データ、および 6 文字のチェックサムで構成されます.
構造:
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 bc = HRP(Bitcoin メインネット) 1 = 区切り文字 qw508d = データ(5 ビットのグループ) kv8f3t4 = チェックサム(最後の 6 文字)
Bech32 を使う理由:
- >Bitcoin SegWit アドレス
- >Lightning Network の請求書
- >暗号資産アドレス
- >エラーに強いエンコード
- >QR コードの最適化
>> よくある質問
Bech32 とは何ですか?
Bech32 は、主に Bitcoin の SegWit アドレスで使用されるチェックサム付き base32 形式です。旧来のアドレス形式よりもエラー検出性能を高めるために設計されました。
Bech32 と Bech32m の違いは?
Bech32m は、元の Bech32 チェックサムアルゴリズムの弱点を修正した改良版です。Taproot アドレス(bc1p)には Bech32m が使われ、従来の SegWit アドレスには Bech32 が使われます。
なぜ Bech32 アドレスは小文字だけなのですか?
小文字のみを使うことで QR コードが小さくなり、手入力もしやすくなります。形式自体は大小文字を区別しませんが、一貫性のために小文字が標準とされています。
HRP とは何ですか?
HRP(Human Readable Part)はアドレスの種類とネットワークを識別する部分です。例として、bc は Bitcoin メインネット、tb はテストネット、ltc は Litecoin を表します。
// クイックリファレンス
| value | 文字 |
|---|---|
| 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 |
// コード例
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
>> その他の質問
Q: Bech32とBech32mの違いは何ですか?
A: 形式と文字セットは同じですが、チェックサムの定数が異なります。Bech32(BIP-173)は1、Bech32m(BIP-350)は 0x2bc830a3 です。Bech32mはSegWitバージョン1以降、つまりTaproot(bc1p…)、Bech32はバージョン0(bc1q…)に使われます。
Q: Bech32の文字セットに1、b、i、oがないのはなぜですか?
A: 32文字 qpzry9x8gf2tvdw0s3jn54khce6mua7l は紛らわしい記号を除いています。1 は区切り文字で、b、i、o は 6、1、0 に似ているためです。大文字だけ、または小文字だけで有効で、混在は不可です。
Q: Bech32のチェックサムはどれほど誤りを検出できますか?
A: 6文字のチェックはBCH符号に基づき、4文字までの誤りを確実に検出し、Base58Checkよりはるかに入力ミスを見つけやすくなっています。長さは90文字までです。