Media
メディア詳細

卒論研究が、開発に活きる。Gaudiyの開発を加速する学生インターンの挑戦!

今回はGaudiyのエンジニアとして、コミュニティアプリや『Gaudiy DID-System』の開発で活躍中のインターンの椿くん(@mikr29028944)にお話を伺いました。

写真:フロント&バックエンドエンジニア 椿 京介(@mikr29028944

大学在学中。最新のテクノロジーに興味を持ちプログラムを独学する。ブロックチェーンの思想に共感してイベントや勉強会にも参加していく中でGaudiy代表の石川の誘いもあり、Gaudiyにインターンとして参画。現在はコミュニティアプリや『Gaudiy DID-System』のフロントエンドからバックエンドまで幅広く開発に携わっている。ちなみに最近はじめた趣味は岩盤浴。

 

卒論テーマを決めたブロックチェーン企業でのインターン生活

ーーまずは簡単に自己紹介をお願いします。
椿京介、大学4年です。

東京理科大学の情報科学科で数理情報と計算機科学を専攻していて、研究室では離散数学と暗号理論を学んでいます。今は4年なので卒論作成を急ピッチに進めていて『zk-SNARKs』というゼロ知識証明を使った技術を卒論のテーマにしてます。

『zk-SNARKs』はブロックチェーンのプライバシー問題におけるトランザクションの秘匿化などの技術として使われています。

ーーブロックチェーンにはいつ頃から興味を持っていたのですか?

ブロックチェーンに興味を持ったのは去年の8月ぐらいですかね。

最初は単純に新しい技術のトレンドを追っていて、その中でブロックチェーンを知ったのですが、Web3.0の文脈にも通じる分散的な思想だったりと、技術だけでなくブロックチェーンが実現する世界観みたいなものにも興味を持って情報を追いかけるようにしましたね。

ーーその頃から卒論のテーマは決まっていましたか?

いえ、まだ決めてはないですね。

卒論のテーマを決めたのは今年の6月ぐらいで、Gaudiyでインターンをはじめてからになります。

ーーGaudiyのインターンは、どのような経緯ではじめることになったのですか?

実はインターンの前からブロックチェーンは、独学で勉強したり、イベントやセミナー、勉強会に頻繁に参加していたのですが、そんな時に代表の石川さんからDMで連絡がありインターンの話をもらったのがはじまりですね。

もともとインターンにも興味があり、ブロックチェーンを実際に使っている事業には携わりたいと思っていたのと、Gaudiyではコミュニティアプリが開発され既に運用されていたので、Gaudiyでインターンをしようと決めました。今年の2月頃の話です。

インターンでは、もともとGoやPythonなどのプログラミングを独学でやっていたこともあり、早い段階からプロダクトの開発を携わらせてもらえました。簡単ところから任されましたが、最初なので正直大変でした(笑)。

ただ、インターン相手にも一人のエンジニアとして任せてもらえたのはとても嬉しかったです。インターンをはじめて10ヶ月になりますが、Gaudiyはインターンと社員の垣根がないと感じました。手を挙げればコアな開発でも任せてもらえます。

ーー責任重大じゃないですか!?

そういわれると責任重大ですね。

Gaudiyの開発はハイエンドが技術を採用しているのと、プロダクトもUI・UXなどの設計もかなり深く考えられているので、どうしても自分一人では解決できないところもあります。ですが、先輩エンジニアの方々がペアプロやレビューなどでサポートしてくれたり、また影響範囲が大きく難しい問題が発生した時は、ホワイトボード持ってきてみんなで話し合うようなこともありましたので、一人で抱え込むようなこともなくチャレンジすることができました。そういう意味では、Gaudiyは悩んでいたり、困っている人を助けるカルチャーが根付いていると思います。

ーーそんなインターン生活の中で、卒論テーマはどのように決まったのですか?

そうですね。プロダクト開発に携わるようになってから、独学してた時よりもブロックチェーンへの興味が深まりブロックチェーンの関連技術やサービスの情報を追いかけるようになりました。

ちょうどブロックチェーンの透明性、非改竄性などの特徴を活かした概念やプロダクトが世の中にも出始めていた頃に、企業間の機密情報共有などブロックチェーンを使ってプライバシー保護をどう担保するのかを調べていたのですが、その時に『zk-SNARKs』というゼロ知識証明の技術を知り、研究室でも暗号理論を学んでいたので、この『zk-SNARKs』を卒論のテーマにしようと決めました。

ーービビッと運命を感じてしまったわけですね。

あ、はい…

ーー知らない人もいると思うので、ゼロ知識証明を簡単に説明してもらっても良いですか。

はい、簡単に説明できるか自信ありませんが…

ゼロ知識証明とは、証明者が検証者に対して、ある情報が真であることを、それが真であること以外の情報を明らかにせずに証明できる手法のことです。

例えば、二十歳以上の女性限定のイベントが開催されるとして、そのイベントに参加するには運転免許証など身分を証明できる個人情報を提示する条件を満たしていることを証明する必要がありますが、住所など他人に伝えたくない情報も含まれています。ゼロ知識証明は、このような個人情報などの秘密にしたい情報を提示せずに条件を満たしていることを証明する手段です。

・・・分かりましたか?

ーーはい。イメージできましたが、それがどうブロックチェーンのプライバシー保護で使われるのかを教えてください。

トランザクションデータの秘匿化と証明の検証に使用されています。

ブロックチェーンのトランザクションデータは公開されているのでプライバシーがありません。トランザクションデータを暗号化してしまうとプライバシーは保護されますが、暗号化してしまうとデータの正当性を証明ができなくなるので、正当性の証明にゼロ知識証明を使います。

またイーサリアムのスケーリング問題のソリューションとしても検討されていて、複数のトランザクションを1つのトランザクションに集約させて処理する『zk-Rollups』という技術でも、トランザクションの検証にゼロ知識証明の『zk-SNARKs』が使われます。

また『zk-SNARKs』についてはZennでまとめていますので、興味がありましたらそちらをご覧ください。

(参照)zk-SNARKsの理論

 

卒論研究が開発業務に活きる!

ーーゼロ知識証明の『zk-SNARKs』を卒論テーマにしたことで、逆にインターンでの仕事で活かせたことはありますか?

そうですね。直近の話になりますが、先日発表した『Gaudiy DID-System』の開発では、大規模IPのコミュニティ運営で扱う情報が膨大かつ機密性が高く、秘匿の部分が非常に重要になるので、卒論で調べた内容は役に立ちました。

具体的には、Verifiable CredentialsやVerifiable Presentationのアーキテクチャ設計において、Verifiable Credentialsの検証にゼロ知識証明を使うか検討していたため、そこで卒論の内容がとても役立ちましたし、チームのゼロ知識証明の理解を深めてもらうために勉強会を開いて解説したりもしましたね。

ーーVerifiable CredentialsとVerifiable Presentationとは?

Verifiable CredentialsとVerifiable Presentationを簡単に説明すると、Verifiable Credentialsは、運転免許証や卒業証明書のような個人に属する機密情報をオンラインで検証できるようにしたデジタル証明書です。Verifiable Presentationは、そのVerifiable Credentialsを複数まとめて検証できるようにしたものです。Verifiable CredentialsについてもZennブログでもまとめていますのでご覧ください。

ーー今後どのようなことにチャレンジしていきたいと考えていますか?

はい、今まさに開発している『Gaudiy DID-System』に関連するブロックチェーンや秘匿、暗号などの知識や技術は磨いていきたいのと、開発したプロダクトが実際にユーザーやクライアントに使ってもらえないと意味がないので、そのためにもUXやマーケティング、ビジネスに関わるスキルも高めていきたいです。(了)

tsubaki kyosukeの記事一覧