本文へスキップ
buybitcoinsmart

用語集 / 開発者向けリファレンス

URI QRコード

URI QRコードとは?
URI QRコードとは、bitcoin: URIを符号化した正方形の白黒パターンで、カメラが読み取れるようにしたものです。これにより、本来であれば手入力しなければならないアドレスと金額が読み取れます。

読み取れば入力の手間がなくなり、入力こそが間違いの生まれる場所です。大文字で書かれたbech32アドレスはQRの英数字モードに収まり、BIP173が指摘するとおり、バイトモードより約45%コンパクトになるため、大文字のコードはモジュール数が少なくなり、より確実に読み取れます。QRコードにできないのは、その中に入っているアドレスが、あなたが思っている相手のものだと教えてくれることです。

仕組み

QRコードは汎用のデータコンテナで、ISO/IEC 18004として標準化されており、ビットコインはそこにテキストのURIを入れるだけです。

このフォーマットには複数の符号化モードがあります。英数字モードは45文字の文字集合を扱います。数字、大文字、スペース、そして9つの句読点です。2文字を11ビットに詰め込みます。バイトモードは何でも扱えますが、1文字につき8ビットを丸ごと消費します。英数字の集合に小文字はないため、ウォレットはしばしば文字列全体をBITCOIN:BC1Q...のように大文字で表示します。URIスキームは大文字と小文字を区別せず、bech32アドレスは混在させない限り大文字でも小文字でも有効です。そのため大文字化は安全で、グリッドを小さくできます。

1または3で始まるBase58アドレスにはその選択肢がありません。文字集合が大文字と小文字を区別し、文字を変えればアドレスが変わるからです。これはほとんど語られないbech32の小さく具体的な利点です。

誤り訂正は生成時に選びます。4つのレベルは、損傷したコードのおよそ7%、15%、25%、30%を復元します。天候にさらされる印刷済みのシールなら最高レベルが妥当ですが、画面には不要です。ここで容量が制約になることはありません。最大のQRバージョンでも4,296文字の英数字を保持でき、典型的なビットコインURIは50から120文字程度に収まります。

目にする場所

ビットコインのQRコードを日常的に生成する場面は4つあり、信頼性は同じではありません。

取引所の入金画面は、入金してほしいアドレスのコードを生成します。ハードウェアウォレットの画面そのものは、内部で導出したアドレスのコードを生成し、由来を確認できるのはこのバージョンだけです。加盟店の決済画面は、オンチェーンアドレスとライトニングのインボイスの両方を含む統一コードを印字します。ビットコインATMは購入の瞬間にコードを表示し、通常はカウントダウン付きです。

2番目の場面とそれ以外の差が、ハードウェアウォレットのセキュリティ論拠のすべてです。画面を制御するマルウェアはQRコードを描き直せますが、TrezorやLedgerの画面のものは描き直せません。コードはデバイス上で生成し、そのうえでデバイスが下にも印字する文字を確認してください。

物理的なコードはより狙われやすい標的です。FBIのInternet Crime Complaint Centerは2022年1月18日、正規のQRコードの上に犯罪者が自分のQRシールを貼る手口について広報を出しており、この手口は今もなくなっていません。公共の場所で紙に印刷されたコードは、宛先アドレスが自分で独立に予期していたものと一致するまで、未確認として扱ってください。

知っておく価値のある無害な用途が1つあります。エアギャップされた署名デバイスは、部分的に署名したトランザクションを、1秒に数フレームで切り替わるQRコードのアニメーション列で出し入れします。カメラと画面があれば、ケーブルも攻撃対象となるUSBスタックもないデータ経路ができるからです。

URI QRコードvsアドレス

アドレスはテキストで、URI QRコードは、たまたまアドレスを含むより長いテキストの画像です。アドレスだけを持つコードを読み取ると、ウォレットには宛先だけが渡り、金額は依然として入力が必要です。完全なURIを持つコードを読み取ると、金額、ラベル、時にはライトニングのインボイスまで入力されます。どちらも目には同じに見えるため、読み取り後に事前入力された合計を表示するウォレットは、実際に何を読んだかについて有用なことを教えてくれています。

混同しやすい用語

よくある質問

ビットコインのQRコードの一部がすべて大文字なのはなぜですか?

コードを小さくするためです。QRの英数字モードには小文字がなく、BIP173はバイトモードより約45%コンパクトだと指摘しているため、bech32アドレスとbitcoin:スキームを大文字にすると、より疎なグリッドになり、読み取りの信頼性が高まります。

QRコードを読み取ることはアドレスをコピーするより安全ですか?

クリップボードのマルウェアは避けられますが、独自のリスクが生じます。印刷されたコードは詐欺的なシールで覆われる可能性があり、FBIは2022年1月にこれについて警告しました。いずれの場合も、ハードウェアウォレットの画面で宛先を確認してください。

次に読む

関連用語

開発者向けリファレンスのその他の用語

このページを英語で読む