LoginSignup
2
0

Worldcoin, World ID: 非中央集権型IDの可能性

Last updated at Posted at 2023-07-27

はじめに

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追記: 電話番号の登録のみでサインインできるかも。)

サインインに成功すると下記のような画面になります。
create new app

2. 新規アプリの作成

次に新規アプリを作成します。アプリ名と説明文を入力した上で、環境をStaging/Productionから選択し、さらにActionの送信先をCloud/On-chainから選択します。Actionとは、認証済ユーザーから受け付けるコマンドのようなものです。今回はテスト目的なので、環境をStaging、Actionの送信先をCloudとしました。
create new app

3. Actionの生成

今回は投票アプリなので、投票に相当するActionを作成します。
Screenshot 2023-07-28 at 2.36.42.jpg
Create New Actionボタンを押し、
create new app

Actionの名前、説明文、識別子を入れます。Create New Actionボタンで、Actionが作成されます。
Screenshot 2023-07-28 at 2.36.59.jpg

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識別子を修正します。
Screenshot 2023-07-28 at 2.39.46.jpg

UIアプリを起動します。フレームワークはnext.jsが用いられています。

$ yarn dev

5. アプリの動作確認

ブラウザからlocalhost:3000にアクセスすると、下記のような画面が表示されます。
app screen

Verify with Worldボタンを押すとQRが表示されます。
QR

Production版では、スマホアプリであるWorld AppでQRコードを読み取って実際に認証しますが、テスト版では、シミュレーターを使用します。QRをクリックしてアドレスをコピーし、シミュレーターに読み込ませます。シミュレーターの画面遷移は下記のようになります。
simulator
simulator
simulator
simulator

無事に認証が通ると、World IDを用いたゼロ知識証明が生成され、匿名投票のActionが実行されます。
処理の流れは下記の通りです。
Screenshot 2023-07-28 at 2.30.26.jpg

投票結果はdeveloper portal上で確認することができ、投票数を示すUnique personsが1になっています。誰が投票したかを秘匿化しつつ、確かに人間が投票したことを証明できることが、World IDの面白いポイントです。
Screenshot 2023-07-28 at 2.46.49.jpg

チュートリアルは以上になります。

さいごに

今回はdeveloper portal上で投票結果を確認しましたが、Actionの送信先をOn-chainにすることで、Ethereumプロトコル上で動くスマートコントラクトと連携でき、さらに非中央集権的なアプリを実現することができます。

さらに、ID発行は現在のところ中央集権的ですが、虹彩認証がより普及して一般化すれば、非中央集権的なID管理が可能になるかもしれません。

World IDは非中央集権における一人一個のID付与という新たな領域を開拓しており、その可能性は計り知れないです。これからも注目していきます。

P.S.

関連記事を貼っておきます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0