DKLS23 암호화 배경

다자간 계산은 secp256k1의 ECDSA와 Ed25519의 EdDSA (출시 예정)라는 두 가지 키 알고리즘으로 서명합니다. 이 페이지에서는 임곗값 ECDSA 프로토콜인 DKLS23과 Google에서 이 프로토콜에 적용한 변경사항을 설명합니다. 지원되는 알고리즘은 지원되는 블록체인을 참조하세요.

임곗값 ECDSA 및 DKLS23

다른 서명 체계와 달리 ECDSA의 임계값 서명 문제는 악명 높을 정도로 어려웠습니다. 2017년까지 대부분의 솔루션에는 심각한 절충점이 있었습니다.

2018년 DKLS는 ECDSA 기반 암호화 가정에만 의존하는 ECDSA의 2-out-of-2 서명을 위한 첫 번째 솔루션을 제시했습니다 (예: Paillier, RSA 또는 기타 다른 암호화 난이도 가정 계열이 필요하지 않음). 이 프로토콜의 획기적인 아이디어는 MPC 기반 접근 방식의 악의적인 보안을 주장하는 새로운 방법이었습니다 (일반적인 악의적인 보안 MPC 기법을 적용하려는 이전 시도에서는 실행하는 데 밀리초가 아닌 몇 분이 걸리는 프로토콜이 생성됨).

동일한 저자가 이후에 개선한 결과 k-out-of-n 프로토콜이 탄생했고, 마지막으로 DKLS23 개선을 통해 이전의 모든 접근 방식을 포착하고 DKLS 접근 방식을 주목할 만한 실적 측정항목에서 가장 효율적인 방식으로 식별하는 3라운드 k-out-of-n 임곗값 ECDSA를 위한 일반 프레임워크가 탄생했습니다. 특히 이 버전의 프로토콜은 이상적인 커밋 및 양자 곱셈 프리미티브에만 의존합니다. 그 결과로 나온 프로토콜은 당사자당 한 자릿수 밀리초의 계산이 필요하며 (경쟁 접근 방식보다 훨씬 빠른 속도), 중요한 점은 타원 곡선 연산만 사용하는 더 간단한 암호화 프리미티브를 사용한다는 것입니다 (다른 작업에서 요구되는 값비싼 Paillier, 동형 연산, 값비싼 영지식 범위 증명, 암호화 키의 올바른 형식 증명과 대조적).

이 프로토콜은 Coinbase에서 고용한 전문가와 기타 암호화 전문가를 포함한 여러 감사자가 내부적으로 평가했습니다. Doerner와 Roy DR26는 최근 DKLS 승수의 보안 분석에서 잘못된 계산을 발견했습니다. 이로 인해 주장된 120비트의 보안을 달성하려면 OT를 22회 추가로 호출해야 합니다. 이 변경사항은 이미 적용되었습니다. 마찬가지로 다른 외부 감사자도 지점 간 채널 모델에서 브로드캐스트의 영향과 관련하여 프로토콜 작성에 누락된 세부정보를 지적했습니다 (특히 공통 지식을 얻기 위해 일부 구성 매개변수를 에코하는 것이 중요함).

이후 Google에서 이 프로토콜에 대한 작업을 진행하면서 구현을 크게 강화하고, 프로토콜을 대규모로 운영하는 데 필요한 리소스를 줄이고, 스키마의 기능을 확장했습니다. 예를 들어 학술 문헌에서는 랜덤 오라클의 선택과 구현을 과소 지정합니다. 유용한 학술적 추상화이지만, 랜덤 오라클의 구현은 보안 감사에서 문서화된 여러 결함을 초래한 미묘한 작업입니다.

이 연구에서 주목할 만한 점은 모든 세션과 하위 세션이 서로 다른 무작위 오라클을 사용하도록 보장하는 유형 시스템을 개발했다는 것입니다. 이 시스템은 두 가지 생성 및 분기 작업과 오라클에 대한 포인터의 복사, 이동, 별칭 지정을 방지하는 엄격한 유형 시스템 사용을 기반으로 합니다.

또 다른 중요한 개선사항은 세션 및 하위 세션 식별자 선택과 관련이 있습니다. UC 모델과 이 모델에서 안전하다고 입증된 모든 프로토콜은 환경에서 새로운 세션 식별자를 제공해야 합니다. 실제로 시스템은 공격자가 이 가정을 위반할 수 없도록 해야 하며, 이를 위해 일반적으로 참여자가 무제한 상태를 유지해야 합니다. Google은 일정한 크기의 상태만 요구하는 방식으로 이 식별자를 선택하기 위해 추가 라운드를 통해 원래 DKLS 프로토콜을 보강했습니다.

업데이트되고 강화된 프로토콜은 여전히 수십 밀리초 내에 서명 작업을 완료합니다.

기능 측면에서 DKLS23 논문은 표준 k-out-of-n 임곗값 액세스 구조만 고려합니다. 실제로 고객은 조직 규칙을 모방하는 액세스 구조를 요구할 수 있습니다. 암호화 문헌에는 비밀 공유를 위한 액세스 구조를 설계하는 다양한 접근 방식이 포함되어 있습니다. 여기에서는 DKLS 프로토콜을 확장하여 n개 중 k개 임곗값 게이트로 구성할 수 있는 더 일반적인 액세스 구조를 지원합니다. 이를 통해 '다음 그룹 중 3개 중 2개: (a) 고객, (b) 위험 관리 담당자 10명 중 2명, (c) 재무, 법무, 회계 부서장 3명 중 2명' 등의 정책을 사용할 수 있습니다.

v1beta API에서는 이 액세스 구조를 KeyRing의 키 정책으로 keyPolicy 필드에 정의합니다. KeyRing에서 생성된 모든 키가 이 키를 사용합니다. 키 정책에는 루트 기준점 규칙과 그 바로 아래에 있는 기준점 규칙이라는 최대 두 가지 수준이 있을 수 있습니다. 루트 아래의 기준점 규칙에는 다른 기준점 규칙이 포함될 수 없습니다.