先日のブログ記事で,Hyperledgerプロジェクトは、最新プロジェクトのHyperledger UrsaがTechnical Steering Committee (TSC)の承認を得たことを発表した。Ursaのおもな目的は、暗号化ライブラリを簡素化して集約することにより、分散台帳テクノロジプロジェクトで使用するための信頼性と利便性を実現することにある。
Project Ursaは、モジュール型シグネチャと対称鍵プリミティブの包括的なライブラリを利用可能にする。これによって開発者は,コードの修正を行うことなく、さまざまな暗号化スキームをコンフィギュレーションで取り替えられるようになる。この基本ライブラリに加えて、ペアリングベースやスレッショルド、アグリゲートシグネチャといった、より新しい暗号化ライブラリも提供される。シグネチャ以外に、SNARKsなどのゼロナレッジプリミティブも含まれる。
ブロックチェーンのセキュリティは暗号化処理に依存する部分が大きいが、適切な実装を選択するのは開発者にとって難しい問題だ。Fujitsuの暗号処理研究者でHyperledger TSCのメンバでもあるHart Montgomery氏は、次のように説明する。
Hyperledgerの成熟に伴って、Hyperledger内の個々のプロジェクトは、高度な暗号化実装の必要性を感じるようになりました。それぞれのプロジェクトが自身の暗号化プロトコルを実装するよりも、共有ライブラリを共同開発する方が,はるかによい方法です。
Hyperledger Ursaプロジェクトには、次のようなメリットがある。
- 異なるブロックチェーン実装で同じセキュリティ要件を解決するような重複を回避する。
- コードが単一の場所に集約されることにより、暗号化処理のセキュリティ監査が簡単になる。これにより、これらのライブラリをメンテナンスする労力が削減できる他、分散台帳プロジェクトの経験の浅い開発者にとっては、セキュリティのフットプリントを改善することが可能になる。
- 専門家によるレビューがすべての暗号化コードに対して実施されることで、危険なセキュリティバグの可能性を低減することができる。
- 暗号検証の必要な複数のプラットフォームにおいて同じセキュリティプロトコルを使用する場合、プラットフォーム間の相互運用性が向上する。
- 共通コンポーネントのモジュール性は、将来的に、共通コンポーネントを使用するモジュール型分散台帳テクノロジプラットフォームのためのフレームワークを構築する。セキュリティなどの共通コンポーネントのリファレンス実装が成功することで、将来的な機会の創造につながる。
- プロジェクトで独自開発するのではなく、既存のセキュリティパラダイムをプラグインすることができれば、新しいプロジェクトの市場投入を早めることができる。
Hyperledger Ursaはまだ初期段階であるため、Minicryptのモジュール化へのさらなる投資など広範な将来計画がある。Montgomery氏が説明する。
最初のライブラリは"base crypto"ライブラリです。現在は共有可能なモジュール型署名ライブラリに注力していますが、これをもっと広げて、共用されているすべてのMinicryptの暗号化プリミティブを簡単にモジュール化できるようにしたいと思っています。これはまだ開発中ですが,いくつかのシグネチャスキームを共通APIに実装したもので、ブロックチェーンビルダがシグネチャスキームをほぼオンザフライで変更可能か、あるいは複数のシグネチャスキーマを簡単に使用およびサポート可能なものになります。最終的な実装内容やAPIは未定ですが、開発は進められています。
Project Ursa自体のライブラリに暗号処理そのものの実装は含まれていないが、既存のライブラリからのコードのラッパを使用することができる。Montgomery氏はそのメリットを、次のように説明する。
ここで新しいのはモジュール化とAPIです。これにより、基礎となる数学を理解したり操作したりすることなく、さまざまな暗号化アルゴリズムを簡単に変更できるブロックチェーンプラットフォームが実現します。
UrsaはRustで記述されているが、GoやPythonやJavaなど、Hyperledger全般で一般的に使用されるすべての言語に対するインターフェースを備える。リポジトリはGitHubで公開されている。