Midnight이란?
Midnight은 데이터 보호에 특화된 blockchain 플랫폼입니다. 민감한 데이터의 프라이버시를 지키면서 분산 원장의 장점을 활용할 수 있도록 설계되었습니다.
기존 blockchain에서는 모든 transaction이 참여자 전체에게 영구적으로 공개됩니다. 반면 Midnight은 selective disclosure를 지원합니다. 데이터 자체를 드러내지 않고도 해당 데이터가 특정 조건을 만족한다는 것을 증명할 수 있습니다. 덕분에 헬스케어, 금융, 공공 서비스처럼 데이터 보호가 법적으로 요구되는 규제 산업에서도 blockchain을 도입할 수 있습니다.
Core concepts
Data protection blockchain
Midnight은 두 가지 상태를 병렬로 관리합니다:
-
Public state: 온체인에 저장되어 모든 네트워크 참여자가 볼 수 있는 데이터입니다. Transaction proof, 컨트랙트 코드, 의도적으로 공개한 정보 등이 여기에 해당합니다.
-
Private state: 사용자 로컬에 암호화되어 저장되며, 네트워크에 절대 노출되지 않습니다. 개인 정보, 비즈니스 데이터, 기밀 유지가 필요한 민감 데이터가 여기에 해당합니다.
Zero-knowledge proof
Public state와 private state를 잇는 핵심 기술은 zero-knowledge cryptography입니다. Midnight은 zk-SNARK를 활용하여 다음과 같은 작업을 수행합니다:
- 입력 데이터를 보지 않고 연산 결과를 검증
- 이유를 밝히지 않고 명제가 참임을 증명
- 연산 복잡도와 무관하게 128바이트의 compact한 proof 생성
- 온체인에서 밀리초 단위로 proof 검증
예를 들어, 헬스케어 애플리케이션에서는 환자의 진료 기록 없이도 치료 자격을 증명할 수 있고, 금융 시스템에서는 실제 금액을 드러내지 않고도 잔액 이 충분한지 검증할 수 있습니다.
Compact programming language
Midnight은 TypeScript 기반의 도메인 특화 언어인 Compact를 제공합니다. 암호학 전문 지식 없이도 프라이버시를 보장하는 smart contract를 작성할 수 있으며, 코드는 자동으로 zero-knowledge circuit으로 컴파일됩니다.
Why Midnight
규제는 데이터 통제를 요구합니다
규제는 데이터 통제를 요구합니다
Public chain은 너무 많은 것을 노출합니다
Public chain은 너무 많은 것을 노출합니다
프라이버시 도구는 진입 장벽이 높습니다
프라이버시 도구는 진입 장벽이 높습니다
비공개 연산도 검증 가능해야 합니다
비공개 연산도 검증 가능해야 합니다
How Midnight works
Transaction flow
Midnight에서 transaction이 처리되는 과정은 다음과 같습니다. 먼저 사용자가 비공개 데이터에 대한 연산을 로컬에서 수행합니다. 이 데이터는 네트워크에 절대 노출되지 않습니다. 이어서 Midnight 런타임이 해당 연산의 zero-knowledge proof를 생성합니다. 입력값을 공개하지 않으면서도 연산이 올바르게 수행되었음을 수학적으로 증명하는 것입니다.
생성된 proof와 공개 출력값은 blockchain에 제출됩니다. 네트워크의 validator가 zk-SNARK 검증 알고리즘으로 proof를 검증하며, 원래 연산이 아무리 복잡해도 밀리초 단위로 완료됩니다. 검증이 끝나면 public state는 blockchain에, private state는 사용자의 로컬 저장소에 각각 업데이트됩니다.
Network architecture
Midnight은 proof-of-stake blockchain입니다. Validator는 stake delegation을 통해 누구나 참여할 수 있으며, 네트워크 보안에 기여한 대가로 보상을 받습니다. Cardano와의 네이티브 브릿지를 통해 두 체인 간 자산 전송도 지원합니다.
네트워크는 두 가지 유형의 transaction을 처리합니다. 하나는 기존 blockchain과 동일한 표준 public transaction이고, 다른 하나는 프라이버시 보호를 위해 zero-knowledge proof를 사용하는 shielded transaction입니다. 두 유형 모두 동일한 validator 집합이 검증하므로 네트워크 전반에 걸쳐 일관된 보안이 유지됩니다.
Privacy guarantees
Midnight은 여러 계층에 걸친 프라이버시 보호를 제공합니다. Data minimization 원칙에 따라 필수 데이터만 온체인에 기록하고, 민감한 정보는 로컬에 보관합니다. Forward secrecy를 통해 과거 데이터도 보호합니다. 향후 암호화 키가 유출되더라도 과거 transaction은 비공개로 유지됩니다.
사용자는 selective disclosure로 어떤 정보를 누구에게 공개할지 세밀하게 제어할 수 있습니다. 규제 대상 기관을 위해서는 선택적 컴플라이언스 메커니즘도 제공합니다. 사용자 프라이버시를 침해하거나 비인가자에게 데이터를 노출하지 않으면서도 관계 당국에 필요한 정보를 보고할 수 있습니다.