시크릿 컨트랙트
시크릿 컨트랙트(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]
특징
시크릿 컨트랙트는 프로토콜내에서 이더리움 네트워크 기반 계층을 재구성해 블록체인이 가진 데이터 프라이버시 관련 단점을 보안할 수 있다. 지 스킨트 에니그마 CEO가 2015년 해당 기술의 기초 개념을 최초 공개하고 이후 발전을 거듭한 시크릿 컨트랙트는 프로토콜 내 사용되는 이더리움의 출처가 드러나지 않는 코인조합(COIN MIXING)이 가능하다.블록체인 거래에서 자신의 정보를 노출하거나 거래 당사자와 교류할 필요없이 자신이 가진 정보를 증명할 수 있는 기술인 ZK-SNARKs와 마찬가지로 프라이버시 보장 매커니즘이다. ZK-SNARKs와 달리 에니그마의 프로토콜은 완벽한 암호화를 지원한다. 거래 당사자들이 서로의 데이터 입출력에 대한 어떠한 정보도 가질 수 없는 블록체인 거래 환경을 조성한다. 해당기술을 적용하면 의료 및 금융업계에서 다루는 기밀 데이터를 안전하게 관리할 수 있다. 에니그마는 2018년 6월15일 최초 네트워크 실험을 실시했고 또한 프로토콜에 의해 보장되는 데이터 프라이버시는 분산화 앱(디앱)의 세계적 상용화에 필수적인 요건이다. 에니그마의 공동창업자 칸 키사군은 현대 사회가 겪고 있는 데이터 공유, 데이터 매칭등 복잡한 문제들을 해결할 수 있다고 말했고 에니그마의 분산화 앱은 혁신적인 기술에서 필수적인 기술로 변모하게 될것이라고 평가했다.[3] 시크릿 컨트랙트는 노드에서 데이터를 완전히 숨길 수 있기 때문에 정확성을 위해 해결할 뿐만 아니라 개인 정보 보호를 위해 스마트 계약을 확장한다. 이러한 계약을 통해 사용자 및 응용 프로그램은 대부분의 실제 사용 사례에 필요한 중요한 데이터를 안전한 환경에서 작동 할 수 있다. 시크릿 컨트랙트의 예를 들자면 사용자에게 자율적으로 대출을 제공 할 수있는 대출 dApp을 생각할 수 있다. 기능을 발휘하기 위해 스마트 계약서를 통해 지갑과 이전 거래내역을 검사 한 다음 개인이 대출을 받아야 하는지를 계산한다. 과거에 대출을 요청했는지 여부와 시간에 지불했는지 여부를 검토 할 수 있다.[4]
Enigma
이니그마는 개인정보 및 데이터를 안전하게 보장하고 연산을 수행할 수 있도록 하는 분산 컴퓨팅 플랫폼이며 기존의 블록체인에 연결하여 오프체인(off-chain) 네트워크에 집약적인 계산을 오프로드(off-road)하도록 설계되었다. 이니그마는 2015년 공동 창립자인 가이 지스킨드의 MIT Media Lab 논문에서 처음으로 설명되었다. 이니그마를 사용하면 스마트 계약이 시크릿 계약이 되어, 입력 데이터가 코드를 실행하는 이그니마 네트워크의 노드에서 숨겨져 계약 내용이 다른 사람에게 공개되지 않기 때문에 개인정보 보호와 비밀이 보장된다. 또, 이니그마는 SMPC 또는 MPC와 같은 높은 보안의 분산 연산을 활용하여 제3자 없이 분산된 방식의 데이터 계산을 가능하게 한다. 2019년 5월 기준 코인마켓캡에서 이니그마의 시가총액은 약 330억원으로 146위를 차지하고 있다.[2] Enigma란 새로운 형태의 스마트 컨트랙트인 Secret contracts를 사용하여 계약 데이터의 암호화를 구축하고자 하는 프로젝트이다. Enigma는 오프체인 네트워크와 sMPC 두 가지 기술을 사용하여 스마트 컨트랙트 프라이버시를 보호한다.
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]
기술
- 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]
각주
참고자료
- 권승원 기자,〈블록체인 스타트업,데이터 프라이버시 보장 프로토콜 공개〉, 《토큰포스트》, 2018-05-16
- Lucia Kim,〈블록체인을 통해 내 개인정보가 노출된다면?- 블록체인 프라이버시의 현주소와 다가올 미래〉, 《DECON》
- 〈이니그마〉, 《해시넷》
같이 보기