안전한 다자간 계산 (SMPC)

보안 다자간 연산은 여러 당사자가 입력 값을 비공개로 유지하면서 입력 값에 대한 함수를 공동으로 계산할 수 있게 해주는 암호화 기술입니다.

보안 다자간 연산(SMPC 또는 MPC)은 여러 당사자가 개별 입력 값을 서로에게 공개하지 않고 결합된 데이터에서 결과를 공동으로 계산할 수 있게 해주는 암호화의 한 분야입니다. 이를 통해 당사자들이 서로를 완전히 신뢰하지 않는 시나리오에서 개인 정보를 보호하는 계산이 가능해집니다.

주요 프로토콜로는 Yao의 가블드 서킷(2자간 연산용), 비밀 공유 체계(샤미르, 가산), 그리고 악의적인 공격에 대한 보안을 제공하는 SPDZ 및 Overdrive와 같은 최신 개발이 있습니다. 계산은 분산되어 있어 단일 당사자가 전체 데이터를 볼 수 없습니다.

블록체인 애플리케이션에서 SMPC는 임계값 서명(단일 당사자가 전체 개인 키를 보유하지 않음), 프라이빗 스마트 계약, 탈중앙화 수탁 솔루션 및 개인 정보 보호 오라클에 사용됩니다. 여러 당사자가 거래를 승인해야 하는 기관 수탁에 특히 유용합니다.

과제로는 통신 오버헤드(당사자가 메시지를 교환해야 함), 계산 비용(평문보다 작업 속도가 느림), 구현 복잡성 등이 있습니다. 그러나 최근의 발전으로 인해 SMPC는 실제 애플리케이션에서 점점 더 실용화되고 있습니다.

        graph LR
  Center["안전한 다자간 계산 (SMPC)"]:::main
  Pre_asymmetric_encryption["asymmetric-encryption"]:::pre --> Center
  click Pre_asymmetric_encryption "/terms/asymmetric-encryption"
  Pre_digital_signature["digital-signature"]:::pre --> Center
  click Pre_digital_signature "/terms/digital-signature"
  Rel_homomorphic_encryption["homomorphic-encryption"]:::related -.-> Center
  click Rel_homomorphic_encryption "/terms/homomorphic-encryption"
  Rel_zero_knowledge_proof["zero-knowledge-proof"]:::related -.-> Center
  click Rel_zero_knowledge_proof "/terms/zero-knowledge-proof"
  Rel_confidential_computing["confidential-computing"]:::related -.-> Center
  click Rel_confidential_computing "/terms/confidential-computing"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5살도 이해할 수 있게 설명

친구 10명이 각자 연봉을 비밀로 하면서 평균 연봉만 알고 싶을 때 쓰는 방법이에요. 마법 상자에 각자 비밀 종이를 넣으면, 상자는 평균값만 알려주죠. 누가 얼마를 썼는지는 다른 친구들은 물론 상자조차 알 수 없게 되어 있어요.

🤓 Expert Deep Dive

## MPC vs. FHE vs. ZKP
- MPC: Multiple parties talk to each other to find a result (Interactive). Best for shared custody and joint analysis.
- FHE: One party does math on encrypted data (Non-interactive). Best for outsourcing data to a cloud and getting a result back.
- ZKP: One party proves they know something to another (Non-interactive/Interactive). Best for verifying identity or transaction validity without showing the data.

🔗 관련 용어

📚 출처