Skip to content

2. EnclaveProtocol: 블록체인에 프라이버시 기능 추가

2.1 세 가지 주요 프라이버시 능력

EnclaveProtocol은 혁신적인 암호학적 구조와 분산 시스템 설계를 통해 블록체인 생태계에 세 가지 차원의 프라이버시 보호 능력 향상을 제공합니다. 본 절에서는 이론 분석과 시스템 설계의 관점에서 각 차원의 프라이버시 보호 능력을 자세히 설명합니다.

2.1.1 거래 프로세스 프라이버시

핵심 능력(Core Capabilities):

이 프로토콜은 거래 프로세스 프라이버시에서 다음과 같은 핵심 능력을 달성합니다:

  • 완전한 익명 거래(Full Anonymous Transaction): 영지식 증명 기술을 통해 거래 발신자, 수신자, 거래 금액의 완전한 숨김을 달성하여 강한 익명성(Strong Anonymity) 요구사항을 만족합니다. 암호학적 관점에서 영지식 증명은 거래 정보의 영지식 속성(Zero-Knowledge Property)을 보장합니다. 즉, 검증자는 증명에서 거래 내용에 대한 정보를 얻을 수 없습니다

  • 관계 프라이버시 보호(Relationship Privacy Protection): 거래 당사자 간에 제3자가 추적 가능한 온체인 연관이 존재하지 않으며, 제3자는 온체인 데이터를 통해 거래 관계를 추론할 수 없습니다. 그래프 이론의 관점에서 이것은 거래 관계 그래프의 프라이버시 보호를 달성하여 관계 네트워크 분석(Relationship Network Analysis) 공격을 방지합니다

  • 일괄 프라이버시 작업(Batch Privacy Operations): 일대다 프라이버시 할당 메커니즘을 지원하며, 여러 수신자가 서로의 존재를 모르는 상태에서 수신자 격리(Recipient Isolation)를 달성합니다. 시스템 설계의 관점에서 이것은 암호학적 커밋(Cryptographic Commitment)과 영지식 증명을 통해 일괄 작업의 프라이버시 보호를 달성합니다

  • 탈중앙화 검증(Decentralized Verification): 중앙화된 구성 요소가 필요 없으며, 순수 온체인 영지식 증명 검증 메커니즘을 채택하여 탈중앙화 특성을 보장합니다. 분산 시스템의 관점에서 이것은 탈중앙화 요구사항을 만족하고 단일 장애점(Single Point of Failure) 위험을 피합니다

기술 구현(Technical Implementation):

암호학과 시스템 설계의 관점에서 거래 프로세스 프라이버시의 기술 구현에는 다음이 포함됩니다:

  • 영지식 증명 메커니즘(Zero-Knowledge Proof Mechanism): 영지식 증명 기술을 사용하여 거래 참가자와 금액 정보를 숨깁니다. 암호학 이론의 관점에서 영지식 증명은 완전성(Completeness), 건전성(Soundness), 영지식(Zero-Knowledge)의 세 가지 기본 속성을 만족하여 검증자가 증명에서 거래 내용에 대한 정보를 얻을 수 없도록 보장합니다

  • 커밋 메커니즘(Commitment Mechanism): 암호학적 커밋 메커니즘을 통해 할당 계획의 프라이버시를 보호합니다. 암호학적 관점에서 커밋 메커니즘은 숨김성(Hiding)과 결속성(Binding)의 두 가지 기본 속성을 만족하여 할당 계획이 제출 전에 보이지 않고 제출 후에 변경할 수 없도록 보장합니다

  • Nullifier 메커니즘(Nullifier Mechanism): Nullifier 메커니즘을 통해 이중 지출 공격을 방지하면서 프라이버시를 보호합니다. 보안의 관점에서 Nullifier 메커니즘은 암호학적 해시 함수를 통해 각 자금 단위가 한 번만 사용되도록 보장하여 이중 지출 방지(Anti-Double-Spending) 요구사항을 만족합니다

  • 일괄 인출 메커니즘(Batch Withdrawal Mechanism): 일괄 인출을 지원하며, 여러 바우처를 결합하여 인출할 수 있어 프라이버시를 향상시킵니다. 시스템 설계의 관점에서 일괄 인출은 집계 증명(Aggregated Proof) 메커니즘을 통해 Gas 비용을 줄이면서 거래 복잡성을 증가시켜 프라이버시를 향상시킵니다

애플리케이션 시나리오(Application Scenarios):

거래 프로세스 프라이버시의 애플리케이션 시나리오에는 다음이 포함됩니다:

  • 기업 프라이버시 결제 시나리오(Corporate Privacy Payment Scenario): 기업이 직원에게 급여를 지급할 때 지불 관계와 금액 정보를 보호하여 비즈니스 기밀 유출과 경쟁 분석을 방지합니다

  • B2B 거래 프라이버시 시나리오(B2B Transaction Privacy Scenario): B2B 거래는 거래 당사자와 금액 정보를 보호하여 비즈니스 기밀 유출과 전략 분석을 방지합니다

  • 개인 전송 프라이버시 시나리오(Personal Transfer Privacy Scenario): 개인 간 전송은 완전히 익명이며, 개인 프라이버시를 보호하고 자산 노출과 보안 위험을 방지합니다

2.1.2 디지털 자산 프라이버시

핵심 능력(Core Capabilities):

이 프로토콜은 디지털 자산 프라이버시에서 다음과 같은 핵심 능력을 달성합니다:

  • 자산 출처 프라이버시(Asset Origin Privacy): 암호학적 메커니즘을 통해 자산의 원래 출처와 유통 경로를 숨겨 온체인 추적 및 분석을 방지합니다. 암호학적 관점에서 이것은 예금 풀(Deposit Pool) 메커니즘과 영지식 증명을 통해 자산 출처의 추적 불가능성(Untraceability)을 달성합니다

  • 자산 보유 프라이버시(Asset Holding Privacy): 사용자 자산 보유 상황이 공개적으로 노출되지 않도록 보호하여 공격 대상이 되는 것을 방지합니다. 보안의 관점에서 이것은 프라이버시 풀 메커니즘과 영지식 증명을 통해 자산 보유의 프라이버시 보호를 달성하여 자산 프라이버시(Wealth Privacy) 요구사항을 만족합니다

  • 자산 할당 프라이버시(Asset Allocation Privacy): 유연한 자산 분할 및 할당 메커니즘을 지원하며, 각 할당 바우처는 독립적으로 관리되고 서로 관련이 없습니다. 시스템 설계의 관점에서 이것은 멀티 바우처(Multi-Voucher) 기술을 통해 자산 할당의 프라이버시 보호를 달성하여 할당 프라이버시(Allocation Privacy) 요구사항을 만족합니다

  • 크로스체인 자산 프라이버시(Cross-Chain Asset Privacy): 멀티체인 배포 아키텍처를 지원하여 크로스체인 자산의 프라이버시 보호를 달성하고 크로스체인 상관 분석을 방지합니다. 분산 시스템의 관점에서 이것은 통합 추상화 계층(Unified Abstraction Layer)을 통해 크로스체인 프라이버시 보호를 달성하여 크로스체인 프라이버시(Cross-Chain Privacy) 요구사항을 만족합니다

기술 구현(Technical Implementation):

암호학과 시스템 설계의 관점에서 디지털 자산 프라이버시의 기술 구현에는 다음이 포함됩니다:

  • 예금 풀 메커니즘(Deposit Pool Mechanism): 예금 풀 메커니즘을 통해 자산을 프라이버시 풀에 예금하여 자산 출처를 숨깁니다. 암호학적 관점에서 예금 풀은 혼합 메커니즘(Mixing Mechanism)을 통해 자산 출처의 추적 불가능성을 달성합니다

  • 멀티 바우처 기술(Multi-Voucher Technology): 멀티 바우처 기술을 통해 자산을 여러 개의 독립적인 바우처로 분할하며, 각 바우처는 독립적으로 관리됩니다. 시스템 설계의 관점에서 멀티 바우처 기술은 독립적인 nullifier 메커니즘을 통해 바우처의 고유성과 보안을 보장합니다

  • 영지식 증명 메커니즘(Zero-Knowledge Proof Mechanism): 영지식 증명을 통해 자산 정보를 노출하지 않고 자산 소유권을 증명합니다. 암호학 이론의 관점에서 영지식 증명은 자산 소유권의 검증 가능성(Verifiability)과 프라이버시(Privacy)를 보장합니다

  • 크로스체인 자산 할당 메커니즘(Cross-Chain Asset Allocation Mechanism): 크로스체인 자산 할당을 지원하여 크로스체인 자산 연관을 보호합니다. 분산 시스템의 관점에서 이것은 통합 추상화 계층을 통해 크로스체인 프라이버시 보호를 달성합니다

애플리케이션 시나리오(Application Scenarios):

디지털 자산 프라이버시의 애플리케이션 시나리오에는 다음이 포함됩니다:

  • 자산 보호 시나리오(Asset Protection Scenario): 사용자 자산 보유 상황을 보호하여 자산 노출을 방지하고 보안 및 프라이버시 요구사항을 만족합니다

  • 투자 프라이버시 시나리오(Investment Privacy Scenario): 투자 포트폴리오와 투자 전략을 보호하여 추적 분석을 방지하고 투자 프라이버시 보호 요구사항을 만족합니다

  • 크로스체인 프라이버시 시나리오(Cross-Chain Privacy Scenario): 서로 다른 체인에서의 자산 분포를 보호하여 크로스체인 상관 분석을 방지하고 크로스체인 프라이버시 보호 요구사항을 만족합니다

2.1.3 온체인 자산 관리 프라이버시

핵심 능력(Core Capabilities):

이 프로토콜은 온체인 자산 관리 프라이버시에서 다음과 같은 핵심 능력을 달성합니다:

  • 자산 분포 프라이버시(Wealth Distribution Privacy): 사용자의 서로 다른 체인에서의 자산 분포를 보호하여 포괄적인 자산 노출을 방지합니다. 보안의 관점에서 이것은 멀티체인 배포와 프라이버시 풀 메커니즘을 통해 자산 분포의 프라이버시 보호를 달성하여 글로벌 자산 프라이버시(Global Wealth Privacy) 요구사항을 만족합니다

  • 포트폴리오 프라이버시(Portfolio Privacy): 프라이버시 보존 자산 배치 및 포트폴리오 관리를 지원하여 투자 전략을 보호합니다. 시스템 설계의 관점에서 이것은 멀티 바우처 기술과 영지식 증명을 통해 포트폴리오의 프라이버시 보호를 달성하여 투자 전략 프라이버시(Investment Strategy Privacy) 요구사항을 만족합니다

  • 수익 배분 프라이버시(Revenue Distribution Privacy): 기업, DAO, 프로젝트가 여러 수신자에게 프라이버시 방식으로 수익을 배분할 수 있습니다. 암호학적 관점에서 이것은 일대다 프라이버시 할당 메커니즘과 영지식 증명을 통해 수익 배분의 프라이버시 보호를 달성하여 배분 전략 프라이버시(Distribution Strategy Privacy) 요구사항을 만족합니다

  • 자금 흐름 프라이버시(Fund Flow Privacy): 자금 흐름 정보를 보호하여 온체인 분석 및 추적을 방지하고 관리 전략을 보호합니다. 시스템 설계의 관점에서 이것은 프라이버시 풀 메커니즘과 영지식 증명을 통해 자금 흐름의 프라이버시 보호를 달성하여 흐름 프라이버시(Flow Privacy) 요구사항을 만족합니다

기술 구현(Technical Implementation):

암호학과 시스템 설계의 관점에서 온체인 자산 관리 프라이버시의 기술 구현에는 다음이 포함됩니다:

  • 멀티 바우처 기술(Multi-Voucher Technology): 멀티 바우처 기술을 통해 복잡한 자산 관리 시나리오를 지원합니다. 시스템 설계의 관점에서 멀티 바우처 기술은 독립 관리와 유연한 조합을 통해 복잡한 자산 관리 시나리오의 프라이버시 보호를 달성합니다

  • 일대다 프라이버시 할당 메커니즘(One-to-Many Privacy Allocation Mechanism): 일대다 프라이버시 할당을 통해 여러 수신자에게 프라이버시 방식으로 자산을 할당하는 것을 지원합니다. 암호학적 관점에서 이것은 암호학적 커밋과 영지식 증명을 통해 일괄 할당의 프라이버시 보호를 달성합니다

  • 일괄 인출 최적화 메커니즘(Batch Withdrawal Optimization Mechanism): 일괄 인출 최적화를 통해 유연한 자산 조합 및 인출을 지원합니다. 시스템 설계의 관점에서 일괄 인출은 집계 증명 메커니즘을 통해 Gas 비용을 줄이면서 프라이버시를 향상시킵니다

  • 영지식 증명 메커니즘(Zero-Knowledge Proof Mechanism): 영지식 증명을 통해 할당 전략과 금액 정보를 보호합니다. 암호학 이론의 관점에서 영지식 증명은 할당 전략의 프라이버시와 검증 가능성을 보장합니다

애플리케이션 시나리오(Application Scenarios):

온체인 자산 관리 프라이버시의 애플리케이션 시나리오에는 다음이 포함됩니다:

  • 기업 자산 관리 시나리오(Corporate Wealth Management Scenario): 기업이 프라이버시 방식으로 자금을 관리하고 여러 수신자에게 자산을 할당하여 관리 전략과 할당 계획을 보호합니다

  • 프로젝트 배당 시나리오(Project Dividend Scenario): 프로젝트가 여러 투자자에게 배당을 배분하여 할당 전략과 금액을 보호하고 투자 전략 유출을 방지합니다

  • DAO 거버넌스 시나리오(DAO Governance Scenario): DAO가 여러 기여자에게 보상을 배분하여 거버넌스 의사 결정 프로세스를 보호하고 거버넌스 프라이버시 요구사항을 만족합니다

  • 자선 기부 시나리오(Charity Donation Scenario): 자선 기관이 여러 수혜자에게 자금을 배분하여 수혜자의 프라이버시를 보호하고 자선 프라이버시 보호 요구사항을 만족합니다

2.2 핵심 혁신: Deposit ID 바인딩 메커니즘

EnclaveProtocol은 **Deposit ID 바인딩 메커니즘(Deposit ID Binding Mechanism)**을 도입하여 "프라이버시 결제 불가능 삼각형" 문제를 성공적으로 해결하고 세 가지 차원의 프라이버시 보호를 달성했습니다. 본 절에서는 이론 분석과 시스템 설계의 관점에서 이 메커니즘의 기술 원리와 혁신 포인트를 자세히 설명합니다.

혁신적인 솔루션(Innovative Solution):

암호학과 분산 시스템의 관점에서 Deposit ID 바인딩 메커니즘은 다음과 같은 기술적 돌파구를 달성합니다:

  • 가변 액면(Variable Denomination): 임의의 금액 예금과 임의의 비율 할당을 지원하여 거래 프로세스 프라이버시를 달성합니다. 시스템 설계의 관점에서 이것은 자금 앵커와 할당 증명의 분리를 통해 유연성 요구사항을 달성합니다

  • 강한 이중 지출 방지(Strong Double-Spending Prevention): Deposit ID + Proof Hash + Commitment 삼중 검증 메커니즘을 통해 디지털 자산 프라이버시를 보장합니다. 보안의 관점에서 삼중 검증 메커니즘은 다층 보호를 통해 강한 이중 지출 방지를 달성하여 암호학적 보안 요구사항을 만족합니다

  • 완전한 탈중앙화(Full Decentralization): 순수 온체인 구현, 중앙화된 의존성 없음, 온체인 자산 관리 프라이버시를 지원합니다. 분산 시스템의 관점에서 이것은 탈중앙화 요구사항을 만족하고 단일 장애점 위험을 피합니다

기술적 돌파구 포인트(Technical Breakthrough Points):

이론 분석의 관점에서 Deposit ID 바인딩 메커니즘의 기술적 돌파구 포인트에는 다음이 포함됩니다:

  • 기존 접근 방식(Traditional Approaches): commitment를 직접 nullifier로 사용하면 가변 액면 시나리오에서 이중 지출 공격을 효과적으로 방지할 수 없으며 블록체인에 완전한 프라이버시 능력을 추가할 수 없습니다. 암호학 이론의 관점에서 기존 접근 방식은 가변 액면 시나리오에서 고유성 제약 실패 문제가 있습니다

  • EnclaveProtocol 접근 방식(EnclaveProtocol Approach): Deposit ID를 자금 앵커(Fund Anchor)로 사용하고 commitment를 할당 증명(Allocation Proof)으로 사용하여 자금 고유성과 할당 유연성의 분리(Separation of Uniqueness and Flexibility)를 달성하여 블록체인에 완전한 프라이버시 보호 능력을 추가했습니다. 시스템 설계의 관점에서 이 분리 설계는 자금 앵커의 도입을 통해 가변 액면 시나리오에서 이중 지출 방지 문제를 해결합니다

2.3 시스템 아키텍처: 블록체인에 프라이버시 기능을 추가하는 아키텍처 설계

EnclaveProtocol은 블록체인 생태계에 프라이버시 기능을 추가하기 위해 3계층 아키텍처 설계를 채택합니다:

┌─────────────────────────────────────────┐
│         멀티체인 생태계 계층              │
│    TRON / BSC / ETH / 기타 체인         │
│  (프라이버시 보호 기능 추가)              │
└─────────────────┬───────────────────────┘

┌─────────────────▼───────────────────────┐
│   EnclaveProtocol 프라이버시 코어 계층    │
│  ┌──────────────┐  ┌──────────────────┐ │
│  │ 스마트 컨트랙트│  │ 영지식 증명      │ │
│  │ 시스템        │  │ 네트워크          │ │
│  │ - 예금 풀     │  │ - 증명 생성      │ │
│  │ - 인출 풀     │  │ - 증명 검증      │ │
│  │ - 검증        │  │ - 프라이버시    │ │
│  │   컨트랙트    │  │   보호            │ │
│  │ - 멀티 바우처 │  │ - 거래 프라이버시│ │
│  │   관리        │  │   화              │ │
│  └──────────────┘  └──────────────────┘ │
│  ┌────────────────────────────────────┐ │
│  │  세 가지 프라이버시화 능력           │ │
│  │  - 거래 프로세스 프라이버시화        │ │
│  │  - 디지털 자산 프라이버시화          │ │
│  │  - 온체인 자산 관리 프라이버시화    │ │
│  └────────────────────────────────────┘ │
└─────────────────┬───────────────────────┘

┌─────────────────▼───────────────────────┐
│         애플리케이션 액세스 계층          │
│  Web DApp / 모바일 / B2B API / B2C API │
│  (프라이버시 보호 기능 사용)              │
└─────────────────────────────────────────┘

2.4 핵심 워크플로우: 세 가지 프라이버시 차원 달성

단계 1: 예금 (Deposit)

지불자 A 호출: deposit() payable
컨트랙트 실행:
1. 증가하는 depositId = nextDepositId++ 생성
2. deposits[depositId] = {amount: msg.value, owner: msg.sender, used: false} 기록
3. depositId를 A에게 반환

단계 2: 할당 계획 생성 (오프체인)

멀티 바우처 분할:

A가 할당 계획 결정(멀티 바우처 기술 지원):
allocations = [
  {seq: 0, amount: 3 ETH},  // 바우처 1
  {seq: 1, amount: 2 ETH},  // 바우처 2
  {seq: 2, amount: 1 ETH}   // 바우처 3
]

A 생성:
- secret_A = random(32 bytes)
- commitment = F(allocations ∥ secret_A ∥ depositId)

각 바우처가 독립적인 nullifier 생성:
- nullifier_0 = keccak256(commitment || 0 || amount_0)
- nullifier_1 = keccak256(commitment || 1 || amount_1)
- nullifier_2 = keccak256(commitment || 2 || amount_2)

단계 3: 영지식 증명 생성

A가 SP1 회로를 사용하여 두 가지 유형의 증명 생성:

유형 1 - 제출 증명 (proof_submit):
- 개인 입력: allocations, secret_A
- 공개 입력: commitment, depositId, totalAmount, submitter
- 제약 조건:
  * A가 depositId에 해당하는 예금을 소유하고 있음을 검증
  * allocations 총액 <= 예금 금액임을 검증
  * commitment 계산이 올바른지 검증

유형 2 - 개별 인출 증명 (proof_withdraw_X):
- 각 수신자 X에 대해 독립적인 증명 생성
- allocation_X가 commitment에 실제로 포함되어 있음을 증명
- 다른 수신자의 정보를 노출하지 않음

단계 4: 온체인 제출

A 호출: submitCommitment(commitment, depositId, totalAmount, proof_submit)
컨트랙트 검증:
1. SP1 증명 유효성
2. depositId가 미사용이고 A가 소유함
3. totalAmount <= deposits[depositId].amount

성공 시:
1. deposits[depositId].used = true
2. validCommitments[commitment] = true
3. commitment를 해시 트리에 삽입

단계 5: 영수증 배포(멀티 바우처 지원)

A가 각 수신자에게 바우처 배포:
{
  allocation: {seq: seq_X, amount: amount_X},
  commitment: commitment,
  credential: credential_X,  // 독립적인 Merkle proof
  proof_withdraw: proof_withdraw_X
}

각 바우처에는 다음이 포함됩니다:
- seq: 바우처 시퀀스 번호, 고유한 nullifier를 생성하는 데 사용
- amount: 바우처 금액
- credential: 바우처의 독립적인 증명 정보
- proof_withdraw: 인출 증명

지원되는 시나리오:
- 단일 수신자가 여러 바우처를 받을 수 있음
- 여러 수신자가 동일한 commitment에서 서로 다른 바우처를 받을 수 있음
- 바우처를 유연하게 조합하여 사용할 수 있음

단계 6: 수신자 검증 및 인출(멀티 바우처 지원)

수신자 X가 바우처를 받은 후:

1. commitment가 온체인에서 유효한지 검증: validCommitments[commitment] == true
2. 바우처 nullifier가 미사용인지 검증: usedNullifiers[nullifier_X] == false
3. final_proof 생성, 다음을 증명:
   - allocation_X (seq, amount)가 commitment에 속함
   - commitment가 해시 트리에 속함
   - nullifier_X 계산이 올바름
4. withdraw(X, amount_X, final_proof) 호출
5. 컨트랙트 검증:
   - nullifier 고유성 검증
   - 증명 유효성 검증
   - nullifier를 사용됨으로 표시
6. 전송 실행

멀티 바우처 인출 시나리오:
- 단일 바우처 인출: 직접 withdraw 호출
- 여러 바우처 일괄 인출: 여러 바우처 선택, 집계 증명 생성, 일회성 인출
- 크로스 커밋 인출: 서로 다른 commitment에서 온 바우처의 조합 인출 지원

[← 이전 장: 블록체인 프라이버시 부재 및 수요 분석](./01-privacy-gap-analysis) | [다음 장: 핵심 기술 아키텍처 →](./03-core-architecture)

Released under the MIT License.