ブロックチェーンという言葉に騙されないために

2016年12月公開

ブロックチェーンという言葉に騙されないために

近年、仮想通貨ビットコインが注目されているのにともない、その根幹技術であるブロックチェーン技術が金融業界で注目されています。しかし、ブロックチェーンという言葉自体が流行してしまった結果、様々な金融関連企業が正しく理解しないまま手を出し始めているように見えます。そして、技術的な内容がほとんど表に出てくることはなく、批判する人が少ないという問題を感じたのでこの記事を書きました。ブロックチェーンでできることとできないことを整理し、皆が今後ブロックチェーンの記事により深いツッコミを入れられるようになればと思います。自分はブロックチェーンの専門家ではないため若干の間違いもあるとは思いますが、見つけ次第 @imos まで連絡いただけると幸いです。適宜修正します。

背景

ブロックチェーンとは

ブロックチェーンとは、いくつかの未完了の取引を「ブロック」という単位でまとめ、ブロックの正当性を証明するものと共に取引履歴の最後に付け加える(チェーンを繋げる)ことにより取引を記録する仕組みです。参加者はブロックの正当性および取引内容を検証しており、(口座にある以上のお金を出金した等の)不正な取引があればブロックの追加を無視し正常な取引のみが含まれたブロックの追加を待つため、過半数の合意がえられた正しい取引履歴のみが全体として維持されます。

ブロックチェーンとビットコインの関係

ビットコインとは、ブロックチェーン技術の上に成り立った仮想通貨で、数少ないブロックチェーンの実用例のひとつです。ビットコインでは、新しいブロックの追加に必要な鍵の生成を、1 つにつき全参加者が約 10 分間全力で計算してようやくわかるレベルの難しい問題に設定しています。ブロックの追加を行うと 1 回あたり約 100 万円の報酬が得られるため参加者は本気で計算を行っており、簡単にはブロックを追加する権利は得られません。悪意のある参加者がすでにあるブロック(特に古いブロック)を意図的に書き換えるためには、全参加者の計算速度の総和を超える速度で莫大な計算を行って異なるブロックを追加する権利を得る必要があり、それが事実上不可能であることなどを根拠に、ビットコインの取引履歴は改竄(書き換え)できず信頼できるとされています。
(※より詳細かつ正確な説明はBitcoinの仕組みに譲ります。)

金融業界での活用の動き

ビットコインのような不特定多数が参加できるパブリックブロックチェーンは、多数の善良な参加者が参加したくなる動機づけ(例えば金銭的報酬)が必要であり企業等での応用には向かないため、参加者を限定したプライベートブロックチェーンを金融業界で使おうとする動きがあります。しかし巷でブロックチェーンの長所として挙げられているものの多くは、多数の参加者が合意形成を行うことによって得られるものであり、プライベートブロックチェーンを開発しようとしているのにもかかわらずプライベートブロックチェーンでは実現・保証できないことを目標にしているプレスリリースが多く見られるという問題があります。

概略

ブロックチェーンは、ビットコインをはじめとしたパブリックブロックチェーン(オープン、パーミッションレスとも呼ばれる)と、そのアイディアをもとにして限られた参加者(ノード)で実現できるようにしたプライベートブロックチェーン(クローズド、パーミションドとも呼ばれる)の 2 つにわけられますが、これらはかなり性質が異なるため分けて考える必要があります。
パブリックブロックチェーンは不特定多数が使えるため、安全性を確保するには悪意のある参加者が状況を覆せない程度に多数の善良な参加者がいる必要があり、それを実現するためには参加する動機付けが必要なため、ビットコイン等の仮想通貨以外への応用は非常に困難です。取引情報に取引以外の情報も載せられることを積極的に応用しようとしたEthereumという仮想通貨プロジェクトもあり、パブリックブロックチェーンに研究の余地がないわけではないですが、ビットコインを応用する場合には「取引は誰でも見られること」「取引の確定には約 10 分〜数十分程度の時間を要すること」などの仕組み上の問題があり、「取引には現状でも 0.5 円程度の手数料がかかり取引量が増えれば高くなること」「仕様上の制約で 1 秒あたり全世界で 7 取引までしか安定して処理できないこと」「取引内容は全員が永久に保存し続けなければならずストレージを圧迫すること(1 取引あたり 500 バイト前後のデータを管理する必要があり、現状すでに 90 GB 以上になる全取引情報を 5000 人以上が管理している)」などのスケーラビリティの問題も現状存在することも考える必要があります。その一方でビットコインは参加者が全力で計算(採掘とも呼ばれる)をしているおかげで、悪意をもって遡って改竄すること(それを上回る速度で異なる歴史を作ること)が非常に難しく、無かったことの証明が容易だという大きな特徴があります。ただし、過去にはEthereumの開発者がコミュニティの合意に沿ってEthereumのブロックチェーンの巻き戻しを行ったこともあり、改竄が完全に不可能というわけでもありません。
プライベートブロックチェーンは予め指定したノードのみが接続することを前提に安全性を確保するので、原理的に第三者から取引の透明性を確認できるというわけではありません(もし最初に外部から参照できるように作られていたとしても、プライベートで完結しているので途中からブロックチェーン自体を非公開にできないわけではありません)。基本的に既存の分散データベース(例えばOracle Database)で取引記録をすべて残している状態と異なる特徴はありません(プライベートブロックチェーンは分散データベースの実装方法のひとつという考え方もできます)。唯一、既存の分散データベースと比較して優れている可能性があるのは、決済の即時性を犠牲にした結果として高度な理論と技術が必要である短時間で確実に合意形成を行う機構が不要になり実装が単純になっている点です。
ブロックチェーンがあってもできないことあるいは特有ではないこととしては
  • 新たなブロックの生成は即座に行われるわけではないので取引完了は即座にはわかりません。またブロックが生成されたとしても十分に時間が経つまでは覆される可能性があり取引完了を信頼性を十分高めるまでには時間を要します
  • オフラインで取引リクエストの生成はできますが、ブロックチェーンに記録するまでは取引の成功が保証されないため、厳密にはオフラインの取引をすることはできません
  • すべてのノードが取引結果を検証する必要があるため、ブロックチェーン自体には高速になる要素はありません
  • ブロックチェーンは仕様上すべての検証用ノードで取引の記録を残す必要があるため、副次的な効果として耐障害性の強いシステムができますが、既存の分散データベースでも同様に取引の記録を残すことで同様の耐障害性が得られます。
  • すべての検証用ノードが取引の記録を持つため取引の数と検証用ノードの数を同時に増やすことはできません
  • 取引が偽造できないのはブロックチェーンによるものではなく、電子署名によるものです。

2016 年 12 月号の情報処理学会誌について

2016 年 12 月号の情報処理学会誌にブロックチェーンの特集が組まれていたので、これを使ってブロックチェーンの記事をどう読むべきかについて考えます。

特集0 編集にあたって

特集 0 は導入部分であり(ブロックチェーンではなく人工知能を推している点以外は)特に気になる点はありませんでした。

特集1 ブロックチェーンの基本と発展

前半はビットコインの仕組みの説明であり疑問点はありませんでした。しかし、後半部分ではブロックチェーンの活用可能性について書かれておりそこにはブロックチェーンの優位性にいくつか疑問がありました。
ブロックチェーンの耐偽造性や公開性を考慮すると、「秘匿性はあまり求められないが、偽造されては困るもの」などが検討の対象になるだろう。たとえば、公的機関が行う登記や事業所登録などがある。
ビットコインの耐偽造性は電子署名によるものであり、公的機関が行う登記や事業所登録の用途としてはブロックチェーンに優位性はありません。例えば「SSL サーバ証明書」は Web 上(HTTPSプロトコル)でサーバが信頼できるものかどうかを証明するために使われている電子署名を使った既存の技術ですが、これを事業所登録等の用途に応用することは、サーバ証明と仕組みはほぼ同一であり可能です。
耐障害性に着目すれば、万が一止まると大きな影響が出るシステムの利用には良いだろう。
複製を複数のノードが持つことによる耐障害性は既存の分散データベースにも同様にあり、ブロックチェーンの優位性とは言えません。プライベートブロックチェーンを使う場合、分散データベースと同様に過半数のノードが生きていることが障害の分岐点であるため優位性はありません。パブリックブロックチェーンを使う場合、仕組み上数十分から 1 時間程度の書き込み遅延を許容する必要があり、それを許容するならば既存のクラウドサービス上でより高い耐障害性のあるサービスが提供できると考えられます。

特集2 対談:ビットコインコア開発の現場とは

ビットコインソフトウェア開発者との対談であり特に疑問点はありませんでしたが、スクラッチから書き直すことに否定的であったのが気になりました。
(質問者)スクラッチから作り直すほうが、楽では?
(開発者)いえ、それは危険です。分散されたノードが合意できず、分岐する可能性があり、検証するのが大変です。
ビットコイン取引の検証用ノードに多様性がない場合、悪意のあるコードあるいはバグが原因で本来の仕様とは異なる合意が行われてしまう可能性が捨てきれず、一度不正なものが混入してしまった場合にブロック全体が信頼できないものになってしまう可能性がないとは言い切れません。もちろん分岐は起きると収束するまで取引が続けられなくなるため深刻な問題ですが、短いブロックチェーンは淘汰される仕組みがあるので完全に崩壊するわけではありません。

特集3 ビットコイン改善提案 最前線

ビットコインのブロックチェーンにかかわらない部分の改善案の紹介であり、ここは飛ばします。前半は「マークル化抽象構文木」の説明で、複雑な条件の取引であってもハッシュ木の形で表現しておけば、ブロックには最終的に必要な条件のみを書き込むだけで取引を表現でき、ストレージを節約できるというアイディアの話です。後半は「コンパクトブロックリレー」の説明で、未決済の取引は大半が共有されているはずなので、新たなブロックが決定したときに送り直さないようにして転送量を節約するという話でした。

特集4 ハイパーレジャープロジェクト

ここではLinux Foundationが管理している分散台帳技術プロジェクト(Hyperledger Project)を紹介しています。企業での利用にはパブリックブロックチェーンでなければ難しいと書きながら、前半の分散台帳技術の説明はプライベートブロックチェーンが実現したときに可能となる特徴の話が主であった点が気になりました。後半はプロジェクトの紹介ですが、いずれもまだ本格始動しておらず十分に議論できるものではないため、ここでの紹介は飛ばします。
ブロックチェーン技術を含んだ分散型台帳技術は中央管理者が存在しない、改竄しにくいデータ管理の仕組みである。
パーミッションレス分散型台帳の優位性は中央管理者が不在であるため、検閲困難なシステムとなることにある。しかし、そのままでは欠点が多くて、社会のニーズの解決には向いていないところが多い。(中略)これらの内容からパーミッションド分散型台帳技術が最もエンタープライズに相応しいものとして注目されている。
「ブロックチェーン技術を含んだ分散型台帳技術」を「中央管理者が存在しない、改竄しにくいデータ管理の仕組み」と定義しているのにもかかわらず、「中央管理者が不在である」ことが優位性である「パーミッションレス分散型台帳」が「社会のニーズの解決には向いていないところが多い」と言っており、その優位性のない「パーミッションド分散型台帳技術」が「最もエンタープライズに相応しい」としています。中央管理者がいないことを定義にしているのにもかかわらず、結局実用には中央管理者のいる構造が必要であるとしている点に問題があります

特集5 ブロックチェーンの分散台帳を利用した電子投票による集合知の構成

「ブロックチェーン」が従来のデータベース技術で実現されている電子投票システムよりも優れていることを明らかにする。
ザ・ブロックチェーン(ビットコインの取引が行われているブロックチェーン)を電子投票システムに応用する話です。
理想的な電子投票の要件は、以下のようなものである。
(1)投票資格の検査と本人確認(2)投票の一意性(二重投票の防止)(3)投票内容の正確性(4)投票内容の改変不能性(5)投票内容の検証可能性と追跡可能性(6)システム自体の信頼性(7)個人の投票内容と方法の秘匿性(8)柔軟性(複数の投票手段が選択できる)(9)利便性(情報リテラシーが不要(10)試験可能性(仕様を投票者が確認できる)(11)透明性(投票に関する全行程の可視化)(12)システムの運用コストが合理的
(2)(3)(5)(6)(10)(11)(12)は、ザ・ブロックチェーンの特性である「対象的な非集中管理監査」によって実現できる。また、(4)は「絶対中立的な非可逆記録」によって実現できる。
従来のデータベース技術を核とする電子投票システムを採用した場合、「信頼できる第三者」を仮定しない電子投票システムで、(2)(3)(4)(5)(6)(10)(11)を実現することは、事実上不可能である。
電子投票を行う場合、信頼できる組織が投票できる人を選ぶ必要が生じます。そうでなければ一人で複数人のフリをして投票を行っても誰も確認することができないため、ブロックチェーンを使った方法も破綻します。ですので、この主張では従来のデータベース技術が不当に不自由な状態にされているという問題があります。従来のデータベース技術を「投票者は役所から送られてきた電子署名付き投票証に電子署名をして公開されたサーバ(掲示板等のサービスでも可)に書き込む」こととした場合、ブロックチェーンの優位性はほぼなくなります。
  • (2)投票の一意性(二重投票の防止) … 役所の電子署名と投票者の公開鍵の組み合わせを用いれば実現可能です。
  • (3)投票内容の正確性 … 電子署名により実現可能です。
  • (4)投票内容の改変不能性 … 投票者が電子署名をして公開サーバに書き込んだ時点で他の人からも投票したことが検証できるため投票内容は変更不能になります。
  • (5)投票内容の検証可能性と追跡可能性 … 記録されているかどうかは公開サーバに存在するか否かで確認ができます。
  • (6)システム自体の信頼性 … 公開サーバの信頼性に依存しますが、複数のクラウドサービスを用いたときの可用性はビットコインネットワークを利用するより高いと考えられます。
  • (10)試験可能性(仕様を投票者が確認できる) … 記録されている電子署名を集計するだけであり追試は容易です。
  • (11)透明性(投票に関する全行程の可視化) … 公開サーバに書き込むことにより透明性は確保できます。
  • (12)システムの運用コストが合理的 … ビットコインの取引手数料が小さく設定されていますが、取引量が少ないために無視されているだけであり、データを永久に保存し続ける必要があるので結果的にビットコインの方がコストがかかると考えられます。
また根本的な話として、ビットコインネットワークは 1 秒あたり全世界で 7 取引までしか処理できないため実現は不可能です。例えば 2014 年の衆議院選挙の投票数は約 5500 万票でありビットコインの仕様を変えなかった場合、投票に少なくとも 90 年かかります

まとめ

ブロックチェーンには約束された未来があると言い切っている記事はなく、ビットコイン以外はまだ実用段階になってはいないという点では一致しており、極端なことは言っていないように読めました。世の中にはブロックチェーンの技術面に言及した記事がほとんどないことから貴重な資料ではありましたが、パブリックブロックチェーンとプライベートブロックチェーンが切り分けられていなかったり、電子署名によって得られる特性をブロックチェーンの特性として扱っていたりする点で不正確な印象を受けました。
個人的に実装の単純さは十分に価値があると考えているので必要に応じて使われて欲しいところですが、様々な企業が正しく理解しないまま手を出し始めているようにみえる近頃の状況には懸念があります。