BIP 173
ネイティブ v0-16 witness 出力のための Base32 アドレス形式
原題: Base32 address format for native v0-16 witness outputs
- Status
- Deployed
- Type / Layer
- Informational / Applications
- Author
- Pieter Wuille, Greg Maxwell
- 割り当て日
- Status 検証日
- 原文
- github.com/bitcoin/bips/blob/master/bip-0173.mediawiki
要約
ネイティブ SegWit 出力を表すためのアドレス形式 Bech32 を定めた提案。従来の Base58Check には、QR コードにすると場所を取る、大文字小文字が混ざるため読み上げや手入力がしづらい、チェックサムに誤り検出の理論的な裏付けが乏しい、といった不満があった。Bech32 は文字列を人間可読部(メインネットは bc、テストネットは tb)・区切り文字の 1・データ部の 3 つで構成し、末尾 6 文字を BCH 符号によるチェックサムに充てる。この符号は 4 文字以内の置換誤りを必ず検出し、それを超える誤りを見逃す確率も 10 億分の 1 未満とされる。使う 32 文字は見間違えやすい 1・b・i・o を外して選ばれ、大文字小文字の混在は復号側が拒否する。すべて同じ字種にできるため、QR コードの英数字モードに載せて byte モードより小さく符号化できる。アドレスは witness バージョン(0〜16)と witness プログラムを符号化したものになる。なお仕様には後年、5 文字未満の連続した挿入・削除に対しては必ずしも堅牢でないという注記が加えられた。
技術的意義
bc1q で始まるアドレスの規格であり、SegWit のうち利用者の目に触れる部分である。チェックサムにより単純な打ち間違いはほぼ確実に弾かれるが、正しく入力された他人のアドレスを弾くことはできない。後に開示された弱点は、witness バージョン 1 以降を受け持つ BIP350 の Bech32m で修正された。
関連する BIP
関連する解説記事
このページに掲載しているのは原文の翻訳ではなく日本語の要約です。BIP は原文が正であり、Status を含むメタデータは上記の検証日時点で bips リポジトリから転記した値です。実装・検証の際は必ず原文を参照してください。