블록체인 프라이버시: 블록체인을 통해 내 개인정보가 노출된다면?

by | Oct 24, 2018

서론

디지털 시대가 도래하면서 프라이버시에 대한 중요성은 나날이 커지고 있습니다. 그렇다면 프라이버시(privacy)는 정확히 무슨 의미를 가질까요? 위키백과 사전에 의하면, 프라이버시는 개인이나 집단에 관한 정보를 다른 사람들에게 “선택적으로 공개”할 수 있는 권리를 의미합니다.

블록체인은 모두에게 정보를 공개함으로써 투명성 및 정보에 대한 신뢰를 보장하는 장점이 있지만, 오히려 이러한 특성으로 인해 사람들은 민감한 개인정보나 기업 기밀과 같은 데이터를 블록체인에 올리기를 꺼리게 됐습니다. 이로 인해 블록체인 프라이버시 문제는 블록체인 상용화에 걸림돌이 되고 있습니다.

본 글에서는, 블록체인상에서 프라이버시 보호가 필요한 이유와 블록체인 프라이버시 보호를 위한 현재의 노력을 살펴보고 최근 송금을 넘어 스마트컨트랙트로까지 확장되고 있는 블록체인 프라이버시 동향에 대해 살펴보도록 하겠습니다. 특히 스마트컨트랙트에 사용되는 프라이버시 기술이 송금/결제과정에 적용된 프라이버시 기술과 어떻게 다르고, 어떠한 기술들이 스마트컨트랙트에 활용될 수 있는지에 대해 자세히 설명하겠습니다.

[출처: cnet.com]

TLDR

  • 블록체인 프라이버시 문제란 블록체인상에 기록된 정보를 통해 실제 개인의 신원 정보 등을 알아낼 수 있음을 의미
  • 이를 해결하기 위해 프라이버시 코인의 출현. 그러나 프라이버시 코인은 스마트컨트랙트 구현에 필요한 프로그래밍 기능을 지원하지 못하는 한계가 있음
  • 블록체인이 단순 송금기능을 넘어 보다 다양한 비즈니스의 토대가 되기 위해서는 스마트컨트랙트상의 프라이버시 보호가 필요함
  • 프라이버시 스마트컨트랙트를 구현하기 위한 기술 및 프로젝트가 개발되고 있음.

블록체인 프라이버시가 필요한 이유

블록체인은 여러 주체가 함께 거래를 기록하고 검증하는 분산 장부입니다. 다수가 거래 내역을 검증하기 위해서 거래내역은 기본적으로 공개 되어야 합니다. 여기에서, 거래 내용이란 ‘내가 언제 누구에게 얼마의 토큰을 보냈는지”를 의미합니다.

[출처: Bitcoin Explorer]

블록체인 상에서 누가 어디로 보냈는지가 기록되긴 하지만, 위의 그림에서 보시는 것처럼 개인은 특정되는 것이 아니라 복잡한 주소의 형태로 나타납니다.

하지만 이 정도 수준으로는 프라이버시가 완벽하게 보호된다고 할 수 없습니다. 공개된 거래 내역을 분석하여 주소와 실제 개인(Entity)을 연결할 수 있는 방법들이 존재하기 때문입니다. 심지어 최근에는 비트코인 거래 내역을 분석하여 실제 소유주의 신원을 밝혀내, 이를 사법기관이나 은행에 제공하는 기업(예: 체인널리시스(Chainalysis)의 ‘리액터(REACTOR)’)까지 등장하고 있습니다. 이러한 점으로 미루어 보아 비트코인의 복잡한 주소가 완전히 신원을 감추어 줄 수는 없는 것 같습니다.

블록체인을 통해 우리가 언제 무엇을 얼마에 주고 샀는지가 누구에게나 공개될 경우를 생각해봅시다. 식품 구매 목록부터 성인용품 구매 내역까지 사생활과 밀접한 구매 활동이 누구에게나 공개되는 것을 바라는 사람은 아마 없을 것입니다. 블록체인 상 신원이 밝혀진다면 이러한 민감한 개인정보가 공개될 위험이 있습니다.

일례로, 미국 국가안보국(National Security Agency, NSA)의 유출된 문건에 따르면, 자체 프로그램을 이용하여 블록체인의 공공장부성을 이용하여 비트코인 거래 당사자를 전 세계적으로 추적하고 있을 뿐만 아니라 사용자의 핵심 데이터에 접근하여 개인의 패스워드, 인터넷 활동 내역, IP 주소 등을 모두 알 수 있다고 합니다.

본 글에서 알아볼 프로젝트들은 다양한 방법을 통해 이러한 한계를 극복하려 합니다.

블록체인 프라이버시의 현재와 한계점

블록체인 프라이버시를 위한 노력: 프라이버시 코인

블록체인 프라이버시 문제를 해결하기 위해서 모네로(Monero), 지캐시(Zcash) 등 프라이버시 코인이라 불리는 프로젝트들이 등장했습니다. 이들은 송금에 관한 정보 (보내는 이, 받는 이, 보내는 양)를 거래 당사자 외에는 알 수 없도록 합니다. 비트코인보다 훨씬 향상된 익명성이 도입된 것으로 볼 수 있습니다.

프라이버시 코인으로 인해 우리는 더 이상 ‘누군가가 우리의 거래 내용을 추적하여 신원을 밝혀낼 것’ 이라는 걱정 없이 코인을 송금할 수 있게 되었습니다.

[Monero의 거래 내역. 받는 이, 보내는 이, 송금량에 대한 어떠한 정보도 알 수 없다. 출처: moneroblocks.info]

프라이버시 코인의 한계점


프라이버시 코인의 등장으로 인해 송금의 프라이버시는 가능해졌지만, 송금을 제외한 블록체인 기반 보험, 대출, 데이터 거래 등 다양한 비즈니스들은 여전히 프라이버시 문제에 노출되어 있습니다. 이러한 비즈니스들은 스마트 컨트랙트로 인해 구현됩니다. 스마트 컨트랙트란 조건에 따라 계약 내용을 자동으로 수행하는 기술로써, 중개자의 개입 없이 네트워크 내의 다양한 거래들을 자동으로 실행 될 수 있게 해줍니다. 문제는 스마트컨트랙트 실행 코드 및 스마트컨트랙트에 들어가는 입력 값이 이를 실행 및 검증하는 노드에 의해 모두 노출될 수 있다는 것입니다.

아쉽게도 현재 프라이버시 코인들로는 스마트 컨트랙트 프라이버시를 보호하지 못합니다. 정확히 말하면, 프라이버시 코인은 단순 송금만 가능할 뿐, 스마트 컨트랙트 기능을 제공하지 못합니다. 그 이유는 대다수의 프라이버시 코인들이 UTXO 기반 모델을 사용하고 있기 때문입니다.

블록체인에는 기록보관을 위한 모델로 미사용 트랜잭션 출력값(Unspent Transaction Output)기반 모델과 계정 잔고(Account Balance)기반 모델이 있습니다. 그 중 UTXO 기반 모델은 복잡한 연산과 로직 수행 능력이 매우 떨어져 프로그래밍이 거의 불가능 합니다. 반면, 스마트 컨트랙트는 수많은 조건과 이에 따른 이행이 자동으로 이루어져야 하므로 프로그래밍이 가능해야 합니다. 이러한 기술적 차이로 인해 프라이버시 코인들은 스마트 컨트랙트 기능을 제공하고 있지 못하며, 당연히 스마트 컨트랙트 프라이버시 문제를 해결해주지 못합니다.

스마트 컨트랙트 프라이버시의 중요성

스마트 컨트랙트에는 네트워크에서 이루어지는 사용자들의 모든 활동과 비즈니스 로직이 담겨있습니다. 이 내용이 공개되면서 발생하는 문제를 크게 서비스 사용자와 기업으로 나누어 설명해보겠습니다.

서비스 사용자들로서는 네트워크에서 자신이 활동한 모든 내용 (가입, 네트워크 내 기능 이용, 거래, 인출 등)이 모두 공개된다는 점이 본인의 신원이 추적당할 수도 있다는 불안감을 줄 수 있습니다. 프라이버시를 중요시 생각하는 사용자들은 블록체인을 이용할 바엔, 중앙화되어 있더라도 프라이버시를 보장해주는 기존 중앙화 플랫폼들을 사용하는 것이 더 나을 수도 있습니다.

기업의 경우 스마트 컨트랙트를 기반으로 비즈니스를 구현할 경우, 자신들의 비즈니스 로직이 경쟁사를 비롯한 타 기업들에 모두 공개됩니다. 이로 인해 기업의 매출, 원가 등 운영상의 기밀 정보들이 유출될 수 있고, 비즈니스 아이디어가 쉽게 도용될 수 있습니다. 예시로 밑의 그림은 한 Lottery DApp의 스마트 컨트랙트입니다. 오픈 소스 형태로 모든 비즈니스 로직이 공개되기 때문에, 누구나 이 비즈니스 아이디어를 손쉽게 복제하여 DApp 서비스를 구현해낼 수 있습니다. 이 비즈니스를 따라 하고자 하는 이들은 코드를 복사 붙여넣기만 하면 됩니다.

[Lottery DApp의 비즈니스 로직이 공개되어 있다. 출처:etherscan.io]

따라서 기업 역시 블록체인 기반으로 비즈니스를 구현하기 보다 기존의 중앙화 방식으로 구현하는 것이 더 이익이 되는 경우, 굳이 블록체인을 도입하려 하지 않을 것입니다.

결론적으로, 블록체인이 단순 송금/결제를 넘어 범용적인 기술로 거듭나기 위해서는 화폐 영역뿐만 아니라 스마트컨트랙트에 대한 프라이버시 역시 보장되어야 합니다. 현재까지는 ‘크립토키티’와 같은 DApp을 사용할 시, 타인에게 관련 정보가 공개되어도 타격이 크지 않지만, 앞으로 개인의 삶과 밀접한 서비스가 등장하고 대규모사업을 영위하는 기업이 DApp 기반의 비즈니스를 할 경우에는 스마트컨트랙트상의 프라이버시 보호는 선택이 아닌 필수가 될 것입니다.

프라이버시 스마트 컨트랙트의 등장

위에서 설명한 스마트 컨트랙트의 프라이버시 문제를 해결하기 위해 다양한 프로젝트에서 프라이버시 스마트 컨트랙트(Privacy-Preserving Smart Contract)를 준비하고 있습니다.

프라이버시 스마트컨트랙트란 말 그대로 스마트 컨트랙트의 프라이버시를 보장하는 기술입니다. 그렇다면 블록체인상에서 이용자에게 프라이버시를 제공하면서도 이와 함께 스마트 컨트랙트가 작동할 수 있는 프로그래밍 기능 역시 지원하기 위해서는 어떤 조건들이 충족되어야 할까요? 그리고 이를 달성하기 위해서 사용될 수 있는 프라이버시 기술은 어떤 것들이 있을까요?

1. 프라이버시 스마트 컨트랙트 구현을 위한 조건

이상적인 프라이버시 스마트 컨트랙트를 제공하기 위해서는 1) 다른 사람들로부터 스마트컨트랙트에 들어갈 내용을 숨길 수 있어야 하며, 2) 이처럼 정보(입력값)를 드러내지 않은 상태에서 연산 수행이 가능하다는 두가지 조건 모두가 충족되어져야 합니다.

1) 스마트 컨트랙트에 들어가는 데이터 및 정보(input)가 드러나지 않아야 함

금전만 오가는 송금영역에서는 거래 대상(보내는 이, 받는 이)만을 가림으로써 프라이버시를 충분히 보장할 수 있었습니다. 반면 스마트컨트랙트에서 프라이버시를 보호하기 위해서는 거래 대상의 지갑 주소뿐만 아니라 스마트컨트랙트에 들어가는 정보 역시 드러나지 않게 해야 합니다.

예를 들어, 가장 높은 가격을 제시한 사람이 낙찰되는 반면 낙찰품에 대해서는 두 번째로 높게 제시된 가격을 지불하도록 하는 경매(Vickery auction)를 스마트컨트랙트로 구현하고자 합니다. 이때 각 참가자가 스마트컨트랙트에 제시한 호가(input)가 모두 공개된다면 가장 마지막에 호가를 제시한 사람이 낙찰에 유리할 수 밖에 없습니다. 이로 인해 공정한 경매가 이뤄지기 어렵지요.

따라서 스마트컨트랙트상에서 진정한 프라이버시를 구현하기 위해서는 스마트컨트랙트에 들어가는 정보를 감출 수 있어야 합니다.

2) 거래에 참여하는 계정의 상태(state) 및 스마트 컨트랙트관련 정보(input)를 모든 노드에게 드러내지 않고도 대리연산(arbitrary computation)을 수행할 수 있어야 함

위에서 언급한 바와 같이 블록체인에는 기록 보관을 위한 모델로 두 종류(UTXO기반 모델과 계정 기반 모델)가 있습니다. 그 중 계정 기반 모델은 복잡한 연산이 가능해 스마트 컨트랙트 등과 같은 기능을 제공할 수 있습니다.

위 두 모델의 트랜잭션 처리 과정을 비교하면 다음과 같습니다. UTXO기반 모델에서는 트랜잭션 발생 시 거래에 사용된 UTXO에 대한 소유주만을 변경시키면 됩니다. 비유를 들자면, UTXO는 독립적으로 사용되는 수표와 같이 거래에 사용된 수표의 소유자를 바꾸는 것과 같습니다. 반면, 계정기반 모델에서는 트랜잭션 발생 시 각 계정의 잔고 상태를 변경시키기 위한 연산(+ or -)작업이 수반됩니다. 즉 계정기반 모델은 은행과 같다고 볼 수 있는데요. 은행은 두 개의 계좌간 송금거래가 발생 시 돈을 보내는 계좌 잔고에는 마이너스를, 돈을 받은 계좌 잔고에는 플러스를 함으로써 각 계좌의 잔고 상태를 바꾸기 때문입니다.

이처럼, UTXO 기반 모델과는 다르게 계정 기반 모델은 ‘연산 작업’이 필요합니다. 따라서 계정 기반 모델에서 프라이버시가 보장되기 위해서는 연산에 필요한 정보(계정의 잔고 상태, 스마트 컨트랙트 코드 및 스마트컨트랙트에 들어가는 정보 등)를 다른 사람들에게 드러내지 않고도 누군가가 해당 연산을 수행할 수 있어야 합니다.

그렇다면 어떠한 프라이버시 기술이 스마트 컨트랙트에 접목될 수 있을까요? 다음으로는 블록체인상에서 활용되고 있는 다양한 프라이버시 기술들을 살펴보고, 그 중 스마트 컨트랙트에 맞는 기술이 어떤 게 있는지 이야기하도록 하겠습니다.

2. 프라이버시 스마트 컨트랙트에 맞는 기술 찾기

아래 표는 각 프라이버시 기술들에 대한 개요를 나타낸 것입니다. 프라이버시 기술들이 모두 같은 접근방식을 갖는 것은 아닌데요. 프라이버시 기술마다 숨기고자 하는 대상(지갑 주소, 거래 금액)도 다르며, 특정 정보를 감추기 위해 사용하는 기술도 다르기 때문입니다. 이에 따라 프라이버시 기술별로 활용될 수 있는 사례 역시 다릅니다.

프라이버시 기술 개요

위에서 ‘1. 프라이버시 스마트 컨트랙트 구현을 위한 조건’ 두 가지에 대해 설명드렸습니다. 첫 번째로 스마트컨트랙트에 들어가는 정보가 노출돼서는 안됩니다. 두번째로 스마트컨트랙트에 대한 정보를 다른 노드에게 드러내지 않고도 연산이 가능해야 합니다.

다음으로는, 위 두 가지 조건을 기준으로 어떤 기술이 프라이버시 스마트컨트랙트에 활용되기 어려운지, 반대로 프라이버시 스마트컨트랙트에 부합되는 기술은 무엇이 있는지에 대해 알아보도록 하겠습니다.

1) 거래 주소만 가리는 기술

  • One-time Use Payment Addresses: 거래마다 발송인이 1회적인 주소를 생성하여 이를 통해 수신인에게 간접적으로 암호화폐를 전달
  • Stealth Addresses: 거래마다 수신인이 1회적인 주소를 생성하여 발송인이 해당 주소를 통해 암호화폐를 전달
  • Mixing: 2개 이상의 거래를 혼합하여 특정 거래에 참여하는 거래 대상을 추측하기 어렵게 함
  • Ring Signatures: 거래 당사자의 공개 키 및 임의로 선택된 다른 사람들의 공개키를 포함한 키 그룹을 형성하여, 트랜잭션이 키 그룹 내의 어느 키로 서명되었는지 추측하기 어렵게 함

위 기술들은 주로 프라이버시 코인 프로젝트에서 사용되고 있는 기술로, 지갑 주소를 한 번만 사용하거나, 동시에 일어나는 다수 거래를 섞음으로써 특정 거래에 대한 지갑 주소를 추측하기 어렵게 합니다. 반면, 언제얼마가 송금되었는지 등의 거래 내역은 여전히 다른 노드가 볼 수 있는 한계가 있지요.

즉, 위 3가지 기술을 사용했을시 스마트컨트랙트에 들어가는 정보(input)가 드러나기 때문에 앞서 설명한 1번 조건을 충족시키지 못합니다. 따라서 해당 기술들은송금영역과 달리스마트컨트랙트에서는 독자적으로 사용되기 어렵습니다.

2) 거래 내역도 가리는 기술

  • Pedersen Commitments: 무차별 대입을 통해 데이터 일부분을 암호화하는 반면 데이터 해시를 게시하여 데이터 진위를 검증할 수 있게 하는 암호화 메커니즘
  • ZKP(zero-knowledge proofs): 당사자가 어떠한 정보 공개 없이 해당 진술이 사실임을 다른 사람에게 증명할 수 있는 암호화 프로토콜

위 기술은 거래내역을 직접 암호화함으로써 1번 조건에 부합될 수 있습니다. 반면 스마트컨트랙트 실행에 필요한 정보가 암호화되면 네트워크에 참여하는 노드가 이를 연산하기 어려워집니다. 암호화된 거래 내역을 연산하는 기술(동형암호기술, 등 )이 초기 단계이기 때문에 연산할 수 있는 거래 유형이 제한적이고, 시간과 비용이 많이 소모되기 때문입니다. 따라서 위의 두 기술도 2번 조건을 충족하기 어렵습니다.

3) 프라이버시 스마트컨트랙트에 활용되기에 적합한 기술

  • Sidechains & State Channels: 오프체인상에서 트랜잭션 처리
  • sMPC: 다수의 노드가 하나의 트랜잭션을 나눠서 연산 처리
  • TEE: 하드웨어 기반의 안전실행환경에서 트랜잭션 처리

3)번 기술은 앞서 1), 2)번에서 언급한 기술들과 달리, 민감한 데이터 및 스마트컨트랙트를 누구나 접근 가능한 메인 체인에 저장 및 실행하는 것이 아닌 오프체인과 같은 분리된 환경에서 처리합니다. 이에 따라 데이터가 일반 모든 노드에게 유출될 우려가 적고 무엇보다 복잡한 연산이 가능하지요. 즉, 위 기술들은 1, 2번 조건에 모두 부합된다고 볼 수 있습니다. 실제로 Hawk, Enigma, Ekiden 등의 유망한 블록체인 프로젝트에서 위 세가지 기술들을 프라이버시 스마트 컨트랙트 구현에 활용하고 있습니다.

다음으로는 Sidechains & State Channels, sMPC, TEE를 사용하는 프로젝트들을 예시로 각 기술이 어떻게 실제로 프라이버시를 보장하는지 그리고 각 기술의 한계점은 무엇인지 설명하겠습니다.

3. 프라이버시 스마트 컨트랙트 프로젝트 사례를 통한 기술 이해

대표적인 프라이버시 스마트컨트랙트 프로젝트로는 아래와 같은 세 가지가 있습니다. 각 프로젝트별로 사용하는 기술은 무엇이며, 프라이버시를 어떻게 구현하고자 하는지 알아보도록 하겠습니다. 또한, 각 기술이 갖는 한계점에 대해서도 설명하고자 합니다.

1) Hawk

사용 기술: Sidechains & State Channels(off-chain)

Hawk란?

Hawk는 2015년, Cornell 대학 및 Maryland 대학에서 제안한 프라이버시 스마트 컨트랙트 구축을 위한 프레임워크입니다.

Hawk는 아래와 같이 스마트 컨트랙트를 두 가지로 분류하여 처리합니다.

  • 프라이빗 컨트랙트: 오프체인에서 스마트 컨트랙트를 실행하여 당사자 간 지불금 분배를 결정하고 해당 지시사항을 퍼블릭컨트랙트에 전달
  • 퍼블릭 컨트랙트: 프라이빗 컨트랙트로부터 전달받은 지시사항을 퍼블릭 블록체인에서 실행

[출처: https://z.cash/static/R3_Confidentiality_and_Privacy_Report.pdf]

Hawk는 스마트 컨트랙트에 들어가는 민감한 데이터를 오프체인에 저장하고, 이에 대한 컴퓨터 연산 역시 오프체인에서 실행함으로써 개인의 정보가 다른 사용자들에게 공개되지 않도록 합니다. 이때 Hawk의 오프체인에서 연산을 대행하는 노드를 ‘관리자(manager)’라고 합니다. 당사자가 제공하는 프라이빗 계약에 담긴 로직(logic) 및 입력값(input)은 관리자의 공개키를 통해 암호화된 상태로 퍼블릭 체인에 올라오기 때문에, 오직 관리자만이 해당 정보를 복호화하고 처리할 수 있습니다. 관리자는 프라이빗 컨트랙트 이행을 완료했다면 이를 증명하기 위한 암호기반의 검증을 퍼블릭 체인에 제공합니다.

한계점

Hawk는 아직 이를 기반으로 구현되고 있는 프로젝트가 없기에 실제로 어떻게 작동될 수 있는지는 미지수입니다. 무엇보다 Hawk는 구조상, 프라이빗 계약을 사용하는 사람은 관리자를 신뢰할 수밖에 없는 단점이 있습니다. Hawk의 관리자는 오프체인에 올라온 스마트컨트랙트관련 정보를 모두 확인할 수 있으며, 프라이빗 컨트랙트를 처리해주는 유일한 주체이기 때문입니다.

2) Enigma

사용기술: 오프체인 네트워크(Off-chain network) + sMPC

Enigma란

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의 내용을 알 수 없게 됩니다.

출처: Enigma: Decentralized Computation Platform with Guaranteed Privacy

  • sMPC(Secure Multi Party Computation)

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

노드들은 각각 데이터 일부만을 가지고 있으므로, 어떠한 노드도 자신이 보유한 데이터 조각을 가지고 전체 데이터의 내용을 추측할 수 없습니다. 그래서 노드들이 스마트 컨트랙트 연산 과정을 수행하지만, 스마트 컨트랙트에 담긴 어떤 정보도 알 수 없어 스마트 컨트랙트 프라이버시가 보장되는 것이죠.

출처: Enigma: Decentralized Computation Platform with Guaranteed Privacy

한계점

Enigma가 사용하려고 하는 sMPC 기술은 높은 수준의 프라이버시를 보장합니다. 그러나, sMPC는 기술적으로 매우 복잡하다는 단점이 있어, 블록체인에서 이를 구현하기 위해서는 높은 수준의 기술력이 필요합니다. 실제로 Enigma의 경우 테스트넷에서 발표하기로 했던 sMPC 기술을 아직 구현하지 못하고 있습니다.

또한 sMPC의 경우 연산 처리 능력 면에서는 비효율적인 기술입니다. 단순한 연산임에도 이를 다수의 연산 노드가 나누어 실행하고 검증하면서 비효율이 발생합니다.

3) Ekiden

사용 기술: TEE(Trusted Execution Environments)

Ekiden이란?

Ekiden은 Oasis Lab에서 개발한, 블록체인시스템과 TEE를 결합한 스마트컨트랙트 플랫폼입니다. Ekiden은 스마트컨트랙트를 안전실행환경인 TEE에서 실행함으로써 프라이버시를 제공하고자 합니다. TEE는 Intel SGX와 같이 스마트폰, 컴퓨터 등의 디바이스 중앙처리장치 내 별도로 독립된 하드웨어 상의 보안 영역을 의미합니다. 이때 보안 영역은 일반영역과의 정보 교환이 통제되어있기 때문에 기타 앱 혹은 심지어 해당 디바이스의 소유자 일지라도 TEE에 저장된 데이터 및 실행 코드를 확인하거나 작동 중인 프로그램을 방해할 수 없습니다. 또한 TEE는 자체 암호키(퍼블릭/프라이빗 키)를 갖고 있어, 외부로 이동하는 데이터를 자체 키를 통해 암호화시킴으로써 데이터 노출을 방지할 수 있습니다. 무엇보다 TEE는 다른 보안 환경보다 연산처리 속도가 빠르며, 메모리 용량이 크다는 장점이 있습니다.

Overview of Intel SGX

Ekiden 네트워크는 다음과 같이 3가지 참가자로 구성되어 있습니다.

  • 고객: 스마트 컨트랙트의 최종 사용자. 새로운 스마트 컨트랙트을 생산하거나 기존 계약의 실행을 유발할 수 있음.
  • 연산 노드(Compute nodes): 실행 엔진(TEE)을 통해 스마트 컨트랙트 실행하는 노드. 연산 정확도를 증명할 수 있는 증거를 생성하여 합의 노드에 제공.
  • 합의 노드(Consensus nodes): 합의 프로토콜을 실행함으로써 분산된 원장을 유지 및 관리하는 노드. 계약 상태 및 계약이행에 대한 증명을 해당 블록체인에 기록함.

Ekiden을 통해 스마트컨트랙트가 실행되는 방법은 다음과 같습니다. 1) 고객이 발생시킨 스마트컨트랙트는 연산 노드가 담당하고 있는 TEE에서 실행됩니다. 물론 연산 노드는 TEE에서 실행되고 있는 코드 및 데이터를 볼 수 없습니다. 2) TEE는 연산을 완료함에 따라 컨트랙트 실행에 대한 결과값과 연산에 대한 증명을 합의 노드에 전달합니다. 3) 합의 노드는 증명을 검증하고 이를 결과값과 함께 퍼블릭 체인에 저장합니다.

이때 앞서 설명했듯이 TEE는 자체 암호키를 보유하고 있기 때문에, 고객은 TEE에서 제공한 공개키를 통해 스마트컨트랙트에 들어갈 데이터를 암호화하여 이를 연산 노드에게 전달할 수 있습니다. 또한, TEE에서 생성한 결과값 역시 TEE 암호키를 통해 암호화된 채로 합의 노드에 전달됩니다. 이처럼 고객은 TEE 내부에서뿐만 아니라 TEE로 들어오고 나가는 과정에서 데이터를 TEE 자체 암호키를 통해 암호화함으로써 더 완전한 프라이버시를 보장받을 수 있습니다.

한계점

Ekiden은 TEE 내에서 처리하는 코드 및 데이터에 대한 보안을 잘 유지할 수 있지만, side channel 공격에는 여전히 취약합니다. side channel 공격이란 전력 소비, 전자기 누출(electromagnetic leaks)등과 같이 실행중인 하드웨어에서 추가적인 정보를 추측하고자 하는 공격을 의미합니다. 또한, Ekiden이 제공하는 프라이버시가 하드웨어를 기반으로 함에 따라, Ekiden의 서비스 질은 하드웨어 제조사 혹은 판매업체에 의존해 있다는 한계가 있습니다.

이상으로 프라이버시 스마트컨트랙트에 적용 가능한 프라이버시 기술 및 이를 활용한 프로젝트에 대해 알아봤습니다. 물론 앞에서 소개한 3가지 기술(Sidechains & State Channels, sMPC, TEE)만이 스마트 컨트랙트 프라이버시 보호를 위해 사용되는 것은 아닙니다. 무엇보다 위 3가지 기술 역시 완벽한 프라이버시 스마트 컨트랙트를 구현하기에는 여러 한계점을 가지고 있습니다. 그럼에도 동형암호나 향상된 영지식증명 등 여러 프라이버시 기술이 스마트컨트랙트에 활용되기 위해 꾸준히 연구 및 개발되고 있음에 따라 프라이버시 스마트 컨트랙트의 발전은 지속될 것으로 기대됩니다.

결론

많은 기업들이 블록체인을 도입하려고 하고 다양한 비즈니스들이 DApp의 형태로 구현되기 시작하면서 스마트 컨트랙트 프라이버시에 대한 수요는 갈수록 커질 것으로 예상됩니다. 이에 따라 다양한 기술을 통해 프라이버시 스마트 컨트랙트가 시도되고 있지만 아직은 실질적인 활용 사례 및 결과가 나오지 않은 것을 미루어 보아 개발 상황이 미진하다고 볼 수 있습니다.

위에서 살펴보았듯이, 블록체인 프라이버시 문제 해결이 해결되지 않으면 블록체인의 상용화에 심한 걸림돌이 될 수 있습니다. 희망적인 부분은 이더리움을 비롯한 많은 프로젝트가 점점 스마트 컨트랙트 프라이버시의 중요성을 인식하고 있고, 실질적인 개발에 착수하려고 한다는 점입니다. 이더리움은 프라이버시와 확장성을 위해 영지식 증명 기술 도입을 고려 중이며, 이더리움 재단 창립자인 비탈릭 부테린은 트위터를 통해 과거와 달리 프라이버시에 대한 긍정적인 생각을 밝히기도 했습니다.

하루빨리 프라이버시 스마트 컨트랙트 솔루션들이 상용화되어 블록체인 생태계가 더욱 풍부해지는 날이 오길 기대해봅니다.