用語集 / 開発者向けリファレンス
PPメモ
- PPメモとは?
- PPメモは、BIP70が加盟店、支払者、または受領を確認するサーバーに、人間が読むために支払いに付けることを認めたUTF-8の自由記述メモでした。
BIP-70で規定されています。
BIP70の4つのメッセージのうち3つはメモを持っていたため、メモはこのプロトコルで双方向にやり取りされた唯一のフィールドでした。これは純粋に表示用のテキストでした。どのウォレットもこれを解析せず、支払者が返送したコピーを保護する署名もなく、その内容がブロックチェーンに届くこともありませんでした。支払いメモは今日もこの仕組みで動いているため、重要な情報を入れる場所としては不適切です。
仕組み
状態:歴史的。メモはPaymentDetailsのフィールド5、Paymentメッセージのフィールド4、PaymentACKのフィールド2として現れましたが、2020年6月3日に0.20.0でBIP70への対応が削除された際に、これらはすべてBitcoin Coreから外れました。
この3つはそれぞれ作成者も読む人も異なりました。
1つ目は加盟店が書き、ウォレットが確認画面に金額と並べて表示しました。注文番号、商品名、規約の一行などです。シリアライズされた詳細情報の内部にあったため、加盟店の署名がこれを対象にしており、少なくとも転送中に書き換えることはできませんでした。
2つ目は支払者が書き、ブロードキャストしたトランザクションとともに返送しました。返金の指示やサポートへの連絡はここに書かれ、何も署名されていませんでした。
3つ目は加盟店が受領確認の中に書き、通常はお礼や発送予定日でした。これも何も署名されていませんでした。
BIP70は文字数の上限を定めていなかったため、ウォレットは画面のレイアウトが尽きたところで切り詰めました。この小さな隙間には実際の危険があります。検証済みの企業名の隣に攻撃者が用意したテキストを表示することはフィッシングの入口となり、追加の支払いを求める公式の指示のように読めるメモは、顧客が最も疑いを持たないまさにその場で説得力を持ちます。
どこで見られるか
支払いに付ける自由記述のメモは今も健在で、現代の各方式にはそれぞれの癖があります。
BIP21の支払いリンクはパーセントエンコードされたmessageパラメータを持ち、ウォレットが表示した後に忘れられます。ライトニングネットワークはさらに進んでおり、BOLT11のインボイスは説明をdフィールドに入れ、タグ付きフィールドは5ビットのグループを最大1,023個、およそ639バイトしか保持できないため、それより長い内容はhフィールドにその256ビットのハッシュで置き換える必要があります。取引所は出金フォームに参照欄を設けていますが、その内容が自社のデータベースの外に出ることはありません。
本当にオンチェーンに載る唯一のメモはOP_RETURN出力です。Bitcoin Coreのリレーポリシーは、この出力タイプが0.9.0で標準となった時点で40バイト、0.11.0以降は80バイトのペイロードを認めていました。これらのバイトには手数料を支払い、永遠に公開されるため、私的なメモとして使うのは誰も二度としない過ちです。
それ以外はすべて手元にあります。自分のウォレットに入力したメモはシードフレーズではなくウォレットファイルに保存されるため、新しい機器で復元するとコインは戻りますが、それについて書いた言葉は戻りません。移行する前にエクスポートしてください。
PPメモvsラベル
メモは支払いを描写し、ラベルは当事者またはアドレスに名前を付けます。BIP70のメモは1件のトランザクションのために書かれ、支払いの瞬間に一度だけ表示されました。BIP21のラベルは誰に支払うかを識別し、ウォレットのラベルはアドレスやトランザクションに付けて自分の機器に保管する私的な整理用のメモです。この3つのいずれも、真偽を確認できる人が署名したものではなく、ネットワークから見えるものでもありません。