オブジェクトの広場は株式会社オージス総研グループのエンジニアによる技術発表サイトです

クラウド/Webサービス

ビットコイン論文からさぐる ブロックチェーンのヒント

第10回 プライバシー
オージス総研
樋口 匡俊
2019年11月27日

今回はビットコイン論文の第10章「Privacy」を読みながら、ビットコインにおけるプライバシーがどのようなものか見ていきます。プライバシーという言葉の解釈はさまざまですので、まずはビットコイン以外のプライバシーの意味について紹介することから始めたいと思います。

「プライバシーとは何か」という難問

米国の法学者ダニエル・ソーロヴ (Daniel Solove) は、2008年の著書「プライバシーの新理論」の中で、「プライバシーは未整理の概念である」と述べています。プライバシーは、誰もが「何を意味するのか明確には述べることができない」概念です。※1

ソーロヴは、プライバシーの概念はさまざまあるものの、以下の「6つの一般的な型に分類できる ※2」と言います。

(1) 放っておいてもらう権利:サミュエル・ウォーレンとルイス・ブランダイスの有名なプライバシーの権利の定式化
(2) 自己への限定的アクセス:他者からの望まないアクセスから自己を保護する能力
(3) 秘密:ある種の事柄の他者からの秘匿化
(4) 自己情報のコントロール:自己に関する情報に対するコントロールの行使能力
(5) 人格性:ある人のパーソナリティや個性/個別性、尊厳の保護
(6) 親密性:ある人の親密な関係や人生の奥深い部分にかかわる諸側面についてのコントロールや、それらへの限定的アクセス

これらの概念は「有用な洞察を有している」ものの、「概念が過度に狭いか、過度に広いかのいずれか」であり、「いずれの概念にも重要な限界」があります。ソーロヴは、これら従来の概念を検討・批判し、プライバシーの「新しい理解方法」を試みています。

詳しくは著書を参照してもらうとして、以上のように、プライバシーという言葉の意味するところは広く、一通りではありません

サイファーパンクのプライバシー

サトシがビットコイン論文を投稿した Cryptography Mailing List の源流は、サイファーパンク (cypherpunk) のメーリングリストです。その創設者の一人、エリック・ヒューズ (Eric Hughes) は、1993年に発表した「サイファーパンク宣言 (A Cypherpunk’s Manifesto)」の中で、プライバシーを話題の中心に据えています。

サイファーパンク宣言は、プライバシーを定義することから始まります。プライバシーとは、「自己を世界に対し選択的に開示する力 (the power to selectively reveal oneself to the world)」です。先ほどの分類では、「(4) 自己情報のコントロール」に相当します。

自己情報のコントロールは、ソーロヴによると「もっとも支配的なプライバシー理論の1つ」です。日本の個人情報保護法も、「自己情報コントロール権」という言葉こそ使っていないものの、影響を受けています。※3

ヒューズは、二人の人が取引を行うと仮定して説明を進めます。

プライバシーを守るには、「二人がそれぞれその取引に直接必要なことだけ知っている (each party to a transaction have knowledge only of that which is directly necessary for that transaction)」ことを保証できなければなりません。必要以上に情報を開示しないよう、コントロールできなければならないのです。

もしも、「取引の仕組み上、アイデンティティが開示されてしまうようなら、プライバシーは無い (When my identity is revealed by the underlying mechanism of the transaction, I have no privacy.)」と言えます。免許証やパスポート、住所・氏名など、取引の当事者を特定できるアイデンティティ (identity) 情報が開示されるということは、「選択的に自己を開示できない、つまり、常に自己を開示していなくてはならない (I cannot here selectively reveal myself; I must always reveal myself.)」ということであり、プライバシーの定義に反するのです。

プライバシーを守るには、「匿名の取引システム (anonymous transaction systems)」が必要です。ヒューズは、「我々サイファーパンクは匿名システムの構築に力を尽くす (We the Cypherpunks are dedicated to building anonymous systems.)」と高らかに宣言します。

そして具体的な技術として、「暗号学、匿名メール転送システム、デジタル署名、電子マネー (with cryptography, with anonymous mail forwarding systems, with digital signatures, and with electronic money.) 」を挙げています。サイファーパンク宣言には、プライバシーを守るための技術として、はっきりと電子マネーが示されているのです。

電子マネーのプライバシー

電子マネー (electronic cash) のプライバシーについては、第3回の NSA のエッセイで紹介した、デイヴィッド・チョウム (David Chaum) まで時代をさかのぼることができます。

電子マネーは「キャッシュ (cash)」というだけあって、現金を目標としています。NSA のエッセイによると、いくつかある現金の特性のうち、電子マネーは以下の二つに注目します。

  1. ユーザーの匿名性 (anonymity): 誰がお金を使ったのか記録が残らないこと (no record of who spent the money)
  2. 支払の追跡不可能性 (untraceability): どういった場合にお金を使ったのか記録が残らないこと (no record of where money is spent) ※4 いわば使用履歴が分からないこと

たしかに、普段お店で現金を支払うときに、身分証を求められることはほとんどありません。また、誰がどこで何を買ったのか、逐一お札に書き込むこともありません。けれども電子マネーの場合、特に対策をしなければそれらの記録をとることが可能です。

それを避けるべく、チョウムらはブラインド署名 (blind signature) という技法を生み出しました。ブラインド署名を用いると、銀行はコインを発行できるにもかかわらず、コインとそのコインを引き出した人とを結びつけることが困難になります。

ブラインド署名が発表されたのは、1980年代前半のことです。履歴を管理・分析する現在主流の電子マネーや、「ブロックチェーンはトレーサビリティ(追跡可能性)が高い」という話に慣れた人には意外かもしれませんが、サトシが論文の一章をプライバシーに割いた背景には、以上のようにプライバシーを重視するチョウムやサイファーパンクの活動があったわけです。

新旧プライバシーモデル

それではここからは、ビットコイン論文の第10章「Privacy」を読んでいきましょう。

サイファーパンク宣言とは異なり、サトシはプライバシーの定義を明示しないまま、これまでと同じような形でプライバシーを守ることは不可能だと述べています。

The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, …

情報へのアクセスを、関係者と信頼できる第三者機関に制限することで、従来の銀行業のモデルはある程度のプライバシーを実現している。(ビットコインの場合、)すべてのトランザクションを公表する必要があるため、この方式は不可能である。

プライバシーモデル

以下、日本語で描き直した図をもとに、新旧二つのプライバシーモデルについて説明します。

従来のプライバシーモデル

従来のプライバシーモデル日本語版

まずは従来のプライバシーモデルを見てみましょう。アイデンティティとトランザクションが線でつながっていますね。これは、取引の情報を見れば、それが誰の取引なのかが分かることを表しています。

トランザクションから TTP へ、TTP から取引相手へは矢印が伸びています。取引が TTP を介して行われ、取引の情報が共有されるわけです。

縦線は、一般の人々だけを切り離すことで、情報が共有されないことを表しています。従来のプライバシーモデルは、必要最低限の関係者をのぞき、基本的には情報を公開しないモデルなのです。

新しいプライバシーモデル(ビットコイン)

新しいプライバシーモデル日本語版

一方で、新しいプライバシーモデルの図は、トランザクションを人々に直接共有しています。サイファーパンク宣言の言う「取引の当事者がその取引に直接必要なことだけ知っている」ことに反して、ビットコインは、取引に関係の無い人々に対しても情報を公開するモデルにならざるを得ないのです。

なぜなら、第3回で見たとおり、ビットコインは TTP に依存せずに二重使用問題を解決しなくてはならないからです。そのためには、取引の情報に誰もがアクセスできるよう、トランザクションを公開しなくてはなりません。

前回説明したように、サトシは価値の安定化よりも TTP に依存しないことを優先しました。同様に、従来のようなプライバシーよりも、TTP に依存しないことを優先したのです。

公開鍵とアドレス

けれども、新しいモデルでは、アイデンティティとトランザクションが縦線で切り離されていますね。取引の情報は公開しても、アイデンティティだけは公開しないというわけです。

それがどういうことか説明するため、先に公開鍵とアドレスについて説明しておきます。

公開鍵 (public key) については、第3回で説明しましたね。公開鍵は、コインの所有者 (owner) を表しているとみなせます。

アドレス (address) は、公開鍵などコインの譲渡に必要な情報を「17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ」のような文字列に変換したものです。異なる人が偶然同じアドレスを生成してしまうことは滅多になく、公開鍵と同様、アドレスもまたコインの所有者を表しているとみなせます。

論文には書かれていませんが、通常、ビットコインを譲渡する際は、公開鍵ではなくアドレスを指定します。相手のアドレスを教えてもらい、そのアドレスに宛ててコインを「送る」トランザクションを生成するのです。アドレスは、文字通りコインの「宛先」と言えます。

なぜわざわざアドレスを使うかというと、その方が人間やビットコインにとって都合が良いからです。例えば、アドレスの文字列には、見まちがえやすい文字であるゼロ (0)、大文字のオー (O) 、アイ (I)、小文字のエル (l) を含めないようにすることができます。アドレスにはいくつか種類が存在し、目的に応じて使い分けます。

公開鍵とアドレスは、実際のデータとしては異なるものですが、以下ではお互い読み替え可能なものとみなしてかまいません。

仮名性

公開鍵とアドレスは、仮名 (pseudonym, 偽名) であるとか、仮名性 (pseudonymity) があるなどと言われます。

仮名は、実名とは異なる名前です。仮名を用いると、他者と区別をつけることはできますが、仮名を見ているだけでは具体的な人間までなかなかたどり着けません。

例えば、ハンドルネームは仮名の一種です。ビットコインのフォーラムには、「satoshi」というハンドルの投稿が多数あり、本連載でもそれを頼りに「satoshi」の投稿を拾い集めて紹介してきました。フォーラムの世界では、ハンドルが投稿者を区別する目安として機能しているわけです。けれども、現実世界における「satoshi」がどこの誰なのかは、未だに謎なままです。

仮名の意味で匿名と言うことがありますが、違いが重要なケースでは仮名と言うべきです。匿名は、文字通りには、名前が匿(かくま)われており分からないことです。仮名は、匿名と同じく実体は分からないものの、名前は示されています。

仮名性を保つ

論文に戻りましょう。

…, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous.

しかし、それでもなおプライバシーを維持できる。他所で情報の流れを損なわせることによって。つまり、公開鍵を匿名に保つことによって。

サトシは「匿名」と書いていますが、「仮名」の方が適切でしょう。なぜなら、公開鍵はトランザクションとともに公開され、実体の分からない名前として機能するからです。

The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone.

人々は、誰かが他の誰かにある金額を送っていることは分かるが、そのトランザクションを(特定の)誰かに結びつける情報は無い。

ビットコインは、金額など取引の情報を、仮名(公開鍵/アドレス)とともに公開します。けれどもそのことは、仮名が仮名である限り、サイファーパンク宣言の言う「取引の仕組み上、アイデンティティが開示されてしまう」ことを意味せず、プライバシーは守られているというわけです。

使い回しを避ける

論文には明記されていませんが、公開鍵の仮名性を保つのはユーザー自身であることに注意しましょう。銀行のように頼れる第三者を、ビットコインはもちろん提供してくれません。

ユーザーは、公開鍵と自分が結びつけられないよう、用心深く行動する必要があります。ビットコインのソフトウェアには、それを支援する機能がありますが、最終的にはユーザー自身の責任でプライバシーを守らなくてはなりません。

論文には、次のような対策が紹介されています。

As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner.

さらなるファイアウォールとして、トランザクションごとに新たな鍵ペアを使用し、各トランザクションを共通の所有者と結びつけられないようにすべきである。

公開鍵の仮名性を保てなくなったと仮定しましょう。いつも同じ鍵ペア(公開鍵と秘密鍵)を使っていた場合、その鍵を使ったトランザクションがすべて自分の取引であるとばれてしまいますね。そうならないよう、公開鍵を使い回すことを避けるべきだというわけです。

公開鍵の使い回し

リンク可能性

けれども、ビットコインの仕組み上、対策できないこともあるとサトシは言います。

Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner.

それでもなお、複数のインプットを持つトランザクションは、いくらかの結びつけを避けられず、必然的に、それらのインプットが同じ所有者のものであることを明らかにしてしまう。

同じトランザクションのインプットは、アドレスが異なっていたとしても、同じ人のものだというわけです。(インプットについては第8回を参照)

このように、あるデータが他のデータと結びつき、単独では得られなかったような情報を得られる性質をリンク可能性 (linkability)、その逆をリンク不能性 (unlinkability) と呼びます。リンク可能性を下げる、すなわちリンク不能性を上げることができれば、プライバシーを守れる可能性も高まるでしょう。

多くの場合、サトシの指摘は正しいと言えます。ふつう、トランザクションを作るときは、自分のインプットだけを含めるからです。

ただし、「必然的に」というのは言い過ぎです。例えば、アリスとボブが割り勘でピザを注文し、一つのトランザクションにアリスとボブのアドレスを混ぜて支払う場合、サトシの指摘は成り立ちません。

プライバシーがおびやかされる例

第10章については以上ですが、果たしてこれで本当にプライバシーを守れるのでしょうか。以下では、仮名性が下がったり、リンク可能性が上がったりして、プライバシーがおびやかされる例を三つ紹介します。

例① ネットショッピング

アリスがネットで宅配ピザを注文し、ビットコインで支払うとしましょう。

アリスは支払を行うため、ピザ屋さんのアドレスを知る必要があります。そのアドレスはアリスにとってもはや仮名ではなく、ピザ屋さんと結びつけられます。

ピザ屋さんはピザを届けるため、最低限アリスの住所は聞くでしょう。また、名前やメールアドレスなども知ることになるでしょう。それらのアイデンティティ情報は、アリスが支払に用いるアドレスと結びつけられます。

誰のアドレスか分かると、少なくともそのアドレスの前後のトランザクションも、その人と関係する取引であることが分かります。

プライバシーがおびやかされるピザの取引

例② おつりアドレス

ふつう、支払いを行う人とおつりをもらう人は同じです。よって、インプットのアドレスとおつりのアドレスは、同じ人のアドレスのはずです。

以下の図のように、おつりアドレスは、次のトランザクションでインプットのアドレスとなります。そのため、どのアドレスがおつりアドレスかが分かると、それらをたどって、同じ人のトランザクションをつなぎ合わせることができます。

そして、それらのアドレスのうち一つでも仮名性を保てなくなると、つなぎ合わせたトランザクションすべてがその人の取引だとばれてしまいます。

プライバシーをおびやかすおつりアドレス

おつりアドレスを推測する手がかりはいくつかあります。

例えば、おつりアドレスは、おつりのために新たに作られたアドレスのはずです。多くのおつりアドレスは、それより前のトランザクションには含まれていないでしょう。また、その後に支払を受け取るために使われることもあまりないでしょう。

またある時期、ビットコインのソフトウェアには、複数あるアウトプットの先頭をおつりにしてしまうというバグがありました。このバグはハル・フィニーにより指摘され、修正されましたが、その時期に該当するトランザクションは、比較的高い精度でおつりアドレスを推測できるでしょう。

例③ 思い出話

2013年、ハル・フィニーは「Bitcoin and me (Hal Finney)」と題し、フォーラム上でビットコインの思い出をふり返っています。

その中でフィニーは、世界で初めてビットコインを譲渡されたのは自分だと述べています。「サトシが試しにコインを10枚送ってくれた (Satoshi sent ten coins to me as a test)」と言うのです。

調べてみると、それは170番のブロックにある、以下のようなトランザクションであると推測できます。

プライバシーをおびやかすエピソード

おそらく、コインを10枚受け取っているアドレス「1Q2TWHE3…」はフィニーと推測できます。そして元になる50枚のコインを持つアドレス「12cbQLTF…」はサトシですね。

さらに調べると、9番ブロックのコインベースで、サトシのアドレス「12cbQLTF…」がコインを50枚獲得していることが分かります。つまり、9番ブロックはサトシが生成したということです。真偽の程はわかりませんが、ここからさらに、サトシが9番のコインを使った理由や、サトシの正体について分析している人もいます

参考資料に挙げておきましたが、以上のような手がかりをもとに取引や参加者を解析する研究は、比較的早い時期から行われてきました。今では解析を請け負うスタートアップも存在します。

新しいモデルに基づくビットコインのプライバシーというのは、今のところ決して安心できるものではないと考えておいた方がよいでしょう。

おわりに

今回は、第10章「Privacy」を読みながら、ビットコインにおけるプライバシーについて見てきました。

ソーロヴの例からも分かるとおり、プライバシーという言葉の意味はさまざまです。ビットコインの源流と思われる、電子マネーやサイファーパンクは、匿名性や追跡不可能性、自己情報のコントロールを重視していました。

ビットコインのプライバシーモデルは、従来のモデルとは異なり、基本的には情報を公開するモデルです。これは、TTP に依存しないことを優先した結果と言えます。

それでもなお、仮名としての公開鍵/アドレスを仮名のまま保つことで、プライバシーを維持できるというのがサトシの主張です。そうした主張を受けてか、ビットコインは匿名性が高いなどと言われることもあります。しかしながら、公開されている情報をつなぎあわせるなどすれば、プライバシーはおびやかされうるということには、十分注意する必要があるでしょう。


※1: 「プライバシーの新理論」の「1 プライバシー:未整理の概念」より引用

※2:「プライバシーの新理論」の「2 プライバシー理論とその欠陥」より引用

※3: 個人情報保護法制化専門委員会の議事録を見ると、自己情報コントロール権について議論されていたことが分かります。また、以下は総務省ホームページの FAQ「保護法の目的は何ですか。」に対する回答の抜粋です。「… 個人情報については、「プライバシー(権)」や近年では「自己情報コントロール権」ということが論じられることがありますが、保護法では、これらの言葉は用いられていません。…「自己情報コントロール権」は、…、論者によって様々な考え方が見られます。… 保護法では、…、個人情報の取扱いに関する規律と本人関与の仕組みを具体的に規定しています。」

※4: 現金もある程度は追跡可能です。米ドル紙幣の番号をボランティアが登録し追跡する「Where’s George」というサービスがあります。

参考資料