コンテナ化されたスマートコントラクト:抽象概念から現実のアプリケーションへ

WavesEnterpriseによる “Containerized smart contracts: from abstract to real-world application” の日本語翻訳です。
プライベートブロックチェーンの必要性、複数テクノロジーの相乗効果の重要性の説明から始まり、実際に伝統的なシステムをどのようにWeb3.0アプリへ統合していくかを説明しています。
ここでは、入構顔認証を例に、ニューラルネットを含むスマートコントラクトをコンテナ化しブロックチェーンへ接続する事例が紹介されています。

Author

コンテナ化されたスマートコントラクト:抽象概念から現実のアプリケーションへ

Waves Enterpriseはスマートコントラクトに対して特殊なアプローチを採用しており、オープンでパブリックブロックチェーンでは不可能なまったく新しいユースケースを提供できます。今後のブログ投稿で、コンテナ化されたスマートコントラクトの利点を探求していきます。今のところ、この方法でスマートコントラクトを実装することで、ほぼすべてのビジネスアプリケーションをサポートできると言えます。この記事では、このアプローチの意味のいくつかを探り、考えられるユースケースの具体例(ブロックチェーン上での顔認識)を示します。

中央集権型アプリケーションとWeb 3.0アプリケーションの相乗効果

ビジネスアプリケーションにブロックチェーンを使用する主な利点は何でしょうか?

  • 透明性と一貫性: ネットワーク内のすべてのノードは同じトランザクション履歴を共有するため、レコードを変更するには、大多数のノードが不正なコンセンサスに同意し、複数のブロックを書き換える必要があります。攻撃者がこのレベルの制御を獲得することは非常に困難であるため、ブロックチェーンに保存されたデータは、従来の中央集中型システムを使用する場合に比べて透過的で信頼性が高くなります。
  • セキュリティ保証: 大多数のネットワークノードが事前に合意に同意した場合にのみ、トランザクションが既存の履歴に追加されます。これにより、プライベートブロックチェーンで不正な取引を行うことはほとんど不可能になります。さらに、ブロックチェーンは分散化されているため、DoS攻撃では複数のノードを一度に攻撃する必要があるため、多大な労力が必要です。最後に、データのコピーを複数持っているので、障害が発生した場合にシステムを迅速に復旧できます。
  • 効率とスピード: ビジネスプロセスはブロックチェーン上で実行できるため、組織は事務処理(ペーパーワーク)の削減という利益を得ることができます。その結果、人為的ミス、配送、管理コストを劇的に削減できます。

この記事では、ブロックチェーンによって拡張できる古典的な中央集権システムの例を示します。

2019年時点ですでに利用可能な多くのテクノロジーがあり、組織はすでにさまざまなシステムを導入しています。これらは一般的に合理的に機能するため、次のような疑問が生じます ― なぜブロックチェーンに統合する必要があるのでしょうか?よく知られ広く使用されているシステムであるエントランスアクセス制御(入門制御)の進化を例に回答を提供します。

  • このシステムの最初のバージョンでは、入門時に監視員が確認するために、さまざまなオブジェクト(バッジ、IDカードなど)の使用が必要でした。会社に多数の従業員がいる場合、このシステムでは、朝長い行列をつくる可能性があります。
  • デジタル入構許可証の開発は、手動チェックの必要がないため、プロセスを高速化しました。ユーザーエクスペリエンスは大幅に改善されましたが、ユーザーが入構許可証を忘れたり失ったりする可能性があるため、ヒューマンファクター(人的要因)が残りました。
  • アクセス制御の進化における次のステップは、顔認識でした。ニューラルネットワークの開発における最新の進歩により、リアルタイムで効果的かつ効率的に顔を認識することが可能になりました(多くの最新のスマートフォンにはこのオプションがあります)。これにより、企業はデジタル入構許可証を、従業員の顔を自動的に認識するシステムと交換することができました。

それでは、顔認識の進化における次のステップは何ですか?現在のシステムの欠陥は明らかです。従業員とその出席に関するデータを保存する中央集権型アプリケーションがあります。他の中央集権型アプリケーションと同様に、外部からの攻撃、または組織内の信頼されているが不正な一派による攻撃に対して脆弱です。

この脆弱性は重大な意味を持ちます。例えば:

  • 建物のアクセスが制限された部分で事故があり、許可された少数の従業員のみがアクセスできるとします。入構ログを確認すると、インシデント発生時に、そこには誰もいなかったようです。誰かがデータベースを改ざんしたことはすぐに明らかになります。これは中央集権化されたアプリケーションであるため、削除されたデータを回復するチャンスはほとんどありません(データベースがバックアップされていても、ユーザー管理アクセス権を持ち、コピーを削除できる可能性があります)。
  • ある従業員が1年に多くの日に欠勤しているとします。ただし、入構ログを確認すると、彼の不在は許可された日数の範囲内であることがわかりました。あなたが彼に会わなかった日に彼が仕事をしなかったという証拠も、ログが編集されたという証拠もありません。

これは、透明性と不変性を保証するブロックチェーンが理想的なユースケースです。提供されたカメラの画像から従業員を自動的に識別し、ブロックチェーンに入構データを記録するアプリケーションを構築することができます。以下に、システムの詳細な動作方法を示します。

顔認識コントラクトアーキテクチャ

我々独自のソリューションは、次の図に示すいくつかのコンポーネントで構成されています。

  • ビデオカメラ:建物の入り口を録画します。(中央集権化と単一障害点を避けるために、建物内の異なる場所に複数のカメラを置くことができます。)
  • エンタープライズノード:これには強力なハードウェアは必要なく、ブロックチェーンの他のノードとの通信を行うためにインターネットにアクセスできるラップトップにいれることができます。
  • コンテナ化されたスマートコントラクト:顔認識を担当するニューラルネットワーク(ResNet)を含む。
  • フロントエンドアプリケーション:システムのユーザーインターフェイスであり、入構統計の表示、新しい従業員の追加、スマートコントラクトとノードとの便利なやり取りのための機能を提供します。

それでは、アプリケーションはどのように機能するのでしょうか?

  1. カメラからのライブビデオストリームはフロントエンドアプリケーションに送られ、必要に応じてセキュリティガードが直接表示します。
  2. ビデオストリームは画像に分割され、一連のトランザクションとしてノードに送信されます。
  3. ノードは、トランザクションをスマートコントラクトに渡します。
  4. スマートコントラクトが顔を認識するたびに、関連する従業員が入構したことが個人IDとタイムスタンプとともにブロックチェーンに記録されます。アプリケーションは、見知らぬ人を追跡するため、またはニューラルネットワークが従業員を認識できない場合に、未知の顔の画像とタイムスタンプも記録します。
  5. ノードはこれらのトランザクションを保存し、毎日および毎月の統計を集計してネットワークにブロードキャストします。フロントエンドアプリケーションは、この情報と統計を表示します。

より明確にするために、proof-of-conceptアプリケーションのスクリーンショットと詳細を以下に示します。

  • 最初に、各従業員はブロックチェーンに追加されます(つまり、エンコードされた特徴量がスマートコントラクトとニューラルネットワークで使用するために保存されます)。このプロセスが完了すると、ブロックチェーンに保存され、フロントエンドアプリケーションに表示できる従業員のリストができます。
Pic. 2. Application list of employees
  • 必要に応じて、カメラの視点に直接切り替えることができます。
Pic. 3. Application camera view
  • データページを確認し、今日登録された従業員のリストを確認できます。
Pic. 4. Application employees today
  • 特定の従業員の詳細を表示する場合は、その従業員のプロファイルをクリックして、アプリケーションがそれらの従業員を登録した時間を確認できます。
Pic. 5. Employee daily stats

この簡単な概要を読んでに質問がでてくるかもしれませんので、最も明白なもののいくつかを前もってカバーしておきます:

  • 中央集権型システムと比較して、アプリケーションの速度はどれくらいですか?
    セキュリティを保証するためにブロックチェーンにデータを記録する必要があるため、このソリューションは少し遅くなります。ただし、日常の使用では、この速度の違いはほとんど目立ちません。カメラからのリアルタイムストリームを表示するので、わずかな遅れがある唯一のポイントは入構者リストです。最悪の場合でも、更新にかかる時間は15秒です(設定で15秒のブロック時間を指定すると仮定しています。これはプライベートネットワークでは適切な値です)。
  • システムには何人まで追加できますか?リストが大きいとパフォーマンスが低下しますか?
    ノードを実行しているマシンが保持できる限りの情報を保存できます。アプリケーションで画像を比較するには、現時点ではO(n)が必要ですが、将来的には、画像の類似性メトリックを追加してプロセスを高速化する予定です。現在のアプリケーションを最大100,000の顔でテストしましたが、パフォーマンスに問題はありませんでした。
  • 認識の質はどうですか?ブロックチェーンの使用の影響を受けますか?
    認識の品質は、ブロックチェーンの使用による影響を受けません。使用したライブラリのドキュメントによると、”このモデルの精度は、Labeled Faces in the Wildベンチマークで99.38%です”。日常的な観点から、アプリケーションは従業員を認識しない場合がありますが、それは一般的には特別な理由によるものです(例えば、サングラスをかけているなど)。そのような場合、認識されなかった画像をブロックチェーンに保存します。

以上です。従来のシステムをWeb3.0でリメイクしたもので、中央集権システムよりも高い信頼性とセキュリティが保証されています。ご想像のとおり、ブロックチェーンを使用してビジネスアプリケーションにメリットをもたらす方法の例は他にもたくさんあります。他にも試してみませんか?