ウォレットは、ビットコインを受け取ったり送ったりするためのアプリや機器です。Transaction Labeling は、取引、アドレス、そのほかのウォレット記録に説明やメモを加えることです。支払いの目的や入金元を記録できます。メタデータと呼ぶこれらの情報は Bitcoin 取引の外側でアプリが保管し、相手の身元をそれだけで証明するものではありません。
ウォレット履歴を開くと古い支払いがあります。仕事の前金、贈り物、自分の別口座への移動のどれでしょうか。「自転車修理の前金」というラベルがあれば、後からも意味が分かります。名前の変更はアプリのメモを変えるだけで、取引やその識別子 txid は変えません。そのためにブロックチェーン(承認済み取引の公開履歴)へ新たな記録を作る必要もありません。復元でも区別が重要です。ウォレットの鍵を復元する単語列 Seed Phrase 自体には、個人のメモは含まれません。使える状態に戻すことと、支払いの背景を戻すことは別の作業です。 [1] [3] [5]
役立つメモは、請求書番号、目的、資金の出所など、分かっていることを示します。ただし自分の記述は、アプリの自動的な関連付けや分析者から引用した主張とは異なります。例えば BTCPay Server は請求書経由の入金に invoice、払出しや返金に payout を使い、独自ラベルも付けられます。背景情報は、未使用出力 UTXO を手動で選ぶ Coin Control に役立ちます。それぞれの出力には金額と、その金額を使うための条件が記されています。しかし「まとめない」と書くだけでは防げません。次の支払いでどの入金が結び付くかは、実際の入力選択が決めます。 [1] [2]
一部のウォレットは出力を凍結し、アプリが支出に選ばないようにできます。BIP 329 は output 型だけに使う spendable で、このローカル状態を移します。spendable:false の false は真偽値であり、文字列 "false" とは別です。大切なのは、凍結がそのアプリ内の誤選択を防ぐもので、あらゆる支出を禁止するわけではないことです。Bitcoin の規則が強制する時間条件 Timelock ではありません。正しい鍵を持つ別のウォレットは、出力本来の条件を満たせば使えます。 [1] [3]
アプリを変えるときにはメモの別途エクスポートも考えましょう。ファイルは名前、請求書、履歴をアドレスや XPUB と結び付ける可能性があります。XPUB は拡張公開鍵で、ウォレットの対応する部分について次のアドレスを計算できます。ただし XPUB だけでは支払いに署名できません。エクスポートに spscan 型の記録があれば、その記録には受け取った Silent Payments を見つけるためのスキャン秘密鍵が含まれています。それだけでは支出できませんが、漏えいはプライバシーを損ないます。支出用秘密鍵がないからといって無害ではありません。保存したコピーと転送を暗号化で保護し、正しい口座で復元を試してください。 [1] [4] [5]
BIP 329 は tx、addr、pubkey、input、output、xpub、spscan を区別します。順に取引、アドレス、公開鍵、入力、出力、拡張公開鍵、Silent Payments のスキャン式です。型によって ref の読み方が決まります。input なら取引識別子とその入力の番号、output なら出力を作った取引の識別子と出力番号です。したがって型なしの txid:1 では不十分です。入力と出力という別の対象を指し得ます。すべてを「支払いアドレス」と見なすのは安全ではありません。 [1] [4]
交換形式は JSON Lines です。BIP 329 では UTF-8 のテキストファイルの各行に構造化された記録を一つ置きます。手書きする必要はなく、両方のアプリが理解できることが大切です。必須の type と ref が対象を定め、label、origin、spendable は任意です。label や spendable の省略で既存の値を上書きしてはいけません。仕様に従うインポーターは未知の型を無視します。ファイルを開けただけで、全メモと設定が引き継がれたとは言えません。 [1]
同じ取引が複数の口座やウォレットに現れ、それぞれ違う説明を持つ場合があります。origin はこの視点を区別します。機械が読めるウォレット記述 Output Descriptor の短縮形で、鍵の由来情報を含みますが、実際の鍵、子の導出経路、チェックサムは含みません。どのウォレットに関するラベルかを示すものです。ファイルの署名でも、作者が支払い目的を正直に書いたという証明でもありません。正しい口座の特定とメモの信用は別問題です。 [1]
旧アプリを使わなくなる前に、独立したテストコピーで移行を試しましょう。覚えている支払いを選び、対象と ref、文章、spendable の凍結設定を比較します。アクセント付き文字、複数口座、未知の型、任意項目の省略も確認します。非対応の記録を飛ばしたり、ラベルを短くしたりするインポーターもあります。推奨される 255 文字は既定の上限で、全アプリの保証ではありません。重要な背景を確認するまで元のバックアップを残してください。「インポート完了」だけでは完全な復元を証明しません。 [1]
理解を深めるには、この項目とあわせて次もお読みください Coin Control, UTXO, Bitcoin のプライバシー, Address Clustering, Seed Phrase, Output Descriptor. 次の項目からも参照されています Chain Surveillance.