はじめに
gm Tokyo pic.twitter.com/HHGNboYUNr
— Worldcoin (@worldcoin) July 24, 2023
ChatGPTで有名なサム・アルトマン手掛ける仮想通貨、Worldcoinが7/24にリリースされました。
WorldcoinはAI時代のユニバーサルベーシックインカム(UBI)を目指し、虹彩認証によって発行されるユニークなID(World ID)を持つことが特徴的です。
現在、多くのパブリックブロックチェーンでは、鍵ペア生成によるID発行方式を採用していますが、一人のユーザーが複数のアカウントを作成できるため、例えば匿名投票のような用途には適用できませんでした。一方、World IDは一人一人の人間に紐づくIDを保証するため、そのような用途にも利用することができ、新たな価値創出が期待されます。
本記事ではWorld IDの適用可能性を探るため、World ID連携アプリのチュートリアル内容を紹介します。
World ID連携アプリのチュートリアル
1. Developer Portalへのサインイン
まずは、World IDのDeveloper Portalへサインインします。ここで、認証済みのWorld IDが必要となります。つまり、虹彩認証を提供するOrbs(ボウリングボール大の銀色の専用機器)のある場所に行って認証を受ける必要があります。2023年7月28日現在、予約枠がすぐに埋まるため認証は困難な状況です。(7/30追記: 電話番号の登録のみでサインインできるかも。)
2. 新規アプリの作成
次に新規アプリを作成します。アプリ名と説明文を入力した上で、環境をStaging/Productionから選択し、さらにActionの送信先をCloud/On-chainから選択します。Actionとは、認証済ユーザーから受け付けるコマンドのようなものです。今回はテスト目的なので、環境をStaging、Actionの送信先をCloudとしました。
3. Actionの生成
今回は投票アプリなので、投票に相当するActionを作成します。
Create New Action
ボタンを押し、
Actionの名前、説明文、識別子を入れます。Create New Actionボタンで、Actionが作成されます。
4. フロントエンドアプリの作成
次にUIとなるアプリを作成します。GitHubにあるテンプレートをクローンし、環境変数を編集します。
$ git clone https://github.com/worldcoin/world-id-cloud-template
$ cd world-id-cloud-template
$ cp .env.example .env.local
$ vim .env.local
下記のように、App IDとAction識別子を修正します。
UIアプリを起動します。フレームワークはnext.jsが用いられています。
$ yarn dev
5. アプリの動作確認
ブラウザからlocalhost:3000
にアクセスすると、下記のような画面が表示されます。
Verify with World
ボタンを押すとQRが表示されます。
Production版では、スマホアプリであるWorld AppでQRコードを読み取って実際に認証しますが、テスト版では、シミュレーターを使用します。QRをクリックしてアドレスをコピーし、シミュレーターに読み込ませます。シミュレーターの画面遷移は下記のようになります。
無事に認証が通ると、World IDを用いたゼロ知識証明が生成され、匿名投票のActionが実行されます。
処理の流れは下記の通りです。
投票結果はdeveloper portal上で確認することができ、投票数を示すUnique personsが1になっています。誰が投票したかを秘匿化しつつ、確かに人間が投票したことを証明できることが、World IDの面白いポイントです。
チュートリアルは以上になります。
さいごに
今回はdeveloper portal上で投票結果を確認しましたが、Actionの送信先をOn-chainにすることで、Ethereumプロトコル上で動くスマートコントラクトと連携でき、さらに非中央集権的なアプリを実現することができます。
さらに、ID発行は現在のところ中央集権的ですが、虹彩認証がより普及して一般化すれば、非中央集権的なID管理が可能になるかもしれません。
World IDは非中央集権における一人一個のID付与という新たな領域を開拓しており、その可能性は計り知れないです。これからも注目していきます。
P.S.
関連記事を貼っておきます。