FUJITA's BlockSpace 24/10-4th week
急に寒くなってきたけど、なかなか晴れた!って日がないので、出してきた掛け布団を干すことができず、震えながらまだ毛布だけで頑張って寝ているFUJITAです。
おはようございます。眠いです。
今週はTLS Nortaryについて軽く触れていきます。
TLS Nortary
こちら、今度のETH Globalで何かプロジェクトを作る際にヒントにならないかと思い、先々週のもくもく会の際にチュートリアルなどを触って調査をしておりました。
簡単に言うと、このTLS Nortaryを介して、どこかのwebサーバーからTLS経由で取得してきた情報が正しいものであるということを証明してくれる仕組みになっています。
TLSとはナンジャ?という方はこちらどうぞ
https://www.cloudflare.com/ja-jp/learning/ssl/transport-layer-security-tls/
もっと簡単に言うと、webページでサイトを運営しているサーバーから帰ってきた情報が本当にそのサーバーから来ていて、送られてきた情報が改竄されていないことをゼロ知識証明を介して証明するって感じのものです。
チュートリアルの内容では、ゼロ知識証明を用いてTwitterのアカウント保有者であることを証明したり、DiscordのDMのやり取りの内容を証明したりすることができるようになっています。
Twitterのマイページを開ける人は、そのTwitterのアカウント保有者であることを証明できるし、fitbitなどスマートウォッチから得られたデータを管理しているマイページを開ける人は、自分がどれくらい毎日運動しているかを証明することができるようになります。
もちろん、そのデータ自体が本当であるかはそれぞれデータを保存しているサーバーを信頼することになりますが、データの出所と取得したデータがサーバーのデータと一致しているかどうかは証明できるわけです。
公式のChrome拡張が存在していて、そこに必要なプラグインを追加すれば、実質どんなデータもゼロ知識証明で利用することができるようです。
公式が用意しているサンプルのプラグインをカスタムして、実際にChrome拡張に追加しようとしたのですが、うまく追加されないので、公式Discordにて質問してみたところ、普通のChrome拡張の小さいウィンドウのサイズでの操作だと何故かプラグインの追加の動作をした際にウィンドウが都度消えちゃってうまく追加できない場合があるから、タブとしてChrome拡張を開いて、そこからプラグインの追加を行なってくれと指示され、その通りにしたら本当に追加できました👍
以下のような感じ。2個目のTwitter Profileが追加したプラグインです。
これらプラグインのサンプル実装の中身を見てみると、シンプルな130行ぐらいのjsファイルでできていて、基本的には
- データを取得するサイトへの移動
- 必要なHTTPリクエストの作成とその実行
- レスポンスからデータを取り出す
- それをゼロ知識証明のプルーフを作成できる形に整える
と言うプロセスを経ていることがわかりました。
Chrome拡張でのプルーフの生成はローカルで行なっているようで、少し時間がかかる印象がありましたが、これらの技術が一般的になれば、OAuthなどの認証の仕組みもよりシンプルにすることができますし、どこかがサーバーが認証情報を管理していなくても分散的に認証ができたりするのではないかなと思わされました。
なかなか面白いので、今後もこの分野の発展に注目しようと思います。
とりあえずはETH Globalのアイデアをもっと練らないと。。。
来週のnoteでは、titania researchのadachiさんが共有してくださった、uniswapのrelayerをやるためのacross-relayer-templateを触ったので、それについて簡単に共有しようと思います。
楽しくやっていきましょう〜
ではまた!
参考
ぽんたさんがZennで調査をまとめてくれてるもの