zk / fhe

FHE(완전 동형 암호)는 일반적으로 ZKP(영지식 증명)의 한 종류인 zk-SNARKs와 같은 "신뢰 설정(trusted setup)"이 필요하지 않습니다.

  • ZK-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge):

    • zk-SNARKs는 영지식 증명, 대부분의 경우 신뢰 설정(trusted setup) 과정이 필요합니다.

    • 이 신뢰 설정은 시스템에 필요한 공개 파라미터(Structured Reference String, SRS)를 생성하는 과정.

    • 이 과정에서 "독성 폐기물(toxic waste)"이라고 불리는 비밀 값이 생성되는데, 만약 이 비밀 값이 외부에 유출되면 악의적인 사용자가 유효한 것처럼 보이는 가짜 증명을 만들 수 있습니다.
      cc :

    • 이러한 위험을 줄이기 위해 다자간 연산(MPC)을 통한 신뢰 설정 의식(ceremony)을 수행하여, 한 명이라도 참여자가 있다면 전체 시스템의 보안이 보장되도록 합니다. → trust setup

    • 하지만 zk-STARKs ( starknet , zksync ) 나 Bulletproofs ( ex : monero , beam )와 같은 일부 ZKP는 trust setup이 필요 없는 "투명한(transparent)" 설정을 사용하기도 함

    https://docs.zkproof.org/pages/reference/reference.pdf

  • FHE (Fully Homomorphic Encryption):

    • FHE는 암호화된 데이터를 복호화하지 않고도 직접 연산할 수 있게 해주는 암호 기술

      FHE는 암호화된 상태에서 연산이 이루어지기 때문에, ZKP 때 처럼 공개 파라미터를 생성하는 특별한 "trust setup" 가 필요없음.

    • FHE의 보안은 주로 격자 기반 암호(lattice-based cryptography)와 같은 수학적 문제의 난이도에 기반합니다. → 그냥 존나 어려운 문제로 암호

    • FHE는 데이터의 기밀성을 유지하면서 클라우드 컴퓨팅과 같이 데이터를 처리하는 데 중점

요약하자면

zk는 암호화 후 검증을 통해 값을 나타내고 fhe는 암호화된 데이터를 내 키로 북호화함

즉, 키 < 이걸로 북호화 하냐 체인내부서 검증후 데이터를 제공하냐의 차이

post image