# 다자간 계산 (Multi-Party Computation, MPC)

다자간 계산(MPC, Secure Multi-Party Computation)은 여러 참여자가 각자의 비밀 입력을 서로에게 공개하지 않은 채 함께 어떤 함수의 결과만 계산하는 암호 기술입니다. 1982년 앤드루 야오(Andrew Yao)의 '백만장자 문제'에서 출발했으며, 오늘날에는 개인 키를 여러 조각으로 나눠 보관하는 MPC 지갑의 기반으로 널리 쓰입니다.

## 자세히 알아보기

백만장자 문제는 두 부자가 자기 재산을 밝히지 않고 누가 더 부자인지 알아내는 문제입니다. MPC는 이를 일반화해, n명의 참여자가 입력 x₁, …, xₙ을 숨긴 채 f(x₁, …, xₙ)만 얻도록 합니다. 구현 기법으로는 비밀 분산(샤미르 등) 위에서 연산하는 방식, 야오의 가블드 회로(garbled circuit), 망각 전송(oblivious transfer), 동형 암호 등이 쓰입니다.

보안 모델을 정확히 이해해야 합니다. '반정직(semi-honest)' 모델은 참여자가 규칙은 지키되 정보를 엿보려 한다고 가정하고, '악의적(malicious)' 모델은 규칙 자체를 어길 수 있다고 가정합니다. 또한 정직한 참여자가 과반인지, 소수여도 되는지에 따라 가능한 보장과 효율이 달라집니다. 같은 'MPC'라는 이름이라도 프로토콜과 구현의 안전성은 크게 다를 수 있습니다.

## 블록체인·암호화폐에서는

MPC 지갑은 하나의 개인 키를 처음부터 완성된 형태로 만들지 않고, 여러 기기나 기관이 키 조각(share)만 보유합니다. 서명할 때는 정해진 수 이상의 참여자가 MPC 프로토콜로 협력해 일반 ECDSA 또는 EdDSA 서명 하나를 만듭니다. 블록체인에는 평범한 단일 서명으로 보이므로 체인 종류와 무관하게 쓸 수 있고, 온체인 멀티시그보다 수수료가 적으며 승인 정책을 오프체인에서 유연하게 바꿀 수 있습니다. 그래서 거래소, 커스터디 업체, 기관 투자자가 많이 사용합니다.

한계도 분명합니다. 임계값 ECDSA 프로토콜은 복잡해 2023년에도 널리 쓰이던 구현들(GG18/GG20 계열)에서 키 탈취가 가능한 취약점이 공개되었습니다. 또한 MPC는 '누가 키를 가졌는가'의 문제일 뿐, USDT·USDC 같은 토큰 자체의 규칙은 바꾸지 못합니다. MPC 지갑에 보관 중인 스테이블코인이라도 발행사가 컨트랙트 수준에서 주소를 동결하면 이동할 수 없습니다.

## 쉽게 말하면

금고 비밀번호를 세 사람이 한 조각씩 나눠 가진 채, 누구도 전체 번호를 보지 않고 함께 금고를 여는 방법입니다.

---
출처: https://achivx.kr/glossary/multi-party-computation-mpc-%EB%8B%A4%EC%9E%90%EA%B0%84-%EA%B3%84%EC%82%B0-mpc/ · ACHIVX 용어 사전 · 수정일 2026-10-20
