Skip to main content

10 posts tagged with "intro"

View All Tags

Web3 기초부터 배우기 - Ethereum 이해하기

· 5 min read
Samantha Holstine
Senior Developer Relations Engineer

지난주 SheFi 코스를 시작했습니다. 여성이 Web3와 탈중앙화 금융(DeFi)을 깊이 있게 배울 수 있도록 설계된 프로그램입니다. 첫 주제 중 하나가 Ethereum이었는데, Ethereum이 무엇인지, 왜 중요한지, 탈중앙화 생태계에서 어떤 위치를 차지하는지를 다루었습니다.

강의 내용을 바탕으로 두 편의 좋은 개요 글을 읽었습니다: Coinbase의 "A Beginner's Guide to Ethereum"Matt의 "Getting Up to Speed on Ethereum". 두 글 모두 Ethereum을 단순한 암호화폐가 아니라 Web3 애플리케이션의 기반 플랫폼으로 이해하는 데 도움이 되었습니다. 빠르게 진화하는 암호화폐 생태계에서 Ethereum이 왜 중요한지, 어떤 점이 인상적이었는지 정리해 봅니다.

Ethereum in a Nutshell

Ethereum은 탈중앙화 컴퓨팅 플랫폼입니다. 누구나 접근할 수 있지만 누구도 단독으로 통제할 수 없는 글로벌 컴퓨터라고 생각하면 됩니다. 블록체인 기반으로 동작하며, 전 세계 노드 네트워크가 활동 기록을 공유하고 검증합니다. Ethereum의 특별한 점은 트랜잭션 저장뿐 아니라 애플리케이션 실행도 가능하다는 것입니다. 이런 앱은 블록체인에 배포되어 작성된 대로 정확히 실행되는 프로그램, 즉 스마트 컨트랙트로 구동됩니다.

Ethereum 네트워크는 개방적이고, 프로그래밍 가능하며, 허가가 필요 없습니다. 누구나 개발할 수 있고, 사용에 별도 승인이 필요 없습니다. 이 구조 덕분에 대출 프로토콜이나 스테이블코인 같은 금융 도구, NFT 마켓플레이스, 탈중앙화 신원 시스템 등 다양한 dApp의 기반이 되었습니다.

Why Ethereum Matters

Ethereum이 중요한 이유는 인터넷을 "읽기-쓰기" 플랫폼에서 "읽기-쓰기-실행" 환경으로 전환하기 때문입니다. 정보를 공유하는 것을 넘어, 중앙 중개자 없이 로직을 직접 실행할 수 있습니다. 이로써 더 투명하고, 견고하며, 접근성 높은 시스템 구축이 가능해졌습니다.

Ethereum의 핵심 돌파구는 개발자가 스마트 컨트랙트를 통해 자신의 로직을 네트워크에 직접 배포할 수 있다는 점입니다. 스마트 컨트랙트는 규칙을 정의하고, 가치를 관리하며, 다른 컨트랙트와 상호작용합니다. 이 모든 것이 신뢰 없이(trustless), 위변조 방지 상태로 이루어집니다. 배포된 스마트 컨트랙트는 변경하거나 검열할 수 없으므로, 사용자는 백엔드가 몰래 바뀔 걱정 없이 안심하고 사용할 수 있습니다.

Ether: The Fuel of the Ethereum Network

Ether(ETH)는 Ethereum의 네이티브 통화입니다. ETH를 단순히 사고팔고 보유하는 암호화폐로 생각하기 쉽지만, 가장 중요한 역할은 연산의 연료입니다. Ethereum 네트워크의 모든 작업에는 가스가 소요되며, 이를 ETH로 지불합니다. 이 구조가 Ethereum의 보안과 인센티브 체계의 핵심이며, 리소스의 책임 있는 사용과 스팸 방지를 보장합니다.

트랜잭션 전송, 스마트 컨트랙트 배포, dApp 상호작용 등 모든 요청에는 처리 비용을 지불해야 합니다. 작업이 복잡할수록 더 많은 가스가 소비됩니다. 가스 가격은 네트워크 수요에 따라 변동하며, 빠른 확인을 위해 더 높은 수수료를 설정할 수도 있습니다. 이런 시장 구조가 개발자에게 더 효율적인 코드를 작성하도록 유도합니다.

The Power of Smart Contracts

스마트 컨트랙트는 Ethereum을 강력하게 만드는 핵심입니다. 블록체인 위에서 규칙을 자동으로 집행하는 자체 실행 프로그램으로, 회사나 사람이 아닌 코드를 신뢰하면 됩니다. Aave 같은 대출 플랫폼, Uniswap 같은 탈중앙화 거래소, Axie Infinity 같은 게임 등 다양한 사용 사례가 스마트 컨트랙트 덕분에 가능해졌습니다.

배포된 스마트 컨트랙트는 공개적이고 검증 가능합니다. 누구나 코드를 확인하고, 상호작용하고, 그 위에 새로운 것을 만들 수 있습니다. 이런 개방성이 구성 가능성(composability) 문화를 만들었습니다. 기존 컨트랙트에 연결하거나, 변형하거나, 완전히 새로운 시스템을 조합할 수 있습니다. Ethereum이 "금융 및 디지털 도구의 레고"로 불리는 이유입니다.

Ethereum Today and Tomorrow

Ethereum은 2015년 출시 이후 크게 발전했습니다. 이제 틈새 실험이 아니라 세계에서 가장 널리 쓰이는 스마트 컨트랙트 플랫폼입니다. 하지만 성장에는 과제도 따랐습니다. 네트워크 혼잡과 높은 가스 비용 때문에 일부 사용자는 dApp을 합리적인 비용으로 사용하기 어려워졌습니다. 이 문제를 해결하기 위해 Ethereum은 여러 차례 대규모 업그레이드를 거쳤으며, 가장 주목할 만한 것이 "The Merge"로 알려진 작업 증명(PoW)에서 지분 증명(PoS)으로의 전환입니다.

지분 증명은 에너지 집약적인 채굴 대신, ETH를 스테이킹한 검증자가 네트워크를 보호하는 합의 메커니즘입니다. 이 전환으로 Ethereum의 에너지 소비가 대폭 줄었고, 샤딩이나 롤업 같은 확장 기술의 기반이 마련되었습니다. 롤업은 다수의 트랜잭션을 하나의 증명으로 묶어 Ethereum 메인넷에 제출하는 기술로, 보안이나 탈중앙화를 희생하지 않으면서 처리량을 높입니다.

레이어 2 네트워크를 통한 생태계 확장도 활발합니다. 레이어 2는 Ethereum 위에 구축되어 오프체인에서 트랜잭션을 처리하되, 최종 정산과 보안은 Ethereum에 의존합니다. Arbitrum, Optimism, zkSync 같은 프로젝트가 Ethereum을 일반 사용자에게 더 빠르고 저렴하게 만들고 있습니다.

How Ethereum Connects with Midnight

Ethereum이 Web3의 기반 스마트 컨트랙트 플랫폼이라면, Midnight은 그 기능을 보완하고 확장합니다. 특히 프라이버시 영역에서 그렇습니다.

Ethereum 생태계(지갑, 개발 환경, 스마트 컨트랙트 모델)에 익숙한 개발자라면 비슷한 패턴으로 Midnight을 사용할 수 있습니다. Midnight의 스마트 컨트랙트 언어 Compact은 Solidity와 유사한 프로그래밍 방식을 지원하며, 프라이버시 제약을 강제하는 검증 가능한 서킷으로 컴파일됩니다. 덕분에 투표 시스템, 토큰 전송, 신원 확인 등 Ethereum에서는 공개될 수밖에 없는 애플리케이션의 비공개 버전을 구축할 수 있습니다.

Ethereum은 프로그래밍 가능성과 탈중앙화를 제공하지만, 모든 온체인 트랜잭션이 기본적으로 투명합니다. Midnight은 이 빈자리, 즉 프라이버시 레이어를 채웁니다. 공개 자산과 스마트 컨트랙트는 Ethereum에 두고, 민감한 데이터와 기밀 로직은 Midnight이 처리하는 워크플로우를 생각해 보세요. 두 네트워크를 연결하면 더 풍부한 프라이버시 보존 애플리케이션을 만들 수 있습니다.

Ethereum과 Midnight은 탈중앙화 스택에서 상호 보완적인 역할을 합니다. Ethereum이 개방성과 구성 가능성을 제공하고, Midnight이 선택적 공개와 비공개 연산을 더함으로써, Ethereum 단독으로는 불가능한 방식의 안전하고 규정 준수 가능한 애플리케이션 구축이 가능해집니다.

Conclusion

Ethereum은 단순한 암호화폐가 아니라 새로운 인터넷을 만들기 위한 플랫폼입니다. 프로그래밍 가능한 로직과 탈중앙화 인프라를 결합하여, 개방적이고 투명하며 사용자가 소유하는 애플리케이션을 실현합니다. DeFi, NFT, 그리고 온라인 상호작용의 수많은 실험이 모두 Ethereum 위에서 이루어지고 있습니다.

SheFi 코스를 시작하고 이 글들을 읽으면서 Ethereum이 무엇이고 왜 중요한지 기초를 다질 수 있었습니다. 코인을 사는 것이 아니라, 디지털 세계에서 신뢰, 소유권, 가치에 대한 사고방식 자체를 바꾸는 것입니다.

다음 주에 Web3의 핵심 구성 요소를 이어서 다루겠습니다. 이제 막 시작하시는 분이라면 Coinbase의 입문서Matt의 분석을 꼭 읽어보세요.

Midnight의 오픈소스 첫걸음 - example-counter와 example-bboard를 소개합니다

· 3 min read
Lauren Lee
Director of Developer Relations

Midnight의 Developer Relations 팀은 개발자가 프라이버시 우선 앱을 배우고 구축하고 실험하는 환경을 적극적으로 조성하고 있습니다. 이 글에서는 DevRel 팀이 신규 개발자의 진입 장벽을 어떻게 낮추고, 오픈소스 도구를 지원하며, 프라이버시 보존 blockchain 개발의 고유한 과제를 커뮤니티와 함께 해결해 나가고 있는지 소개합니다.

Web3 기초부터 배우기 — 스마트 컨트랙트와 Compact 언어

· 5 min read
Samantha Holstine
Senior Developer Relations Engineer

Web3 세계를 탐험하면서 Midnight 같은 프라이버시 우선 플랫폼의 핵심 구성 요소를 하나씩 파고들고 있습니다(이전 글은 Midnight Dev Diaries에서 확인하세요!). 이번 주에는 밀접하게 연관된 두 가지 기초에 집중했습니다: Midnight의 smart contract와 이를 구동하는 Compact 언어입니다.

Smart contract 자체는 blockchain에서 새로운 개념이 아니지만, Midnight의 접근 방식은 독특합니다. 코드를 온체인에서 직접 실행하는 대신, smart contract로 규칙만 정의하고 실제 적용은 오프체인에서 zero-knowledge proof를 통해 처리합니다. 이 시스템의 핵심이 바로 Compact입니다. 프라이버시를 보존하는 contract를 안전하고 실용적으로 작성하기 위해 설계된 전용 언어입니다.

실제 작동 방식을 더 잘 이해하기 위해 Midnight Developer Academy의 Module 2도 진행했습니다. 이 모듈에서는 contract 구조, circuit 유형, contract와 외부 실행 로직 간의 관계를 다룹니다.

이번 글에서는 Midnight의 smart contract가 무엇이 다른지, Compact의 구조는 어떤지, 그리고 이 둘이 어떻게 협력하여 민감한 데이터를 노출하지 않으면서 증명 가능한 로직을 구현하는지 설명하겠습니다.

What Is a Smart Contract on Midnight?

큰 그림에서 보면, smart contract는 blockchain에 저장된 자율 프로그램입니다. 상호작용 규칙을 정의하고, 규칙 충족 여부를 확인하며, 결과를 기록합니다. 신뢰할 수 있는 제3자가 필요 없습니다.

하지만 Midnight은 일반적인 blockchain이 아닙니다. 컴플라이언스를 고려한 프라이버시 우선 플랫폼이므로, smart contract가 로직 실행 이상의 역할을 해야 합니다. 개인 데이터를 보호하고, selective disclosure를 지원하며, 적대적인 환경에서도 보안과 신뢰를 유지해야 합니다.

이 지점에서 Compact이 등장합니다. Midnight의 smart contract 작성을 위해 설계된 도메인 특화 언어입니다.

기존 smart contract와 달리 Compact contract는 온체인에서 직접 로직을 실행하지 않습니다. 대신 증명해야 할 로직을 정의합니다. Contract에는 준수해야 할 규칙이 인코딩되어 있고, 이 규칙이 zero-knowledge proof의 기반이 됩니다. 실제 실행(transaction 처리, 자격 증명 생성, 투표 제출 등)은 외부에서 이루어지며, 보통 DApp, 백엔드 서비스, API가 담당합니다.

외부 시스템이 필요한 로직을 실행한 뒤, 암호학적 proof를 생성하여 contract 규칙을 준수했음을 증명합니다. Blockchain은 세부 사항을 알 필요 없이 proof의 유효성만 검증하면 됩니다. 이러한 분리 구조 덕분에 Midnight 모델은 확장성과 프라이버시를 동시에 확보할 수 있습니다.

정리하면, contract가 규칙을 정하고, 앱이 로직을 실행하며, blockchain은 민감한 입력값 없이 결과만 검증합니다.

What Is Compact?

Compact은 Midnight 네트워크의 고유한 목표에 맞춰 설계된 정적 타입, 프라이버시 중심 smart contract 언어입니다. JavaScript나 TypeScript 경험이 있다면 꽤 친숙하게 느껴질 것입니다. 정적 타입 circuit을 사용해 오프체인 연산에 매핑되는 zero-knowledge proof 로직을 정의하는 도메인 특화 언어(DSL)입니다. 다만 간결한 문법에 속아서는 안 됩니다. Compact은 내부적으로 zero-knowledge proof(ZKP) 기반의 프라이버시 보존 연산을 위해 설계되었습니다. (더 깊은 기술적 내용은 Kevin Millikin의 Compact Deep Dive를 여기에서 확인하세요!)

Compact contract는 세 가지 핵심 구성요소로 이루어집니다:

  • Ledger: Contract의 공개적인 온체인 상태입니다.
  • Circuit: 데이터를 조작하고, proof를 생성하며, ledger와 상호작용하는 오프체인 로직입니다.
  • Witness: 비공개로 보유된 데이터로, contract를 실행하는 주체만 알고 있습니다.

Compact은 explicit disclosure도 지원합니다. 어떤 데이터를 누구에게 공개할지 개발자가 정확히 정의할 수 있습니다. 온체인에서 무엇이 보이고 무엇이 비공개인지 세밀하게 제어할 수 있어, 비공개 자산 전송, 연령 인증 접근, 기밀 투표 등에 필수적입니다.

Circuits and Privacy

Midnight Developer Academy Module 2에서 가장 중요한 개념 중 하나가 circuit의 작동 방식입니다. Compact에서 circuit은 사용자나 시스템이 호출하여 작업을 실행하는 함수입니다. 하지만 Web2 API나 EVM contract 함수와 달리, blockchain에서 직접 로직을 실행하지 않습니다. 오프체인에서 실행된 뒤, 로직을 준수했다는 zero-knowledge proof를 생성합니다.

구체적으로는 다음과 같습니다:

  • Contract 로직은 공개입니다.
  • 실행 중 사용되는 데이터는 비공개입니다.
  • 로직의 결과(예: "규칙이 준수되었음")는 proof를 사용하여 공개적으로 검증 가능합니다.

이것이 Midnight 모델의 핵심 강점입니다. 실제 데이터를 공개하지 않고도 규칙을 준수했음을 증명할 수 있습니다. 예를 들어, 자신이 누구인지, 무엇에 투표했는지 공개하지 않으면서도 "투표 자격이 있음"을 증명하는 것이 가능합니다.

From Theory to Practice

기존 smart contract 플랫폼에서는 데이터, 로직, 입력, 출력 모두 기본적으로 공개됩니다. 투명성 측면에서는 유용하지만, 건강 데이터, 금융 기록, 신원 확인 같은 민감한 사용 사례에는 적합하지 않습니다.

Midnight은 이 기본값을 뒤집습니다. 프라이버시가 기본으로 내장되어 있고, 개발자가 필요한 경우에만 선택적으로 공개합니다.

Midnight에서 Compact으로 구축할 수 있는 사례는 다음과 같습니다:

  • 결과만 공개되는 투표 시스템
  • 신원을 드러내지 않고 사용자 속성을 확인하는 접근 제어 시스템
  • 금액이나 발신자를 숨기면서도 공개 검증이 가능한 토큰 전송 앱

Conclusion

Smart contract는 탈중앙화 애플리케이션의 기반이며, Midnight에서는 프라이버시 우선 미래를 위해 설계되었습니다. 모든 로직을 온체인에서 실행하는 대신, 로직 정의와 실행을 분리합니다. Compact을 통해 개발자는 zero-knowledge proof 시스템의 규칙을 정의하고, 민감한 데이터 없이도 사실을 증명할 수 있는 애플리케이션을 만들 수 있습니다. 이것은 안전하고, 확장 가능하며, 사용자를 보호하는 Web3를 향한 실질적인 전환입니다.

Midnight에서 이것은 이론적 개선이 아닙니다. 플랫폼의 핵심 작동 원리입니다. Compact smart contract로 입력과 실행을 오프체인에 유지하면서 검증 가능하고 감사 가능한 로직을 작성할 수 있습니다. ZKP, shielded transaction과 결합하면 프라이버시와 탈중앙화를 모두 유지하면서 실제 사용 사례를 지원하는 인프라가 완성됩니다.

Web3에서 smart contract 구축법을 배우고 있거나 전체 구조가 어떻게 연결되는지 궁금하다면, Midnight Developer Academy의 Module 2Compact Language Reference를 참고하세요. 개념을 단계별로 설명하며, Midnight 아키텍처가 고급 암호학을 실용적인 개발 도구로 어떻게 전환하는지 보여줍니다.

다음 주에도 탈중앙화 세계에서 프라이버시 우선 시스템을 구성하는 요소들을 계속 다루겠습니다.

Web3 기초부터 배우기 — 선택적 공개(Selective Disclosure) 이해하기

· 7 min read
Samantha Holstine
Senior Developer Relations Engineer

Web3 세계를 더 깊이 탐구하면서 업계에 대한 이해를 넓히기 위해 기초 개념을 하나씩 짚어가고 있습니다(지난 다섯 편의 글은 Midnight Dev Diaries에서 확인하세요!). 이번 주에는 지금까지 만난 개념 중 가장 실용적이고 프라이버시에 초점을 맞춘 아이디어인 selective disclosure를 깊이 다루었습니다.

Selective disclosure는 단순한 기술적 기능이 아닙니다. Rational privacy라는 더 넓은 개념의 실제 구현입니다. 특정 상호작용에서 필요한 것만 증명하거나 공개하고, 나머지는 모두 비공개로 유지합니다. 중앙 권위 없이 신뢰를 쌓아야 하는 생태계에서, 법적 또는 운영상의 요구사항을 충족하면서 개인 데이터를 보호할 수 있다는 점은 매우 중요합니다.

이 글에서는 selective disclosure의 작동 방식, 장점, 그리고 Midnight이 프라이버시 우선 smart contract를 통해 이를 어떻게 구현하고 있는지 살펴봅니다.

What Is Selective Disclosure?

Web3 세계에서 프라이버시는 모든 것을 비밀로 유지하는 것이 아닙니다. 필요한 것만 공유하는 것입니다. Selective disclosure는 특정 상호작용에서 필요한 정보만 공개하고 다른 모든 개인 데이터는 기밀로 유지하는 프라이버시 보존 기법입니다.

이 접근 방식은 rational privacy라는 더 넓은 개념을 구체화한 것입니다. Rational privacy란 프라이버시가 전부 아니면 전무가 아니라 맥락에 따라 조절되어야 한다는 생각입니다. 실제로 많은 상황에서 사용자는 서비스 접근이나 법적 의무 이행을 위해 일부 데이터를 공유해야 하지만, 그 과정에서 모든 프라이버시를 포기할 필요는 없습니다. 개인 통제, 사용성, 규제 준수 사이의 균형을 맞추는 것이 핵심입니다.

Selective disclosure는 이 rational privacy를 기술적으로 구현한 것입니다. 민감한 정보를 기본적으로 보호하면서, 필요할 때 적절한 수준의 투명성을 제공할 수 있는 암호학적 도구를 사용자와 개발자에게 제공합니다. 데이터가 불변적이고 기본적으로 공개되는 공개 blockchain 네트워크에서 특히 중요합니다.

Selective disclosure의 대표적인 사례는 Verifiable Credential(VC)의 사용입니다. VC를 통해 사용자는 전체 자격 증명을 공개하지 않고도 나이, 거주지, 학력 같은 속성을 증명할 수 있습니다. 이는 데이터 최소화와 privacy by design의 원칙에 부합하며, 개인이 자신의 정보를 통제할 수 있게 합니다.

이처럼 사용성과 프라이버시의 균형을 잡을 수 있다는 점이 selective disclosure의 강점이며, 실제 blockchain 애플리케이션에 매우 적합한 이유입니다. 그렇다면 기술적 구현을 넘어 실질적인 이점은 무엇일까요?

Benefits of Selective Disclosure

적절히 통합하면 selective disclosure는 탈중앙화 시스템에 기술적이면서도 사용자 중심적인 장점을 제공합니다. 기능을 희생하지 않으면서 프라이버시 기대치와 컴플라이언스 기준을 동시에 충족할 수 있습니다. 주요 장점은 다음과 같습니다:

  • Enhanced Privacy: 전체 자격 증명이나 신원 문서를 공개하지 않고, 특정 상호작용에 필요한 데이터만 공유할 수 있습니다. 프라이버시 침해와 감시 위험이 크게 줄어듭니다. 서비스 접근, 양식 제출, smart contract 상호작용 등 어떤 경우에도 불필요한 개인 데이터가 노출되지 않습니다.
  • Data Minimization and Compliance: 데이터 최소화 원칙은 GDPR, HIPAA 같은 프라이버시 법규의 핵심으로, 작업에 필요한 최소한의 개인 데이터만 수집/처리하도록 요구합니다. Selective disclosure는 이 원칙을 자연스럽게 실현하므로, 개발자와 조직이 프라이버시를 기본으로 존중하는 시스템을 설계하기 쉬워집니다.
  • User Empowerment and Control: 기존 시스템에서는 나이만 증명하려고 신분증 전체를 업로드하는 식으로, 작은 검증을 위해 전체 데이터를 넘기는 경우가 많습니다. Selective disclosure는 이 구조를 뒤집어, 무엇을 언제 누구에게 공유할지 사용자가 직접 통제합니다. 개인이 자신의 자격 증명을 관리하는 사용자 중심 데이터 모델에 부합합니다.
  • Reduced Risk of Data Misuse: 노출 정보가 줄어들수록 데이터 유실, 도난, 오용 위험도 줄어듭니다. 대규모 ID 데이터베이스 같은 중앙 집중식 저장소의 필요성이 감소하여, 사기와 신원 도용에 대한 공격 경로가 제한됩니다. Transaction이나 자격 증명이 중간에 가로채이더라도 최소한으로 공개된 속성만 노출됩니다.
  • Lower Liability and Operational Overhead for Businesses: 많은 조직이 위험, 규제 요구, 관리 부담 때문에 민감한 사용자 데이터의 수집과 저장을 꺼립니다. Selective disclosure를 활용하면 사용자가 조직에 데이터를 맡기지 않고도 자격이나 컴플라이언스를 입증할 수 있습니다. 비용 절감, 운영 간소화, 전반적인 데이터 보안 수준 향상으로 이어집니다.

Selective disclosure가 사용자 중심 프라이버시의 강력한 모델이지만, 기술적/사용성 측면에서 고유한 과제도 있습니다. 이러한 한계를 이해하는 것은 책임감 있는 도입을 위해 필수적입니다.

Potential Drawbacks

Selective disclosure가 프라이버시와 통제를 강화하지만, 실제 구현이 항상 간단하지는 않습니다. 주요 과제는 다음과 같습니다:

  • Complexity in Implementation: Selective disclosure는 zero-knowledge proof 등 고급 암호학 기술에 의존합니다. 신중한 설계, 정밀한 구현, 깊은 보안 지식이 필요합니다. 저처럼 Web3나 암호학에 새로 입문한 개발자에게는 학습 곡선이 가파르고, 구현 실수가 의도한 프라이버시 보호를 약화시킬 수 있습니다.
  • Verification Difficulties: 자격 증명이나 진술의 일부만 공개할 때, 진위 확인이 더 복잡해질 수 있습니다. 원본 데이터 전체에 접근하지 않고도 부분 공개를 신뢰할 수 있도록 시스템을 설계해야 합니다. 추가 메타데이터나 proof가 필요한 경우가 많아 시스템 복잡성이 높아지고 검증 속도가 느려질 수 있습니다.
  • Interoperability Challenges: 모든 탈중앙화 신원 시스템이 동일한 형식이나 표준을 따르지는 않습니다. 한 플랫폼에서 발행한 자격 증명이 다른 플랫폼에서 쉽게 검증되지 않을 수 있으며, selective disclosure 같은 고급 기능에서 특히 그렇습니다. 널리 채택된 프로토콜과 인프라가 부족하면 크로스 플랫폼 호환성이 제한되어 selective disclosure 데이터의 활용 범위가 좁아집니다.

이러한 과제는 실재하지만 극복 불가능하지는 않습니다. Midnight을 포함한 프라이버시 보존 blockchain 프로젝트들은 selective disclosure를 더 실용적이고 개발자 친화적으로 만들고, 생태계 간 상호운용성을 높이는 데 집중하고 있습니다.

Use Cases of Selective Disclosure

Selective disclosure는 과도한 정보 공개 없이 무언가를 증명해야 하는 모든 상황에서 활용됩니다. 민감한 데이터를 다루면서도 컴플라이언스, 신뢰, 투명성이 요구되는 시스템에 특히 유용합니다. 대표적인 분야를 살펴보겠습니다:

  • Digital Identity Verification: 서비스에 접근하기 위해 18세 이상임을 증명하되, 운전면허증을 업로드하거나 생년월일과 주소를 전부 공개하지 않아도 됩니다. Selective disclosure를 통해 전체 자격 증명이 아닌, 관련 사실(예: "18세 이상")만 검증 가능한 진술로 제시할 수 있습니다.
  • Financial Transactions: 금융 플랫폼은 종종 신원이나 transaction 정당성(KYC/AML 컴플라이언스)을 확인해야 하지만, 사용자가 전체 금융 이력이나 지갑 활동을 공유할 필요는 없습니다. Selective disclosure를 통해 법적으로 필요한 것만 공유할 수 있습니다. 그 이상도 이하도 아닙니다.
  • Healthcare: 환자가 전체 의료 기록을 공개하지 않고 예방접종 상태나 의료 자격을 증명해야 할 수 있습니다. Selective disclosure를 통해 필요한 속성(예: "X에 대해 예방접종 완료")만 공유하고 나머지는 비공개로 유지할 수 있습니다.
  • Access Control: 장소 입장이든 온라인 서비스 접근이든, 사용자는 멤버십, 역할, 자격 증명 같은 속성에 따라 접근이 허용되거나 거부될 수 있습니다. Selective disclosure는 불필요한 식별 정보를 노출하지 않으면서 이러한 접근 로직을 실행할 수 있습니다.

Selective Disclosure in the Midnight Network

Midnight에서 selective disclosure는 단순한 프라이버시 기능이 아니라, rational privacy에 기반한 핵심 설계 원칙입니다. Rational privacy는 민감한 데이터를 보호해야 하지만, 실제 애플리케이션은 규제, 법률, 운영상의 이유로 통제된 가시성도 필요하다는 것을 인식합니다.

금융 transaction을 예로 들어 보겠습니다. Midnight 위에 구축된 탈중앙화 금융 플랫폼은 사용자 잔액, 이체, transaction 이력을 비공개로 유지하고 싶을 수 있습니다. 그러나 자금세탁방지(AML)나 고객확인(KYC) 규정에 따라 특정 정보를 공개해야 할 수도 있습니다. 다만, 권한이 있는 당사자에게만, 특정 법적 조건하에서만 공개됩니다.

이 지점에서 selective disclosure와 zero-knowledge proof가 결합됩니다. Midnight의 Compact smart contract 언어로 전체 transaction 세부 사항을 공개하지 않으면서 transaction 유효성(예: 특정 한도 이하, 규제 필터 준수)을 증명하는 로직을 구축할 수 있습니다. 규제 감사가 발생하면 필요한 정보만 선택적으로 공개하고, 그 이상은 공개하지 않습니다.

이를 통해 Midnight에서는 개인 프라이버시를 존중하면서 규제 요구사항도 준수하는 애플리케이션을 구축할 수 있습니다. 현실 세계에서 신뢰가 작동하는 방식 그대로입니다: 필요한 것만, 필요할 때만, 적절한 상대에게만 공유합니다.

Conclusion

Selective disclosure는 사용자의 실제 상황에 맞는 유연하고 강력한 프라이버시 접근 방식입니다. 자신의 정보를 직접 통제하면서, 요구사항 충족에 필요한 최소한의 정보만 공유할 수 있습니다. 신원 확인, 자격 증명, 금융 규정 준수 등 어떤 경우든 프라이버시를 실용적이고 효과적으로 구현합니다.

Midnight에서 이 개념은 이론을 넘어 플랫폼 아키텍처에 내장되어 있습니다. Compact smart contract와 zero-knowledge proof를 통해, 사용자 보호와 실제 요구 사이의 균형을 맞추는 시스템을 구축할 수 있습니다. Rational privacy의 실현입니다.

Web3에서 프라이버시를 위한 개발 방법을 탐구하고 있거나 이러한 시스템의 작동 원리를 배우고 있다면, 더 많은 예시와 기술적 통찰을 위해 Midnight docsAcademy를 확인해 보시기 바랍니다. 아래에 selective disclosure에 대한 추가 읽을거리도 함께 정리했습니다:

항상 그렇듯, Web3에서 프라이버시나 신원에 관한 좋은 학습 자료를 발견하셨다면 공유해 주세요!

다음 주에도 탈중앙화 시스템을 구성하는 핵심 요소들을 계속 풀어나가겠습니다.

Web3 기초부터 배우기 — Merkle Tree와 DAO 파헤치기

· 6 min read
Samantha Holstine
Senior Developer Relations Engineer

Web3 학습 여정을 이어오면서 주로 Cardano AcademyMidnight Academy를 진행하고 그 내용을 Midnight Dev Diaries에 기록해 왔습니다. 하지만 이번 주에는 범위를 넓혀 생태계 전반의 초보자 친화적 자료를 다양하게 탐색해 보았습니다. 그 과정에서 반복적으로 등장하는 두 가지 기초 개념을 발견했습니다: Merkle Tree와 DAO(Decentralized Autonomous Organization, 탈중앙화 자율 조직)입니다.

이 두 주제는 blockchain이 약속하는 투명성 보장, 데이터 무결성 검증, 탈중앙화 거버넌스의 핵심입니다. 아래에 핵심 내용을 정리했으며, 더 깊이 알고 싶다면 글 끝에 참고 자료 목록을 첨부했습니다.

Merkle Trees: Ensuring Data Integrity

Merkle Tree는 해시 트리라고도 하며, 대규모 데이터를 효율적이고 안전하게 검증할 수 있는 데이터 구조입니다. 본질적으로 이진 트리의 특수한 형태입니다. 이진 트리는 Web2 개발자에게도 익숙한 구조로, 각 노드에 최대 두 개의 자식 노드가 있습니다. Merkle Tree의 차이점은 값을 직접 저장하는 대신 해시를 저장한다는 것입니다. 이 해시가 데이터 블록을 대표하며, 트리 전체 데이터에 대한 간결하고 위조 불가능한 요약을 제공합니다.

Merkle Tree가 blockchain에서 중요한 이유는 수천 건의 transaction 같은 대규모 데이터를 효율적이고 안전하게 검증할 수 있기 때문입니다. 모든 transaction을 일일이 확인할 필요 없이, 해시의 작은 부분 집합(Merkle proof)만으로 특정 transaction이 블록에 포함되어 있는지 확인할 수 있습니다.

Merkle Tree가 구축되는 과정을 간단히 정리하면 다음과 같습니다:

  1. 데이터 블록(블록 내 transaction 등)에서 시작합니다.
  2. 각 데이터 블록이 개별적으로 해시됩니다. 이 해시들이 리프 노드가 됩니다.
  3. 리프 해시 쌍이 함께 해시되어 트리의 다음 레벨을 형성합니다.
  4. 이 과정이 반복되어 해시를 쌍으로 결합하며 트리를 올라가고, 최종적으로 하나의 루트 해시, 즉 Merkle Root만 남게 됩니다.

요약하면, 각 리프 노드는 데이터 블록의 해시를 포함하고, 각 비리프 노드는 자식 노드의 해시를 포함하며, 루트 해시는 전체 데이터 세트를 대표합니다. 단 하나의 데이터 블록이 변경되어도 해당 해시가 바뀌고, 이것이 트리 위로 연쇄적으로 전파되어 Merkle Root가 변경됩니다. 이 속성은 데이터 불변성과 무결성이 핵심인 blockchain 시스템에서 매우 중요합니다.

실제로 Merkle Tree는 다음과 같은 곳에 사용됩니다:

  • Blockchain Transaction: 블록 내 transaction이 변조되지 않았음을 보장합니다.
  • Proof of Reserves: 암호화폐 거래소가 개별 계좌 잔액을 공개하지 않으면서도 사용자 예치금을 충당할 충분한 자산을 보유하고 있음을 증명하는 데 Merkle Tree를 사용합니다.

DAOs: Redefining Organizational Governance

DAO(Decentralized Autonomous Organization, 탈중앙화 자율 조직)는 blockchain의 smart contract로 운영되는 조직으로, 중앙 리더십이 필요 없습니다. 기존의 하향식 리더십 대신 투명하고 커뮤니티 주도적인 거버넌스를 채택하며, 모든 것이 smart contract를 통해 실행됩니다.

DAO에서는 규칙과 운영이 사전에 프로그래밍되어 온체인에 저장됩니다. 누구나 의사결정 과정, 자금 배분 방식, 제안 처리 절차를 확인할 수 있습니다. 모든 것이 기본적으로 투명하고 감사 가능합니다. CEO나 이사회 대신 커뮤니티가 집단으로 결정을 내립니다. 토큰 보유자가 제안에 투표하며, 결과는 프로젝트 지분 비중을 반영합니다. 이 집단적 의사결정 구조가 DAO를 태생적으로 탈중앙화되게 만듭니다. 규칙이 smart contract로 자동 집행되므로, 수동 개입이나 중앙 관리자 없이도 자율 운영이 가능합니다. 제안이 통과되면 smart contract가 즉시 결정을 실행합니다. 누군가 버튼을 누를 때까지 기다릴 필요가 없습니다.

그러나 DAO도 다음과 같은 과제에 직면합니다:

  • 보안 위험: Smart contract의 취약점이 악용될 수 있습니다.
  • 거버넌스 문제: 낮은 투표 참여율과 토큰 집중은 중앙화를 초래할 수 있습니다.

DAO는 다양한 분야에서 활용되고 있습니다:

  • 투자 펀드: 자원을 모아 프로젝트에 집단적으로 투자합니다.
  • 자선 단체: 회원 투표를 통해 기금 배분을 결정합니다.
  • 프로토콜 거버넌스: Blockchain 프로토콜을 관리하고 업데이트합니다.

How DAO Voting Works (The Simple Version)

대부분의 DAO는 토큰 기반 투표를 사용하여 의사결정에 도달합니다:

  1. 회원이 거버넌스 토큰을 보유하며, 이것이 투표권을 부여합니다.
  2. 제안이 제출됩니다(예: "새 개발 프로젝트에 자금 지원").
  3. 토큰 보유자가 제안에 찬성 또는 반대 투표를 합니다.
  4. 일정 기준(정족수나 과반수 등)에 도달하면, 제안이 승인되고 smart contract에 의해 자동으로 실행됩니다.

온체인 투표 외에도 많은 DAO가 오프체인 거버넌스 플랫폼을 활용합니다. Snapshot(토큰 가중치 투표에 널리 사용), Aragon Voice, Tally(Governor contract와 함께 사용), Coordinape(탈중앙화 보조금 및 동료 투표에 사용) 등이 대표적입니다. 이러한 도구는 유연성을 높이고, 가스 비용을 줄이며, 실험적인 거버넌스 방식도 지원합니다.

토큰을 많이 보유할수록 더 많은 투표권을 갖게 됩니다. 이는 기업에서 주주가 투표하는 것과 유사하지만, 과정이 전적으로 온체인에서 중개자 없이 이루어집니다.

일부 DAO는 고래(대량 보유자)가 과정을 지배하는 것을 방지하기 위해 이차 투표나 기타 메커니즘을 사용하지만, 핵심 아이디어는 동일합니다: 커뮤니티가 로드맵을 주도합니다.

Interplay Between Merkle Trees and DAOs

Merkle Tree와 DAO는 blockchain에서 서로 다른 목적을 갖습니다. 하나는 데이터 무결성, 다른 하나는 거버넌스에 초점을 맞추고 있습니다. 하지만 이 둘은 강력하게 보완 관계를 이룹니다. 두 기술을 결합하면 DAO가 규모를 키우면서도 안전하고 투명하며 효율적으로 운영될 수 있습니다.

예를 들어, 적격 투표자 전체 목록을 온체인에 저장하는 대신 해당 목록을 대표하는 Merkle Root만 공개할 수 있습니다. 개별 투표자는 자신이 목록에 포함되어 있음을 짧은 암호학적 proof(Merkle proof)로 증명합니다. 투표 과정이 경량화되고, 프라이버시를 유지하면서도 검증이 가능합니다. 보조금 수혜자나 에어드롭 자격 검증에도 같은 방법을 적용하여 저장 공간과 가스 비용을 절약하면서 무결성을 보장할 수 있습니다.

Merkle Tree는 오프체인과 온체인 활동을 연결하는 다리 역할도 합니다. Snapshot 투표 추적이든 커뮤니티 신원 검증이든, 이 proof 구조가 DAO의 성장에 따른 신뢰와 투명성 유지를 뒷받침합니다.

정리하면 Merkle Tree는 투명성이나 효율성을 희생하지 않으면서 DAO 거버넌스를 확장할 수 있는 암호학적 기반을 제공합니다. 투표자 자격 검증, 자금 분배 증명, 오프체인 데이터와 온체인 작업의 연결 등에서 DAO가 성장하면서도 신뢰와 책임성을 유지하도록 돕습니다. 기초적인 blockchain 자료구조가 탈중앙화 의사결정을 어떻게 뒷받침하는지 보여주는 좋은 사례입니다.

Conclusion

Merkle Tree와 DAO는 blockchain 기술이 기술적 효율성과 커뮤니티 자율성을 어떻게 동시에 달성하는지 보여줍니다. Merkle Tree로 transaction, 투표, 수혜자 목록 같은 대규모 데이터를 빠르고 안전하게 검증할 수 있고, DAO는 커뮤니티가 탈중앙화 프로젝트를 투명하고 공정하게 운영할 수 있는 구조를 제공합니다. 이 둘을 결합하면 탈중앙화를 유지하면서도 신뢰를 확장할 수 있는 실용적인 해법이 됩니다. 투표 검증, 자금 분배, 멤버십 증명 등 이러한 도구는 Web3를 단순한 기술적 전환이 아니라 사람들이 함께 조율하고 결정하며 구축하는 새로운 모델의 기반으로 만들어 줍니다.

이번에 처음으로 Cardano와 Midnight Academy 범위를 넘어 탐색하면서, 이 기술들이 생태계 전반에서 어떻게 설명되고 적용되는지 폭넓게 이해하게 되었습니다. 함께 배우고 있거나 다룬 주제를 더 깊이 파고 싶다면, 특히 도움이 된 자료들을 소개합니다:

Web3 기초를 배우면서 좋은 자료를 발견하셨다면, 댓글이나 답글로 추천 자료를 공유해 주세요! Midnight docs에서도 더 많은 기술적 심화 내용과 실제 사용 사례를 확인할 수 있습니다.

다음 주에도 탈중앙화 세계의 다른 핵심 구성요소를 탐구하겠습니다.