ZK 교육 후기

2025. 10. 6. 19:30·개발/BlockChain
728x90
반응형

2025.06.28 ~ 2025.08.02 기간에 이더리움 재단에서 주관한 ZK 교육을 듣게된 후기를 작성한다.

교육은 매주 토요일 판교에서 오프라인으로 진행되었고 매주 리서치한 자료를 발표한걸 듣거나 ZK 관련된 분야의 현직자들의 연사를 들을 수 있었다.

1. 계기

블록체인쪽으로 커리어를 전향한건 25년 5월부터이다.

정말 기본적인 것도 모르는게 많았고 블록체인쪽 기술은 너무 많고 새롭게 느껴져서 재밌었다.

그러던중 지인의 소개로 해당 교육을 알게되었다.

ZK 라는걸 아예 모르고 있었고 찾아봤는데 영지식증명이라는 이름 자체가 흥미로웠다.

다른 사람과 함께하면 그만큼 동기부여도 될 것 같았고 다양한 인사이트를 얻을수 있을거 같아 주저없이 신청했다.

2. 입문

ZK 교육을 신청하고 사전과제로 암호학과 관련된 내용들을 사전습득 해오는게 과제였다.

대칭키, 비대칭키, 타원곡선, 이산로그 등 블록체인에서 밀접하게 쓰이는 암호학이 주였다.

아예 모르는 내용들은 아니었지만 자세히 들여다 본적은 없었던 주제들이었고 오랜만에 학문적으로 접근한다는게 흥미로웠다.

첫날은 사전과제들을 발표하는 자리가 만들어졌고 다른사람들의 수준이 너무 높아 놀랐다.

ZK에 대한 간단한 개념과 리서치팀, 빌더팀으로 나누어 진행한다고 하여 빌더팀으로 지원했다.

3. 벽

첫주차를 끝나고 ZK 개념을 참고하라고 몇가지 자료를 받았다.

PLONK paper: https://eprint.iacr.org/2019/953.pdf

ZK MOOC: https://www.youtube.com/watch?v=A0oZVEXav24

튜토리얼 블로그

PLONK by hand: https://research.metastate.dev/plonk-by-hand-part-1/

도훈님 블로그: https://velog.io/@dohoon8/posts

KZG Commitment:

KZG paper: https://www.iacr.org/archive/asiacrypt2010/6477178/6477178.pdf

https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html

https://scroll.io/blog/kzg

https://docs.scroll.io/en/learn/zero-knowledge/kzg-commitment-scheme/

참고자료 (KZG, Groth16, FRI, PLONK 등의 강의)

ZKP MOOC: https://rdi.berkeley.edu/zk-learning/

제이크 벨로그 : Plonk 의 배경지식에 대하여 https://velog.io/@jakeweb3/Plonk-이해하기-사전-지식


여기서 갑자기 벽이 확 느껴졌다. 들어가보면 모든게 새로운 언어처럼 느껴졌고 머리가 하얘졌다...

그래서 조금 쉽게 접근할수 있는걸 찾아보다가 디사이퍼에서 교육했던 자료를 찾게 되었고 정말 많은 도움을 얻었다.

디사이퍼 zk 유투브 링크

6주라는 짧은 기간에 현업도 하면서 이걸 배울수 있을까 라는 생각이 정말 많이 들었지만 일단 해보기로 했다.

4. ZK

ZK를 이해하기 위해선 setup, commitment 등 여러가지 개념이 필요했다.

나름 위 영상을 보면서 조금 이해했지만 종류도 굉장히 많았고 모든걸 이해하긴 시간도 많이 없고 불가능 하다고 느꼈다.

그래서 리서치 팀에서 발표한 자료들만이라도 이해해보자고 했지만 그것마저도 너무 수학적이라 힘들었다..

다른 수학과 교수님이 circle stark 에 대해서 발표해주신적이 있는데 굉장히 하이레벨로 설명해주셔서 그나마 이해가 가능했다.

교육기간동안 다양한 연사분들이 오셨고 여러가지 질문해보고 싶었지만 내가 뭘 모르는것 조차 몰랐기 때문에 질문이 불가능했다..

그래도 최대한 이해해보려고 몇가지 질문해봤다.

5. 언어선택

교육의 진행은 리서치팀과 빌더팀으로 완전 다르게 진행되었다.

빌더팀은 하나의 애플리케이션을 목표로 했고 리서치 팀은 좀 더 세부적으로 zk 를 탐구하는것이었다.

언어는 3가지로 cairo, noir, halo2 중에 선택을 할 수 있었는데 우선 튜토리얼을 해보고 결정하기로 했다.

cairo 튜토리얼 과 noir 튜토리얼을 해봤는데 noir는 sdk 로 정말 잘 되어있어서 오히려 cairo 쪽을 더 해보고 싶었다. 근데 결국엔 noir 쪽으로 선택했다.

6. 어플리케이션

어떤 어플리케이션을 만들어볼까 고민을 많이 했다.

ZK를 사용하면 꽤 많은걸 할수 있다고 생각했지만 생각보다 한정적이었다.

여러 아이디어 중에 일반인들에게 ZK로 가장 쉽게 접할수 있을게 뭐가 있을까 하다가 zk-survey 라는 설문 플랫폼을 만들기로 했다.

팀원이 블록체인쪽 기술을 여러가지 많이 알고 있어서 도움을 많이 받았다.

7. zk-survey 깃허브 링크

이제 어떤걸 zk 로 증명하냐를 고민하다가 설문내용을 zkp 로 증명하여 권한이 있는사람이 설문을 제출했다 라는걸 증명하기로 했다.

그러기 위해선 먼저 권한을 부여하는 작업이 필요했다.

그래서 플로우를 다음과 같이 짰다.

설문 생성 -> 설문자 등록 -> 설문 제출

설문 제출을 할때 권한을 가지고 있는지 proof를 만들어 증명하는것으로 했고 멤버쉽 프루프를 이용했다.

일반인이 쉽게 zk를 접해보는것이 목적이었으므로 온체인 데이터는 사용하지 않았다.

그래서 sdk 가 잘 되어있는 noir 로 써킷과 prover 를 구성했다.

8. 후기

살면서 가장 머리아팠던 6주라고 꼽을수 있다.

새로운 지식, 어려운 수식, 난잡한 공식 등 머리론 이해 안되지만 나름 이해해보려는 싸움을 계속 했다.

좋았던건 누군가와 이해하는 과정을 공유하며 배울수 있었고 인사이트도 많이 얻었다.

zk를 짧은시간에 집어넣으려다보니 버거웠지만 교육이 끝난 후 여기저기서 zk 관련된 글자가 보이면 나도 모르게 관심이 간다.

누군가에게 기술적으로 설명하는건 못하지만 다른사람이 썼을때 어떻게 썼는지 질문할 정도는 된다고 생각한다.

쉽지 않은 주제였던만큼 나름 보람도 있고 어플리케이션도 완성은 해서 값진 6주라고 생각한다.

728x90
반응형

'개발 > BlockChain' 카테고리의 다른 글

How to write gas optimized solidity contract?  (0) 2025.11.04
Uniswap v2 core 분석  (0) 2025.11.03
[Blockchain] kaiascan은 token transfer 를 어떻게 처리할까  (3) 2025.07.22
[Blockchain] ZK - noir, cairo 섞어쓰기  (0) 2025.07.13
[BlockChain] ZK (Cairo) - 나이 인증 회로 구현  (0) 2025.07.11
'개발/BlockChain' 카테고리의 다른 글
  • How to write gas optimized solidity contract?
  • Uniswap v2 core 분석
  • [Blockchain] kaiascan은 token transfer 를 어떻게 처리할까
  • [Blockchain] ZK - noir, cairo 섞어쓰기
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    go
    도커
    하이퍼레저
    node.js
    js
    ERC721
    30일 챌린지
    30일챌린지
    컨테이너
    프로그래머스
    블록체인
    mysql
    html
    nodejs
    node
    CSS
    React
    명령어
    erc20
    go언어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
ZK 교육 후기
상단으로

티스토리툴바