こんにちは、0xMach(@0xMach)です。今回はZKバッジの発行を可能にするプロトコル、Sismoを紹介します。
目次
Sismoとは?
Sismoは、ZKバッジ(譲渡不可のトークンまたは SBT) の発行を監視するモジュラー認証プロトコルです。ZKバッジによりユーザーはプライバシーを保護しながら共有することに同意したものだけを証明することができます。
少しイメージが湧きにくいと思いますので、コアチームメンバー:dhadrien氏の以下のツイートを参考に具体例を挙げます。
例:エアドロップを証明する
まずは上の図をご覧ください。ユーザーが多数のアカウントを Sismo Vault にインポートすると、Connect With Sismo を介してアプリに接続し、選択した正確な ID を取得できます。
この仕組みにより、例えば受け取ったウォレットを明らかにせずに、100,000 ドルの $OPエアドロップを受け取ったことを証明できます。 $OPエアドロ資格を満たしているプライベートなウォレット (0xanon.eth) を使用してバッジを「獲得」できましたが、パブリックなウォレット (dhadrien.eth) を使用してバッジを「Mint」することができました。
例:人間が検証したことを証明する
もう一つの例として、PoH(プルーフ・オブ・ヒューマニティ)認証済みのパブリックなウォレット (dhadrien.eth)を、リンクせずにプライベートなウォレット (0xanon.eth)を使用して「人間が検証した」ZKバッジを作成できます。
プライバシー課題解決の重要性
vitalik氏もアイデンティティ・エコシステム(ENS、SIWE、PoH、POAPs、SBTs)に期待を寄せている一方で、プライバシーが今後の大きな課題であると述べています。また、この問題を解決する例としてSismoを挙げています。
このエコシステムの今後の大きな課題は、プライバシーです。現状では、大量の情報をオンチェーンに置くことになりますが、これは「そうでなくなるまで大丈夫」なことで、いずれはより多くの人にとって、完全にリスクとまではいかなくても、味気ないものになっていくでしょう。オンチェーンとオフチェーンの情報を組み合わせたり、ZK-SNARKを多用することでこの問題を解決する方法もありますが、これは実際に取り組む必要があるもので、SismoやHeyAnonなどのプロジェクトはその初期段階と言えるでしょう。スケーリングも課題ですが、スケーリングはロールアップとおそらくバリディウムで汎用的に解決できます。プライバシーは、アプリケーションごとに意図的に取り組まなければなりません。
https://vitalik.ca/general/2022/12/05/excited.html
このように、スケーリングの課題解決とは違い、プライバシーの問題を解決するにはアプリケーション毎に取り組む必要があると言及しています。
トークン発行・エアドロップについて
トークン発行の有無、エアドロップの有無は公表されていません。SISMOの公式サイトに求人情報があり、福利厚生欄にインセンティブとして(market salary + tokens)という記述があります。これにより、トークン発行あるのでは?と言われています。
Sismoチュートリアル
ここからはSismoのチュートリアルを紹介します。現時点でできることは以下の5点です。
ポイント
- Sismo Governanceによって作成されたZKバッジを獲得する+投票
- サードパーティーによって作成されたZKバッジを獲得する
- 自分でZKバッジを作る
- Guildタスク
- Sismo app Feedbackを提出する
それでは順番に見ていきましょう。
Sismo Governanceによって作成されたZKバッジを獲得する+投票
ZKバッジにはSismo Governance(公式)によって作成されたものとサードパーティーによって作成されたものがあります。まずは公式のものをゲットしておきたいですね。
公式サイト(https://app.sismo.io/)から、「Curated by Sismo Governance」をアクティブにすると公式のものに絞ることができます。
例えばGitcoin第15ラウンドを寄付した場合は公式バッジをゲットすることができます。また、「Sismo Contributor ZK Badge」は投票権となっているため、とても重要です。このバッジは貢献度に応じて3つのレベルで構成されています。
Sismo Contributor ZK Badge
- レベル1:Sismoアプリ(非推奨のPlaygroundプロトコルではありません)を使用して、Polygon(他のネットワークは近日中に追加予定)で少なくとも1つのバッジをMintした人
→提案ごとに 1 投票ポイント を得ることができます。 - レベル2:Proof of Humanity ZK Badge、Ethereum Power Users ZK Badge、ENS Supporters ZK Badge、Sismo Contribution POAPs(Level 2)のいずれかを持っていること。おそらくProof of Humanity ZK Badgeが一番簡単。
→提案ごとに 50投票ポイント を得ることができます。 - レベル3:Sismo Contribution POAPs(Level 3)を持っていること(かなりのプロジェクト貢献が必要)
→提案ごとに 500投票ポイント を得ることができます。
なお、Sismo Contributor ZKバッジへの投票権の割り当て、レベル、資格規定は将来的にSismo Governanceによって変更される可能性があります。
「Sismo Contributor ZK Badge」が獲得出来たら、定期的に投票を行っておきましょう。
snapshotリンク:https://snapshot.org/#/sismo.eth
(参考)自分のZKバッジレベルを確認する方法
1、Sismo Vaultに接続する(https://app.sismo.io/)
2、Sismo Contributor ZK Badgeをクリックして、モーダルの一番下にある自分のレベルを確認する
サードパーティーによって作成されたZKバッジを獲得する
続いてサードパーティーによって作成されたZKバッジを獲得しましょう。例えば、Aztecを使用したユーザーにAztec User ZK Badge付与されるキャンペーンがあります。これはZKPayが発行しているサードパーティーのZKバッジになります。下記ツイートの手順を参考に欲しい方は取得しておきましょう。
自分でZKバッジを作る
実は一般ユーザーはスマートコントラクトについて知らなくても、独自のバッジをデザインすることができます。 sismo factoryでは、ユーザーが簡単にバッジをデザインし、デプロイまでできるようなページになっています。
1、SISMO Factoryページへ飛ぶ(https://factory.sismo.io/)
2、Name、Descriptionを埋める
3、次に「Open SVG editor」をクリックしてZKバッジの外観をデザインします。または、「Upload .svg」をクリックして、Sismoのスタイル ガイドラインに準拠した既存のファイルをアップロードすることもできます。デザインが決まったら「Save SVG and continue」をクリック。
4、ZKバッジが設計されたので、このZKバッジを獲得するための条件を設定する必要があります。今回は私のlensアカウント「0xmach.lens」のフォローを条件として設定してみました。「Add eligible accounts」をクリックして下図のように進めます。
なお、他にも例えばSismo Contributor ZK Badge ホルダーがMach Frens ZK BadgeをMIntできるようにする、といったことも設定することができます。
5、ZKバッジの条件を設定したら、更新頻度を選択できます。Mach Frens ZK Badge の場合、ドロップダウンメニューから「Weekly」を選択します。これは、バッジの作成後にlensで私をフォローしているユーザーは、毎週更新された後でも資格を得ることができることを意味します。
6、次に資格の説明を記載します。資格の説明では、ユーザーがバッジを作成するために満たさなければならない基準を説明しています。要約と詳細の2つ記載します。
7、続いて、TwitterとGitHubアカウント、および公開Webサイトをバッジにリンクさせることができます。
8、ここまで必要な情報をすべて入力したら、「Request to deploy」をクリックします。これにより、バッジを配置するチェーンを選択し、Sismoのrelayerに資金を提供し、バッジの配置を要求するためのウィンドウが表示されます。今回はtestnets (default)+Polygonを選択しました。
また、作成できるMach Frens ZKバッジの最大数を選択する必要があります。今回は「100」にスライダーを調整しました。ここまで設定できたら、「Deposit」をクリックします。(今回は0.0144ETHかかりました)
プル リクエストを送信すると、48 時間以内に Sismoコアチームによって確認されます。認証を受けるには、バッジが次の条件を満たしている必要があります。
ポイント
- 英語で書かれていること
- わいせつなコンテンツを含まない
- 著作権で保護された素材を含まない
- 他人になりすましたり、その他の悪意を持ったりしない
バッジが検証に合格しなかった場合、relayerに支払った料金はすべて返金されます。バッジが正常にデプロイされると、app.sismo.ioで利用できるようになります。
Guildタスク
・Guildリンクへ飛ぶ(https://guild.xyz/sismo)
基本的には「~Budge」を持っていることがロールの条件になっているため、今後も追加される公式バッジは獲得しておきたいところですね。SBTのため、後から買ってGuild条件クリアといったことができないのもポイントです。
Sismo app Feedbackを提出する
・Formリンクへ飛ぶ(こちら)
余裕があれば実際に触ってみた感想をフィードバックしておきましょう。
まとめ
いかがだったでしょうか。ZKの技術を利用したプライバシー保護、とりわけ自分で選択した資格の証明を可能にするSISMOは個人的にもかなり面白いプロジェクトだなと今回改めて感じました。今後も様々な機能追加を予定しているみたいなので楽しみです。