핵심 요약

  • MPC는 신뢰하지 않는 참여자들이 함께 결과를 도출하는 비공개 계산 기술이다.
  • 다중 서명 지갑은 온체인(On-chain), MPC 기반의 임계치 서명 지갑은 오프체인(Off-chain)에서 관리된다.

1. 들어가며

1980년대 Andrew C. Yao이 제기한 Yao’s Millionaires’ problem을 살펴보자. 이 문제는 Alice와 Bob이 각자의 재산이 얼마나 되는지 알고 싶지만 서로의 재산을 공개하고 싶지 않을 때, 어떻게 각자의 재산을 서로에게 공개하지 않고 비교할 수 있는지를 묻는다1. 이 문제를 해결하기 위한 방법이 Multi-party compuation (MPC)이다2,3,4,5. MPC를 이용하면 각자의 재산을 공개하지 않고도 재산을 비교할 수 있다. 그 방법은 다음과 같다. Alice와 Bob은 각각 임의의 값을 선택하고 이를 서로에게 암호화한 다음, 상대방으로부터 받은 암호문과 함께 암호문의 곱을 계산한다. 이 곱의 결과값이 일정 이상이면 Alice의 재산이 Bob의 재산보다 많다는 것을 알 수 있고, 그렇지 않으면 반대의 경우가 된다. 이와 같이, MPC는 서로 신뢰하지 않는 여러 참여자들이 각자가 지닌 값을 비공개로 유지하면서 함수에 입력하여 하나의 결과를 함께 도출하는 기술을 의미한다.

MPC의 작동 방식은 대략적으로 다음과 같다.

  1. 먼저, 각각의 개인들은 자신의 비밀 정보를 암호화한다. 이를 위해 대개 암호화 기술인 공개키 암호화 방식을 사용한다.
  2. 그 다음, 각각의 개인들은 자신의 암호화된 정보를 다른 개인들과 공유한다. 이를 위해 대개 네트워크를 통해 정보를 교환한다.
  3. 각각의 개인들은 받은 정보를 해독하여, 다른 개인들이 가진 정보를 이용하여 계산을 수행한다. 이 때, 각각의 개인들은 자신이 가진 암호화된 정보만을 이용하여 계산을 수행할 수 있다.
  4. 계산 결과를 다시 암호화하여 다른 개인들과 공유한다. 이를 통해 각각의 개인들은 결과를 확인할 수 있지만, 다른 개인들이 자신의 비밀 정보를 확인하지는 못한다.
  5. 계산 결과를 모두 수집한 후, 이를 해독하여 최종 결과를 얻는다.

MPC는 이러한 방식으로 각각의 개인들이 자신의 개인 정보를 보호하면서도, 공통된 목표를 달성할 수 있도록 한다. 이를 통해 개인들은 자신의 개인 정보를 안전하게 보호하면서도, 다른 개인들과 함께 일을 할 수 있게 된다.

그렇다면 어떻게 MPC를 가상자산 지갑에 적용하면 하나의 개인 키로 가상자산을 관리할 때 생길 수 있는 단일 장애점(SPOF)를 해결할 수 있을까?

2. MPC 기반의 임계치 서명

임계치 서명 프로토콜은 여러 명의 참여자가 서명 키를 공유하고, 서명을 생성하는 과정에서 서로의 서명 기여를 조합하여 일정 임계치 이상의 참여자가 동의해야만 서명이 유효한 서명 방식이다. 이러한 임계치 서명 프로토콜을 Multi-party computation(MPC) 프로토콜 기반으로 구현하여 가상자산 지갑에 적용해야 하나의 개인 키로 가상자산을 관리할 때 생길 수 있는 단일 장애점(SPOF)를 해결하였다. MPC 기반의 임계치 서명 프로토콜을 간단히 살펴보면 다음과 같다.

  1. 키 생성 MPC를 활용하여 가상자산을 관리하는 것은 일반적인 개인 키를 이용하는 것과 다르다. 가장 큰 차이점은 개인 키는 지갑을 처음 생성할 때나 트랜잭션에 서명하는 동안에 절대 수집되지 않게 하여 아무도 모른게 한다는 것이다. 이를 위해서는 참여자들은 각자 비밀 키를 만들어 분할 후 다른 참여자들과 공유한다. 이렇게 분할된 비밀 키는 안전한 방식으로 합산되어, MPC 기반의 임계치 서명에 필요한 전체 비밀 키로 활용된다. 공개키는 참가자들이 만든 각자의 비밀 키에 대응되는 공개키로 구성되고 다른 참여자들과 공유한다.
  2. 서명 생성 서명 생성은 참가자들이 공유한 분할된 비밀 키들을 활용해 하나의 서명을 생성하는 과정이다. 이 과정에서는 미리 정해진 임계값(threshold) 이상의 참가자가 모여야만 유효한 서명을 생성할 수 있다.
  3. 서명 검증 서명 검증은 생성된 서명이 유효한지 확인하는 과정이다. 이 과정에서는 각 참가자들은 생성된 서명과 공개키를 사용하여 서명이 유효한지 검증한다.

MPC 기반의 임계치 서명 프로토콜은 보안성이 높으며, 여러 명의 참가자가 협력하여 하나의 서명을 생성할 수 있어서 유용하다. 이러한 프로토콜은 보안 관련 분야에서 많이 사용되며, 현재도 더욱 발전하고 있는 분야이다.

3. MPC 기반의 임계치 서명 지갑의 특징

다중 서명 지갑과 MPC 기반의 임계치 서명 지갑은 여러 담당자들에게 서명 권한을 분배하여 단일장애점(SPOF)를 해결한다는 목표가 같다. 그러나 다중 서명 지갑은 가상자산을 여러 온체인(On-chain) 서명으로 관리하는 반면 MPC 기반의 임계치 서명 지갑은 오프체인(Off-chain)에서 생성된 단일 서명으로 관리한다는 차이점이 있다. 그리고 다중 서명 지갑은 서명자의 수와 동의 비율이 미리 설정되어 있으나 MPC 기반의 임계치 서명 지갑은 동적으로 참여자들의 수와 동의 비율을 조정할 수 있어 유연한 관리가 가능하다. 특히, 다중 서명 지갑은 블록체인 메인넷에서 지원하거나 스마트 컨트랙트를 이용해야만 구현 가능하지만 MPC 기반의 임계치 서명 지갑은 블록체인의 95%에 걸쳐 구현할 수 있는 표준화된 암호화 서명 알고리즘(ECDSA)을 사용하기 때문에 다중 서명 지갑보다 호환성이 좋다. 다만, 구현이 쉽지 않다는 한계점은 존재한다.

그렇다면, MPC 기반의 임계치 서명 알고리즘은 어떤 것들이 있을까? 다음 글 부터는 대표적인 알고리즘을 상세히 살펴보도록 하겠다.

주의 사항
본 글은 작성자 개인의 의견을 담은 것으로서, 외부의 영향을 받거나 간섭 받은 것이 아님을 밝힙니다. 이 글은 (주)페어스퀘어랩의 공식 입장이나 의견을 대표하지 않습니다. 본 웹사이트에서 제공되는 정보는 투자 자문이나 권유를 목적으로 하지 않으며, 투자 결정과 관련된 책임은 사용자에게 있습니다. 따라서 사용자는 자신의 개인적 상황, 재정적 상황, 투자 목적 등을 고려하여 투자 결정을 스스로 내리도록 해야 합니다. 더 자세한 내용을 원할 경우, 금융 관련 전문가의 조언을 참고해야 합니다. 과거 수익률이나 전망은 미래의 수익률을 보장하지 않습니다.

References

  1. https://en.wikipedia.org/wiki/Yao’s_Millionaires’_problem 

  2. “Secure multi-party computation”,Wikipedia, https://en.wikipedia.org/wiki/Secure_multi-party_computation (accessed May. 10, 2023) 

  3. Brian Spector, “다자간 연산(MPC)이란 무엇인가?”, Qredo Blog, https://www.qredo.com/ko/blog/what-is-multi-party-computation-mpc (accessed May. 10, 2023) 

  4. “다자간 계산”,해시넷, http://wiki.hash.kr/index.php/다자간_계산 (accessed May. 10, 2023) 

  5. “다자간 연산 (Multi-Party Computation/MPC): 모든 것의 핵심인 존재”, 코박,https://cobak.co.kr/news/9/post/173542 (accessed May. 10, 2023)