zswap
다양한 자산 유형을 지원하고 atomic swap을 수행하는 것은 DeFi 같은 사용 사례를 실현하는 데 필수적이며, Midnight은 여기에 데이터 보호라는 이점까지 더합니다. Midnight은 이 기능을 위해 zswap을 사용합니다.
Atomic swap
atomic swap은 전부 아니면 전무의 트랜잭션입니다. Alice가 낚시 장비를 원하고, Bob의 가게에 팔리지 않은 장비가 있다고 가정해 봅시다. 둘은 다음과 같은 트랜잭션에 합의합니다:
낚싯대 $600.00, 릴 $300.00, 소품 $100.00.
Alice는 이렇게 많이 쓸 계획이 없었기에 현금이 $700밖에 없어서, 나머지 $300은 카드 신용을 사용합니다. 이 트랜잭션은 Alice가 모든 장비를 받고 Bob이 현금과 전자 자금을 모두 수령해야만 완료되므로 atomic swap입니다.
합법적인 트랜잭션이지만 프라이버시 요구 사항이 있을 수 있습니다. Bob은 회계사와 세무서에는 세부 사항을 기꺼이 공유하겠지만, 경쟁자에게는 알리고 싶지 않습니다. Alice도 파트너에게는 괜찮지만, $1000이면 피시 앤 칩스를 몇 인분이나 살 수 있냐며 잔소리할 언니에게는 알리고 싶지 않을 것입니다.
탈중앙화 된 permissionless blockchain에서의 트랜잭션도 개념은 비슷하지만 세부 사항이 다릅니다. Bob과 Alice는 Alice의 코인 A1 7,000,000개와 Bob의 코인 B1 600개, B2 300개, B3 100개 같은 UTXO를 교환하기로 합의할 수 있습니다. 트랜잭션 완료를 위해 atomic swap이 필요합니다. 이 트랜잭션은 코인 A1의 가격에 상당한 영향을 줄 수 있는데, 이 매수 주문을 관찰하는 채굴자가 자산 가격이 오르기 전에 먼저 저렴하게 매수할 수 있기 때문입니다. shielded swap은 이러한 공격을 완화합니다.
How Zswap helps
Midnight은 zswap을 사용합니다. zswap은 atomic asset swap을 위한 증명 가능하게 안전하고 데이터를 보호하는 트랜잭션 체계입니다. Zerocash 프로토콜에 기반하여, 데이터 기밀성을 유지하면서 트랜잭션을 병합할 수 있습니다. 다양한 자산 유형을 지원하고 atomic swap을 처리하는 메커니즘을 제공하여, DeFi 애플리케이션을 위한 확장 가능하고 안전한 솔루션이 됩니다.
위 그림은 zswap의 간단한 작동 예시입니다. Alice와 Bob이 각각 트랜잭션을 준비한다고 가정합니다. Alice는 5유로에 3달러를 지불하려 하고, Bob은 3달러에 5유로를 지불하려 합니다. 이 트랜잭션은 다른 사람에게 공개되기 전에 zero-knowledge proof를 통해 네트워크상의 익명성이 보장됩니다.
그 다음 zswap이 두 트랜잭션을 병합하여 Alice와 Bob 사이의 atomic swap을 수행합니다. 이 과정에서 교환 자산이 완전히 은닉되어 데이터 기밀성이 유지됩니다.
Key features and benefits of Zswap
| 기능 | 이점 |
|---|---|
| 기밀성: zswap은 ZK Snark를 사용하여 트랜잭션의 기밀성을 보장합니다. | 발신자, 수신자, 트랜잭션 금액 등 세부 정보가 기밀로 유지되며 blockchain에서 보이지 않습니다. |
| 다중 자산과 atomic exchange: zswap은 단일 트랜잭션에서 여러 자산 교환을 지원하며, atomic exchange도 가능합니다. | atomic exchange는 두 트랜잭션이 모두 성사되거나 아무것도 일어나지 않도록 보장하여, 부분적이거나 불완전한 트랜잭션을 방지합니다. |
| 효율적인 swap: zswap은 집계된 공개 무작위성이 있는 희소 동형 commitment를 활용하여, 서로 다른 자산 간의 효율적인 swap을 지원합니다. | zswap 트랜잭션은 빠르게 처리되며 수수료도 낮습니다. |
| 증명 가능한 보안: zswap은 트랜잭션 보안을 수학적으로 검증할 수 있도록 설계되었습니다. | zswap으로 수행된 트랜잭션이 안전하며 변조될 수 없음을 보장합니다. |
| 기존 코드베이스 및 구현 전문성 기반: zswap은 Zcash의 데이터 보호 기능인 Zcash Sapling의 코드베이스와 구현 전문성을 활용합니다. | 견고한 기반 위에 구축되어 철저한 테스트와 개발을 거쳤습니다. |
zswap 프로토콜에서 트랜잭션은 병합을 허용하면서도 사용자 기밀성을 유지하도록 의도적으로 가변적(malleable) 으로 설계됩니다. 트랜잭션 데이터가 서명과 분리되는데, 이는 Zcash 생태계에서 차용한 핵심 통찰입니다. 이 분리 덕분에 검증에 비대화형 zero-knowledge proof(NIZK)를 사용할 수 있어, 다른 솔루션에서 흔히 쓰이는 느린 다자간 계산(MPC) 프로토콜이 필요 없습니다. 서명 분리와 동형 commitment를 갖춘 Zcash Sapling 프레임워크가 zswap의 중요한 영감이 되었습니다.
다중 자산 지원과 atomic swap의 핵심 속성을 달성하기 위해, zswap은 희소 다중 값 Pedersen commitment를 활용하고 서명 요구 사항을 완화합니다. 희소 commitment를 사용하면 트랜잭션을 비대화형으로 병합할 수 있어, 서로 모르는 당사자 간에도 다양한 자산을 교환할 수 있습니다. 프로토콜은 각 자산에 대해 입력 합과 출력 합이 다른 경우의 불균형 맵만 공개하도록 설계됩니다. 이 불균형에서는 자산의 구체적인 금액과 유형이 드러나지 않아, 발신자/수신자 기밀성과 후속 소비 상관관계가 보호됩니다.
zswap을 통해 로컬 교환 시장의 기본 기능이 확립됩니다. 사용자가 교환 제안을 보내면, 선택된 참여자가 이 제안을 오프체인에서 매칭하고 병합한 뒤 blockchain에 제출합니다. 시스템의 기밀성은 사용자가 제어하며, 매칭 과정에서 드러나는 정보는 최소한이고 트랜잭션이 균형을 이루어 ledger에 전송되면 삭제됩니다. 부분 병합은 불균형이 0인 유형을 삭제하며, 더 큰 교환 풀은 유동성을 제공하고 전통적인 거래소와 유사한 공개 주문장을 유지할 수 있습니다.
zswap이 Midnight에 기여하는 것:
- 공식 모델: zswap은 nullifier와 유사한 비공개 UTXO 메커니즘을 추상화하는 One-Time Account(OTA) 시스템 위에 구축된, swap이 포함된 다중 자산 Zcash 시스템의 공식 모델을 도입합니다. OTA 모델과 zswap의 증명 기법은 독립적으로도 의미가 있으며, Zcash나 Monero 같은 시스템의 보안 증명에 적용할 수 있습니다.
- 실용적 구현: zswap은 비공개 비대화형 atomic swap의 실용적인 구현을 제공합니다. 인가와 블라인딩 서명을 제거하면서 보안을 유지하여 Zcash 프레임워크를 단순화합니다.
- 보안: zswap 구성은 Zerocash에서 사용된 것과 유사한 일반적 가정 하에서 안전한 것으로 증명됩니다. Zcash 서명의 제거가 검증되었으며, 소비 및 출력 commitment의 완벽한 숨김 및 바인딩 속성만으로 보안이 충분함이 입증되었습니다.
- 구현 및 평가: zswap은 실제로 구현되고 평가되어, 병합 메커니즘이 매우 효과적이며 swap 없는 기본 단일 자산 프로토콜 대비 성능 오버헤드가 최소한임이 확인되었습니다.
종합하면, zswap은 프라이버시 중심의 atomic swap을 위한 유망한 솔루션으로, 다중 자산 지원과 강력한 프라이버시 보장을 갖춘 데이터 보호 token 메커니즘 개발의 기반이 됩니다.
더 자세한 내용은 Zswap: ZK Snark Based Non-Interactive Multi-Asset Swaps 연구 논문을 참조하세요.