サトシの言葉から理解する、ビットコインの堅牢さ

特集 サトシ・ナカモトが残した言葉〜ビットコインの歴史をたどる旅

小宮自由

サトシの言葉から理解する、ビットコインの堅牢さ

ビットコインを発明し、未だその正体が分かっていないサトシ・ナカモト。そんなサトシが残した約2年間の文章を、小宮自由氏の解説と共に紹介する連載「サトシ・ナカモトが残した言葉〜ビットコインの歴史をたどる旅」の第14回。

まずサトシのメールの前に、本連載の元になっている書籍『ビットコイン バイブル:サトシナカモトとは何者か?』の著者フィル・シャンパーニュ氏の解説も掲載する。

フィル・シャンパーニュ氏の解説

サトシは取引の署名を取り上げ、サービス妨害攻撃について少々説明を追加し、取引スピードに再度触れている。

購入者がスマートフォンで取引を実行してから、販売者は二分待つ。販売者(または、販売者が選定したビットコイン支払サービス会社)はビットコインネットワークの二重支払を監視する。購入者が行う取引をXと呼び、残高 2 BTC のビットコインアドレス ABC から 1.5 BTC を支払うのをイメージしよう。支払の確認が完了すると、購入者の収支バランスは 0.5 BTC に減る。

ここで議論されているのは、ビットコインアドレス ABC を含む取引が他にないかどうか、もしあれば、残高が 0.5 BTC 以上かどうかの確認のために、販売者がネットワークを監視する上で必要な作業についてである。

もしこの判定基準に合致する取引が、例えば、二分以内に検知されれば、無効な支払と見なされる。二分の待ち時間があると、取引Xには、ビットコイン ABC に由来する全ての競合の取引に対し、多大なリードが保証される。これは、販売者から見ると、ビットコイン採掘者の過半数が現在作業中のブロックに、取引Xが含まれる可能性がとても高くなり、ブロックチェーンへの最終的な編入を保証するものとなる。

サトシ・ナカモト 2008年11月17日 火曜日 09時06分02秒

それでは2008年11月17日 09時06分02秒のサトシのメールをみていこう。

========================
Re:ビットコイン ピア・ツー・ピア 電子キャッシュ 論文
サトシ・ナカモト 2008年11月17日 月曜日 09時06分02秒 -0800

(注:斜体部分は、サトシ以外の者の質問を指す)

Ray Dillingerは書きました:

これ*1を行う方法の一つは、コインの受取人が非対称の鍵ペアを生成し、そのうち一つを取引時に公開することです。後でコインを使うには、非対称鍵ペアのもう片方の所持を証明する必要があり、次の販売者から受け取った鍵にこの鍵で署名する必要があります。

その通りです。これはECCデジタル署名です。取引のたびに新しい鍵ペアを使います。

この署名は、「人を特定するnym(名前・ネーム)」という意味での pseudonymous(通名)ではありませんが、次にコインを使用するときには、そのコインの所有者による使用であると特定されるため、その意味では少なくとも少々  pseudonymous(通名)です*2。

んー、その説明では納得できません。おっしゃることは、つまり、身元特定の努力もしないし、協同しないノードの排除もしないということです。これでは、トラブルを引き起こしてDoS攻撃を誘発しないか心配です。

身元特定には頼りません。おっしゃるように、これはむなしいことで、靴下人形(自作自演)にはいともたやすく負けてしまいます。

自己の実在の証明はCPUパワーの提供能力です。

ええと・・・どこまでですか?取引が取消不可能になったことはいつ分かりますか?「数ブロック」とは3ブロックですか?30ですか?100ですか?ノードの数次第ですか?ノードの数に対して対数比例しますか、それとも線形比例しますか?

セクション11*3では、攻撃下の最悪のケースを計算しています。通常は5ブロックか10ブロックで十分です*4。ネットワーク規模の攻撃を仕掛けてまで盗む価値のない物を売っているなら、現実にはもっと短くても構いません。

しかし、身元確認がなければ、購入者は、支払が無効になったときに、コインを消費せずに二重支払した商品(ウェブサイトへのアクセス、ダウンロードなど何でも)を受け取れます。販売者は、支払人が支配済みになる前にあの魔法的な「数ブロック」(いくつかをどうやって知り得ますか?)を待たない限り、「無効の」コインをつかんだままバッグを持たされ続けます。

購入者は、コインを送ってからコインの支払目的を果たせるまで一時間*5かかるなら、こんなことはしません*6。販売者は、購入者による二重支払のため、コインが無効だと分かっても、入金取消ができなければ、こんなことはしません*6。

これはバージョン2の問題点で、ほとんどのアプリケーションでかなり十分に解決できると思います。

これは、自分の取引を最初にネットワークに伝播できるかどうかの競争です。6つの自由度*7を考えて下さい。指数関数的に伝播します。取引が十分に広く伝播してから、最初の者がネットワーク全体を覆い尽くす前に、スタートに遅れた競争者が多数のノードを獲得できるチャンスがほぼ消滅するまで、二分程度しかかかりません。

その二分間に販売者のノードは二重支払の取引を監視しているかもしれません。二重支払をした者は、もう一つの取引を販売者に捕捉されずに世界にブロードキャストすることはできませんので、スタートまで待たなければなりません。

もし、本物の取引が90%のノードに、二重支払の取引が10%のノードに届くなら、二重支払者が支払をしなくて済むチャンスは10%のみで、支払う確率は90%です。大半のタイプの商品では詐欺者にはそんなことをするメリットはありません。

ウェブサイトのアクセスやダウンロードのような情報基盤の商品は無防備です。ウェブサイトやダウンロードへのアクセスを盗みとってそれに寄生して生活できる者はいません。盗みたければファイル共有ネットワークに行けばいいです。即時アクセスの商品では、盗みのインセンティブは巨大ではないです。

販売者が実際に盗みの問題を抱えているなら、購入者に二分待たせるか、確認Eメールの到着を待たせることもできます。これはすでに広く行われています。大容量ダウンロードを行うならば、取引が二重支払で返ってきたときに途中でダウンロードをキャンセルすれば良いことです。ウェブサイトのアクセスなら、購入者に五分間アクセスさせ、拒否されてから切断しても、通常は大きな問題ではないです。同様のサイトでは無料お試しを導入することが多いです。

サトシ・ナカモト

暗号学メーリングリスト

========================

【訳注】

*1 コインの受け取り及び使用のことだと考えられる。
*2 ここはECCデジタル署名の特性を述べている箇所だが、次の返答からも分かるように、難解な説明になっている。これは、pseudonymous がギリシャ語由来の言葉である上に、nymをギリシャ語原義の「名前」の意味で用い、pseudonymous にも英語で通常使用される「ニックネーム」の語義ではなく、ギリシャ語由来の「偽の(pseudo-)名前(-nym-)」という原義を持ち出してかぶせたためである。現代の英語話者にとって、古代ギリシャ語は難易度の高い古典言語であり、十分な理解には相応の高い教養レベルが求められる。本文の理解のためには、個人特定はできないがコインの所有者は特定できる、ぐらいの意味で捉えておけばいい。日本語訳としては「ニックネーム」の他に「仮名」や「偽名」も考えられるが、ここでは「その人の別称で、広く知られているもの」という意味で「通名」と翻訳した。例えば、サトシ・ナカモトは通名であり、その真の(戸籍上の)名前は不明であるが、秘密鍵の署名により「このアドレスはサトシ・ナカモトのものである」と識別できる。個人特定はできないが、誰であるかはわかるということである。
*3 ビットコイン論文にある、「11.数学的根拠」のこと。
*4 実務上では6ブロックで十分とされている。
*5 一時間は約6ブロック追加にかかる時間である。
*6 前者は「支払い終了までに時間がかかり過ぎるのでビットコイン決済をしない」、後者は「二重支払の際に自分以外への支払いを取り消せないので、ビットコイン決済を受け付けない」程度の意味だと考えられる。
*7 原文は”6 degrees of freedom”で、おそらく 6DoF のこと。「多角的に考えろ」ぐらいのニュアンスだと考えられる。

解説

「二重支払により、一旦行った支払いが無効になる可能性があるのなら、現実世界の取引には使えないのでは?」という素朴な疑問にサトシが回答しています。サトシの回答は「支払いが無効になる可能性は理論上はあるが、素直に支払った方が無難なのでその可能性は無視していい」というものです。

二重支払を悪用することは確かに理論上は可能です。ただ、それにはかなりのコストがかかります。本文では「二分待っただけでそのコストは膨大になる」と言われています。仮に、10万円の取引を無効にするために、100万円のコストがかかるのなら、誰も取引を無効にしようと思わないでしょう(100 – 10 = 90万円の赤字)。悪さをするインセンティブがないというわけです。

しかし、「理論上はありえるが、現実的には起こらない」と言ってもすぐに納得できる人は稀です。たとえ現存のシステム、例えばクレジットカードより不正が起こる可能性が低くてもです。ハッキングや犯罪利用などの問題も相まって、「ビットコインはセキュリティ的に危険」という誤解を持っている人はまだ多いでしょう。実際には、危険な使い方をされうるだけで、セキュリティ的には今のビットコインはかなり堅牢です。

小宮自由

→この連載の他の記事を読む

Header Image/iStock:ismagilov

関連するキーワード

この記事の著者・インタビューイ

小宮自由

東京工業大学でコンピュータサイエンスを学び、東京大学ロースクールで法律を学ぶ。幾つかの職を経た後に渡欧し、オランダのIT企業でエンジニアとして従事する。その後東京に戻り、リクルートホールディングスでAI(自然言語処理)のソフトウェア作成業務に携わり、シリコンバレーと東京を行き来しながら働く。この時共著者として提出した論文『A Lightweight Front-end Tool for Interactive Entity Population』と『Koko: a system for scalable semantic querying of text』はそれぞれICML(International Conference on Machine Learning)とACM(Association for Computing Machinery)という世界トップの国際会議会議に採択される。その後、ブロックチェーン業界に参入。数年間ブロックチェーンに関する知見を深める。現在は BlendAI という企業の代表としてAIキャラクター「デルタもん」を発表するなど、AIに関係した事業を行っている。 https://blendai.jp/ https://twitter.com/blendaijp https://twitter.com/BorderlessJpn https://twitter.com/BorderlessDAO

この特集のその他の記事

サトシも危惧していた、ビットコインのスケーラビリティ問題

ビットコインを発明し、未だその正体が分かっていないサトシ・サカモト。そんなサトシが残した約2年間の文章を、小宮自由氏の解説と共に紹介する連載「サトシ・ナカモトが残した言葉〜ビットコインの歴史をたどる旅」の第2回。

経済的ディスインセンティブが、ビットコイン51%攻撃を防ぐ

ビットコインネットワークに対する著名な攻撃(取引履歴を不正に改ざんすること)に、51%攻撃というものがあります。ビットコインは世界中のコンピュータがその計算能力を使い、取引履歴をブロックとして保存しています。この計算能力・処理能力の51%、つまり過半数を占めてしまえば、不正な取引履歴を正当とみなせるようになります。この問題は理論上取り除くことはできず、サトシもそれを認めています(ビットコイン以外の多くのブロックチェーンも、同じ問題を有しています)。