zkTLSって何?
一言で言うと「新しいOAuthっぽいもの」(あくまで現状の理解です)。
Webサービスによくある「Xアカウントでログイン」のようなボタンは、XがOAuthと言う仕組みを提供することにより実装可能となる。
このzkTLSを使うと特にサービス提供側が何もしてなくても似たようなことができる。
必要以上に個人情報を保持する必要がないため、昨今の風潮的にも将来性が高い。
具体例
- メルカリでいい評価を持つユーザだけがログインできるシステムを作って、民度のいい取引ができるようにする
- アカウントの有無だけではなく、具体的な閾値証明もできる(?)っぽい。
- LinkedInのデータを参照し、転職サイトに経歴を自動で入力する
- サ終しかけたゲームのユーザを、アイテムなど引き継いだまま別会社の新規ゲームに引っ張る
などが可能(と思っている、あくまで現状の理解です)。
前提知識
TLSとは?
httpsの「s」の部分、詳しくはこの「SSLとTLSとは?」と言う記事がわかりやすい
zkとは?
特定の情報を知っていることを、具体的な事実を明らかにせずに他者に数学的に証明する技術のこと。
ブロックチェーンにおいてはLayer2のロールアップで使われていることが多い。
OAuthとは?
複数のWebサービスを連携して動作させるために使われる仕組み。
「Googleアカウントでログイン」とかでよく使われる。
わざわざサイトごとにユーザの情報登録やパスワード設定などをする必要がないことが利点。
認証時の権限確認を忘れずに。作り手の悪意次第では、二度と元のシステムにもログインできなくなることもある。
なにわともあれやってみた
quick startがあるので、やってみる。
TLSNotaryと言うプロトコルを使っており、一通りの動作を確認できる。
参照画面を載せたかったが、どこから個人情報が漏れるか怖いため、文字のみで解説する。
- Chromeに拡張機能をインストールする
- 必要に応じてproxy設定の追加やwstcpの起動を行う。今回はとりあえず動かしてみたいだけなので省略。
- Notary Serverも同様。事前に用意されているテストサーバを利用する
- XをChromeで開き、リクエスト一覧を「setting」で検索する
- 詳細画面を開き、「Notarize」ボタンを押下する
- 公開したい内容を選択し、「Next」を押下する
- 今回はおそらく言語情報であろう「x-twitter-client-language」を選択してみた
- 公開したい部分以外を隠して、「Notarize」ボタンを押下する
- 「History」から「View」を選択する
5と6の間に2,3分のタイムラグがある。完了すると、無事指定したx-twitter-client-languageの情報を参照することができた、
これでいいのかな。。。。
雰囲気を掴んだら次のステップはここがわかりやすい。
zkTLSプロトコルを使用したアプリケーション開発【Reclaim Protocol編】
Reclaim Protocolを用いたDapps開発の手順について解説
https://www.pontech.dev/post/zktls-app-dev-reclaim-protocol
欲しい情報をブラウザで通信を行うことで取得して、その情報をもとにプラットフォームが準備したコントラクトでverifyをかける流れ。
欲しい情報が通信の中に含まれているか、山のような通信からその情報を見つけることができるかが鍵。
所感
他社のデータを勝手に参照するので、コンプラ意識が高い昨今、どのような状況になるのかわかりかねる。
例えばメルカリが
「うちの通信情報を勝手に証明書にして評価情報を参照している企業がいる!盗人!訴訟!」
とかって言ってくる可能性もゼロではない。
また手軽にヴァンパイアアタック(似たようなサービスを後続でローンチし、メリットを追加してユーザを掻っ攫う)ができるので、例えばメルカリが
「うちのユーザを引っ張ってる!しかも引っ張って欲しくないユーザを優先的に!許せない!最終通告!」
とか言い出す可能性もゼロではない。
あと通信内容の改変(キーの変更)などがあると使えなくなる気がする。その都度修正が必要なのかな。
参考リンク
zkTLSについての考察と期待する理由
TLS通信とゼロ知識証明を組み合わせたzkTLSが、Web2とWeb3をつなぐ革新的な技術として注目されています。現状の課題、ユースケース、採用の可能性を通じて、zkTLSがどのように新しい価値を創出するかを探ります。
https://www.pontech.dev/post/think-about-zktls
zkTLS技術の解説とETH Tokyoハッカソン参加レポート
ETH Tokyoハッカソンで受賞したzkCreditプロジェクトを解説。zkTLSとzkMLを組み合わせ、Web2とWeb3をつなぐ革新的な信用スコアシステムの可能性を探ります。DeFiやゲーム業界での応用例も紹介。
https://www.pontech.dev/post/zktls
zkTLSプロトコルを使用したアプリケーション開発【Reclaim Protocol編】
Reclaim Protocolを用いたDapps開発の手順について解説
https://www.pontech.dev/post/zktls-app-dev-reclaim-protocol
zkTLSプロトコルを使用したアプリケーション開発【zkPass編】
zkPassを用いたDapps開発の手順について解説
https://www.pontech.dev/post/zktls-app-dev-zkpass
SSLとTLSとは?意外に知らないSSLとTLSの違い(簡単編)
SSLの記載と一緒によく見かける『TLS』の正体とは?SSL/TLSについて簡単に分かりやすく説明します。
https://www.idcf.jp/rentalserver/aossl/basic/ssl-tls/