2016 年 02 月 29 日
ブロックチェーン技術における PKI の最適解!!(前編)
昨今、ビッグデータや IoT、AI と並び金融業界や一部の IT 企業でブロックチェーン技術が注目を浴びています。そのスピードは、私が過去に見たことのないほどのスピードで各界での取り組みが進められています。
ブロックチェーンに関しては、海外では複数のスタートアップ企業が立ち上がり、国内では、FinTech に代表されるように大手金融機関や IT 企業が検討を進めています。特に、日本国内の IT 企業では、海外と違いプライベート型を想定した取り組みで、研究開発や実証実験のプレスリリースが相次いで発表されています。また、その市場規模は、一説では数十兆ドルとまで言われています。
では、なぜブロックチェーン技術がこれほど注目されるのか?それは、既存の電子的なトランザクションの管理概念を、根底から覆す事が可能な仕組みとなっているからです。
例えば銀行での取引では銀行が管理しているサーバーにて金銭の送金に関して制御していますが、ブロックチェーンではこの取引をエンド・ツー・エンドの 2 者間で行い、その結果を分散型コンピュータで公開する事で一極管理の仲介事業社無しで実現しています。そうする事によって、管理コストを極限まで抑える事が出来る特長を持っています。
また、これまでクライアントサーバーシステム構成で実現していた取引台帳の管理(電子的なトランザクション)を、分散型のコンピュータネットワーク構成(P2P)にする事で、低コスト且つ非常に信頼性の高いシステムを構築する事が出来ます。
勿論、ブロックチェーンの方が全ての面において、旧来の一極管理型のシステムと比較して良いか?というと、性能面などのデメリットはあるかと思いますが、それらのデメリットを差し引いても、ブロックチェーン技術には無視出来ないインパクトがあると考えられているのだと思います。
ブロックチェーンのシステム的な特長としては、公開した取引記録が改竄出来ない事や、ロストデータがない事、システムがゼロダウンタイムで稼働出来る事など、数々のメリットがあります。このシステム的な特徴を活用し、一極管理の仲介事業社が無いことによるコストメリットとして、非常に少額な金銭の取引であるマイクロペイメントの実現や契約行為を廉価に実現出来るスマートコンストラクトなどのビジネスモデルへの応用が可能とも言われています。
今回ブロックチェーンを取り上げた理由は、この技術がハッシュや公開鍵、秘密鍵など、我々が最も得意とする分野の技術が応用されていますので、無視出来ないと考えたからです。それでは、まずはブロックチェーンがどのようなものか?を、以降に簡単に説明します。
ブロックチェーンは、もともとはビットコイン (Bitcoin) の中核を担う技術として、Satoshi Nakamoto 氏(現在でもその正体が不明となっている)が作成した革新的な論文をシステム化したものとなっています。
ブロックチェーン自体は、Wikipedia にて"ブロックチェーンとは、分散型台帳技術、または、分散型ネットワークである。"と記載されていますが、世の中ではビットコイン(Bitcoin) に代表される暗号化通貨を実現する複数の技術要素として語られる事が多いので、本ブログでもこの複数の技術要素をブロックチェーンと定義します。
前記の Satoshi Nakamoto 氏の論文では下記のような記載があり、これがブロックチェーンの実現すべきゴールとなっています。
「1 つの電子コインは、連続した電子署名によって定義される」
このゴールを実現する為に、大きくは次に記載する 3 つの技術が利用されています。
(1) 「電子署名」によって、コインの送金に関する「なりすまし」「改竄」「否認」を防止
ビットコインでは、秘密鍵・公開鍵・アドレス(秘密鍵・公開鍵から生成)の情報をウォレットが持っています(鍵の暗号アルゴリズムは、RSA よりも処理速度が速い ECDSA と呼ばれる楕円曲線暗号が使われています)。 この情報で A さんから B さんへの送金に関する取引情報を作成し、その取引情報に A さんの秘密鍵で電子署名を付与します。B さんは、この取引情報を A さんの公開鍵で署名検証する事で A さんから B さんへの送金を確認します。秘密鍵で暗号化した情報は、その秘密鍵に対応する公開鍵でしか復号化する事が出来ず、公開鍵で復号化出来た場合には正しい秘密鍵の所有者が行った行為という事が証明出来ます。
(2) 「ブロック・チェーン」の公開で重複した取引を防止
(1) によって A さんと B さんの取引情報(ブロックと呼ばれ実際にはビットコインでの全取引情報)を、10 分単位で1つにし、前のブロックのハッシュと nonce (当該ブロックのハッシュ計算において計算すべき値) を付与し、連続したブロックのチェーンを作成します。このブロック・チェーンは、全取引が含まれており、P2P の全コンピュータで共有・公開する事で重複した取引を防止します。
(3) 「プルーフ・オブ・ワーク」による不正な改竄を抑止
(2) で記載したブロックのハッシュ値を作成する作業において、P2P 上の各コンピュータ(マイナー)は署名アルゴリズム (SHA-256) のハッシュ値の先頭に 0 が 13 個並ぶような nonce の値を計算(マイニング作業)します。この nonce の値をはじめに算出したコンピュータに報酬としてコインが与えられ、正当なチェーンを作成出来ます。この nonce の計算は、10 分程度で完了するように制約 (nonce 値の先頭の 0 の個数) を設定されています。
なぜ、こんな事をするのか?非常に理解が難しいですが、簡単に言うと、ある悪意を持ったコンピュータが取引記録を改竄しようとした場合に、改竄した取引記録と nonce の値を計算して、不正なブロックチェーンを作成していく必要があります。尚且つ、ブロックチェーンのどこのブロックの取引を改竄しても、全てのブロックに対して、同様の nonce 値の計算が必要なり、多大な作業が発生します。悪意を持ったものが、そんな作業を行うのであれば正当なブロックチェーンの正しい作業を行って、正当な報酬を得た方が得だと考えるようになる事を目的としています(ブサンチン将軍問題としてよく例えられる考え方で、複数の同一の個体が、いかに悪意を持たないようにさせるか?の解となります)。
これらの技術要素を紐解くと、既存の技術や新たな仕組みを柔軟に組み合わせ、分散型ネットワークにて、非常に強固な暗号化通貨を実現している事が分かります。実際、2009 年にローンチしてから、現在に至るまで問題なく利用され続けている事実からも判断可能です (2014 年発生したマウントゴックス社の事件もビットコイン自体の仕組みの問題ではありません)。
今後、様々な企業がこのブロックチェーン技術を利用し、ビジネスへの成功に向けて研究・開発を進めていくと思いますが、PKI ベンダーとしてブロックチェーンの今後について考察を行いたいと思います。「ブロックチェーン」や「プルーフ・オブ・ワーク」に関する部分については、その分野の企業家や研究者が様々な考察をしていますので、ここではクライアント側についての考察を進めていきたいと思います。