카르다노와 미드나잇

강력하고 다양한 기능을 갖춘 Midnight의 데이터 보호 스마트 계약

작성자:마우리시오 마갈디(제품 책임자)

!https://cdn.sanity.io/images/330xhmya/production/b3fd1b95cd9d636f69a365b5a0c6fa9c8655627b-800x800.jpg

출처: Midnight - Midnight’s powerful and versatile data-protecting smart contracts

미드나잇은 개발자가 탈중앙화를 희생하지 않고도 안전하고 규정을 준수하는 스마트 컨트랙트를 생성하는 데 필요한 도구를 제공함으로써 블록체인의 오랜 과제인 데이터 보호 문제를 해결합니다.

블록체인 기술의 핵심은 투명성과 탈중앙화입니다. 피어 노드 네트워크에 정보를 분산시켜 시스템을 적대적인 행동에 저항할 수 있게 하는 것입니다.

하지만 여기에는 흥미로운 수수께끼가 있습니다. 투명성은 블록체인의 설계 원칙 중 하나이지만, 설계상 수백, 수천 개의 노드에서 정보를 볼 수 있는 경우 어떻게 데이터 기밀성을 유지할 수 있을까요? 이 문제는 특히 민감한 데이터를 처리하고 다른 민감한 세부 정보를 드러내기 위해 상호 연관될 수 있는 메타데이터를 생성하는 스마트 컨트랙트와 관련이 있습니다.

블록체인의 데이터 보호: 위대한 수수께끼

오늘날 개발자는 스마트 콘트랙트에서 데이터 보호를 지원하기 위해 암호화를 포함한 여러 가지 옵션을 선택할 수 있습니다. 이러한 기술 중 일부는 데이터 무결성의 일부 정의를 충족하지만, 신뢰 가정에 지나치게 의존해야 하므로 달성 가능한 탈중앙화 수준이 제한되어 바람직하지 않은 트레이드오프가 발생할 수 있습니다.

이러한 문제를 해결하기 위해 Midnight은 탈중앙화를 유지하면서 사용자와 조직의 데이터 기밀성을 유지할 수 있는 스마트 계약을 도입했습니다. 또한 미드나잇 스마트 계약은 앱 빌더가 규정을 준수할 수 있도록 프로그래밍 가능한 보호 기능을 제공합니다. 이 블로그에서는 프로토콜에 대한 개괄적인 개요를 제공하는 미드나잇 스마트 컨트랙트를 살펴봅니다.

미드나잇 스마트 컨트랙트란 무엇인가요?

미드나잇 스마트 콘트랙트는 개발자가 탈중앙화 특성을 희생하지 않고도 데이터 보호와 범용 스마트 콘트랙트 기능을 달성할 수 있는 데이터 보호 솔루션을 제공합니다. 미드나잇 컨트랙트는 카치나에 명시된 원칙을 활용합니다: 프라이빗 스마트 컨트랙트의 기초 백서에 명시된 원칙을 활용합니다.

리플리케이트된 상태 머신과 리액티브 상태 머신

블록체인과 스마트 계약의 맥락에서 기밀성 문제를 해결하려면 탈중앙화를 유지하고 추가적인 신뢰 가정을 피하면서 기밀성을 보장할 수 있는 솔루션이 필요합니다.

다른 블록체인 네트워크는 일반적으로 스마트 콘트랙트를 복제된 상태 머신으로 구현하며, 이는 자연스러운 모델이 상태 머신 자체의 모델이라는 것을 의미합니다. 즉, 트랜잭션 원장에서 입력을 가져와 이 상태 머신으로 전달한다는 뜻입니다.

이러한 구현은 기밀성 측면에서 큰 단점이 있습니다. 스테이트 머신의 동작이 알려져 있고 입력값이 원장에 있다면 기밀성은 존재하지 않습니다. 이 문제를 해결하기 위해 Midnight은 스마트 컨트랙트를 사용자의 로컬 시스템을 포함한 보다 전체적인 상태 머신으로 모델링하며, 그 중 일부만 분산 원장(이 구현에서는 Midnight 블록체인)에 트랜잭션을 제출하여 복제합니다. 스마트 컨트랙트 기능은 단순히 식별자의 해당 입력을 추적합니다.

미드나잇 스마트 컨트랙트 프로토콜의 고유성

미드나잇은 간결한 비대화형 영지식 증명(ZK 스나크)을 활용하여 한 당사자가 특정 진술이나 주장의 내용이나 민감한 데이터를 공개하지 않고도 다른 당사자에게 해당 진술이나 주장이 사실임을 증명할 수 있는 무한 데이터 보호 스마트 계약을 실현하기 위한 실용적인 프로토콜을 제공합니다.

이 프로토콜은 데이터 보호 시스템에 네 가지 핵심적인 기여를 합니다:

  • 데이터를 보호하는 스마트 계약 생성
  • 이러한 대규모 계약의 실현
  • 데이터 기밀성을 훼손하지 않으면서 스마트 컨트랙트와의 동시 상호작용 지원
  • 스마트 컨트랙트 시스템을 효율적이고 구성 가능하게 구축하는 일반적인 방법론에 대한 설명입니다.

프로토콜의 핵심 아이디어는 스마트 콘트랙트의 상태를 공유된 온체인 퍼블릭 상태(퍼블릭 블록체인)와 각 콘트랙트 당사자의 개별적인 오프체인 로컬 상태, 두 부분으로 분리하는 것입니다.

여기서 '상태’는 스마트 컨트랙트 내에 저장된 현재 데이터 또는 정보를 의미합니다. 상태는 변수 값, 저장 위치, 스마트 컨트랙트의 실행과 기능에 필요한 기타 관련 정보를 나타냅니다. 상태에는 작업이 완료되었는지 여부가 포함될 수 있습니다.

미드나잇에서는 컨트랙트 자체에서 공개 상태와 비공개 상태를 동시에 업데이트할 수 있습니다. 계약 당사자는 영지식(zero knowledge)을 사용해 공개 상태의 변경이 유효하다는 증명을 생성하는 동시에 비공개 상태와 이 전환을 위한 입력을 유지합니다. 그런 다음 프로토콜은 증명과 전환을 트랜잭션으로 게시합니다. 사용자가 트랜잭션을 시작하면 스마트 컨트랙트에 높은 수준의 명령(예: 투표 또는 자금 인출)을 내리려고 합니다. 원장이 트랜잭션을 확인한 후 사용자는 명령의 결과와 컨트랙트의 현재 상태를 기반으로 계산된 모든 결과에 대한 정보를 받게 됩니다.

미드나잇은 스마트 컨트랙트의 효율성을 어떻게 향상하나요?

사용자 관점에서 미드나잇은 동시성을 통해 스마트 컨트랙트의 효율성을 향상시킵니다. 동시성이란 여러 행위자가 서로를 막지 않고 동시에 작업을 수행할 수 있는 능력을 말합니다. 이는 처리량 증가와 효율적인 트랜잭션 및 스마트 컨트랙트 처리를 지원합니다. 동시성을 구현하기 위해 미드나잇은 컨트랙트 상태에서 수행된 작업을 기록하고 쿼리와 상호 작용하는 트랜스크립트를 활용합니다. 충돌하는 트랜잭션을 최적화하고 재주문을 허용함으로써 Midnight은 정보 유출을 최소화하는 동시에 동시성을 극대화합니다.

뛰어난 개발자 경험

데이터 보호와 규제 준수는 스마트 컨트랙트 개발자와 컨트랙트를 배포하는 기업이 가장 중요하게 고려하는 두 가지 설계 사항입니다. 개발자에게 이러한 문제를 해결하고 해결할 수 있는 솔루션을 제공하는 것이 바로 미드나잇의 핵심 차별화 요소입니다.

개발자 경험의 관점에서 볼 때, 미드나잇을 사용하여 디앱과 스마트 컨트랙트를 만든다는 것은 영지식 증명을 쉽게 통합할 수 있다는 것을 의미합니다. 더 넓은 맥락에서 보면, Midnight는 개발 프로세스를 간소화하는 혁신적인 프로그래밍 모델을 제공합니다. 개발자는 타입스크립트 라이브러리와 미드나잇의 도메인별 프로그래밍 언어를 사용하여 카치나 프로토콜에 기반한 스마트 컨트랙트를 개발할 수 있습니다.

또한, 개발자는 마이크로소프트 VS 코드용 플러그인을 통해 미드나잇 블록체인으로 원활하게 작업할 수 있습니다. 미드나잇 SDK는 컴파일러와 런타임은 물론 모의 노드, CLI 지갑, 예제 프로젝트 등 소프트웨어를 빌드하고 실행하는 데 필요한 모든 도구를 제공합니다.

전반적으로 미드나잇은 개발자가 데이터를 보호하는 스마트 컨트랙트를 쉽게 만들 수 있는 강력한 환경을 제공하며, 소프트웨어 구축 및 실행에 필요한 도구를 제공하고 블록체인과 원활하게 통합할 수 있도록 합니다.

잠재적 사용 사례

미드나잇 스마트 컨트랙트 모델은 전통 금융(TradFi) 및 탈중앙화 금융(DeFi) 애플리케이션, 신원 관리, 공급망 관리 시스템, 헬스케어 애플리케이션 등 다양한 사용 사례에 적용할 수 있습니다.

결론

데이터 보호는 미드나잇의 핵심입니다. 블록체인과 암호화 기반 기술을 사용하여 개인 및 상업용 민감한 데이터를 안전하게 보호합니다.

이러한 데이터 보호 우선 철학은 기밀 유지뿐만 아니라 개발자, 기업, 개인의 결사, 상업, 표현의 세 가지 기본 자유를 보호하는 환경을 지원할 것입니다.