Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fuyutarow/core-program

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

154 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1. ゴール

Core Programはゼロ知識証明の理論と実装の理解を促し、Ethereumエコシステムや実社会にコミットする技術者を養成する学習プログラムです。このプログラムは今年で3回目となり、主催はzk Tokyoが行います。また、Ethereum Foundationのバックアップを受けながら進めていきます。

最終的に参加者の皆さんには成果物を提出していただきます。想定される成果物としては以下のようなものが挙げられます。

  • オリジナルのzk dAppsを実装する
  • zkに関する既存のOSSに貢献する
  • 独自ライブラリを実装する
  • ブログを公開する

また、9月に開催されるETH Tokyoではハッカソンが催されます。Core Programの成果物をこのハッカソンに提出することが奨励されます。 どのような最終成果物を出すかは参加者自身が決めることができます。適宜アンケートや面談を実施し、どのようなものを作りたいか伺うので、各自で目標設定を行なってください。

なお、最終成果物は9/15までに提出していただきますので、期間中に実装できる範囲で計画してください。

2. スケジュール

このプログラムではオンライン学習をベースにオンサイトでの演習やゲストスピーカーによる公演なども予定しています。6週間と短い期間なので、事前にweek0としてゼロ知識証明の理解に必要な数学的基礎を身につけていただくために、教材を用意しております。

オンライン オンサイト ゲストスピーカー
week0(6/30~7/28) 有限体と楕円曲線 なし なし
week1(7/28~8/2) ゼロ知識証明入門 ホワイトボードセッション1 Sorasue
week2(8/4~8/9) Groth16 ホワイトボードセッション2 なし
week3(8/12~8/16) コミットメントスキーム・PLONK ホワイトボードセッション3 Leona
week4(8/18~8/23) zk-STARK ホワイトボードセッション4 なし
week5(8/25~8/30) zkのライブラリやアプリ実装、OSSの紹介 Tornado-cashの実装演習 TBD
week6(9/1~9/6) 成果物の準備期間 ハッカソンアイデアの壁打ち会  なし
extra 反省会・打ち上げ  なし

オンラインの学習・演習は各自オンデマンドに行っていただきます。ホワイトボードセッションはオンサイトで行いますので、必ず現地にお越しください。10:00~16:00を想定していますが、その週の演習内容によって終了時間が前後することを予めご了承ください。

例えばweek1のスケジュールは以下のようになります。

  1. 7/28までに教材が共有される
  2. 7/28~8/1まで自主学習する
  3. 8/1までにオンライン演習を提出する
  4. 8/2にオンサイト演習に取り組む
  5. 8/8までにオンライン演習のレビューが返ってくる

ゲストスピーカによる公演は現在調整中です。日時やオンライン・オンサイトなどの決定は追って連絡いたします。なお、Core ProgramのスケジュールはGoogle Calendarで共有いたします。

3. カリキュラムと学習教材

6週間のうちweek 1 から week 4までは理論、week5, 6は応用にフォーカスします。

学習教材は各自がオンデマンド形式で学べるように、スライドと解説動画を用意しています。教材は作成途中であり、その週の月曜日までには共有します。

スライド 解説動画 ステータス
week0 有限体と楕円曲線 https://youtu.be/4KaWvuNfG6I
week1 ゼロ知識証明入門 https://youtu.be/qG24ys5rkCU
week2 Groth16 https://youtu.be/uYqWn0nk7IE
week3 コミットメントスキーム・PLONK 準備中 🔄 作成中
week4 zk-STARK 準備中 🔄 作成中
week5 zkのライブラリやアプリ実装、OSSの紹介 準備中 🔄 作成中
week6 成果物の準備期間 準備中 -

また、より深く学びたい人や最終成果物のヒント欲しい人に向けて補助教材を作成したので、ご覧ください。

3.1 オンライン演習

各週の理解を促進するためにスライドに演習問題が付随しています。 必ずホワイトボードセッションの前日までに提出してください。 提出された演習問題は各週の担当者が評価し、次の週の金曜日までにレビューを返します。

提出方法は以下のとおりです

  1. このレポジトリをcloneする
  2. 各週のexercises.mdに演習問題の回答を記入する
  3. プルリクエストを作成し、回答を提出する

Markdownでの数式やコードの記述方法はこちらを参考にしてください。 また、回答のレビューはそのPRに対して行いますので、適宜Githubの通知を確認してください。

3.2 ホワイトボードセッション

オンサイトでも演習を行います。これはホワイトボードセッションと呼びます。

オンラインでの演習とは違い、グループでのディスカッションがメインです。議論や図示を用いて参加者どうしの理解度を高めるとともに、参加者同士の交流を促す目的があります。

ホワイトボードセッションのフローは以下のようになります。

  1. 15人の参加者を3グループに分ける
  2. 各グループはホワイトボードを使って学び合いながら演習問題を解く
  3. 最終的にグループとして一つの回答を作成する
  4. 各週の担当者がその場でレビューする

また、グループは毎週シャッフルします。

ホワイトボードセッションのために何か準備する必要ありませんが、その週の学習内容をもとに出題するので、しっかり教材を確認しておいてください。

ちなみに、ホワイトボードセッションはZK Podcastが提供しているコンテンツからインスパイアを受けたものです。もし興味があればこちらもご覧ください。

4. 課題・プロジェクトの提出方法

3のオンライン演習とホワイトボードセッションの課題(提出課題がある場合のみ)はすべて、以下の提出フローに沿って GitHub 上で PR を作成することで提出いただけます。

Note

最終プロジェクトの進め方・提出方法はこちらをご確認ください。

0. リポジトリーのフォークとクローン

このリポジトリーの main ブランチを個人アカウントにフォークし、フォークしたリポジトリーをローカル環境にクローンしましょう。これ以降のステップ1~3では、フォークしたリポジトリーに対して変更・追加を行います。

$ git clone https://github.com/zk-tokyo/core-program.git

Tip

プログラム期間中(i.e., 課題の取り組み中)に、本体のリポジトリーに変更が加わることが多々あります。ローカル環境にリモート環境を追加して、ステップ4の PR 作成前にローカル環境を最新の内容にアップデートしておくことをお勧めします。

# add remote repo as upstream
$ git remote add upstream https://github.com/zk-tokyo/core-program.git
# fetch & merge changes from remote repo
$ git pull upstream

1. ブランチの作成

各週の課題ごとにブランチを作成いただき、各ブランチから main へ向けたPRの作成をもって提出とみなします。ブランチ名は以下のフォーマットに沿って命名してください。

  • オンライン演習: week{N}/exercises/{YOUR_NAME}
  • ホワイトボードセッション: week{N}/whiteboard-sessions/{GROUP_NAME}

例えば、week 0 のオンライン個人演習を提出する際には、week0/exercises/my-name といった名前のブランチを作成します。

2. 個人・グループディレクトリの作成

各週のコンテンツはディレクトリにそれぞれまとまっており、課題の提出も各週のディレクトリ内で完結します。課題の種類に応じて、ディレクトリを作成しましょう。

  • オンライン演習: 各週のサブディレクトリ exercises 配下に個人名(またはユーザー名)でディレクトリを作成する (e.g., week0/exercises/my-name)
  • ホワイトボードセッション: 各週のサブディレクトリ whiteboard-sessions 配下にグループ名でディレクトリを作成する (e.g., week0/whiteboard-sessions/my-group)

3. 課題の進行

上記のステップ0~2で作成したリポジトリー・ブランチ・ディレクトリ内で課題を進めましょう。

4. PRの作成

変更内容をリポジトリーに push し、main ブランチに対して PR を作成しましょう。

Important

  • PR は本体のリポジトリーに対して作成してください。
  • PR を作成する際にテンプレートを選択するメッセージが表示されるので、対象のテンプレートを開き、各テンプレート内の指示にしたがって PR を作成してください。

5. レビュー

PR を作成すると、自動的にその週の担当メンターにレビュー依頼が投げられ、提出物のレビューは PR のレビューという形式で行われます。レビューには1週間前後かかることがあります。

6. PRのマージ

5のレビューコメントが理解でき次第、PR をマージしましょう。コメントに対応してもしなくても問題ありませんが、対応して再びレビュー依頼をかけることで更なるフィードバックの機会が得られます。

5. メンター

メンターとしてCore Programを支えてくれる方々を紹介します。

Discord名 役割 自己紹介
shouki week 0 このプログラムのマネージャーを務めさせていただきます津田と申します。現在はUzumaki.houseを拠点に、VOLE-based ZKの研究・開発や形式検証を使ったEthereumのセキュリティ向上などを考えています。以前はゼロ知識証明を使った秘匿送金プロジェクトやzk-Rollupの開発にも携わっておりました。受講者の皆さんがCore Programの後も活躍できるように全力でサポートさせていただきます。
gohan week 1 & 3 私はZK Core Program 2023をきっかけにZKを学び、MPCについてEthereum Foundation PSEと共同研究zkVMベンチマークについてZKProof7で発表といった研究成果を上げ、現在は近未来暗号研究所ZOMIAで研究と事業を進めています。ZK(SNARK)は、この信頼できない社会に突如として現れた世界を救う魔法です。一流の魔術師になって一緒に世界を救いましょう。
seiya_kobayashi weeks 2 & 4 持続可能性のある次世代のインターネットとそれを取り巻く社会において、ゼロ知識証明をはじめとした現代の暗号技術はその中心的役割を果たすことになると考えています。transformer をAI領域における一つの転換点と捉えると、SNARK は、暗号領域における大きな転換点といえるでしょう。このプログラムでは、主にその転換点以降の暗号学的証明技術について、理論と共にそれらが実社会でどのように応用できるのかを一緒に模索していきましょう。
mameta week 4 1回目のZK Core ProgramをきっかけにzkTokyoの運営に携わり、web3エンジニアとして活動をしてきました。今回は week4 の教材作成のみでの貢献となってしまいますが、少しでもみなさまの学習の助けになれれば幸いです。
bati668 week5 はじめまして、bati668です。本プログラムでは、Week 5の実装演習パートのカリキュラムを担当させていただきました。私自身は、昨年、ゼロ知識証明を用いたプライバシートランザクションシステムの構築に仕事で携わることになり、その準備として昨年のCore Programに参加しました。ゼロ知識証明のプログラミング経験は約1年ですが、ブロックチェーン全体での実装経験は4年ほどあります。また、ブロックチェーン以外にも、Webアプリケーションやモバイルアプリの開発経験が6年ほどあり、幅広い技術領域に対して質問対応可能です。本プログラムはなかなかハードですが、一緒に乗り越えていきましょう。どうぞよろしくお願いします。
yawn week5 yawn と申します。Week5 の circom の基礎を担当させていただきました。昨年の Core Program の参加者で、まだまだ勉強中の身ですが、皆様の学習のお役に立てることがありましたら幸いです。エンジニアコミュニティの UNCHAIN を経て、 HackDays ( DAO ツールの Toban などを開発)や、 Henkaku Community や、 Code for Japan で活動しております。 よろしくお願いいたします!
ラーメンニョッキ教授 week5 ラーメンニョッキ教授です。去年のCore Program参加者です。このプログラムをきっかけに42Tokyoというエンジニア養成機関に入学いたしました。week5,Poseidon Hashを担当しました。深堀り気質な人間なので同じ気質の人がいればdiscordで相談してください。
iYusuke week5 yusuke と申します。Week5 の 教材作成(スライド部分)を担当させていただきました。昨年の Core Program に参加しました。金融機関でWeb3やデジタルアセットなど担当しており、このプログラムには個人的に自己研鑽として参加しています。技術の理解や実装の部分は心もとないですが、昨年から引き続き勉強を続けています。 よろしくお願いいたします!
sheagrief その他 初めまして、sheagriefです。私は2年前のCore Programに参加し、それ以降Web3領域に携わっています。普段は大学院で数学の研究を行う傍ら、ZKやMPCに特に興味を持っており、PSEのグラントなどを通じて研究開発などもしています。教材作成は今回行っていませんが、その他の面で参加者の皆さんをサポートできればと思います。

教材について疑問があればDiscordの#questionにて気軽に質問してください。ただし、その週の担当者にメンションするようにお願いします。 事務的な質問はshoukiにメンションしてください。プライベートな内容以外はパブリックなチャンネルで自由に発言していただいて構いません。

6. QA

Q. プログラムを修了するための条件はありますか? A. 特にありません。ただし、6週間のカリキュラムを通して技術力を培うように構成しているので、毎週の演習問題と最終成果物は必ず提出してください
Q. オンサイトの参加は必須ですか? A. はい。遠方の方や特別な理由がない限り毎週現地に赴いていただきます。電車の都合などで遅刻する場合は必ず連絡をしてください。
Q. 演習問題でChat GPTなどAI ツールを使っても良いですか? A. はい。
Q. 最終成果物を誰かと共同で作成することは可能ですか? A. 可能です。メンターとしてもチーム形成を促したいと思います。
Q. 最終成果物は実装以外でも大丈夫ですか? A. 基本的に実装を想定しています
Q. 過去のCore Programについて教えてください https://github.com/ethereum/zket-core-program
Q. ハッカソンの参加は必須ですか?; いいえ。
Q. zk Tokyoとは?ZKETとは?; A. zk Tokyoは日本のzkコミュニティです。不定期でLT会などのイベントを主催しています。ZKET(zk education team)はEthereum財団に所属するゼロ知識証明の発展と教育の促進を目的としたチームです。

About

2025 core program

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Solidity 62.4%
  • JavaScript 35.1%
  • Python 1.5%
  • Circom 0.5%
  • Shell 0.3%
  • Makefile 0.1%
  • Other 0.1%