新しくDG Lab Hausで始めるこの連載では、ブロックチェーン(Blockchain)という技術がどのような形で発展しているのか、現在進行形で進んでいくその成長の姿を、世界の最前線から順次紹介していく。その手始めとして、ブロックチェーンという技術が持つ「温故知新」の側面を紹介したい。
この1年あまり「ブロックチェーン」という言葉をメディアで目にしない日はない。そのくらい、このキーワードが、何かを新しく変えてくれるという期待が高いと言える。ブロックチェーンへの期待度の高さは、さまざまな表現で語られているが「インターネット並みの発明」というのは決して言い過ぎではないだろう。確かに、ブロックチェーンは間違いなく大きな発明である。しかし、それは2008年に発表されたナカモト・サトシ氏(Satoshi Nakamoto)の論文で突然0から生まれた発明ではない。この30年あまりのコンピュータサイエンスと、情報セキュリティの研究開発の大きな流れの中から見ると、ブロックチェーンは、ある意味自然な進化であり、ブレークスルーである。その技術的な系譜をたどることは、ブロックチェーンという技術の本質と成長を理解するうえで必要なことだ。
スチュアート・ハバー(Stuart Haber)とW.スコット・ストロネット(W. Scott Stornett)による暗号学的タイムスタンプ
1981年に始まり、36年間の歴史がある暗号学のトップカンファレス「CRYPTO」において、1990年に発表された、ベル通信研究会社(Bellcore[1])所属のスチュアート・ハバー(Stuart Haber)とW.スコット・ストロネット(W. Scott Stornett)による”How to Time-stamp a digital document”という論文[2]に、現在のブロックチェーンの源流のひとつを見ることができる。ここでいう、タイムスタンプとは、あるデジタル文書が、ある時刻に確かに存在したことを証明する技術のことである。
この論文では、デジタル化された文書のハッシュ値を、信頼できる第三者(タイムスタンプ局=TSA)が取りまとめて、前の文書のハッシュ値を次の文書のハッシュ値と合わせて、新たなハッシュ値を作り、それを鎖のようにつなげて、デジタル文書の前後性を証明するプロトコルが提案されている。この考え方は、いくつかの差異はあるものの、データの作り方という意味では、現在のブロックチェーンとほぼ共通している。
このようなハッシュ値を連鎖させるタイプのタイムスタンプは、ISO/IEC 18014-3として2004年に技術標準化されている。また、他の実現方式のタイムスタンプ技術と合わせて、TSAにタイムスタンプトークンを要求し、受け取るためのプロトコルは、2001年にIETFのRC3161で標準化されている。日本では2000年にNTTデータがこのハッシュ値を連鎖させるタイプのタイムスタンプビジネスを開始しており、2004年には通称「e-文書法」で領収書のような財務・税務関係の書類をスキャンしたファイルにタイムスタンプを付与することで、法的な証拠性を持たせることができるようになった。
こうしたことから、現在単独の事業者の運営で使われる、いわゆるプライベートブロックチェーンは、2004年に法制化されたタイムスタンプですでに実現できていたことがわかる。分散管理されていることで、落ちないというメリットについても上述のタイムスタンプサーバを複数用意し、同期を取れるようにしておくのと同じであり、現実的に単独の事業者が管理し、その事業者を信頼するという運用であれば、ビンザンチン障害[3]を仮定する必要はなく、改めてブロックチェーンの利用を探る必要はない。
2003年には、当時日本で働いていたエストニア人研究者が、ハッシュ値の連鎖という基本的な考え方は踏襲しながらも、それに改良を加えて、上記のタイムスタンプの特許を回避する方式を考案した。この研究者はのちにエストニアでGuardtimeを創業した。Guardtimeは、タイムスタンプやサーバーサイド署名などの技術で、さまざまなデータや証跡の非改ざん証明をビジネスにしている。現在ブロックチェーンにおいても活発な活動をしている企業のひとつだ。
上記のように、デジタルデータの存在と非改ざんを証明するという意味では、ブロックチェーンの源流の技術は1990年代に技術は確立しており、ビジネス化、法制化されていたことは改めて認識しておく必要がある。一方で、その有効性をいかに長期間にわたり持続させるかという課題は、当時から残ったままである。タイムスタンプは長期間の非改ざんをサービスで保証しているが故に、ビジネスをやめられないという制約を持っている。パブリックブロックチェーンにおいても、十分な数の中立的なノードを永続的に確保し続けるインセンティブをノード運営者に持たせる方法については答えが出ておらず、研究課題として残っている。
[1] ベル通信研究会社、AT&Tの分割によりAT&Tベル研究所が独立して設立された。
[2] https://www.anf.es/pdf/Haber_Stornetta.pdf からダウンロード可能
[3] ビザンチン障害:分散システムにおいてネットワーク上のノードが、誤ったり、嘘のデータを送信する状態となり、信頼できる出力を出さない状態になること。
「お金」が主導する研究とFinancial Cryptographyという国際学会
ブロックチェーンが広く世に出るきっかけとなったのは、間違いなくビットコイン(Bitcoin)がきっかけであり、それは「お金」という人間にとって魅力的なアプリケーションだからこそ注目を集めたと言っても過言ではない。
1990年代後半は、第1次電子マネーブームと言ってよいほど、電子マネーに関連する研究と実験プロジェクトが存在した。代表的なところでは、マスターカードがイギリス都市のスウインドン(Swindon)で実験をしたモンデックス(Mondex)。ビザが行なったビザキャッシュ(VisaCash)などがある。日本では、日本銀行とNTTが共同で電子現金方式を開発し、いくつかの実験を行なった。
当時は、「オープンループ型電子マネー」と呼ばれる、転々流通(利用者間のみで譲渡)ができる、いわゆる現金と同じ性質のものができないかを競っていた時代だった。電子マネーはICカードに格納されており、ICカード間で暗号プロトコルを実行し、二重使用や偽造が発生しないようにしていた。現金と同じ性質を目指すという意味では、今のビットコインにも匹敵する意欲的なものであったが、当時のICカードにおける暗号処理性能の問題などで、広く普及させるほどには成熟できなかった。
一方、日本での電子マネーは、「Suica(スイカ)」や「Edy(エディ)」のような、転々流通はできず、カードとセンターの両方で利用者の残高を常に管理する手間はかかるものの、支払いの処理が簡便になる方式が普及した。この方式であれば、処理性能が高いことによって利用シーンが広がりやすい。
日本でも、それ以前の90年代には、高いセキュリティを実現するための研究が行われており、その成果一部が実用的なシステムへと切り出されて行った。最初にかなり理想に寄ったシステムが研究され、そのうちの現実的な部分が社会に普及していくというプロセスであり、こうした例は電子マネーのみならず、一般的なプロセスである。
なぜ最初から現実的なレベルではなくより理想的な電子マネーを研究するかといえば、「お金」こそ最高レベルのセキュリティ技術をつぎ込む必要があるアプリケーションのひとつであり、また人間の欲望を掻き立てるもののひとつであるからだ。
上述の第1次電子マネーブームに合わせて、1997年にFinancial Cryptographyという国際会議が始まった。第1回のFinancial Cryptographyはカリブ海の小島、アンギラ(Anguilla)開催された。この様子は、同年のNHKのドキュメンタリー番組「暗号戦争・アメリカ」という番組で放送されている。なぜこの会議がアンギラで始まったのかについては大きく2つの理由がある。1つは、この島がタックスヘイブンであり、さまざまな金融関連ビジネスとの関係を持ちやすいことである。2つ目のより大きな理由は、当時アメリカが行なっていた暗号の輸出規制である。Financial Cryptographyを開いたコミュニティはサイファーパンクと呼ばれる、暗号技術を使って国家などからの個人のプライバシーを確保することを目的としたコミュニティと近い。Proof of Workのアイデアの元となったHashcashを作ったアダム・バック氏(Adam Back)もサイファーパンクのメンバーである。このコミュニティは、米国で行われていた暗号の輸出規制と、Skipjackと呼ばれる政府だけはいつでも復号できる暗号技術の強制から逃れるためにアンギラに拠点を設けた。そしてプライバシーの確保と、経済活動において暗号技術を使うことで、政府のコントロールから逃れるための活動を始めた。そして、この学会の参加費は、通常のドルに加えe-goldと呼ばれる電子マネーで支払えたり、論文賞の副賞としてもe-goldが与えられていたりした。
ビットコインの提案者であるとされる「Satoshi Nakamoto」がどのような人物、あるいはグループであるかは不明であるが、Financial Cryptographyが持っていた背景や歴史的経緯は、その流れに沿っているものであるとも言える。ビットコインやブロックチェーンが持つ、非中央集権的に物事を進めたいという思想は、まさにこの流れに合致している。もちろん、ビットコインやブロックチェーンは、現在においてもFinancial Cryptographyの主要なテーマの1つであり、またFinanancial Cryptograhyの翌日にビットコインに焦点を当てた個別の学術ワークショップが開かれていることも特筆すべきことのひとつだ。Financial Cryptographyは、電子マネーやお金と、さらにはプライバシー保護という側面で、長年さまざまな特筆すべき研究成果を生み出しており、ブロックチェーンもこの流れから育まれてきたといえる。
信頼できる第三者を不要にするという試み
前述のFinancial Cryptographyをはじめとして、暗号研究において長年課題とされているのは、ある処理が「信頼できる第三者なしで実行できるのか」ということである。これは、主に個人のプライバシーの保護がそのモチベーションになっている。もし、ある機関が「個人の行動のプライバシーを覗き見ない」と確信できるなら、重い暗号処理は必要なく、情報処理は全てその機関に依頼し、通信路上の盗聴と改ざんだけをTLSプロトコルを使って防止すればよい。現状のオンラインバンキングやオンラインショッピングはこのような信頼のモデル(トラストモデル)の元に設計されている。しかし、現実には、信頼できると思っていた機関でも、オペレーションをする人間の悪意やオペレーションミスにより、多くの情報漏洩が発生している。ゆえに、その機関を信頼せずとも、必要となる情報処理ができることのへのニーズは高くなっている。
暗号関係の学術会議では、情報処理に参加する人(あるいはコンピュータ)が悪意を持っていたり、乗っ取られたりしても問題が起こらないための技術が長年研究されている。マルチパーティー計算(Multi Party Computation)と呼ばれる種類の研究では、任意の計算を関数の入力値を秘匿にしながら結果だけを得る方式が提案されている。任意の計算のための技術はあまり性能が出ないため、例えば電子投票などの個別のアプリケーションに対応して、より効率の良い方式を実現する研究もある。また、先に示した日本銀行とNTTの電子マネーの研究では、発券銀行(中央銀行に相当)では、不正の可能性が検出されない限りにおいて、匿名化された鍵ペアの情報しか発券銀行は知ることができないという仕組みになっていた。
ビットコインが、それまでのこの分野の研究の流れに比べて特別だったのは、信頼できる第三者を不要にする方式として、P2Pを使って台帳に相当する共通データを単純に共有し、Proof of Workという合意アルゴリズムを組み合わせることを提案したことだった。Proof of Workの概念そのものも、ビットコインが初めてではない。主にスパムメールの数を減らすために、メールを送る処理を行うのに、一定の時間を要するパズルを解くようにすることで、大量の処理を行う人にかかるコストを高めるようにする、Cryptographic Puzzleという研究が1992年のCRYPTO で発表されている[4]。これがProof of Workの原型であり、Denial-of-Service(DoS)攻撃対策として2002年にAdam Backが提案したHashcashは、この流れを汲んだ研究成果であった。つまり、ビットコインについていうと、データ構造自体は前述の通り暗号学的タイムスタンプですでに実用化されていたものであり、二重支払いなどの電子マネーに対する攻撃のインセンティブを低下させるための方式としてのProof of Workを組み合わせ、信頼できる第三者を不要にする方式として、どちらかというと分散コンピューティングの世界の話だったP2Pを利用することを着想したことが画期的だったと言える。
もちろん、全ての台帳のデータを多数のノードで共有するというやり方は非常に冗長な処理であるため、信頼できる第三者をなくす方法としていつも有効な方法ではないが、この分野の研究において新たなアイデアを与えたことは間違いない。
[4] Cynthia Dwork and Moni Naor. Pricing via processing or combatting junk mail. In Ernest F. Brickell, editor, Advances in Cryptology – CRYPTO ’92, 12th Annual Inter- national Cryptology Conference, Santa Barbara, California, USA, August 16-20, 1992, Proceedings, volume 740 of Lecture Notes in Computer Science, pages 139–147. Springer, 1992.
暗号技術を利用するシステムを長期間安全に保つ試み
これまで示した通り、従来の暗号技術やFinancial Cryptographyを中心とした電子マネーやプライバシーに関する研究の流れを考えると、ブロックチェーンやビットコインの登場は決してとっぴなものではなく、ある種の自然な流れのように思える。そうであるなら、ブロックチェーンは、従来の暗号技術が抱えてきた課題を引き継ぐであろうことも予想できる。
今年の2月23日に、ハッシュ関数SHA-1のコリジョンをGoogleのチームが発見したというニュースが駆け巡った。SHA-1はビットコインで使われているハッシュ関数SHA-256の一世代前の技術である。2004年のCRYPTOのランプセッションではSHA-1の準備バージョンであるSHA-0への攻撃が報告され、その後SHA-1の安全性について研究が進んだ。そしてそれから12年半が経過して、現実にコリジョンという攻撃の第1段階が成功した証拠が見つかった。
このようなケースで必要なのは「ブロックチェーンの安全性が損なわれる可能性がある」と恐怖を抱くことではなく、いかにして安全性を長期間保っていくのかを考えることだ。この場合も「温故知新」の観点で考える必要がある。つまり、暗号研究者、暗号技術者は2004年にあった教訓を元に、暗号システムの安全性を保つための取り組みを十分にしており、その経験をブロックチェーンに反映していくことが大事となる。
例えば、ハッシュ関数には3つのセキュリティの要求条件があり、「コリジョンが作れない」というのは、3つの中でもっとも突破されやすいものだ。コリジョンが作れたからといって、すぐにブロックチェーンの安全性に影響があるわけではなく、より強い安全性が破られない限りは影響がない。このように、ハッシュ関数のどの性質が破られると、どのような影響があるか、という知識を正しく共有して、必要な対策を取ることは重要だ。
一般には、現代の暗号技術は計算機能力の向上と、人間が作ったアルゴリズムにおけるミスの両方が原因で、いつかは破られる運命にある。また、公開鍵暗号はムーアの法則に従い鍵サイズを増やす必要があるし、これは経験則であるが、ハッシュ関数や共通鍵暗号は標準化されて20年くらいで破られることが多い。そのために、暗号技術が破られることを想定して、常にそれにかわるものを準備しておく必要がある。そして、破られそうになった時点で次への移行を始めないといけない。SHA-1の際には、2004年以降の状況で、概ね2010年から2015年の間にSHA-256に移行するという計画を各国が立てて、その通りに実行してきた。これも経験からだが、暗号が破られる可能性が学会で指摘されてから実際に破られるまでに数年から10年の猶予がある。その間に移行するというのが現実的だ。ハッシュ関数も、この10年の間にSHA-2の次としてSHA-3という新しいアルゴリズムを、公開のコンペティションで選出した。この過程については、筆者が2015年9月の第1回Scaling Bitcoinで講演したが、ブロックチェーンの安全性を保ち続けるための技術開発として、同じようなことをする必要が出てくるのではないかと考えられる。また、ビットコインやブロックチェーンが数十年以上の安全性を保証したいのであれば、暗号アルゴリズムの移行は避けて通れない。筆者は、2017年4月29日に行われる、IEEE Security and Privacy on the Blockchain (IEEE S&B)において、その移行方法の提案発表を行う予定だ。
いずれにしろ、暗号技術の応用としてのブロックチェーンは、過去の暗号技術の研究開発の経験を十分に生かす必要がある領域であり、いかに過去の経験を再利用できるかは、社会基盤として成長させるために欠かせない視点となるだろう。
上記の通り、ブロックチェーンは、過去の歴史を振り返るとわかるように、さまざまな「温故知新」が詰まった技術だ。少しふわふわした将来を語りつつも、過去からの流れを見ることで、その本質が見えてくるだろう。そして、一番の温故知新は、この技術が、直接ビジネスとなるというよりも、新たな「基盤技術」であり、そこから新しい活用や価値が見出されるところだろう。そこにこそ、Joiがいうインターネットに似た発明であるという意味合いがある。インターネットの技術開発も、地道な通信技術の積み重ねであり、そういう基盤技術を改めて構築できるというところに、一番の意味があると言える。