前回 まで、BBc-1のメイン開発者である久保健氏による詳細な解説を行ってきました。ここで、連載の最終回として再び私にバトンが渡されることになりました。
2019年1月で、Bitcoinの稼働から10年が経過しました。その間、さまざまな《ブロックチェーン技術》が派生して登場しました。しかし、この連載の初回 でも説明を要したように、そもそもブロックチェーンが何のために発明され、本質的には何であるのか、といった基本的な部分の理解に未だ混乱があるようにも思えます。そのためか、市場にあふれる、ブロックチェーンを標榜する技術の多くは、あえて辛辣にいわせていただければ、単に改ざんが多少難しくなっているデータベースに過ぎないようにも見えます。
本連載の締めくくりとなる今回と次回では、現状のブロックチェーン技術が抱える課題をもう一度改めて明らかにしつつ、その解決・解消に向けた次世代の取り組みをいくつか簡単に紹介します。
Bitcoinが解こうしている問題とは
さて、そもそも、ブロックチェーンが本質的には何であり、どのような機能的な役割を担っているかを正確に捉えなければ、課題を正しく把握することすらできません。短距離走者にとって、長距離を速く走れないことは課題ではないように、役割や機能に照らして初めて課題は課題として意味を持つからです。
もう一度、ブロックチェーンの始祖であるBitcoinに立ち返ってみましょう。この技術は、どんな問題を解こうとしたのでしょうか。できあがっている技術とその運用上の考え方から逆算すると、Bitcoinは「自分が持っている金銭的資産を自由に誰かに送ることを誰にも止めさせない」ために開発されたと考えられます。
資産を持つ本人であることの確認を特定の第三者に委ねると、その第三者により本人であることを否定される恐れがあります。送金の事実についても同様に、特定の第三者が確認や承認をする仕組みにしていると、資産を送ったことがその第三者により否定されかねません。これらの恐れを避けるためには、次の2点が実現される必要があります。
送金元がその資産を持つ本人だと誰もが確認できること
ひとたびシステムに送金の事実が投入・記録されたら、その記録が覆っていないことを誰もが確認できること
ブロックチェーンは、これら双方を実現するべく、デジタル署名されたトランザクションが特定の過去[1] に揺るぎなく位置づけられていることが、参加する全員にとって証明可能になることを目指して設計されたと考えられます。そのためには、誰もが本人の正しい公開鍵を持っていることが前提になるため、Bitcoinをはじめとする多くのブロックチェーンでは、公開鍵に暗号学的ハッシュ関数を適用して得られたダイジェスト(の文字列表現)がアカウントの識別子となっているわけです。そうした設計の問題点は第1回 で指摘しました。
そのように設計されるブロックチェーンないし同様な目的をもつ台帳技術が、どのような機能の階層を満たすべきか、第1回の表1 でまとめた内容を、もう一度簡単に振り返ってみましょう。
表1 機能階層とビットコインの場合の実現の仕方
機能 実現の仕方
唯一性の合意 ナカモト・コンセンサス
存在性の証明 作業証明付きハッシュチェーン
正当性の保証 UTXO構造
まず、システムに投入・記録されるトランザクションは正当である必要があります(正当性の保証) 。ただし、どういったトランザクションが正当であるかはアプリケーションが決めます。
また、正当なトランザクションが後に抹消されていないことや、正当だがその時点では存在しなかったトランザクションが後に捏造されていないことが確認できなければなりません(存在性の証明) 。
その上で、矛盾する2つの正当かつ存在を偽装されていないトランザクションが投入された場合は、参加する全員が同じ片方を選んで記録しなければなりません(唯一性の合意) 。
このうち、正当性を保証したり、唯一性について合意したりする部分は、それぞれ既存の技術で実現できたり、あるいは特別な仕組みとしては不要にできます(第2回での「唯一性の合意」 についての議論を思いだしてください) 。一方、存在性を証明することは、証明ではなくシステムの運用者への信用・信頼に頼ってよければ簡単なのですが、既存の技術では困難でした。
ブロックチェーンの本質的価値とは
だとすれば、ブロックチェーンの本質的な価値とは、「 記録が改ざんされていないと証明できること 」であり、より詳細に述べれば「過去に位置づけられたデジタル署名を、何の権威にも依らずに正しいまたは正しくないと証明できること 」ではないでしょうか。この点、連載初回の頃は私も整理が進んでおらず、「 改ざん耐性」という言葉を曖昧に使っていたと思うので、改めて強調させてください。
大事なのは、改ざんが難しいことではなく、改ざんされていないと(事実上)証明できることなのです。
このことは、従来は困難であり、一般に、過去に施されたとされるデジタル署名を無条件に正しいと見なすことはできません。使われたデジタル署名の手法が技術として時代遅れになったり、秘密鍵が漏洩したりしている場合があるからです。タイムスタンプが偽造可能であることはいうまでもありません。
そうした困難を経ても過去に施された署名を正しいと証明できることはデジタル署名の「経時証明問題」( 存在の証明問題)として知られています。
また、過去に施されなかった署名が実際に存在しないことや、偽装された過去の署名を正しくないと証明できることは「アリバイ証明問題」( 非存在の証明問題)として知られています。アリバイ証明問題の方は「無いことを証明」しなければならないので、本質的な難しさを持ちます。
私は、ブロックチェーンを標榜する具体的な技術がこの本質的な価値を満たすものかどうかを判定するために、次のような「遺言書テスト」を提案しています。
「遺言書テスト」とは
あなたのブロックチェーンでは「遺言書」を作れますか?すなわち、本人が生前に署名したままの形で遺言書が保存されていることを、保存しているシステムを信用せずに[2] 、利害関係のあるすべての相続人に対して証明できますか?
図1 遺言書テスト
図1 はこの「遺言書テスト[3] 」を図に描いたものです。この図でいえば、「 本人が生前に最後に署名した遺言書」として利害関係者(相続人たち)が問い合わせた際に遺言書Aを正しいと確認できることが「経時証明問題」に当たります。また、遺言書Bを正しくないと確認できることや、もし遺言書Aがそもそも存在しなかった場合に遺言書がないことを証明できることが「アリバイ証明問題」に当たります。
読者は、この「遺言書テスト」にはブロックチェーンの特徴としてよく取り沙汰されている「非中央集権」「 分散」「 合意」「 ゼロダウンタイム」「 セキュア/安全」「 安価な情報共有」といった要素が入っていないのではないか?という疑問を抱くかもしれません。しかし、このテストに合格するためには、「 中央」のシステムに信用・信頼を置いてはならないことは明らかです。中央に位置づけられてきた機能の内部で改ざんが行われてないことの「証明」を、外部で行えることが重要だからです。よって「非中央集権」については、本質的なところでこのテストによって試されることになります。
では、上で挙げたその他の要素についてはどうでしょうか。私は、その他の要素については、ブロックチェーンが登場する以前から課題として取り組まれていたり、解決する技術が存在していたりする、という認識が大事だと考えます。
ブロックチェーンはBitcoinの中で生まれた技術
例えば、可用性・耐障害性のための複製、および複製間で状態を一致させるための分散合意技術、自律性のためのP2P(Peer-to-Peer)などが、既存の技術であるにも関わらず、ブロックチェーンの特徴として、巷ではよく騒がれています。
しかし開発したいシステムがブロックチェーンであるかどうかに関わらず、必要に応じてこれらの既存の技術を適用すれば、もともと「分散システムの性質」である「分散」 、「 合意[4] 」 、「 ゼロダウンタイム[5] 」 、「 セキュア/安全」 、「 安価な情報共有」といった要素については実用的な(往々にしてブロックチェーンを凌駕する)レベルで達成できることを、特に設計者としては知っておく必要があるのではないでしょうか。
ブロックチェーンとは、もともとはBitcoinという具体的システムの設計の中で生まれた、前述した「記録が改ざんされていないと証明できること」という本質的価値を満たすための作業証明を用いたアイデアと、既存の周辺技術を組み合わせた技術のことを指しています。
他のアプリケーションを設計する場合でも各々別途、同じ様に考えるべきではないか、というのが設計に関する私の主張です。
BBc-1では、「 記録が改ざんされていないと証明できること」のコアとなる部分を提供するという考えです。
本質的価値を活かせる技術の見極めを
さて、端的には、「 遺言書テスト」は、「 システム内部で改ざんされていないことの証明」と「デジタル署名の事後(秘密鍵が漏洩した後も含めて永年の)証明」を要求するものです。遺言書というのは、署名付き文書の正当性が判断されるべきタイミングで署名者が亡くなっているため秘密鍵の秘匿性に疑いがあり、かつ巨額の遺産が扱われるとすれば関わる人々の共謀も疑いやすいという性質をもちます。そういった理由から思考実験の例として採用しています。
もし、解きたい問題が(変形を経て)この遺言書テストと同じ形になる場合は、テストに不合格な技術は使えないことになります。また、もし解きたい問題がこのテストの形にならない場合は、そもそもブロックチェーンと呼ばれる技術を使うことの意味がありません。
最も不幸なケースは、解きたい問題も特に無いのに、このテストに合格しない技術を使って「ブロックチェーンを用いた実証実験に成功した」などと謳うことです。しかし残念ながら、このケースが巷に蔓延しているように思えてなりません。
このテストに合格するためには、証明を要求するユーザ(図1 では「相続人たち」 )が、自らAPI(図1 では「保存システムのAPI」 )の内側を担うか、あるいは内側からは改ざんできない形で外部に保存されている証拠を確認できなければなりません。したがって、多くのいわゆるプライベート/コンソーシアム型の台帳技術は(少なくともそのままでは)このテストに合格できないことになります。このテストに合格できるのは、Bitcoinを含むパブリック型の台帳技術でしょう。
かといってBitcoinを含むパブリック型の台帳技術は外因により停止ないし劣化してしまい、動かしたい人々の意思だけでは継続できない恐れがあります。ここでいう外因としては、暗号技術の危殆化や仮想通貨の市場価格の暴落が挙げられることは第1回 に述べた通りです。
典型的なパブリック型の台帳技術では、作業証明(PoW:Proof of Work) 、または通貨持ち分に応じた投票権による投票(PoS:Proof of Stake)を経てシステムに記録が保存されます。PoWでは、投入する電力を上回る仮想通貨での収入を期待してマイナーたちが参入/撤退の判断をするので、経済学的理由により作業証明のための電力コストと仮想通貨の市場価値が均衡することが知られています。いずれの方法を採っても、仮想通貨の市場価値の過半を投入できる主体にとっては改ざんが可能になります(いわゆる、51%攻撃) 。市場価格が暴落して、マイナーの数が減ったり、通貨を買い求めやすくなったりすると、過半を投入できてしまう主体の登場が容易になってしまい、システムの安全性が損なわれます。
最近の技術動向
ブロックチェーンの本質的価値を改めて書くと、「 過去に位置づけられたデジタル署名を、何の権威にも依らずに正しいまたは正しくないと証明できること 」です。
加えてブロックチェーンの課題は、第1回でも整理した以下の5点 があり、これらの解決が望まれます。
実時間性の欠如
秘匿の困難さ
スケーラビリティの無さ
進化のガバナンスの困難さ(新技術を実地で試しにくい)
インセンティブ不整合性(システムの安全性が仮想通貨の市場価値に依存)
さて、次回(最終回)では、BBc-1以外の最近の技術動向を紹介します。今回挙げてきたブロックチェーンの本質的価値や課題に沿って、技術的な価値を簡単に検証してみます。
最近の技術として紹介し、簡単に検証するのは、Ethereumの最新開発動向、EOS、Hedera Hashgraph、一連のセカンドレイヤ技術、そしてMimbleWimbleです。