仮名性とは、本名の代わりに見分けられる識別子を使うことです。Bitcoinではアドレスや公開鍵がこの役割を果たします。取引は公開されており、参加者を特定できるかどうかは、ほかにどのような情報が得られるかにも左右されます。
アンナは「北極星」というペンネームでブログを書いています。読者は彼女の記事だと分かりますが、本名まで知っているとは限りません。Bitcoinアドレスも似た働きをします。実名が書かれていない識別子でも、それに関連する支払いを見分けることはできます。これが仮名性です。アンナがブログに寄付用アドレスを載せると、読者はそのアドレスへの入金を追えるようになります。後にアンナがブログと本名の関係を明かせば、すでに見えていた履歴に新しい意味が加わります。暗号を破る必要はありません。新しい情報が、それまで別々だったものを結び付けただけです。Bitcoin Whitepaperも、一つの関係が明らかになると別の取引まで識別される可能性を指摘しています。 [1] [2]
Bitcoinアドレスは、新しい取引出力の資金を使うための条件を、ウォレットに伝えます。人の登録情報でも、身分証明書の番号でもありません。出力には、金額と、その資金を使うための条件が記録されています。アンナは多数のアドレスを使えますし、一つの共同ウォレットを複数の人で管理することもできます。秘密鍵とは、ウォレットが支払いを承認するデジタル署名を作るための秘密のデータです。Public Key、つまり公開鍵が確認するのはデジタル署名であって、署名した人の姓ではありません。有効な署名は対応する秘密鍵が使われたことを示します。それだけでは、アンナ本人なのか、管理を任された業者なのか、鍵を入手した窃盗犯なのかは分かりません。資金を動かせることと、法的な身元が分かることは別の問題です。 [4]
アンナがブログのアドレスを仕事の請求書にも使うと、自分で生活の二つの領域をつなぐことになります。読者には同じアドレスへの別の入金も見えますが、どれが寄付でどれが顧客の支払いかまでは分からないかもしれません。受け取りごとに新しいアドレスを使えば、この単純な関連付けを減らせます。一般的なウォレットは新しい口座を作らずに多数のアドレスを生成でき、通常は同じバックアップで管理します。ただし、新しいアドレスは匿名性が保証された新しい身元ではありません。別の手掛かりから、複数のアドレスを同じ人が使っていると分かる場合があります。 [2]
アンナがKYCによる本人確認を済ませた取引所でbitcoinを買ったとしましょう。取引所は彼女の口座と、出金先として指定されたアドレスを知っています。しかし出金した事実だけでは、アンナが送り先を管理している証拠にはなりません。別の人に支払った可能性もあります。それでも取引所は、偶然ブログを読んだ人にはない具体的な関連情報を持っています。販売店なら注文内容や配送先を知っているかもしれません。こうした情報はBitcoin取引に自動で書き込まれたり、全員に公開されたりするわけではありませんが、公開記録を補う材料にはなります。プライバシーは、誰が何を実際に知っているかを考えて評価する必要があります。 [2]
Bitcoinは、実名で登録した口座の残高を増減させる仕組みではありません。支払いは、以前に作られた未使用の出力であるUTXOを使い、新しい出力を作ります。その金額やつながりは公開されています。観察者には取引同士の実際の関係が見えますが、各部分をどの人が管理しているかは推測しなければならないことも多くあります。価値の移動を記した公開履歴と、所有者の一覧は同じではないのです。後から名前が分かると、昔の支払いまで新たに読み解ける場合があります。ブログからアドレスを削除しても過去の取引は消えず、保存されたブログのコピーも残るかもしれません。 [1] [4]
ウォレットは複数のUTXOをまとめて支払い、余りを自分のアドレスにお釣り、英語でchange、として戻すことがあります。分析者は、まとめられた入力が一人の所有者に属すると仮定し、どの出力がお釣りかを推定するかもしれません。こうして関連があると考えられるアドレスの集まりができます。これはヒューリスティックと呼ばれる推論方法で、便利な推測ではあっても身元の証明ではありません。例えばCoinJoinやPayJoinでは、複数の参加者が一つの取引に協力できます。もっともらしいアドレスの関係図だけで、すべてをアンナが管理しているとは断定できません。結論の確かさは、ほかの証拠にも左右されます。 [6]
アンナが別のアプリでウォレットを確認したくなり、拡張公開鍵であるXPUBをエクスポートしたとします。BIP 32は鍵を木の枝のように整理します。XPUBからはその枝に属する別の公開鍵を計算できますが、強化導出という段階は越えられません。その段階には秘密鍵が必要です。アドレスの種類について必要な情報もあれば、アプリは関連する支払いを追跡できます。XPUBだけで支出に署名することはできませんが、その枝の過去と将来の活動を明らかにする可能性があります。同じバックアップから作られたすべてのウォレットや口座が自動的に見えるわけではありません。それでも、顧客に渡す単独のアドレスよりはるかに広い範囲が見えます。 [3]
アンナがウェブ上のブロックエクスプローラーで自分のアドレスを検索すると、運営者はその検索を、ネットワーク接続の情報であるIPアドレスやログイン中のアカウントと結び付けられる場合があります。ウォレットが履歴を取得するサーバーも、似た情報を得ることがあります。こうした利用情報は公開ブロックチェーンとは別物ですが、その記録と人を結び付ける助けになり得ます。Full Node は、ネットワークのルールに従ってビットコインの取引やブロックを自ら検証するソフトウェアを動かすコンピューターです。自分のFull Nodeをウォレットが実際に利用すれば、外部サーバーへの問い合わせを減らせます。TorはIPアドレスの露出を抑えられますが、ブログと支払いの間にすでに公開された関係は消せません。 [2]
Lightning Networkによる支払いは、通常、個別の取引として公開ブロックチェーンに記録されません。これにより一つの見える痕跡は減りますが、誰も支払いについて何も知らないという意味ではありません。Lightningノードは、支払いチャネルを管理するソフトウェアです。チャネルでは、二者が預け入れた資金の配分を更新します。ノードは公開鍵を識別子として使い、自分の公開チャネルをネットワークに告知できます。BOLT 11の支払い要求からは受取側ノードの識別子を特定でき、支払いに関するほかの情報や受取側への経路情報が含まれる場合もあります。送る人、受け取る人、利用するサービスが持つ情報はそれぞれ異なります。要求を公開すれば、支払い自体はメインチェーン外で行われても、その情報の一部をほかの人に明かすことになります。 [5] [7]
アドレスを公開したりアプリに履歴を見せたりする前に、アンナは「誰がどの情報を結び付けられるようになるか」と考えられます。支払いごとに新しいアドレスを使うこと、XPUBを誰に渡すか把握すること、ウォレットがどこから情報を取得しているか理解することは役立ちます。ただし、どれか一つで完全な匿名性が得られるわけではなく、新しい設定が古いつながりを消すわけでもありません。目的は不要な情報共有を減らし、すでに存在する関係を知ることです。長い文字列が自動的に人を隠してくれると考えるより、現実的な姿勢です。 [2] [3]
理解を深めるには、この項目とあわせて次もお読みください Bitcoin のプライバシー, ビットコインアドレス, KYC, Address Clustering, Bitcoin, UTXO. 次の項目からも参照されています Bitcoin のプライバシー, KYC, The Crypto Anarchist Manifesto, A Cypherpunk’s Manifesto.