
퍼블릭 블록체인은 프라이버시를 희생하여 투명성과 무결성을 제공합니다. 모든 트랜잭션과 컨트랙트 상태가 모든 참여자에게 노출됩니다. 이러한 개방성은 MEV (채굴자 추출 가능 가치) 공격, 카피 트레이딩, 민감한 비즈니스 로직 유출과 같은 문제를 야기합니다. 프로그래밍 가능한 프라이버시는 데이터 자체를 노출하지 않고 개인 데이터에 대한 계산을 허용함으로써 이러한 문제를 해결하는 것을 목표로 합니다. 두 가지 새로운 암호학 패러다임이 이를 가능하게 하고 있습니다: **완전 동형 암호화 가상 머신 (FHE-VM)**과 영지식 (ZK) 코프로세서입니다. 이러한 접근 방식은 오프체인 또는 암호화된 계산과 온체인 검증을 가능하게 하여, 신뢰가 필요 없는 정확성을 유지하면서 기밀성을 보존합니다. 이 보고서에서는 FHE-VM과 ZK 코프로세서 아키텍처를 심층적으로 분석하고, 그들의 장단점을 비교하며, 금융, 신원, 의료, 데이터 마켓, 탈중앙화 머신러닝 전반에 걸친 사용 사례를 탐구합니다.
완전 동형 암호화 가상 머신 (FHE-VM)
**완전 동형 암호화 (FHE)**는 암호화된 데이터를 복호화하지 않고도 임의의 계산을 수행할 수 있게 합니다. FHE 가상 머신은 이 기능을 블록체인 스마트 컨트랙트에 통합하여 암호화된 컨트랙트 상태 및 로직을 가능하게 합니다. FHE가 활성화된 블록체인 (EVM 호환 설계의 경우 종종 fhEVM이라고 불림)에서는 모든 입력, 컨트랙트 저장소, 출력이 실행 내내 암호화된 상태로 유지됩니다. 이는 검증자들이 민감한 값을 전혀 알지 못한 채 트랜잭션을 처리하고 상태를 업데이트할 수 있음을 의미하며, 데이터 기밀성을 갖춘 온체인 실행을 달성합니다.
FHE-VM의 아키텍처 및 설계
일반적인 FHE-VM은 표준 스마트 컨트랙트 런타임 (이더리움 가상 머신 등)을 확장하여 암호화된 데이터 유형 및 연산에 대한 네이티브 지원을 추가합니다. 예를 들어, Zama의 FHEVM은 암호화된 정수 (euint8, euint32 등), 암호화된 불리언 (ebool), 심지어 암호화된 배열을 일급 유형으로 도입합니다. Solidity와 같은 스마트 컨트랙트 언어는 라이브러리나 새로운 옵코드를 통해 증강되어 개발자들이 암호문에 대해 직접 산술 (add, mul 등), 논리 연산, 비교를 수행할 수 있게 합니다. 내부적으로 이러한 연산은 FHE 프리미티브 ( 예: TFHE 라이브러리 사용)를 호출하여 암호화된 비트를 조작하고 암호화된 결과를 생성합니다.
암호화된 상태 저장소가 지원되어 컨트랙트 변수가 블록체인 상태에서 암호화된 채로 유지됩니다. 실행 흐름은 일반적으로 다음과 같습니다:
- 클라이언트 측 암호화: 사용자는 트랜잭션을 보내기 전에 공개 FHE 키를 사용하여 로컬에서 입력을 암호화합니다. 암호화 키는 공개 (암호화 및 평가용)이며, 복호화 키는 비밀로 유지됩니다. 일부 설계에서는 각 사용자가 자신의 키를 관리하고, 다른 설계에서는 단일 전역 FHE 키가 사용됩니다 (아래에서 논의).
- 온체인 동형 계산: 채굴자/검증자는 암호화된 옵코드로 컨트랙트를 실행합니다. 그들은 암호문에 대해 동일한 결정론적 동형 연산을 수행하므로, 암호화된 새로운 상태에 대한 합의에 도달할 수 있습니다. 결정적으로, 검증자들은 평문 데이터를 절대 보지 못합니다. 그들은 단지 "알 수 없는" 암호문만 보지만 여전히 일관되게 처리할 수 있습니다.
- 복호화 (선택 사항): 결과를 공개하거나 오프체인에서 사용해야 하는 경우, 개인 키를 가진 승인된 당사자가 출력 암호문을 복호화할 수 있습니다. 그렇지 않으면 결과는 암호화된 상태로 유지되며 추가 트랜잭션의 입력으로 사용될 수 있습니다 (영구적인 암호화 상태에 대한 연속적인 계산 허용).
주요 설계 고려 사항은 키 관리입니다. 한 가지 접근 방식은 사용자별 키로, 각 사용자가 자신의 비밀 키를 보유하고 자신과 관련된 출력만 복호화할 수 있습니다. 이는 프라이버시를 극대화하지만 (다른 누구도 당신의 데이터를 복호화할 수 없음), 동형 연산은 복잡한 다중 키 프로토콜 없이는 다른 키로 암호화된 데이터를 혼합할 수 없습니다. Zama의 FHEVM에서 사용하는 또 다른 접근 방식은 전역 FHE 키입니다: 단일 공개 키가 모든 컨트랙트 데이터를 암호화하고, 분산된 검증자 집합이 임계값 복호화 키의 지분을 보유합니다. 공개 암호화 및 평가 키는 온체인에 게시되므로 누구나 네트워크에 데이터를 암호화할 수 있습니다. 개인 키는 검증자들 사이에 분할되어 임계값 체계 하에 필요할 경우 공동으로 복호화할 수 있습니다. 검증자 공모로 인한 프라이버시 침해를 방지하기 위해, Zama는 부분 복호화를 안전하게 만들기 위한 "노이즈 플러딩"을 포함한 임계값 FHE 프로토콜 (그들의 Noah’s Ark 연구 기반)을 사용합니다. 충분한 정족수의 검증자가 협력해야만 평문을 복구할 수 있습니다 (예: 읽기 요청 처리). 그러나 정상적인 작동에서는 어떤 단일 노드도 평문을 보지 못하며, 데이터는 항상 온체인에서 암호화된 상태로 유지됩니다.
접근 제어는 또 다른 중요한 구성 요소입니다. FHE-VM 구현에는 누가 (만약 있다면) 복호화를 트리거하거나 특정 암호화된 필드에 접근할 수 있는지 관리하기 위한 세분화된 제어가 포함됩니다. 예를 들어, Cypher의 fhEVM은 암호문에 대한 접근 제어 목록 (ACL)을 지원하여 개발자가 어떤 주소나 컨트랙트가 특정 데이터와 상호 작용하거나 재암호화할 수 있는지 지정할 수 있게 합니다. 일부 프레임워크는 재암호화를 지원합니다: 평문을 노출하지 않고 한 사용자의 키에서 다른 사용자의 키로 암호화된 값을 전송하는 기능입니다. 이는 데이터 마켓플레 이스와 같은 곳에서 유용합니다. 데이터 소유자는 자신의 키로 데이터셋을 암호화하고, 구매 시 구매자의 키로 재암호화할 수 있습니다. 이 모든 것이 공개적으로 복호화되지 않고 온체인에서 이루어집니다.
정확성 및 프라이버시 보장
모든 데이터가 암호화되어 있다면, 어떻게 컨트랙트 로직의 정확성을 강제할 수 있을까요? 체인이 값을 "볼" 수 없다면 어떻게 유효하지 않은 연산을 막을 수 있을까요? FHE 자체는 정확성 증명을 제공하지 않습니다. 검증자들은 동형 단계를 수행할 수 있지만, 복호화 없이는 사용자의 암호화된 입력이 유효했는지 또는 조건부 분기를 취해야 하는지 등을 본질적으로 알 수 없습니다. **영지식 증명 (ZKP)**은 이 격차를 해결하기 위해 FHE를 보완할 수 있습니다. FHE-VM에서는 일반적으로 사용자가 필요할 때마다 특정 평문 조건에 대한 ZK 증명을 제공해야 합니다. 예를 들어, Zama의 설계는 각 암호화된 입력과 함께 _평문 지식의 영지식 증명 (ZKPoK)_을 사용합니다. 이는 사용자가 자신의 암호문에 해당하는 평문을 알고 있으며, 그것이 예상 기준을 충족함을 평문 자체를 드러내지 않고 증명합니다. 이러한 **"인증된 암호문"**은 악의적인 사용자가 잘못된 형식의 암호화나 범위를 벗어난 값을 제출하는 것을 방지합니다. 마찬가지로, 결정이 필요한 연산 (예: 계정 잔액 ≥ 인출 금액 확인)의 경우, 사용자는 암호화된 연산이 실행되기 전 에 평문에 대해 이 조건이 참임을 증명하는 ZK 증명을 제공할 수 있습니다. 이런 방식으로, 체인은 값을 복호화하거나 보지 않지만, 암호화된 트랜잭션이 규칙을 따른다는 확신을 얻습니다.
FHE 롤업의 또 다른 접근 방식은 ZKP를 사용한 오프체인 검증입니다. Fhenix (FHE를 사용하는 L2 롤업)는 _임계값 서비스 네트워크_라는 별도의 네트워크 구성 요소가 암호화된 결과를 복호화하거나 검증할 수 있는 옵티미스틱 모델을 선택했으며, 잘못된 계산은 사기 증명으로 이의를 제기할 수 있습니다. 일반적으로 FHE + ZK 또는 사기 증명을 결합하면 암호화된 실행이 신뢰가 필요 없게 유지됩니다. 검증자들은 승인된 경우에만 공동으로 복호화하거나, 각 암호화된 상태 전환이 평문을 볼 필요 없이 유효했음을 증명하는 증명을 검증합니다.
성능 고려 사항: FHE 연산은 계산적으로 매우 무겁습니다 – 일반 산술보다 수십 배 느립니다. 예를 들어, 이더리움에서 간단한 64비트 덧셈은 약 3 가스가 소요되지만, Zama의 FHEVM에서 암호화된 64비트 정수 (euint64)에 대한 덧셈은 약 188,000 가스가 듭니다. 심지어 8비트 덧셈도 약 94k 가스가 소요될 수 있습니다. 이 엄청난 오버헤드는 기존 노드에 대한 간단한 구현이 비현실적으로 느리고 비용이 많이 든다는 것을 의미합니다. FHE-VM 프로젝트는 최적화된 암호화 라이브러리 (예: Zama의 이진 게이트 부트스트래핑을 위한 TFHE-rs 라이브러리)와 성능을 위한 맞춤형 EVM 수정을 통해 이 문제를 해결합니다. 예를 들어, Cypher의 수정된 Geth 클라이언트는 새로운 옵코드를 추가하고 C++/어셈블리에서 동형 명령어 실행을 최적화하여 오버헤드를 최소화합니다. 그럼에도 불구하고, 사용 가능한 처리량을 달성하려면 가속화가 필요합니다. 진행 중인 작업에는 FHE 계산 속도를 높이기 위한 GPU, FPGA, 심지어 특수 광자 칩 사용이 포함됩니다. Zama는 2024년 이후 FHE 성능이 100배 향상되었으며 GPU/FPGA 가속을 통해 수천 TPS를 목표로 하고 있다고 보고합니다. 전용 FHE 코프로세서 서버 (예: Optalysys의 LightLocker Node)는 검증자 노드에 연결하여 암호화된 연산을 하드웨어로 오프로드하여 노드당 초당 100개 이상의 암호화된 ERC-20 전송을 지원할 수 있습니다. 하드웨어와 알고리즘이 개선됨에 따라 FHE와 일반 계산 간의 격차는 좁혀져, 개인 컨트랙트가 더 실용적인 속도에 접근할 수 있게 될 것입니다.
호환성: FHE-VM 설계의 핵심 목표는 기존 개발 워크플로우와의 호환성을 유지하는 것입니다. Cypher와 Zama의 fhEVM 구현은 개발자가 최소한의 변경으로 Solidity에서 컨트랙트를 작성할 수 있게 합니다 – 라이브러리를 사용하여 암호화된 유형과 연산을 선언합니다. 나머지 이더리움 툴체인 (Remix, Hardhat 등)은 기본 수정이 대부분 클라이언트/노드 수준에 있기 때문에 여전히 사용할 수 있습니다. 이는 진입 장벽을 낮춥니다: 개발자는 기밀 스마트 컨트랙트를 작성하기 위해 암호학 전문가가 될 필요가 없습니다. 예를 들어, 두 숫자의 간단한 덧셈은 euint32 c = a + b;로 작성할 수 있으며, FHEVM이 내부적으로 암호화 관련 세부 사항을 처리합니다. 컨트랙트는 일반 컨트랙트와 상호 운용될 수도 있습니다. 예를 들어, 암호화된 컨트랙트가 원하는 경우 표준 컨트랙트에 복호화된 결과를 출력하여 하나의 생태계에서 개인 부분과 공용 부분을 혼합할 수 있습니다.
현재 FHE-VM 프로젝트: 여러 프로젝트가 이 분야를 개척하고 있습니다. Zama (파리에 본사를 둔 FHE 스타트업)는 핵심 FHEVM 개념과 라이브러리 (TFHE-rs 및 fhevm-solidity 라이브러리)를 개발했습니다. 그들은 자체 체인을 출시할 계획은 없지만, 다른 사람들에게 인프라를 제공하는 것을 목표로 합니다. Inco는 Zama의 FHEVM을 통합하여 모듈식 기밀 체인을 만든 L1 블록체인 (Cosmos SDK와 Evmos 기반)입니다. 그들의 테스트넷 (Gentry 및 Paillier)은 암호화된 ERC-20 전송 및 기타 개인 DeFi 프리미티브를 선보입니다. Fhenix는 프라이버시를 위해 FHE를 사용하는 이더리움 레이어-2 옵티미스틱 롤업입니다. 모든 블록에 대해 FHE와 ZK를 함께 수행하는 데 드는 막대한 비용 때문에 ZK 롤업 대신 옵티미스틱 (사기 증명) 접근 방식을 결정했습니다. Fhenix는 동일한 TFHE-rs 라이브러리 (일부 수정 포함)를 사용하며, 탈중앙화된 방식으로 복호화를 처리하기 위한 임계값 서비스 네트워크를 도입합니다. **Fhenix (현재 리브랜딩됨)**와 같은 독립적인 팀과 MPC + FHE 하이브리드를 탐색하는 스타트업도 있습니다. 또한, **Cypher (Z1 Labs 제작)**는 AI와 프라이버시에 초점을 맞춘 레이어-3 네트워크를 구축하고 있으며, 비밀 저장소 및 연합 학습 지원과 같은 기능을 갖춘 fhEVM을 사용합니다. 생태계는 초기 단계이지만 상당한 자금 지원을 받아 빠르게 성장하고 있습니다. 예를 들어, Zama는 FHE 기술 발전을 위해 2025년까지 1억 3천만 달러 이상을 모금하여 "유니콘"이 되었습니다.
요약하자면, FHE-VM은 온체인에서 암호화된 데이터에 대한 모든 로직을 실행함으로써 프라이버시 보존 스마트 컨트랙트를 가능하게 합니다. 이 패러다임은 최대의 기밀성을 보장합니다 – 민감한 정보는 트랜잭션이나 상태에서 절대 노출되지 않음 – 동시에 무결성을 위해 기존 블록체인 합의를 활용합니다. 단점은 검증자에 대한 계산 부담 증가와 키 관리 및 증명 통합의 복잡성입니다. 다음으로, 계산을 완전히 오프체인으로 오프로드하고 체인은 검증에만 사용하는 대안적인 패러다임인 영지식 코프로세서를 탐구합니다.
영지식 코프로세서 (ZK 코프로세서)
ZK 코프로세서는 비용이 많이 드는 계산을 오프체인에서 수행하고, 그 정확성에 대한 간결한 영지식 증명을 온체인에서 검증하는 새로운 블록체인 아키텍처 패턴입니다. 이를 통해 스마트 컨트랙트는 신뢰 불필요성을 희생하지 않고 온체인 실행이 허용하는 것보다 훨씬 더 큰 계산 능력과 데이터를 활용할 수 있습니다. _코프로세서_라는 용어는 CPU를 위해 전문적인 작업을 처리하는 하드웨어 코프로세서 (수학 코프로세서나 GPU 등)에 비유하여 사용됩니다. 여기서 블록체인의 "CPU" (EVM과 같은 네이티브 VM)는 특정 작업을 암호학적 코프로세서 역할을 하는 영지식 증명 시스템에 위임합니다. ZK 코프로세서는 결과와 함께 결과가 올바르게 계산되었음을 증명하는 증명을 반환하며, 온체인 컨트랙트는 이를 검증하고 사용할 수 있습니다.