Ockamは、IoTデバイスにブロックチェーンベースの識別性、信頼性、相互運用性を容易に追加できるようにすることを目的とした、サーバレスプラットフォームである。Ockamは先頃、Go言語用のSDKをオープンソースとして公開した。
Ockam SDKをデバイスに組み込むことで、開発者はそのデバイスを、非集中型のオープンプラットフォームであるOckamブロックチェーンネットワークに参加させて,最新のW3C標準であるDecentralized Identifiers(DID)に基づいたセキュアな暗号化ID管理を使用することができる。
Decentralized Identifiers (DIDs)は、検証可能な"自己主権"形式のディジタルIDのための、新たなタイプの識別子です。DIDは、中心的なレジストリやIDプロバイダや認証機構を一切持たず、DIDサブジェクトによる完全なコントロール下にあります。DIDは、DIDサブジェクトとの信頼できるインタラクションの手段に関連づいたURLなのです。
自己主権型IDという考え方のルーツは1970年代に遡るが、それを実現化したのはブロックチェーンの功績である。
OckamのCEOで創業者のMatthew Gregory氏に詳しい話を聞いた。
Ockamの説明では"IoTのHeroku"という呼び方をしていますが、Okamの背景にあるビジョンを説明して頂けますか?
Ockamの持つ大きなメリットのひとつは、SDKが複雑なインフラストラクチャを抽象化してくれることです。複雑な暗号化インフラストラクチャを自力で立ち上げるのではなく、Ockamに組み込まれたシンプルな関数を自身のコードから呼び出すことで、特別な専門知識を持たなくても、公開鍵インフラストラクチャのメリットを享受することができるのです。ちょうどHerokuの"git push master"がクラウドの魔法の鍵を開いたように、Ockamは、開発者がIoTイノベーションの鍵を開く支援をします。
OckamがIoT開発者に提供する機能の中で、最も重要なものは何ですか?それは、どのような問題を解決してくれるのでしょう?
開発者はみな,開発のある時点に達すると、自身のIoTデバイスにIDや信頼性、相互運用性を追加する方法を選択する必要に迫られます。昨日までこの選択肢は、次のものに限られていました。
- 何もしない — 極めてに一般的な選択ですが、ボットネットの危険や重大な脆弱性を抱えることになります。
- 独自のエンドツーエンドIoTアーキテクチャを構築する — これは大変な作業で、数百万ドルの費用と特別な知識が必要です。
- プラットフォームベンダのソリューションを購入する — エンドツー^エンドのプラットフォームは実装が複雑で、切り替えコストも高い上に、総合性を損なうようなベンダロックインの可能性もあります。
開発者は今日、Ockam SDKという、よりよい選択肢を手にしました。数行のコードを書くだけで、既存のテクノロジスタックと相互運用性を持った、変更不能でセキュアなIDをデバイスに与えることができるのです。
Ockamでは、変更不能で暗号的にセキュアなデバイスIDの提供に、ブロックチェーンを使用しています。プラットフォームでは,具体的にどのような方法でブロックチェーンが使用されているのか、詳しく説明して頂けますか?ユーザデータのプライバシはどのように確保されているのでしょう?
Ockam自体がブロックチェーンなのではなく、ブロックチェーンはあくまでも、Ocakmが動作する上でのコンポーネントのひとつに過ぎません。ブロックチェーンの最大の特徴はアイデンティティです。Ockamは暗号的にセキュアなIDを使用して、どのIoTデバイスが何のデータを送ったのかを識別します。Ockamのブロックチェーンプロトコルの一部として、IDにはDIDを使用しています。データの変更はすべて、データを送信したデバイスの秘密鍵で署名されていなければなりません。
ユーザデータのプライバシは、データ暗号化とアクセス許可に関して広く使用されているベストプラクティスを使用して処理することが可能です。
この件に関しては、私のブログ記事 "The Nine-Factors of a well tuned IoT network"で詳しく取り上げています。
現在のOckamはGo言語で記述されていますが、その根本的な理由は何だったのでしょう?他の言語をサポートする予定はありますか?
Ockamの基本となるコードベースはGo言語で書かれていいます。ですから、SDKでサポートする最初の言語がGoであったのは、当然の決定でした。近い将来、あらゆる言語をサポートするつもりです。トップに挙げられているのは、C、C++、Pythonです。
安全な相互運用性を実現するために,Ockam SDKは,いくつかの基本的操作をサポートしている。
.register
— ディジタルIDをOckamネットワークに送信するために使用する。.claim
— 信頼できるデータをデバイスから他のデバイスに送信するために使用する。.verify
—.register
または.claim操作で送信された信頼できるデータを,ネットワークから受信するために使用する。
これらのコマンドはGo APIの他,Ockam Networkと対話可能なCLIツールで使用することができる。ツールはGitHubレポジトリからダウンロード可能だ。