ビットコイン・ホワイトペーパー読解ガイド

ほとんど返信のなかった一通のメール
2008年10月31日、金曜日の18:10(UTC)のことでした。
金融危機が最も深刻な局面を迎えていた時期です。リーマン・ブラザーズが破綻してからわずか6週間しかたっておらず、各国政府は銀行救済のために巨額の資金を次々と投じていました。そのさなか、metzdowd.comで運営されていた暗号技術メーリングリスト(Cryptography Mailing List)に、「Bitcoin P2P e-cash paper」という件名のメールが届きます。署名はサトシ・ナカモトでした。
本文は「I've been working on a new electronic cash system that's fully peer-to-peer, with no trusted third party.」という一文で始まり、9ページの論文へのリンクが添えられていました。
返信はわずかで、その多くは懐疑的なものでしたが、技術的な詳細を問いただす人もいました。このリストの参加者は、それまでにデジタルキャッシュの提案をいくつも目にしており、その大半は構想のまま終わっていたのです。このメールが今なお続く歴史の始まりになると予想できた人は、ほとんどいなかったでしょう。
18年後、私たちはこの論文を改めて読み返しました。最も心を動かされたのは、その論の進め方です。どの節もただ一つの問題だけを扱い、その答えが自然に次の問いへとつながっていきます。12節を読み通すと、著者と一緒に難問を最初から最後まで解いていくような感覚を味わえます。
このガイドは、技術的な予備知識のない読者のために書きました。まず避けて通れないいくつかの用語を説明し、そのうえで論文を一節ずつ読んでいきます。各節について取り上げるのは三つの点です。その節が扱う問題、それをどう解決するか、そしてあとに残される新たな問題です。原文は英語版・中国語版とも、「起源」展示室の「ホワイトペーパーの壁」に展示しています。先にこのガイドを読んでおけば、原文もずっと読みやすくなるはずです。
読む前に知っておきたい六つの用語
ホワイトペーパーは短いものの、専門用語が少なくありません。次の六つを押さえておけば、あとはぐっと楽になります。
ハッシュ:データの指紋のようなものです。一語であれ一冊の本であれ、どんな内容でもハッシュ関数にかけると、決まった長さの短い文字列が得られます。読点を一つ変えただけでも指紋はまったく別のものになりますが、指紋から元の内容を割り出すことは誰にもできません。ビットコインは、何かが改ざんされていないかを確かめるために、あらゆる場面でハッシュを使っています。
秘密鍵と公開鍵:対になった二つのデジタルの鍵です。秘密鍵は自分だけが秘密にしておき、公開鍵は誰に教えてもかまいません。鍵付きの郵便受けにたとえると、公開鍵は誰が知っていてもよい郵便受けの住所、秘密鍵はそれを開けられる、あなただけが持つ鍵にあたります。
デジタル署名:秘密鍵を使って、ある内容に「署名」することです。対応する公開鍵があれば誰でもあなたが署名したことを確認できますが、あなたの秘密鍵がなければ誰も署名を偽造できません。複製のできない手書きのサインのようなものです。
ブロックとブロックチェーン:ビットコインの台帳は1ページずつ書き足されていきます。各ページはブロックと呼ばれ、ひとまとまりの取引が記録されています。どのページにも直前のページの指紋が書き込まれているため、すべてのページが順番につながり、全体でブロックチェーンを形づくります。
ノード:台帳の写しを保管・検証することでビットコインのネットワークに参加しているコンピューターです。誰でも運用できます。
プルーフ・オブ・ワーク(PoW):何度も推測を繰り返すことでしか解けない数学パズルです。答えを見つけるには膨大な計算が必要ですが、その答えが正しいかどうかは誰でも一瞬で確かめられます。ビットコインは、台帳の次のページを誰が書き加えるかを決めるのにこれを使います。
この六つの用語を手にしたところで、本題に入りましょう。
第1節 序論:出発点はコスト
内容:現在のオンライン決済のほとんどは、銀行や決済会社などの「信頼できる第三者」が間に入ることを前提にしています。ナカモトは、この依存には代償が伴うと指摘します。
一つ例を挙げましょう。ネットで買い物をすると、支払ったあとでも返金を求められるのが普通です。これは買い手を守る仕組みですが、売り手にとってはリスクになります。商品を受け取っておきながら「届いていない」と偽る人がいるかもしれないからです。身を守るために、店は客により多くの情報を求め、不正による損失の一部を負担することになります。そうしたコストは最終的にあらゆる商品の価格に上乗せされ、少額の決済を割に合わないものにしてしまいます。
現金にはこの問題がありません。お金を渡し、品物を受け取れば、それで支払いは完了です。ところがオンラインでは、それまで同じことをする方法がありませんでした。
残された問い:第三者を一切介さず、現金のように確定するオンライン決済は可能なのか。そして第三者がいないなら、電子コインの持ち主は誰が決めるのか。
序論の語り口は驚くほど落ち着いています。コストを起点に一歩ずつ推論を進めていくさまは、解くべき技術的課題を整理するエンジニアの文章のようです。
第2節 トランザクション:コインとは署名の連なり
解決する問題:帳簿をつける銀行がいないとき、そのコインが自分のものだとどう証明するのか。
ナカモトの答えは意外なほど単純です。論文は「an electronic coin as a chain of digital signatures」、つまり電子コインをデジタル署名の連なりとして定義しています。
人の手から手へと渡り続ける譲渡証書を思い浮かべてください。最初は「このコインはAのもの」と書かれています。AがBにコインを渡すときは、証書の末尾に「Bへ」と書いて署名します。BがCに渡すときも同じようにします。証書を上から順に読めば、どの受け渡しにも前の持ち主の署名があることを誰でも確かめられます。
技術的には、ここでいう「署名」は先に説明したデジタル署名のことです。現在の持ち主が、直前の取引のハッシュと次の持ち主の公開鍵に対して、自分の秘密鍵で署名します。
これで、多くの人が抱いてきた疑問にも答えが出ます。ビットコインは、実際にはどこにあるのか。それはブロックチェーン上に、受け渡しを一つずつさかのぼれるこの署名の連なりとして記録されています。「ビットコインを持っている」とは、要するに次の受け渡しに署名できる秘密鍵を持っているということなのです。
残された問題:署名は受け渡しを証明できますが、不正までは防げません。Aが「Bへ」と書いた証書と「Cへ」と書いた証書の両方に署名し、同じコインを二度売ることもできてしまいます。BもCも、自分の証書を確かめれば本物の署名を見つけるでしょう。これが二重支払いの問題であり、論文の残りの大部分はこの問題への対処に費やされています。
第3節 タイムスタンプサーバー:取引に順序をつける
解決する問題:Aの不正を見抜くには、どちらの取引が先だったかさえわかれば十分です。先の取引が有効となり、後の取引は無効になります。しかし中央の権威がない状況で、その順序は誰が決めるのでしょうか。
ナカモトは、タイムスタンプサーバーという既存のアイデアから出発します。最新の取引をひとまとめにして定期的に集め、時刻の印を押して誰でも見られるように公開する公証人を想像してください。肝心なのは、新しい印にはどれも直前の印の指紋が含まれていることです。台帳の各ページが、冒頭に前のページの指紋を書き写してから始まるのと同じです。
こうして印は鎖のようにつながります。誰かが途中の1ページをこっそり書き換えると、そのページの指紋が変わり、以降のすべてのページに書き写された指紋と合わなくなって、改ざんはたちまち露見します。
もっとも、見破りやすいことと、実行が難しいことは別の話です。以降のページをすべて書き直せる者がいれば、それでも改ざんをやりおおせてしまいます。改ざんを現実に極めて困難にしているのは、次の節で導入されるプルーフ・オブ・ワークです。
残された問題:現実の公証人は中央の権威であり、ビットコインはいかなる中心も持たないことを目指しています。全員が対等なネットワークで、印を押す役は誰が担うのでしょうか。
第4節 プルーフ・オブ・ワーク:投票にコストを持たせる
解決する問題:公証人がいない以上、次のページに誰が印を押すかはネットワーク全体で決めるしかありません。すぐに思いつくのは投票、つまり多数決です。
ところがオンラインの投票には致命的な欠陥があります。身元を作り出すコストがほとんどかからないことです。論文は、多数決を「one-IP-address-one-vote」(1IPアドレス1票)に基づいて行えば、多数のIPアドレスを割り当てられる者によって覆されかねないと指摘しています。ネット上のアンケートで、偽アカウントを1万個登録した人が1万票を得てしまうようなものです。
そこで投票権は、ただでは生み出せない何かに結びつける必要があります。ナカモトが選んだのは計算能力でした。
仕組みはこうです。次のページに印を押したい人は、まず数学パズルを解かなければなりません。そこに近道はなく、十分に小さな数が出るまでサイコロを振り続けるように、ひたすら推測を繰り返すしかありません。最初に答えを見つけた人がページを書き加える権利を得て答えを公開し、ほかの全員はそれを一瞬で検証できます。
推測には現実の電力と機材が必要なので、自分が動かせる計算能力が、事実上そのまま票数になります。偽アカウントをいくら作っても意味はありません。偽アカウントがパズルを解いてくれるわけではないからです。
さらにビットコインには、全員が「最長」のチェーン、より正確には背後に最も多くの仕事量が積み重なったチェーンを受け入れるというルールがあります。これが多数決にあたります。また、ハードウェアの高速化や参加者数の変化に対応するため、パズルの難易度は自動的に調整され、ブロックが平均しておよそ10分に1つという一定のペースで生まれ続けるようになっています。
ここで第3節に残された懸念に戻りましょう。あるページを書き換えようとする者は、それ以降のすべてのページを書き直し、ページごとにパズルを解き直したうえで、誠実な参加者全員を合わせたよりも速くそれをこなさなければなりません。現実にはほぼ不可能です。
よくある誤読・その1:論文には「proof-of-work is essentially one-CPU-one-vote」(プルーフ・オブ・ワークは本質的に1CPU1票である)という一文があります。この一文は、誰もが平等に参加できるという意味に受け取られがちです。しかし文脈に沿って読めば、その趣旨は、投票には現実のコストが伴わなければならず、いくつの身元を持っているかに左右されてはならない、という点にあります。
今日のマイニングは専用チップと大規模な産業施設が主役となっており、論文が描いた姿とは大きくかけ離れています。その経緯は「信頼の機械」展示室の「マイニングマシンの壁」に記録しています。論文が論じているのは、投票権を計算能力に結びつけなければならないということです。その計算能力が最終的にどう分布するかについては、何も予測していません。
第5節 ネットワーク:1ページにも満たない記述
解決する問題:部品はすべてそろいました。では、ネットワークは実際にどう動くのでしょうか。
ナカモトが必要としたのは、わずか六つのステップです。
- 誰かが新しい取引を作り、すべてのノードにブロードキャストする。
- 各ノードが、受け取った新しい取引を集めて候補となるブロックにまとめる。
- 各ノードが、自分のブロックについてプルーフ・オブ・ワークのパズルに取り組む。
- 最初に解いたノードが、そのブロックをすべてのノードにブロードキャストする。
- ほかのノードはブロックを検証し、中の取引がすべて有効で、まだ使われていないものである場合に限って受け入れる。
- ノードは、そのブロックの上に次のブロックを作る作業を始めることで、受け入れたことを示す。
二つのノードがほぼ同時にパズルを解いた場合、ネットワークには一時的に同じ長さのチェーンが2本存在することになります。各ノードは先に受け取ったほうのチェーンで作業を続けます。次のブロックが届いた時点で長くなったほうのチェーンが勝ち、もう一方はそのまま捨てられます。ノードは常に最長チェーンを正しいものとみなし、それを延ばし続けます。
今日も動き続けている地球規模のシステムが、1ページにも満たない分量で記述されているのです。
残された問い:パズルを解くには電気代も機材費もかかります。それなのに、なぜわざわざ解こうとする人がいるのでしょうか。
第6節 インセンティブ:誠実であることが最も得になる仕組み
解決する問題:人々に参加する理由を与えること。
答えは報酬です。各ブロックの最初の取引では決まった量の新しいコインが生み出され、パズルを解いた人に与えられます。これは電気代や機材費への見返りであり、新しいビットコインが流通に加わる唯一の経路でもあります。資源を費やして新しいコインを生み出すさまが、地中から金を掘り出すのに似ていることから、この作業はのちにマイニング(採掘)、参加者はマイナーと呼ばれるようになりました。新規発行が終われば、その役割は取引手数料が引き継ぎます。
この節の読みどころは後半にあります。ナカモトは、誠実なノードすべてを合わせたよりも大きな計算能力を持つ攻撃者を想定し、その選択肢を冷静に検討していきます。攻撃者はその力で不正を働き、自分が行った支払いをひそかに取り消すこともできれば、誠実にマイニングして新しいコインを稼ぐこともできます。ナカモトの結論は、ルールに従うほうが割に合うというものでした。不正で得られる以上の新しいコインを稼げるからです。しかもどんな攻撃もビットコインへの信頼を揺るがし、攻撃者自身がすでに持っているコインの価値まで引き下げてしまいます。
つまり、ビットコインの安全性は全員が善人であることを前提にしていません。ルールに従うことが最も利益になるように設計されているのです。それまでの節は、このシステムが技術的に成り立つことを示していました。この節は、なぜ人がわざわざそれを動かそうとするのかを説明しています。開かれたネットワークでは、こちらのほうが難しい問いであることも少なくありません。
新規発行が終わったあと、手数料だけで十分な計算能力を長期的に支えられるのか。この問いはのちに浮上したもので、今も議論が続いています。
第7節 ディスク容量の回収:台帳が膨らみ続けたらどうするか
解決する問題:あらゆる取引が台帳に永久に残るため、台帳は増え続け、いずれ一般的なコンピューターには収まりきらなくなるおそれがあります。
ナカモトの解決策は、マークルツリーと呼ばれる構造を使うものです。イメージとしてはこうなります。ブロック内のすべての取引を二つずつ組にして、組ごとに指紋を計算します。次にその指紋をまた二つずつ組にして、新しい指紋を計算します。こうして一段ずつ上へまとめていき、最後に残る一つの指紋をマークルルートと呼びます。ブロック自体の指紋には、このルートを一つ含めるだけで済みます。
この仕組みの利点は、あるコインの最新の取引が十分な数のブロックの下に埋もれれば、それ以前の使用済みの取引を削除できることです。ツリーの中の必要な指紋をいくつか残しておくだけで、チェーンは引き続き完全に検証できます。ナカモトは、各ブロックの「ヘッダー」だけを保存するなら、必要な容量は年間わずか数メガバイトだと試算までしています。
第8節 簡易支払い検証:台帳全体は必要ない
解決する問題:圧縮したとしても、一般の利用者は台帳全体を保存・検証したくないかもしれません。自分への支払いが記録されたことだけを確かめることはできないのでしょうか。
それは可能です。利用者はブロックヘッダーだけを保存しておき、必要なときに、自分の取引が特定のブロックのマークルツリーに含まれていることを示す短い証明をネットワークに求めればよいのです。荷物の追跡に少し似ています。運送会社のシステム全体にアクセスしなくても、追跡番号さえあれば、荷物が配送中であることを確認できます。今日の軽量ウォレットの多くは、その設計をこの考え方にさかのぼることができます。
論文はその代償についても同じように明確に述べています。この方法は誠実なノードがネットワークの多数派を占めていることを前提としており、自分でフルノードを運用するよりも安全性が劣ります。そのため論文は、頻繁に支払いを受け取る事業者は、やはり自前のフルノードを運用すべきだと勧めています。
第9節 価値の結合と分割:ビットコインの「お釣り」
解決する問題:コインを1枚ずつ別々に送らなければならないとしたら、1回の支払いに何百もの取引が必要になりかねず、実用になりません。
ナカモトの設計では、一つの取引が複数の入力と複数の出力を持つことができます。50ドル札と20ドル札を1枚ずつ持っていて、60ドルを支払う場面を想像してください。両方の札を渡し(入力が二つ)、売り手への60ドルの支払いと、自分に戻る10ドルが生じます(出力が二つで、そのうち一つは自分へのお釣り)。
ここから、ビットコインのウォレットについて一つのことがわかります。残高は一つの数字として存在しているわけではありません。金額の異なる、まだ使われていない「お釣り」がいくつも集まってできているのです。
第10節 プライバシー:匿名ではなく仮名
解決する問題:台帳が誰にでも公開されているなら、すべての取引が丸見えになってしまうのではないか。
従来の銀行は、帳簿を外部から見えないようにすることでプライバシーを守ってきました。ビットコインにはそれができません。誰もが検証できるように、台帳を公開しておく必要があるからです。そこでナカモトは別の道をとります。台帳は公開するものの、そこに記録するのは名前ではなく公開鍵です。外部の人には、あるアドレスから別のアドレスへお金が動いたことは見えても、どちらのアドレスの背後に誰がいるのかはわかりません。証券取引所が、買い手と売り手の名前を伏せたまま、すべての売買を公表しているのと似ています。
さらなる安全策として、論文は取引ごとに新しい鍵ペアを使い、複数の支払いが同じ持ち主に結びつけられないようにすることを勧めています。
よくある誤読・その2:ビットコインは匿名だと信じている人は少なくありません。しかし論文自身が、複数の入力を持つ取引からは、それらの入力が同じ持ち主のものであることがわかってしまうと注意を促しています。アドレスは結びつけられ、分析され、最終的には実在の人物と照合されうるのです。論文は「anonymous」(匿名)という語を使っていますが、そこで説明されている仕組みは、今日でいう仮名性(pseudonymity)に近いものです。チェーン上にあなたの名前は載りませんが、あなたが行ったすべての取引は載っています。
第11節 計算:数字で示される安全性
解決する問題:結局のところ、このシステムはどれほど安全なのか。ナカモトは説明だけで終わらせず、実際に計算してみせます。
彼は攻撃を一種の競争として扱います。あなたが支払いを受け取り、その取引がブロックに書き込まれ、その後さらにいくつかのブロックが追加されたとしましょう。この取引を取り消すには、攻撃者はその取引より前の時点からひそかに別のチェーンを作り始め、誠実なノードが延ばし続けているチェーンに追いつき、追い越さなければなりません。
攻撃者の計算能力が誠実なノードを下回っている限り、出遅れが大きいほど成功の見込みは小さくなり、その確率は指数関数的に縮んでいきます。論文は具体的な数字を示しています。ネットワーク全体の計算能力の10%を持つ攻撃者が6ブロック遅れて出発した場合、追いつける確率はわずか約0.024%、およそ1万分の2.4にすぎません。
よくある誤読・その3:論文が示しているのは確率であって、保証ではありません。ブロックが積み重なるほど取り消される可能性はゼロに近づきますが、厳密にいえばゼロにはなりません。これは伝統的な金融における決済のファイナリティ(確定性)の考え方とは異なります。「6承認を待つ」というおなじみの目安も、まさにこうした計算に基づいています。取引のあとに6つのブロックが追加されれば(およそ1時間後)、取り消される確率は無視できるほど小さくなるというわけです。
「信頼の機械」展示室の「台帳強奪計画」では、攻撃者の計算能力の割合を調整して、1ブロック遅れ・6ブロック遅れから追いつく確率がどう変わるかを確かめることができます。
第12節 結論:はっきりと示された条件
結論は簡潔です。ナカモトはここまでの議論をたどり直します。デジタル署名でコインの持ち主を確定し、プルーフ・オブ・ワークと最長チェーンで二重支払いを防ぐ。そして、誠実なノードが計算能力の過半数を握っている限り、このシステムは安全であると結論づけます。
この結論には条件がついており、論文はそれを率直に明記しています。それから18年、ビットコインをめぐる議論の多くは、突き詰めれば、この条件が現実の世界でどこまで成り立つのかをめぐるものでした。
12節を一段落で
ホワイトペーパー全体を一段落にまとめるとしたら、次のようになるでしょう。
銀行を介さず、現金と同じようにオンラインで支払いたい(第1節)。そこでコインを署名の連なりとして定義するが(第2節)、それだけでは同じコインの二重使用を防げないため、誰もが認める取引の順序が必要になる(第3節)。その順序を決める権利はパズルを解くことで得られ、票は計算能力によって重みづけされ、全員が累積仕事量の最も多いチェーンに従う(第4節)。ネットワークは六つのステップで共同して台帳をつけ(第5節)、新しいコインと手数料によって参加者を集め、誠実であることを最も得な選択にする(第6節)。三つの工学的な設計で保存容量、軽量な検証、お釣りの問題に対処し(第7〜9節)、名前を載せない公開台帳で透明性とプライバシーを両立させ(第10節)、攻撃が成功する確率を計算し(第11節)、そしてそのすべてが成り立つための条件を率直に示す(第12節)。
9ページを閉じて
読み返して最も心を打たれるのは、その抑制の効いた書きぶりです。大げさな約束は何もしていません。問題を提起し、解決策を示し、その解決策が成り立つ条件を正直に述べているだけです。
18年前、ほとんど注目されなかった一通のメールが指し示していたのは、この論文でした。
まだ原文を読んだことがなければ、ぜひ「ホワイトペーパーの壁」に立ち寄り、30分ほどかけて1ページ目から9ページ目まで読んでみてください。このガイドを読んだあとなら、思っているよりずっと読みやすいはずです。
上記の各節の要約は、原文を編集部なりに読み解いたものであり、翻訳ではありません。常に原文が優先します。食い違いにお気づきの場合は、editorialoffice@btc.com までお知らせください。

