5分でDAppとDIDの概念実証を構築

著者: Matt McKinney(ArcBlock マーケティング&事業開発ディレクター)
ArcBlockは、プロダクトマネージャー、ユーザー、開発者の誰もが、分散型アイデンティティや取引関連トランザクションの利用を含むさまざまなDAppシナリオの概念実証(POC)を簡単かつ迅速に構築できる開発者ツール、DApps Workshopをリリースしました。
概念実証
すでに多くの方がご存じのとおり、POC(Techopediaの定義による)とは、特定の概念や理論が実際のアプリケーションで機能する可能性を検証するための実演です。したがってPOCは実現可能性を確認するためのプロトタイプであり、アプリそのものを構築するために必要な実際の成果物ではありません。
現在、ブロックチェーンはまだ成熟した業界ではなく、急速に進化しています。ここ数年で、ブロックチェーン1.0、2.0、3.0が登場しました。ArcBlockのような企業や、Cosmos、Polkadotのように相互接続されたブロックチェーンネットワークは、3.0を超える次世代の機能を構築しているとさえ言えるでしょう。この急速な進化を背景に、多くの企業は、アプリを迅速に動かすことを重視しながら、大規模にDAppを構築するためのツールに注力しています。
分散型アプリケーションとテスト
しかし、どの開発者も口をそろえるように、テストとPOCの構築は、あらゆるアプリケーションの成功と使いやすさに不可欠です。とりわけ、実運用でまだ十分に検証されていない新技術を統合・採用する場合にはなおさらです。また、テストを行うには、開発者がPOCを構築し、本来の中核機能ではない作業に時間を費やす必要があります。その好例が分散型アイデンティティの利用です。最近ではSovrin、Uport、Microsoft、ArcBlockが分散型アイデンティティについて、その潜在的な利点やユーザーへの影響を含む最新情報を発信しています。しかし、これらのサービスはすべてW3CまたはCCGの同じ設計仕様を採用しているものの、共通点はそこまでです。歴史的に、異なるアイデンティティソリューションを実装し、実際に機能することを検証するには、ある程度の労力が必要でした。
DApps Workshopの紹介
そこで私たちはDApps Workshopを開発しました。DAppと分散型アイデンティティのPOCを構築する最も簡単な方法です。

DApps Workshopは、開発者やプロダクトマネージャーが分散型アプリケーションのPOCをすばやく作成・テストできるツールです。さまざまな種類のトランザクションワークフローやDIDベースの認証要件を作成してテストでき、以下をサポートします。
- 取引関連のトランザクション
- 複数トランザクションのシナリオを含む、サポート対象のすべてのTxタイプ向けに事前構築されたワークフロー、プロセス、ルール
- アイデンティティタイプ、DSA(デジタル署名アルゴリズム)、ハッシュ関数を含むDIDベースの認証
- 設定可能なメタデータ
- プロフィールや同意事項を含む必須クレームの定義
- ABT Walletによるモバイル認証
説明はこのくらいにして、実際にPOCを構築してみましょう。
POCを構築する — DAppにDIDベースの認証を追加
DApps Workshopを使えば、誰でもDIDベースの認証プロトコルによる認証プロセスを構築し、テストできます。たとえば、私の分散型アイデンティティウォレット(ABT Wallet)と、Forge Frameworkで構築した新しいDAppが、どのように相互作用するかを確認したいとします。
ステップ1 — DIDを生成する
認証では、さまざまなDIDタイプを指定できる「Application DID」を作成するまでに3つのステップがあります。

ご覧のとおり、アプリケーションはアカウント、ノード、デバイスなど、さまざまなDIDタイプを表すことができます。ウェブサイト、アプリ、IoT、ライセンスなど、分散型アイデンティティのユースケースは数多くあるため、これは重要です。
次に、デジタル署名アルゴリズムを選択できます。これは、署名を作成する望ましい手法としてNISTが最初に実装したデジタル署名の規格です。このドロップダウンでは、複数の選択肢を利用できます。

この例では、広く使われている規格ed25519を使用します。(詳しく知りたい方は、これらの規格についてオンラインに多くの資料があります)
タイプとDSAアルゴリズムを設定したので、ハッシュ関数を確認しましょう。ハッシュ関数は、任意のサイズのデータを固定サイズの値に変換するために使用され、逆変換が非常に困難な一方向関数です。

このPOCでは、2015年に公開された現行のNIST規格であるSHA3を選択します。ここで「Save & Continue」をクリックします。
ステップ2 — メタデータを設定する
このステップでは、名前、説明、著作権など、アプリケーションに関する詳細を入力できます。特に注目すべき項目の一つが「publisher」テキストボックスで、前のセクションで生成したDIDを入力します。この例ではABT Walletのディープリンクパスも使用していますが、適切なリンクであれば何でも指定できます。

ステップ3 — クレームを設定する
「認証」を設定する最後のステップはクレームです。これは、アプリケーションとやり取りするために必要なあらゆるクレームを指します。たとえば、ユーザーに氏名、メールアドレス、電話番号などの共有を求めるかどうかです。要件に応じて、さらに多くの項目を追加できます。
さらに、「required agreements」のセクションがあります。この領域では、サービスの利用に必要な各種ポリシーや要件への同意をユーザーに求めることができます。この例では、アプリケーションへの登録時に一般的に求められるデータポリシーと利用規約の項目を用意しています。

作業内容を保存しましょう。これでDIDを含むアプリケーションの作成が完了し、Deep Link、Application DID、Application Public Key、Application Secret Keyといった重要なデータが表示されます。実際に試してみましょう。ABT WalletでQRコードをスキャンしてログインします。

成功!
分散型ウォレットを使い、分散型アイデンティティでアプリケーションにログインできました。ここからは、アプリケーションを「編集」するだけでほかの属性を簡単にテストできます。削除して新しいアプリケーションを作成することもできます。実に簡単です。
DApps Workshopについて詳しく知りたい方はウェブサイトをご覧ください。また、独自のDApp構築を始めたい方は、DAppとブロックチェーンを構築する最も簡単な方法であるForge Blockchain Application Frameworkをご覧ください。
このページに関わるもの
製品
-
Forge
sunset
ノード、データ層、クライアントを別々に組み立てずにチェーンアプリケーションを構築するための SDK とツールチェーン。これが後の ArcBlock Chain になりました。
用語
-
Decentralization
単一の性質ではなく、部分ごとに問うべき問いです。誰がこれを変更できるか、誰が差し止められるか、そして後から誰が検証できるか。多くのシステムは一部の要素だけが分散的です。
-
ブロックチェーン
記録を暗号学的に結び付け、共通の検証・合意形成ルールに従って取引履歴を確定する分散台帳。