검수요청.png검수요청.png

시크릿 컨트랙트

위키원
이동: 둘러보기, 검색
이니그마(Enigma)
가이 지스킨드(Guy Zyskind) 이니그마 창시자

시크릿 컨트랙트(secret contract)는 블록체인의 각 노드들이 암호해독 작업 없이 스마트 계약의 암호화된 자료를 사용할 수 있는 기술이다. 이니그마(Enigma)에 의해 개발되었다.

개요

디지털 시대가 도래하면서 프라이버시에 대한 중요성은 나날이 커지고 있다. 프라이버시는 개인이나 집단에 관한 정보를 다른 사람들에게 “선택적으로 공개”할 수 있는 권리를 의미하는데 블록체인은 모두에게 정보를 공개함으로써 투명성 및 정보에 대한 신뢰를 보장하는 장점이 있지만, 오히려 이러한 특성으로 인해 사람들은 민감한 개인정보나 기업 기밀과 같은 데이터를 블록체인에 올리기를 꺼리게 되었다. 현재 블록체인 프라이버시 문제는 블록체인 상용화에 걸림돌이 되고 있다.[1] 이를 위해 에니그마(ENIGMA)가 블록체인의 각 노드들이 암호해독 작업없이 스마트 컨트랙트의 암호화된 자료를 사용할 수 있는 신기술 시크릿 컨트랙트(secret contracts)를 개발하였다.

역사

이니그마는 MIT 출신 개발자들이 모여 개발한 코인인데 2015년 이니그마의 창시자 겸 대표이사(CEO)인 가이 지스킨드(Guy Zyskind))가 의해 최초로 공개한 시크릿 컨트랙트는 이더리움 네트워크 기반 계층을 재구성해 블록체인이 가진 데이터 프라이버시 관련 단점을 보완하기 위해 개발되었다.

  • 2015년 : 가이 지스킨드MIT Media Lab에서 이그니마 관련 논문 발표, 백서 발행
  • 2017년 : ICO 및 글로벌 커뮤니티 구축
  • 2018년 1분기: 재단 설립, 이니그마 데이터 마켓플레이스 출시
  • 2018년 4월 : Enterprise Ethereum Alliance, DIF(Decentralized Identity Foundation)와 제휴
  • 2018년 6월 : 시크릿 계약 1.0 테스트넷 출시, 인텔과 제휴
  • 2018년 3분기 : 시크릿 계약 1.0 메인넷 출시[2]

특징

블록체인 프라이버시의 필요성과 시크릿 컨트랙트

블록체인은 여러 주체가 함께 거래를 기록하고 검증하는 분산 장부이다. 다수가 거래 내역을 검증하기 위해서 거래내역은 기본적으로 공개 되어야 한다. 여기에서, 거래 내용이란 ‘내가 언제 누구에게 얼마의 토큰을 보냈는지”를 의미한다.블록체인 상에서 누가 어디로 보냈는지가 기록되긴 하지만 개인은 특정되는 것이 아니라 복잡한 주소의 형태로 나타난다. 하지만 이 정도 수준으로는 프라이버시가 완벽하게 보호된다고 할 수 없다. 공개된 거래 내역을 분석하여 주소와 실제 개인(Entity)을 연결할 수 있는 방법들이 존재하기 때문이다. 심지어 최근에는 비트코인 거래 내역을 분석하여 실제 소유주의 신원을 밝혀내, 이를 사법기관이나 은행에 제공하는 기업(예: 체인널리시스(Chainalysis)의 ‘리액터(REACTOR)’)까지 등장하고 있다. 이러한 점으로 미루어 보아 비트코인의 복잡한 주소가 완전히 신원을 감추어 줄 수는 없다. 블록체인을 통해 우리가 언제 무엇을 얼마에 주고 샀는지가 누구에게나 공개될 경우를 생각해보면 식품 구매 목록부터 성인용품 구매 내역까지 사생활과 밀접한 구매 활동이 누구에게나 공개되는 것을 바라는 사람은 아마 없을 것이다. 블록체인 상 신원이 밝혀진다면 이러한 민감한 개인정보가 공개될 위험이 있다. 일례로, 미국 국가안보국(National Security Agency, NSA)의 유출된 문건에 따르면, 자체 프로그램을 이용하여 블록체인의 공공장부성을 이용하여 비트코인 거래 당사자를 전 세계적으로 추적하고 있을 뿐만 아니라 사용자의 핵심 데이터에 접근하여 개인의 패스워드, 인터넷 활동 내역, IP 주소 등을 모두 알 수 있다고 한다.[1] 여러 프로젝트들을 통해 이러한 한계를 극복하려 하는데 그중에 하나가 시크릿 컨트랙트이다. 시크릿 컨트랙트는 프로토콜내에서 이더리움 네트워크 기반 계층을 재구성해 블록체인이 가진 데이터 프라이버시 관련 단점을 보안할 수 있다. 지 스킨트 에니그마 CEO가 2015년 해당 기술의 기초 개념을 최초 공개하고 이후 발전을 거듭한 시크릿 컨트랙트는 프로토콜 내 사용되는 이더리움의 출처가 드러나지 않는 코인조합(COIN MIXING)이 가능하다.블록체인 거래에서 자신의 정보를 노출하거나 거래 당사자와 교류할 필요없이 자신이 가진 정보를 증명할 수 있는 기술인 ZK-SNARKs와 마찬가지로 프라이버시 보장 매커니즘이다. ZK-SNARKs와 달리 에니그마의 프로토콜은 완벽한 암호화를 지원한다. 거래 당사자들이 서로의 데이터 입출력에 대한 어떠한 정보도 가질 수 없는 블록체인 거래 환경을 조성한다. 해당기술을 적용하면 의료 및 금융업계에서 다루는 기밀 데이터를 안전하게 관리할 수 있다. 에니그마는 2018년 6월15일 최초 네트워크 실험을 실시했고 또한 프로토콜에 의해 보장되는 데이터 프라이버시는 분산화 앱(디앱)의 세계적 상용화에 필수적인 요건이다. 에니그마의 공동창업자 칸 키사군은 현대 사회가 겪고 있는 데이터 공유, 데이터 매칭등 복잡한 문제들을 해결할 수 있다고 말했고 에니그마의 분산화 앱은 혁신적인 기술에서 필수적인 기술로 변모하게 될것이라고 평가했다.[3] 이니그마의 비전은 시크릿 컨트랙트와 함께 시너지 효과를 발휘할 애플리케이션을 현실화하는 것이며 진정한 분권화를 가능하게 하기 위해 이것이 절대적으로 필요하다고 믿는다. 그리고 시크릿 컨트랙트는 인텔SGX 기술을 기반으로 TTE(Trusted Execution Environment) 내에서 실행되는 이더리움 가상 머신(EVM)에서 작동된다. 이것은 고형성뿐만 아니라 이더리움 네트워크와의 즉각적인 상호호환성을 지원한다. 시크릿 컨트랙트는 노드에서 데이터를 완전히 숨길 수 있기 때문에 정확성을 위해 해결할 뿐만 아니라 개인 정보 보호를 위해 스마트 계약을 확장한다. 이러한 계약을 통해 사용자 및 응용 프로그램은 대부분의 실제 사용 사례에 필요한 중요한 데이터를 안전한 환경에서 작동 할 수 있다. 시크릿 컨트랙트의 예를 들자면 사용자에게 자율적으로 대출을 제공 할 수있는 대출 dApp을 생각할 수 있다. 기능을 발휘하기 위해 스마트 계약서를 통해 지갑과 이전 거래내역을 검사 한 다음 개인이 대출을 받아야 하는지를 계산한다. 과거에 대출을 요청했는지 여부와 시간에 지불했는지 여부를 검토 할 수 있다.[4]

스마트 컨트랙트

스마트 컨트랙트는 Nick Szabo가 1994년 최초 제안한 개념이다. 기존 계약서(Contract)는 서면으로 되어있어 계약 조건을 이행하려면 실제 사람이 계약서 대로 수행을 해야 하지만 디지털 명령어로 계약을 작성하면 조건에 따라 계약 내용을 자동으로 실행할 수 있다고 주장하였다. 디지털로 된 계약서는 조건에 따른 계약 결과가 명확하고, 계약 내용을 즉각 이행할 수 있다. 각자의 자산이 연결된 디지털로 양자 합의를 하고 계약서를 작성하고 실행하기로 한다면 계약을 이행하는데 복잡한 프로세스를 엄청나게 간소화 될 것이다. 또한 다양한 그러나 디지털로 된 자료들은 쉽게 복사되고 조작이 쉬워 1994년에 제안한 스마트 컨트랙트는 개념으로만 존재하고 구체적인 서비스에 이용될 수 없었다. 스마트 컨트랙트는 이러한 블록체인과 함께 급부상하게 됐다. 스마트 컨트랙트를 만들 수 있는 환경이 20여 년이 지나 구체화 된 것이다. 최초의 블록체인 기반 스마트 컨트랙트는 비트코인 스크립트이다. 비트코인 트랜잭션에 원시 언어인 OPCODE로 스크립트를 작성해서 보내면 조건에 따라 자동으로 거래를 수행한다. 스크립트가 정상이면(기존에 보유한 비트코인의 잔액이 정확하고 거래를 보낸 사람의 서명이 정확한지 보는 것이 가장 기본적인 스크립트) 거래를 정상으로 본다는 일종의 계약(Contract) 개념이 있으므로 Contract Code로 불리기도 한다. 하지만 비트코인 스크립트는 반복문을 사용할 수 없고, 비트코인 잔고 외의 다른 정보를 관리 할 수 없는 한계가 있다. 이는 블록체인의 특이한 구조 때문인데 비트코인 스크립트에서 반복문을 허용할 경우 만약 스크립트 조건 때문에 무한 루프가 발생할 경우 네트워크 전체가 멈출 수 있다. 사용자는 무한루프를 통해 쉽게 DoS(Denial of Service) 공격을 할 수 있다. 이더리움(Ethereum)은 이러한 비트코인 스크립팅 시스템의 한계를 극복하고자 나온 스마트 컨트랙트 특화 블록체인 플랫폼이다. 사실 스마트 컨트랙트란 용어가 본격적으로 사용하기 시작한 것은 이더리움 이후라고 보면 된다. 이더리움은 비트코인 스크립팅 시스템의 한계인 다양한 상태 저장과 반복문을 허용한 스마트 컨트랙트를 만들었다. 여기에 각 라인을 실행할 때마다 수수료를 발생시키고 네트워크상에 수수료의 한계를 설정하여 무한루프를 막았다. 무한히 반복되는 조건을 만들어 스마트 컨트랙트를 실행시키면 돌다가 중간에 수수료 한계점에 도달하면 중단된다. 이는 기발하지만 뜻밖에 간단한 논리에 의해 구현되게 되었는데 블록체인을 통해 함수 내용과 함수의 입력을 공유하면서 무결성을 보장한다면, 함수의 결과는 별도로 공유하지 않더라도 그 무결성이 보장된다는 것이다. 이더리움은 함수를 컴파일된 코드 형태로 거래에 포함하여 블록체인을 통해 동기화한다. 이때 거래에 포함된 정보를 함수의 입력으로 하여 코드로 표현된 함수를 실행한 후 그 결과를 별도의 상태로 보관하는 방식으로 스마트 컨트랙트를 구현하게 되었다. 그리하여 독자 코인인 이더 외에 다른 디지털 객체의 상태를 저장하는 방식을 허용하여 다양한 재화를 이더리움 네트워크 위에 만들고 거래할 수 있게 되었다. 이더리움 상에서의 가장 유명한 스마트 컨트랙트의 예는 DAO(Decentralized Autonomous Organization)라고 불리는 탈중앙화된 자율 조직이다. 이는 회사의 의결권을 토큰(DAO Token)으로 행사할 수 있도록 크라우드 펀딩을 통해 토큰을 이더로 구입할 수 있도록 판매하였고 그 과정에서 모인 약 2000억원 가량의 이더를 어떻게 사용할지 토큰을 기반으로 투표할 수 있도록 한 스마트 컨트랙트로서 특정 운영주체가 없이 참여자의 투표로 운영되도록 했다.[5]

Enigma

이니그마는 개인정보 및 데이터를 안전하게 보장하고 연산을 수행할 수 있도록 하는 분산 컴퓨팅 플랫폼이며 기존의 블록체인에 연결하여 오프체인(off-chain) 네트워크에 집약적인 계산을 오프로드(off-road)하도록 설계되었다. 이니그마는 2015년 공동 창립자인 가이 지스킨드MIT Media Lab 논문에서 처음으로 설명되었다. 이니그마를 사용하면 스마트 계약이 시크릿 계약이 되어, 입력 데이터가 코드를 실행하는 이그니마 네트워크의 노드에서 숨겨져 계약 내용이 다른 사람에게 공개되지 않기 때문에 개인정보 보호와 비밀이 보장된다. 또, 이니그마는 SMPC 또는 MPC와 같은 높은 보안의 분산 연산을 활용하여 제3자 없이 분산된 방식의 데이터 계산을 가능하게 한다. 2019년 5월 기준 코인마켓캡에서 이니그마의 시가총액은 약 330억원으로 146위를 차지하고 있다.[2] Enigma란 새로운 형태의 스마트 컨트랙트인 Secret contracts를 사용하여 계약 데이터의 암호화를 구축하고자 하는 프로젝트이다. Enigma는 오프체인 네트워크와 sMPC 두 가지 기술을 사용하여 스마트 컨트랙트 프라이버시를 보호한다.

Enigma 이해관계자

이니그마 네트워크에는 다음과 같은 네 가지 주요 유형의 이해 당사자가 있다.

  • 시크릿 노드 : 시크릿 노드는 이니그마 네트워크에서 노드를 운영하는 네트워크 참여자로서 개인 정보 보호 정책에 따라 시크릿 계약을 실행한다. 이니그마 네트워크의 노드는 비트코인의 채굴자와 유사한 기능을 수행한다. 시크릿 노드는 시크릿 계약이 프라이버시 보존 방식으로 실행되도록 하기 위해 이니그마 네트워크에서 노드를 실행하는 네트워크 참가자들이라 볼 수 있다. 이니그마 네트워크는 작업자 선택을 위해 지분 증명(Proof of Stake,PoS) 합의 알고리즘을 사용한다. 즉, 작업자 노드가 다음 시크릿 계약을 실행하도록 선택될 확률은 노드가 가지고 있는 ENG 토큰의 양과 비례한다는 것을 의미한다. 지분이 클수록 얻을 수 있는 누적 보상이 커지므로 선택될 가능성은 그에 비례하여 증가한다. 또한 시크릿 노드를 실행하는 데 필요한 최소량의 ENG가 있는데, 그 수치는 초기에는 더 높을 것으로 예상되며, 수천 개와 잠재적으로 수만 개의 노드를 수용하기 위해 서서히 감소할 것이다.
  • 합의 노드 : 합의 노드는 이니그마 블록체인 자체를 운영한다. 계산을 검증하고 상태 변경의 최종 순서를 설정한다.
  • 개발자 : 개발자들은 민감한 데이터 입력을 위해 시크릿 계약을 요구하는 디앱을 개발한다. 솔리디티 언어로 구축할 수 있다.
  • 디앱 사용자 : 디앱 사용자는 시크릿 계약을 체결한 사용자이다. 디앱 사용자 역시 [[[시크릿 노드]]를 실행할 수도 있고, 합의 노드도 운영 할 수 있다. 디앱 사용자는 Enigma.js 라이브러리를 사용하여 암호화된 입력을 시크릿 계약으로 보낼 수 있다. 이 라이브러리는 디앱 사용자와 이니그마 네트워크 (작업자 노드)간에 발생하는 모든 기본 암호 기능의 복잡성을 숨길 수 있다. 이 때문에 네트워크를 활용하려는 디앱 개발자는 자신의 응용 프로그램에 Enigma.js 라이브러리를 설치해야 한다.[6]

Off-chain 연산 네트워크

Enigma에서 스마트 컨트랙트는 온체인오프체인에서 모두 실행된다. Enigma Network로 불리는 오프체인 네트워크는 Enigma SGX node 들로 구성되어 스마트 컨트랙트의 실제적인 연산과 로직 실행이 이루어진다. 온체인에서는 오로지 스마트 컨트랙트 정합성(Correctness) 여부를 판단한다. 정합성 여부란 오프체인 네트워크의 연산 결과가 실제 결과값과 일치하는지를 말한다. Enigma에서 스마트 컨트랙트가 생성되고 실행되는 과정을 짧게 살펴보면 먼저, 컨트랙트가 발생하면 해당 계약의 상태(Contract State)가 Enigma Network로 보내지게 된다. Enigma로 보내진 Contract State는 Enigma SGX Node들에 의해 실행되고, 실행의 결과값 만이 온체인으로 전송된다. 온체인 컨트랙트에서는 해당 결과값의 정합성을 판단한 후 계약을 실행시킨다. 결과적으로, 스마트 컨트랙트의 실행이 오프체인에서 이루어지고, 온체인에는 실행의 그 결과만이 기록되기 때문에, 일반 사용자들은 다른 Smart contract의 내용을 알 수 없게 된다. [1]

SMPC(Secure Multi Party Computation)

오프체인 네트워크를 이용하면 일반 사용자들에게는 컨트랙트의 내용이 노출되지 않지만, 아직 완벽한 프라이버시가 보장된다고 할 수 없다. 그 이유는 해당 스마트 컨트랙트를 실행시키는 노드(Enigma에서는 Enigma SGX node)들은 연산을 실행하기 위해 어쩔 수 없이 컨트랙트 내용을 알 수밖에 없기 때문이다. Enigma는 노드들 역시 스마트 컨트랙트의 내용을 알 수 없도록 SMPC 기술을 사용한다. 에니그마(Enigma)의 SMPC 기술은 한 사람이 아닌 다수가 함께 연산을 수행하는 것이다. 즉, 연산이 필요한 데이터가 쪼개져서 각 노드들에게 분배되고, 이 노드들이 함께 연산을 수행하여 결과를 만들어 내는 것이다. 노드들은 각각 데이터 일부만을 가지고 있으므로, 어떠한 노드도 자신이 보유한 데이터 조각을 가지고 전체 데이터의 내용을 추측할 수 없다. 그래서 노드들이 스마트 컨트랙트 연산 과정을 수행하지만, 스마트 컨트랙트에 담긴 어떤 정보도 알 수 없어 스마트 컨트랙트 프라이버시가 보장되는 것이다.[1]

디앱

디앱(DApp)은 Decentralized Application의 줄임말로 사전 그대로 해석하면 탈중앙화 어플리케이션이라는 뜻이다. 구글 플레이나 애플 앱스토어 앱에서는 구글과 애플이 사용 정보들을 소유한다. 그러나 디앱은 블록체인 기술을 활용하여 중앙 서버 없이 네트워크상에 정보를 분산하여 저장 및 구동하는 앱이다. 예를 들어, 이더리움 디앱(DApp)은 이더리움 블록체인 기반으로 만들어진 앱으로 설명된다.

  • 정보 저장/보안: 분산된 개인 간 네트워크에 저장으로 해킹의 어려움이 있다.
  • 데이터 삭제 여부: 데이터나 거래는 생성된 뒤 삭제가 불가능하다.
  • 정보 투명성: 모두 공개되고 공공 거래 장부에 모두 기록한다.
  • 가동성: 일부 블록이 다운되어도 다른 블록들이 동일한 정보를 보유하고 있기 때문에 영향을 받지 않는다.
  • 사용자 비용: 기능을 사용하기 위해서는 보통 토큰/코인이 필요하다.
  • 유저 친화성: 지갑,토큰,거래 등 현재까지는 학습하는데 시간 필요하다.
  • 거래 속도: 사용하는 블록체인마다 차이가 있지만 보통 느리다.
  • 구동 방식: 스마트 컨트랙트(Smart Contract)*를 사용하여 명령을 수행하고 정보를 가져오게 된다.[7]

기술

  • One-time Use Payment Addresses: 거래마다 발송인이 1회적인 주소를 생성하여 이를 통해 수신인에게 간접적으로 암호화폐를 전달한다.
  • Stealth Addresses: 거래마다 수신인이 1회적인 주소를 생성하여 발송인이 해당 주소를 통해 암호화폐를 전달한다.
  • 믹싱(Mixing): 2개 이상의 거래를 혼합하여 특정 거래에 참여하는 거래 대상을 추측하기 어렵게 한다.
  • 링서명(Ring Signatures): 거래 당사자의 공개 키 및 임의로 선택된 다른 사람들의 공개키를 포함한 키 그룹을 형성하여, 트랜잭션이 키 그룹 내의 어느 키로 서명되었는지 추측하기 어렵게 한다.
  • Pedersen Commitments: 무차별 대입을 통해 데이터 일부분을 암호화하는 반면 데이터 해시를 게시하여 데이터 진위를 검증할 수 있게 하는 암호화 메커니즘이다.
  • 영지식증명(ZKP; zero-knowledge proofs): 당사자가 어떠한 정보 공개 없이 해당 진술이 사실임을 다른 사람에게 증명할 수 있는 암호화 프로토콜이다.
  • Sidechains & State Channels: 오프체인상에서 트랜잭션 처리한다.
  • TEE: 하드웨어 기반의 안전실행환경에서 트랜잭션을 처리한다.
  • SMPC: 다수의 노드가 하나의 트랜잭션을 나눠서 연산 처리한다.[1]

각주

  1. 1.0 1.1 1.2 1.3 1.4 Lucia Kim,〈블록체인을 통해 내 개인정보가 노출된다면?- 블록체인 프라이버시의 현주소와 다가올 미래〉, 《DECON》
  2. 2.0 2.1 이니그마〉, 《해시넷》
  3. 권승원 기자,〈블록체인 스타트업,데이터 프라이버시 보장 프로토콜 공개〉, 《토큰포스트》, 2018-05-16
  4. 가이 지 스킨 드,〈비밀 계약 정의〉, 《enigma블로그》, 2018-04-04
  5. 스마트 컨트랙트(Smart Contract) 개요 -1〉, 《아이콘루프》, 2017-03-28
  6. Enigma Project, 〈Secret Nodes: Exploring Staking, Stakeholders, and ENG〉, 《미디엄》, 2018-09-28
  7. 구현모,〈탈중앙화 앱, 디앱(DApp)! 미래인가? 유행인가?〉, 《KOTRA》, 2019-05-20

참고자료

같이 보기


  검수요청.png검수요청.png 이 시크릿 컨트랙트 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.