本文へスキップ
buybitcoinsmart

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

Rパラメータ

Rパラメータとは?
Rパラメータは、ビットコインURIにBIP72が追加するもので、支払い用アドレスの代わりに、ウォレットが署名済みリクエストを取得することが想定されるURLを置きます。

BIP-72で規定されています。

rパラメータを含むQRコードをスキャンすると、ウォレットは何かを表示する前にウェブページを取得するよう指示されます。BIP72は2013年7月29日に登場し、必須キー用に予約されたreq-rではなく素のrを使用したため、古いウォレットはそれを無視してアドレスに支払うことができました。今日出会う決済ページで、rパラメータを渡してくるものはありません。

仕組み

rパラメータは、パーセントエンコードされたHTTPS URLを保持するクエリキーであり、BIP72はこれに2つの形式を定義しました。互換形式はURI内に通常のアドレスを保持し、その後にキーを追加します。そのため、支払いプロトコルを聞いたことのないウォレットはアドレスに支払い、rを理解するウォレットはアドレスを無視してリクエストを取得します。アドレスを完全に削除した形式では、bitcoin:?r=https://store.example/i/8f3aのような文字列になり、古いソフトウェアではまったく支払うことができません。

キーを任意としたのは、BIP21を意図的に解釈した結果でした。その文法は、認識されないパラメータを2つのクラスに分けます。req-が付いたものはウォレットがURIを拒否しなければならず、それ以外はスキップしてもよいとされています。したがって、フィールドをreq-rではなくrと名付けたことは、グレースフルデグラデーションを選んだことになります。BIP72は逆の動作も明記していたため、素のアドレスへの支払いをどうしても受け付けられない事業者はreq-rと書き、互換性のないウォレットに資金を送らせるのではなく停止させ、決済ページが照合できない事態を避けることができました。

URLから返されたのは、BIP71が登録したMIMEタイプで提供されるプロトコルバッファでした。その後BIP73がコンテンツネゴシエーションを追加し、同じリンクが、クライアントが送ったAcceptヘッダーによって区別され、ウォレットには支払いリクエストを、ブラウザには通常の人間向けウェブページを返せるようになりました。

使われている場面

rパラメータは現在の利用ではどこにも見当たりません。Bitcoin Coreはリリース0.20.0で支払いプロトコルの対応を削除して以来、これらのURLをたどらなくなり、かつてこれらを生成していた事業者向けツールは、単純なBIP21 URIとライトニングのインボイスを発行するソフトウェアに置き換えられました。今でもrパラメータを生成している決済ページは、何年も誰も手を入れていない連携を実行しているのであり、別の経路で支払うのが妥当な対応です。

このフィールドが残すべき習慣は、フィールド自体より長く続きます。QRコードは人間には読めないため、それをスキャンすることは、それを生成したもの(画面、印刷された請求書、機械に貼られたステッカー)への信頼の行為です。rパラメータは、ウォレットに接続先のURLを渡すことでそれを文字どおりのものにし、同時に、あなたが何かに同意する前にあなたのIPアドレスを事業者のサーバーに晒しました。同じように晒されることは、誰かがひそかに差し替えた通常のアドレスのQRコードでも、より目立たない形で存在します。スキャナーが制御しない表示で宛先を確認し、ハードウェアウォレットではそれが機器自体の画面を意味します。そして最初の4文字をちらりと見るのではなく、確信が持てるだけの文字数を比較してください。

rパラメータvsビットコインURI

ビットコインURIは文字列全体であり、rパラメータはその中の1つの任意キーでした。両者を分けるのは権限の向きです。amount、label、messageといったキーは、すでにURI内にある宛先を修飾するもので、ウォレットはそれらすべてを無視しても正しい場所に送金できます。rパラメータはその関係を反転させました。理解される場所では、アドレスを完全に上書きし、資金がどこへ行くかの決定を、目の前の文字列からどこか別の場所にあるサーバーへと移しました。

混同しやすい用語

よくある質問

ビットコインURIにおけるrとreq-rの違いは何ですか?

接頭辞が、キーを理解しないウォレットの扱いを決めます。BIP21は、req-で始まる未知のパラメータがあるとウォレットはURI全体を拒否しなければならないのに対し、素のrは無視でき、ウォレットは代わりにアドレスへ支払えると定めています。

決済ページでRパラメータを渡されたら心配すべきですか?

放置されたソフトウェアの兆候と捉えてください。Bitcoin Coreはリリース0.20.0で決済プロトコルの対応を削除しており、現在のウォレットはこのキーに従って動作しないため、加盟店に素のアドレスかライトニングのインボイスを求めてください。

次に読む

関連用語

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

このページを英語で読む