2016 年 03 月 07 日
ブロックチェーン技術における PKI の最適解!!(後編)
[ 前編はこちら ]
2008 年に、我々がもし Satoshi Nakamoto 氏から相談を受けたなら(笑)間違いなく公開鍵・秘密鍵をそのまま使うのではなく、電子証明書として利用しましょう!!と回答していたでしょう。ビットコインシステム全体の堅牢性については前記した通りに非常に強固な仕組みが組み込まれていますが、クライアント側(ウォレット)を識別する為の秘密鍵について、工夫が必要かと思われました。これは、今後ブロックチェーンを利用した他のシステムでも同様かと思います。
まず前提として、電子的なトランザクションを、エンド・ツー・エンドで証明可能な技術は、PKI 以外の技術では実現不可能です。PKI による電子署名を付与する事で取引情報のデータ単体での独立性を保ち、それを P2P に一斉送信するというアーキテクチャは、ブロックチェーンでは不可欠な仕組みですので、秘密鍵と公開鍵を利用するのは理にかなった選択だと思います。しかし、ここで注意して欲しいのは、前編の (1) で示したのウォレットに持っている秘密鍵は、外部に露呈したり、紛失すると、本人が意図しない不正送金やビットコインの財産紛失という通貨の利用上、とても大きなインシデントになります。
現に 2013 年には、アメリカの Bloomberg テレビの司会者、マット・ミラー (Matt Miller) さんは「12 Days of Bitcoin」というコーナーで、Bitcoin 付きのクリスマスカードをキャスター 2 人にプレゼントし、そのカードに印刷されているビットコインの秘密鍵の QR コードをテレビカメラに見せてしまいました。結果、番組を見た誰かがその秘密鍵で不正に送金してしまうという事件が発生しました。
このような事件は、稀だとは思いますが、我々が PKI を利用する時に、認証局システムを構築し、電子証明書という形で秘密鍵と公開鍵を利用するのは、PKI をよりセキュアで便利に利用する為です。具体的には、下記 3 点が大きいと思います。
(ア) 電子証明書内に様々な情報を記載する事で秘密鍵にアイデンティティを付与可能
(イ) 秘密鍵の利用可能な有効期間を持つことが可能
(ウ) 失効による秘密鍵の利用停止が可能
ビットコインでは、匿名性という部分がアピールポイントになっているかも知れませんが、それ故に匿名性による犯罪行為やマネーロンダリングのデメリットもあります。また、ビットコインではアドレスと公開鍵でウォレットを特定しているようですが、通常の様々な取引では、利用者を特定する為のアイデンティティ情報は必ず必要になります。電子証明書では、RFC5280 という規格で定義されたフォーマットによって利用者を特定する為のアイデンティティ情報を記載可能ですので、アイデンティティが必要な取引における利用用途は広がっていくと考えます。
次に、秘密鍵の有効期間ですが、秘密鍵は利用すればするほど、利用した証跡、つまり電子署名のデータが増加していきます。その結果、秘密鍵を類推する為の情報が増え、公開鍵から秘密鍵を特定する事が容易になっていきます。その為、電子証明書ではその秘密鍵をいつまで利用可能か?の有効期間を設定し、有効期間が切れる前に新しい秘密鍵に更新する電子証明書の更新を実施します。
ブロックチェーンの仕組み上、秘密鍵が更新されると取引履歴を検証出来ないという事が発生する可能性がありますが、更新操作の際に秘密鍵によるチェーンを持つことによって、秘密鍵の更新履歴を電子証明書から検証可能な仕組みで回避する事も可能です(ブロックチェーンと同一の概念を、電子証明書に対して実施)。
失効による秘密鍵の利用停止は、認証局システムでは無効な秘密鍵は利用停止にする事が可能な仕組みがあります。秘密鍵(電子証明書)の利用停止を認証局システムの管理画面で実施すると CRL (Certificate Revocation List) ファイルという無効な証明書の情報が格納されたファイルが公開されますので、各クライアントや P2P のコンピュータがその CRL ファイルを参照することで利用不可を判断可能です。アイデンティティと紐づいた情報が管理出来ていれば、秘密鍵を紛失した際の利用停止が可能になります。クレジットカードやキャッシュカードの紛失時の対応が、そのまま電子的に利用出来ます。
補足となりますが、電子証明書形式であれば、既に OS や各周辺機器で利用可能な環境も既に存在しています。ビットコインでは、ソフトウェアウォレット、ハードウェアウォレット、ウェブウォレット、ペーパーウォレット等個別にビットコインの利用環境を準備していますが、電子証明書であれば、Windows OS や iOS、Andorid といった OS の秘密鍵格納領域へ秘密鍵を格納し、セキュアに利用可能ですし、IC カードや USB トークンといった物理的な媒体での利用も可能です。
この先、何年後にどのような形でブロックチェーン技術を応用したビジネスモデルやサービスが出てくるか?非常に興味深いです。その際には、プライベート型/半プライベート型/パブリック型等、様々な構成が考えられます。もしくは、クライアントサーバーシステムにてアイデンティティを管理し、トランザクションのみブロックチェーンにするハイブリット型ブロックチェーン等も有り得るでしょう。 その時に PKI 技術を基礎とした電子証明書は、初めてその真価を発揮すると期待を込めて考えます。
今までのクライアントサーバーシステムでは、システムへのログイン、つまりログイン認証が最も重視すべき処理でしたが、それでもログイン認証にPKI を利用した電子証明書はオーバースペックと考えられる事もありました。ワンタイムパスワードやマトリックス認証などが採用され、電子証明書の利用が見送られたケースもありました。
しかし、ブロックチェーンが、様々なトランザクションを管理するシステムで本格的に採用された際には、ログイン認証だけでなく、トランザクションへの認証、すなわちトランザクション認証も実現可能な『電子証明書』が、信頼された取引を便利に実現する世界が訪れるでしょう。