# Multi-Party Computation (MPC)

> 다자간 연산(MPC)은 여러 당사자가 규정된 결과값 외에는 개인의 입력값을 공개하지 않고 공동으로 함수를 계산할 수 있게 하는 암호화 방법입니다.

- Canonical URL: https://iq.wiki/kr/wiki/multi-party-computation-mpc
- Categories: Glossary
- Created: 2026-10-13T14:50:00.496Z
- Last updated: 2026-10-13T14:50:00.496Z
- Source: IQ.wiki — the world's largest blockchain and crypto encyclopedia (https://iq.wiki)

---

**다자간 연산(Multi-party computation, MPC)**은 여러 참여자가 규정된 결과값이 드러내는 것 외에는 서로에게 입력값을 공개하지 않고, 개인의 입력값을 사용하여 공동으로 함수를 계산할 수 있게 하는 암호화 방법입니다.[\[1\]](#cite-id-68vwdhjaxj)​[\[2\]](#cite-id-czw9yq2kly)&#x20;

비밀 정보를 한 곳에 집중시키기보다 연산을 분산함으로써, MPC는 전체 입력값이나 완전한 암호화 키를 노출할 수 있는 단일 당사자 또는 장치에 대한 의존도를 줄일 수 있습니다.[\[1\]](#cite-id-68vwdhjaxj)​

## History

MPC의 이론적 발전은 1982년 "백만장자 문제(Millionaire’s Problem)"를 통해 보안 이자간 연산(secure two-party computation)이 공식적으로 도입된 시기로 거슬러 올라가며, 1986년 앤드류 야오(Andrew Yao)가 이 프레임워크를 보다 일반적인 실행 가능한 연산으로 확장하면서 더욱 발전했습니다.[\[2\]](#cite-id-czw9yq2kly) MPC는 2016년 디지털 자산 분야에 진입하여 기관용 지갑 인프라에 사용되는 기술이 되었습니다.[\[2\]](#cite-id-czw9yq2kly)​

MPC는 오랫동안 이론적으로는 강력하지만 일상적인 사용에는 비용이 너무 많이 드는 것으로 간주되어 왔습니다. 프로토콜 설계, 네트워크 가정, 전처리(preprocessing), 특화된 하위 프로토콜, 하드웨어 성능 및 엔지니어링의 발전으로 인해 더 많은 환경에서 실용화되었습니다.[\[1\]](#cite-id-68vwdhjaxj) 네트워크 라운드, 상호작용 패턴 및 비용이 많이 드는 암호화 작업이 로컬 연산보다 지배적일 수 있기 때문에, 실제 시스템에서는 라운드를 줄이거나 작업을 전처리 단계로 옮기거나 서명 및 집합 교집합(set intersection)과 같은 작업을 위해 프로토콜을 특화하는 경우가 많습니다.[\[1\]](#cite-id-68vwdhjaxj) 일부 배포 사례에서는 낮은 지연 시간을 위해 견고성(robustness)을 절충하고 범용 보안 연산 시스템 대신 특정 작업에 특화된 프로토콜을 사용하기도 합니다.[\[1\]](#cite-id-68vwdhjaxj)​

## Security Model

MPC security is commonly analyzed using the ideal/real simulation paradigm. In the ideal model, a trusted functionality receives participants’ private inputs, computes the requested function, and returns the prescribed outputs; an interactive protocol is considered secure when an adversary’s view of the real execution is no more informative than its view of that ideal process.[\[1\]](#cite-id-68vwdhjaxj)​

This guarantee has limits. MPC does not prevent information leakage inherent in an output, such as a match result or an average calculated over a small population, and it does not generally establish that participants supplied truthful or well-formed inputs.[\[1\]](#cite-id-68vwdhjaxj) Applications that require authenticated or range-limited inputs can add checks such as signatures, commitments, zero-knowledge proofs, or system-level controls.[\[1\]](#cite-id-68vwdhjaxj) Security proofs also do not necessarily ensure that a protocol completes: participants may stall or abort, and privacy and correctness can hold even when the result is not delivered to everyone.[\[1\]](#cite-id-68vwdhjaxj)​

The guarantees depend on the adversary model. Semi-honest participants follow the protocol but try to infer additional information from their transcripts; malicious participants may deviate, send malformed messages or inconsistent shares, or abort strategically.[\[1\]](#cite-id-68vwdhjaxj) Defending against malicious behavior generally requires additional rounds, proofs, checks, and communication, while covert-security models aim to deter cheating by giving it a chance of detection.[\[1\]](#cite-id-68vwdhjaxj)​

In a static corruption model, the adversary selects which parties to corrupt before execution; in an adaptive model, it can corrupt parties during execution.[\[1\]](#cite-id-68vwdhjaxj) Proactive systems periodically refresh shares so that an attacker must compromise enough participants within a limited time window rather than accumulate compromises indefinitely.[\[1\]](#cite-id-68vwdhjaxj) The number of corrupt participants tolerated, synchrony assumptions, and other thresholds affect which combinations of privacy, correctness, fairness, and guaranteed output delivery can be achieved.[\[1\]](#cite-id-68vwdhjaxj) Fairness means that one participant cannot obtain the output while preventing the others from obtaining it.[\[1\]](#cite-id-68vwdhjaxj)​



## 연산 및 프로토콜

MPC 연산은 덧셈, 곱셈, 비교 또는 불리언 게이트와 같은 연산의 회로로 표현될 수 있습니다. 참여자들은 기본 입력을 노출하는 대신 보호된 중간 값을 사용하여 게이트별로 회로를 평가합니다.[\[1\]](#cite-id-68vwdhjaxj) 원칙적으로 임의의 다항식 시간 함수를 안전하게 계산할 수 있지만, 효율성과 달성 가능한 보장 수준은 설정에 따라 다릅니다.[\[1\]](#cite-id-68vwdhjaxj)​

비밀 공유 프로토콜과 2자간 가블드 회로(Garbled Circuits)는 MPC의 주요 접근 방식입니다.[\[1\]](#cite-id-68vwdhjaxj) Yao의 연구와 관련된 가블드 회로는 한 참여자가 회로를 암호화된 형태로 인코딩하여 다른 참여자가 숨겨진 와이어 값을 알지 못한 채 평가할 수 있도록 합니다.[\[1\]](#cite-id-68vwdhjaxj) MPC 프로토콜은 공유(shares), 암호화, 마스킹된 값, 커밋먼트를 포함한 인코딩된 중간 상태와 프라이버시 및 정확성을 보존하기 위한 전이 과정을 사용합니다.[\[1\]](#cite-id-68vwdhjaxj) 결합 정리(Composition theorems)와 보편적 결합성(Universal composability)은 프로토콜이 결합되거나 더 큰 시스템에 내장될 때 보안을 분석하는 공식적인 방법을 제공합니다.[\[1\]](#cite-id-68vwdhjaxj)​

### 비밀 공유 (Secret Sharing)

비밀 공유는 MPC를 위한 일반적인 빌딩 [블록](https://iq.wiki/wiki/block)이지만, 비밀을 분산하는 것만으로는 숨겨진 입력에 대한 임의의 연산을 제공하지 않습니다.[\[1\]](#cite-id-68vwdhjaxj) Shamir 비밀 공유에서 비밀은 유한체 위의 무작위 다항식의 상수항이며, 각 참여자는 0이 아닌 별개의 지점에서 다항식의 평가값을 받습니다.[\[1\]](#cite-id-68vwdhjaxj) 충분히 큰 권한을 가진 집합은 다항식을 재구성하고 비밀을 복구할 수 있는 반면, 더 작은 집합은 표준 모델에서 비밀에 대해 아무것도 알 수 없습니다.[\[1\]](#cite-id-68vwdhjaxj)​

예를 들어, 2-of-3 방식에서 딜러는 무작위 직선(q(x)=s+a x)을 선택하고 세 명의 참여자에게 1, 2, 3에서의 값을 제공합니다. 어떤 두 값이라도 직선을 결정하고 (s=q(0))을 복구할 수 있지만, 하나의 공유 값은 가능한 모든 비밀과 호환됩니다.[\[1\]](#cite-id-68vwdhjaxj) 당사자들은 종종 호환되는 공유 값을 로컬에서 더하여 합계의 공유 값을 얻을 수 있습니다. 곱셈은 공유의 대수적 복잡성을 증가시키기 때문에 더 어렵습니다.[\[1\]](#cite-id-68vwdhjaxj)​

검증 가능한 비밀 공유(VSS)는 수신자가 비밀을 드러내지 않고도 공개된 커밋먼트와 비교하여 공유 값이 유효한지 확인할 수 있게 합니다.[\[1\]](#cite-id-68vwdhjaxj) 분산 키 생성(DKG)은 단일 딜러가 전체 값을 알지 못해도 참여자들이 공동으로 공유 비밀 또는 개인 키를 생성할 수 있게 합니다.[\[1\]](#cite-id-68vwdhjaxj) 이러한 기술은 일관되지 않거나 악의적인 설정을 드러낼 수 있지만, 실제 보장 수준은 구현에 따라 다릅니다. 일부 Pedersen DKG 구현에서 공개된 서비스 거부(DoS) 문제는 검증 누락으로 인해 발생했습니다.[\[1\]](#cite-id-68vwdhjaxj)​



## Threshold Cryptography

임계치 암호화(Threshold Cryptography)는 임계치 서명, 복호화, 키 생성 및 쉐어 갱신을 포함하는 MPC의 특수 응용 분야입니다.[\[1\]](#cite-id-68vwdhjaxj) 임계치 서명에서 참가자들은 서명 키의 조각(share)을 보유하며, 한 장소에서 전체 개인 키를 재구성하지 않고도 유효한 서명을 공동으로 계산합니다. 충분한 수의 유효한 기여가 모이면 해당 [public key](https://iq.wiki/wiki/public-key)로 검증 가능한 일반 서명이 생성됩니다.[\[1\]](#cite-id-68vwdhjaxj)​

FROST는 암호화 포럼 연구 그룹(CFRG)에 의해 표준화된 2라운드 Schnorr 임계치 서명 프로토콜입니다. 전처리 과정을 통해 1라운드만 사용할 수도 있습니다.[\[1\]](#cite-id-68vwdhjaxj) 이는 임계치 수의 참가자가 서명 키를 분산된 상태로 유지하면서 Schnorr 서명을 생성할 수 있게 해줍니다.[\[1\]](#cite-id-68vwdhjaxj) FROST는 비교적 효율적이지만, 외부 메커니즘이 배제 또는 재시도를 제공하지 않는 한 결함이 있는 참가자가 서비스 거부(DoS)를 일으킬 수 있습니다.[\[1\]](#cite-id-68vwdhjaxj)​

임계치 ECDSA는 ECDSA의 대수학적 구조가 Schnorr보다 MPC에 덜 적합하기 때문에 더 어렵습니다.[\[1\]](#cite-id-68vwdhjaxj) 실용적인 프로토콜에는 부정직한 과반수가 포함된 악의적인 공격자를 견딜 수 있는 딜러 없는(dealerless) 설계가 포함되지만, 이는 추가적인 장치가 필요합니다.[\[1\]](#cite-id-68vwdhjaxj) 견고하거나 딜러가 없는 ECDSA는 4라운드 이상의 사전 서명 단계와 광범위한 검증이 필요할 수 있으며, 구현 요구 사항이 상당히 높습니다.[\[1\]](#cite-id-68vwdhjaxj) 분산 키 생성 구현체들은 매개변수, 증명 또는 커밋먼트 구조를 검증하지 못했을 때 취약점이 발생하기도 했습니다.[\[1\]](#cite-id-68vwdhjaxj)​



## Digital-Asset Wallets

디지털 자산 지갑은 트랜잭션을 승인하기 위해 개인 키를 사용하므로, 키에 대한 제어권이 관련 자산에 대한 제어권을 결정합니다.[\[2\]](#cite-id-czw9yq2kly) MPC 기반 수탁 방식에서 지갑의 개인 키는 여러 엔드포인트에 별도의 공유분(shares)으로 분산되며, 전체 키가 한 곳에 모이지 않습니다.[\[2\]](#cite-id-czw9yq2kly) 참여자들은 어떤 엔드포인트도 전체 개인 키를 알지 못한 채 분산 연산을 통해 지갑의 [공개 키](https://iq.wiki/wiki/public-key)를 공동으로 계산하고 트랜잭션 서명을 생성할 수 있습니다.[\[2\]](#cite-id-czw9yq2kly)​

​[Fireblocks](https://iq.wiki/wiki/fireblocks)는 키 공유분이 클라우드 서버, 온프레미스 하드웨어 또는 모바일 기기와 같은 엔드포인트 전반에 걸쳐 생성되고 무작위화된다고 설명합니다. 설명된 서명 흐름에서, 최소 3개의 엔드포인트로 구성된 쿼럼(정족수)이 조직의 정책 규칙에 따라 트랜잭션을 독립적으로 검증하고 서명 공유분을 기여하며, 이후 분산 연산을 통해 완전한 서명을 생성합니다.[\[2\]](#cite-id-czw9yq2kly) Fireblocks는 지갑의 [블록체인](https://iq.wiki/wiki/blockchain) 주소를 변경하지 않고도 공유분을 갱신하거나 교체(rotate)할 수 있으며, 조직이 온체인 활동을 중단하지 않고도 승인된 기기를 추가 또는 제거하거나 쿼럼 구성을 변경할 수 있다고 밝히고 있습니다.[\[2\]](#cite-id-czw9yq2kly)​

MPC 기반 임계값 서명(threshold signing)은 단일 운영자의 침해로 인한 일방적인 자산 제어 및 완전한 서명 키 노출을 방지하기 위해 브릿지, 지갑 및 거래소에서 사용됩니다.[\[1\]](#cite-id-68vwdhjaxj) Cube Exchange가 설명한 한 예시는 탈중앙화 결제를 위해 2-of-3 임계값 서명 방식을 사용합니다. 사용자, Cube Exchange, 그리고 독립적인 가디언 네트워크(Guardian Network)가 각각 하나의 키 공유분을 보유하며, 결제를 승인하려면 세 개 중 두 개의 공유분이 필요합니다.[\[1\]](#cite-id-68vwdhjaxj)​

Fireblocks는 자사의 MPC-CMP가 속도, 유연성 및 운영 보안 측면에서 업계 표준인 GG18을 개선하기 위해 고안된 프로토콜이라고 설명합니다.[\[2\]](#cite-id-czw9yq2kly) 이 회사는 MPC-CMP가 GG18의 9라운드, Lindell 등의 8라운드, Doerner 등의 6라운드와 비교하여 단 1회의 통신 라운드 만에 서명을 완료하며, 표준 MPC보다 최대 8배 빠르다고 주장합니다.[\[2\]](#cite-id-czw9yq2kly) Fireblocks는 이 프로토콜이 핫(hot), 웜(warm), 콜드(cold) 스토리지를 지원하며, 에어갭(air-gapped) 기기에 최소 하나의 공유분을 오프라인으로 보관하는 구성을 포함한다고 설명합니다. 또한 모든 트랜잭션에 대해 물리적 근접성이나 수동 개입 없이도 콜드 서명을 수행할 수 있다고 덧붙였습니다.[\[2\]](#cite-id-czw9yq2kly) 회사는 MPC-CMP가 제한적 오픈 소스 라이선스로 공개되어 독립적인 감사인에 의해 정기적으로 검토되며, Intel SGX 및 AWS Nitro 보안 엔클레이브용으로 구현되었다고 밝히고 있습니다.[\[2\]](#cite-id-czw9yq2kly)​

Fireblocks는 자사의 광범위한 보안 아키텍처가 MPC-CMP를 신뢰 실행 환경(TEE), 정책 엔진(Policy Engine) 및 Fireblocks 네트워크와 결합한 것이라고 설명합니다.[\[2\]](#cite-id-czw9yq2kly) 키 공유분, 정책 로직 및 API 자격 증명은 Intel SGX, AWS Nitro, GCP Confidential Spaces를 포함한 하드웨어 격리 환경에 저장 및 실행되며, 이는 공격자가 서버에 대한 운영 체제 수준의 액세스 권한을 얻더라도 엔클레이브 메모리 추출을 방지하기 위함입니다.[\[2\]](#cite-id-czw9yq2kly) 정책 엔진은 출처, 목적지, 자산 유형 및 금액 임계값을 포괄하는 트랜잭션 규칙을 직무 분리와 함께 적용합니다. Fireblocks는 이러한 규칙이 관리자 쿼럼에 의해 서명되고 SGX 내부에서 강제된다고 설명합니다.[\[2\]](#cite-id-czw9yq2kly) 또한 회사는 자사 네트워크가 입금 주소 인증을 자동화하여 복사 및 붙여넣기 오류와 주소 교체 공격을 줄여준다고 밝히고 있습니다.[\[2\]](#cite-id-czw9yq2kly)​

Fireblocks는 조직이 자체 수탁 솔루션을 운영할 수 있도록 수탁 기술을 공급하며, 고객이 키 쉐어(key shares)를 제어하고 Fireblocks는 고객의 자산을 보유하거나 고객을 대신하여 자금을 이동하지 않는다고 명시하고 있습니다.[\[2\]](#cite-id-czw9yq2kly) 이는 제3자가 고객의 개인 키를 제어하는 수탁형 지갑(custodial wallet)과는 다르지만, 수탁형 지갑 또한 MPC를 사용할 수 있습니다.[\[2\]](#cite-id-czw9yq2kly) Fireblocks는 규제 기관이 사용된 암호화 기술보다는 누가 개인 키를 제어하는지에 집중하기 때문에, 기업이 키를 제어하는 MPC 지갑이 직접 수탁(direct-custody) 모델과 일치한다고 주장합니다.[\[2\]](#cite-id-czw9yq2kly) 또한, MPC 기반의 임계치 서명 방식(threshold-signature schemes)의 공식 표준화를 촉구하기 위해 미국 국립표준기술연구소(NIST)에 공동 서한을 제출한 범산업 연합에 참여하고 있다고 보고했습니다.[\[2\]](#cite-id-czw9yq2kly)​

## 다른 기술과의 관계

MPC는 신뢰와 연산을 분산하는 방식에서 동형 암호화(homomorphic encryption)와 다릅니다. 동형 암호화는 종종 한 당사자가 복호화 키를 보유한 상태에서 암호문에 대한 연산을 허용하는 반면, MPC는 참여자 전체에 걸쳐 연산과 신뢰를 분산합니다.[\[1\]](#cite-id-68vwdhjaxj) 두 접근 방식은 결합될 수도 있습니다. 동형 암호화는 MPC 내에서 사용될 수 있으며, MPC는 동형 암호화 체계를 위한 복호화 또는 키 관리를 분산할 수 있습니다.[\[1\]](#cite-id-68vwdhjaxj)​

비밀 공유(Secret sharing)는 많은 MPC 프로토콜의 구성 요소입니다. MPC는 보호된 입력값에 대한 연산, 프로토콜 동작 검증 및 결과값 재구성 절차를 추가합니다.[\[1\]](#cite-id-68vwdhjaxj) 또한 MPC 지갑은 멀티시그(multisignature) 지갑과도 다릅니다. 멀티시그 승인은 여러 개의 별도 개인 키를 통해 온체인에서 강제되며, 지원 여부는 [blockchains](https://iq.wiki/wiki/blockchain) 및 구현 방식에 따라 다릅니다.[\[2\]](#cite-id-czw9yq2kly) 반면 MPC 서명은 트랜잭션이 전송되기 전 키 공유 보유자들 사이에서 오프체인으로 발생합니다.[\[2\]](#cite-id-czw9yq2kly) [Fireblocks](https://iq.wiki/wiki/fireblocks)에 따르면, 이는 지갑 주소를 변경하지 않고도 정족수(quorum) 변경을 가능하게 하고, 온체인 멀티시그 오버헤드를 피하며, ECDSA 또는 EdDSA를 사용하는 체인 전반에서 단일 구현을 사용할 수 있게 해줍니다.[\[2\]](#cite-id-czw9yq2kly)​

## Applications and Limitations

디지털 자산 수탁 외에도, MPC는 민감한 데이터 세트에 대한 프라이버시 보호 통계 및 협업 데이터 처리를 지원합니다.[\[1\]](#cite-id-68vwdhjaxj) 각 사례에서, 모든 비공개 입력값을 한곳에 모으지 않고도 공동의 계산 결과를 생성할 수 있습니다.[\[1\]](#cite-id-68vwdhjaxj)​

MPC는 한 명의 참여자에게 완전한 비밀 정보가 노출될 필요성을 줄여주지만, 모든 운영상 또는 구현상의 리스크를 제거하지는 않습니다. 참여자가 프로토콜을 중단하거나 지연시켜 서명 키가 보호되고 있는 상황에서도 활성도(liveness) 실패를 초래할 수 있습니다. 따라서 실질적인 보안은 기초적인 수학뿐만 아니라 프로토콜의 가정 및 구현에 따라 달라집니다.[\[1\]](#cite-id-68vwdhjaxj) 일부 실용적인 구조는 Schnorr 및 FROST를 위한 이산 로그 가정을 포함하여, 일부 ECDSA 프로토콜에서의 인수분해 또는 Paillier 관련 암호학적 난제 가정에 의존합니다.[\[1\]](#cite-id-68vwdhjaxj)​
