다자간 계산
다자간 계산(MPC; Multi-Party Computation)이란 다수의 사용자가 각자의 비밀 값을 입력값으로 하여 함숫값을 함께 계산하는 기술이다. 흔히 영어로 MPC(엠피씨)라고 한다. 다자간 계산은 1982년에 최초로 시작되었다. 처음에는 양자간 계산(2PC; Two-Party Computation)으로부터 시작했고, 이후 다자간 계산으로 발전했다.
목차
개요[편집]
다자간 계산(MPC)과 연관된 기술들은 머클트리, 동형암호, 탭루트 등 다양한 암호학 관련 기술들이 있다. 다자간 계산을 활용한다면 원래 정보는 알 필요 없이 도출된 비밀 값만을 몇몇 주체들이 해결해 낸 뒤, 그 결과들을 활용하면 된다. 이를 통해 제삼자의 개입 없이 프라이버시 및 신뢰를 얻을 수 있어서 이에 대한 수요가 계속해서 생긴다. 또한 단일 주체가 공급을 담당하지 않기 때문에 단일 주체가 공급을 맡아서 가격형성을 할 때 비해 더 소비자에게 이득일 가능성이 커지고, 이를 통해 자연스럽게 "시장"이 형성될 수 있다. 이를 해내기 위해서는 고도의 암호화를 가능하게 하고, 다자가 빠르게 소통할 수 있게 하는 인코딩/대역폭 제한 컴퓨팅과 같은 인프라 및 기술이 요구된다.[1]
특징[편집]
- 여러 당사자(기계)가 계산에 참여한다.
- 각 당사자는 이 당사자에게만 알려진 비밀인 계산에 일련의 입력 정보를 제공한다.
- 계산이 진행되는 동안 당사자 간에 보안 메시지가 전달되어 당사자가 제공한 투입물에 대한 정보가 전혀 공개되지 않는다.
- 계산이 끝나면, 단일 프로세서에 있는 모든 입력으로 그것을 계산하는 것처럼 함수의 출력이 가능하다.
- 계산은 어느 정도 내결함성이 있으며, 계산의 일부 노드/파티들이 악의적이더라도 계산은 계속하여 의도한 결과를 제공할 수 있다.
다자간 계산 프로토콜[편집]
대부분의 다자간 계산 프로토콜(MPC protocol)은 양자간 계산(2PC) 프로토콜과 달리 개인 채널의 무조건적인 설정하에서 비밀 공유를 사용한다. 비밀 공유 기반 방법에서 당사자들은 특별한 역할을 하지 않는다. 대신, 각 와이어와 관련된 데이터는 당사자들 간에 공유되며, 각 게이트를 평가하는 프로토콜이 사용된다. 이 기능은 Yao에 사용되는 이진 회로와 달리 유한 필드의 '회로'로 정의된다. 이러한 회로를 문헌에서 산술 회로라고 하며, 연산된 값이 유한 필드에 대해 정의되는 덧셈 및 곱셈 "게이트"로 구성된다. 비밀 공유를 통해 각 당사자에게 주식을 배포하여 여러 당사자에게 비밀을 배포할 수 있다. 일반적으로는 샤미르(Shamir) 비밀 공유와 추가 비밀 공유의 두 가지 비밀 공유 방식이 사용된다. 두 경우 모두 주식은 한정된 분야의 임의적인 요소로서 그 분야의 비밀을 더한다. 자격에 맞지 않는 주식 집합이 임의로 배포되는 것처럼 보이기 때문에 보안이 이루어진다.[2]
보안 속성[편집]
- 입력 개인 정보 보호 : 당사자가 보유한 개인 데이터에 대한 정보는 프로토콜 실행 중 전송된 메시지에서 유추할 수 없다. 개인 데이터에 대해 유추할 수 있는 유일한 정보는 함수의 출력만 볼 때 유추할 수 있는 것이다.
- 결과 정확성 : 프로토콜 실행 중 정보를 공유하거나 지시 사항에서 벗어나려는 적대적인 충돌 당사자의 적절한 하위 집합이 정직한 당사자가 잘못된 결과를 출력하도록 강요해서는 안 된다. 이 정확성 목표는 두 가지 방식으로 제공된다. 정직한 당사자는 올바른 결과를 계산하거나 오류를 발견하면 중단된다.
위협 모델[편집]
- 반 정직한 적 : 손상된 당사자는 단지 프로토콜에서 정보를 수집하기 위해 협력하지만, 프로토콜 사양에서 벗어나지 않는다고 가정한다. 이것은 실제 상황에서 보안이 약한 순진한 공격 모델이다. 그러나 이 수준의 보안을 달성하는 프로토콜은 당사자 간 우발적인 정보 유출을 방지하므로 이것이 유일한 관심사인 경우 유용하다. 또한 정직한 모델의 프로토콜은 매우 효율적이며 높은 수준의 보안을 달성하기 위한 중요한 첫 단계이다.
- 악의적인 공격자 : 공격자는 부정행위를 시도할 때 프로토콜 실행에서 임의로 벗어날 수 있다. 이 모델에서 보안을 달성하는 프로토콜은 매우 높은 보안 보장을 제공한다. 부정직한 대다수의 경우 상대방이 할 수 있는 유일한 일은 정직한 당사자가 자기 부정 행위를 감지한 것을 파기시키는 것이다. 정직한 당사자가 결과물을 얻는다면 그것이 정확하다는 것을 보장한다. 그들의 프라이버시는 항상 유지된다.[3]
프라이빗 조인 앤 컴퓨트[편집]
프라이빗 조이 앤 컴퓨트(Private Join and Compute)는 구글이 새로운 유형의 다자간 계산 기술을 발표한 것이다. 조직들이 기밀에 속하는 데이터를 가지고 공유하거나 협업을 해야 할 때 좀 더 안전하게 할 수 있도록 해주는 것이라고 한다. 이 새로운 다자간 계산(MPC) 기술은 원래 PSI라고 알려진 암호화 프로토콜을 한층 더 강화할 목적으로 개발됐다고 한다. PSI는 '사적 집단 교차'(private set intersection)의 준말이다. 구글은 '프라이빗 조인 앤 컴퓨트'를 오픈소스로 풀었다. 프라이빗 조인 앤 컴퓨트는 조직들이 서로 데이터를 공유하고 집계해 새로운 통찰을 얻어갈 수 있도록 해주는 것으로, 이 과정에서 특정 개인에 대한 정보를 실수나 고의로 획득할 수 없도록 해준다. 개개인에 대한 식별과 인지는 불가능하게 하면서, 전체 데이터에 대한 분석은 가능케 해준다는 것이다. 프라이빗 조인 앤 컴퓨트는 두 개의 암호화 기술을 합한 것으로, 하나는 PSI이고 다른 하나는 동형암호(homomorphic encryption)이다. PSI는 데이터를 공유하는 양측이 데이터를 합쳐 공통된 식별자를 찾아내게 해주는 기능을 가지고 있고, 동형암호는 암호화된 데이터를 가지고 특정 유형의 계산식을 복호화 없이 작용할 수 있게 해준다.[4]
활용[편집]
알파코인[편집]
알파코인(Arpacoin)은 블록체인 기반의 보안 연산 네트워크이다. 알파는 레이어2와, 다자간 계산(MPC)을 활용해 안전하고 비밀을 유지하는 연산 솔루션을 제공한다. 개인 정보를 보존하는 계산 네트워크로서 모든 사람에게 미가공 데이터를 공개하지 않고도 데이터를 공유하고 사용할 수 있다. 정보 이론적 MAC 및 Zero-Knowledge Proof를 사용하여 다수의 악성 조건으로도 계산의 정확성을 입증할 수 있다. 다자간 계산과 혁신적인 노드 통신 체계를 사용함으로써 프라이버시 보호 컴퓨팅 프로토콜은 데이터 임대의 새로운 방식에 데이터 수익화를 가능하게 한다.[5] 안전한 연산을 더 신속하게 처리하기 위해 다자간 계산(MPC) 프로토콜이 적용된다. 이를 통해 5~6 자릿수 속도 개선이 가능하다. 다자간 계산 프로토콜은 여러 도구와 하위 프로토콜을 사용한다. 이런 도구에는 영지식증명, 확률적 암호화, 정보 이론적인 메시지인증 코드, 여러 가지의 분산화 확정 체계, 임의 데이터의 불가지론적 전송 방법이 포함된다. 다자간 계산 네트워크(MPC network)는 2단계 계층구조 솔루션으로 설계되었으며 이더리움, 이오스와 같은 퍼블릭 블록체인과 호환성을 가진다.[6]
젠고[편집]
젠고(Zengo)는 키(Key)가 없이 생체인식으로 로그인이 되고 클라우드로도 보관할 수 없는 비트코인같은 암호화폐 지갑이다. 젠고는 1914년 4월 삼성벤처투자, 벤슨 오크벤처스 등에서 400만 달러의 투자를 유치했으며 2019년 7월 자체 개발 기준값 서명(TSS) 암호화 기법을 사용한 리브라 테스트넷 관련 개념 증명(proof-of-concept)을 공개하고 페이스북의 암호화폐 리브라를 지원할 예정이라고 발표했다. 젠고는 다자간 계산 암호해독 기능을 사용한다. 이 방법을 사용하면 여러 개의 신뢰할 수 없는 컴퓨터가 각각 다른 세그먼트의 세부 정보를 모르는 한 노드 없이도 원하는 공통 결과를 집합적으로 생성하는 고유한 큰 데이터 세트의 고유한 세그먼트를 계산할 수 있다. 따라서 실행 트랜잭션의 개인키는 집합적으로 생성된 값이며 실제 키를 담당하는 취약한 컴퓨터는 하나도 없다.[7] 젠고에 대해 자세히 보기
폴라리스[편집]
폴라리스(Polaris)는 한국의 ㈜체인파트너스(대표 표철민)가 이오스(EOS)를 하드포크하여 만든 기업용 블록체인 플랫폼겸 암호화폐이다. 2019년 2월 ㈜체인파트너스는 조직개편과 함께 폴라리스 프로젝트를 중단했다. 폴라리스는 Main Phase 1, Main Phase 2, Main Phase 3 이렇게 3단계로 Main Phase 3에서 주 토큰을 수수료로 사용하는 다자간 계산을 구현할 계획이다. 폴라리스 특징으로 다자간 계산이 있다. 이오스 플랫폼은 트랜잭션을 순차적이고 빠르게 처리할 수 있다. 하지만 파일의 형태 변경인 인코딩이나 디코딩 같은 대용량 데이터를 처리하기에는 적합하지 않다. 블록생성자가 데이터 처리를 하는 동시에 0.5초마다 블록을 생성할 수 없기 때문이다. 연산을 가속하기 위해 GPU나 구글의 TPU(TensorFlow Processing Unit)와 같은 전용 하드웨어를 이용할 수 있다. 그러나 전용 하드웨어를 사용하더라도 블록생성자에게 연산 처리를 맡기는 것은 상대적으로 느릴 것이고, 데이터 처리를 타인에게 위임하게 되면 이를 검증하기 위해 동일한 컴퓨팅 연산을 해야 하는 Verifier Dilemma가 발생하게 된다. 폴라리스 플랫폼은 이런 문제를 해결하기 위해 폴라리스 소프트웨어에 내장된 웹어셈블리를 이용한다. 폴라리스 플랫폼상에서는 웹어셈블리(WASM)을 통해 상태 변경에 대한 머클트리를 검증할 수 있다. 웹어셈블리는 컴퓨터 성능 그대로를 반영하고 확장 또한 간편하기 때문에, 이를 이용하여 누구나 Computation Group에 참여할 수 있게 한다. 플랫폼 참여자들은 그룹 안에서 노동의 대가로 일정한 수수료를 받아 운영할 수 있다. 폴라리스에 대해 자세히 보기
각주[편집]
- ↑ 블록투데이, 〈다자간 연산 (Multi-Party Computation/MPC):모든 것의 핵심인 존재〉, 《코박》, 2019-05-08
- ↑ 〈Secure multi-party computation〉, 《위키피디아》
- ↑ George Wainblat , 〈MPC (Multi-party Computing)는 어떻게 작동합니까?〉, 《Quora》, 2018-11-12
- ↑ 문가용 기자, 〈구글, 안전한 데이터 공유 및 분석 툴을 오픈소스로 풀어〉, 《보안뉴스》, 2019-06-21
- ↑ *TOKENMAN 토큰맨, 〈토큰맨이 알려주는 알파코인이란?〉, 《네이버 블로그》, 2019-04-22
- ↑ 영보스, 〈알파코인(ARPA)에 대해 알아보자〉, 《네이버 블로그》, 2019-04-29
- ↑ 〈MPC는 설명합니다:cryptocurrencies 보호하기위한 대담한 새로운 비전〉, 《0xzx》, 2019-06-10
참고자료[편집]
- 블록투데이, 〈다자간 연산 (Multi-Party Computation/MPC):모든 것의 핵심인 존재〉, 《코박》, 2019-05-08
- Sreekanth Narayanan, 〈Multi Party Computations〉, 《미디엄》, 2018-02-25
- 〈Secure multi-party computation〉, 《위키피디아》
- George Wainblat , 〈MPC (Multi-party Computing)는 어떻게 작동합니까?〉, 《Quora》, 2018-11-12
- 〈MPC는 설명합니다:cryptocurrencies 보호하기위한 대담한 새로운 비전〉, 《0xzx》, 2019-06-10
- TOKENMAN 토큰맨, 〈토큰맨이 알려주는 알파코인이란?〉, 《네이버 블로그》, 2019-04-22
- 영보스, 〈알파코인(ARPA)에 대해 알아보자〉, 《네이버 블로그》, 2019-04-29
- 문가용 기자, 〈구글, 안전한 데이터 공유 및 분석 툴을 오픈소스로 풀어〉, 《보안뉴스》, 2019-06-21
같이 보기[편집]
- 안전한 다자간 계산(SMPC)
- 알파코인
- 젠고