다자간 계산은 디지털 애셋 서명 키를 위한 Google Cloud 보관 플랫폼입니다. 임곗값 서명, 트랜잭션 정책 시행, 엔터프라이즈 거버넌스 제어를 결합합니다.
임곗값 서명을 사용하는 이유
기관 디지털 애셋 보관에서 비공개 서명 키는 애셋 이동을 직접 제어합니다. 서명 키를 보호하려면 다음과 같은 세 가지 보안 및 운영 위험을 완화해야 합니다.
- 암호화 건전성: 키 도난 또는 무단 사용으로 인해 공격자가 허위 트랜잭션에 서명하여 되돌릴 수 없는 자산 손실이 발생할 수 있습니다.
- 가용성: 일시적인 중단 또는 액세스할 수 없는 서명 인프라로 인해 거래 결제 및 유동성 운영이 중단됩니다.
- 내구성: 키 자료가 영구적으로 손실되거나 손상되면 연결된 디지털 애셋을 복구할 수 없습니다.
중앙 집중식 키 관리는 보안과 운영 복원력 간의 절충을 강제합니다. 단일 하드웨어 보안 모듈(HSM)에 전체 비공개 키를 저장하면 가용성, 내구성, 암호화 무결성에 단일 장애점이 발생합니다. 여러 HSM 또는 리전에 걸쳐 해당 키를 복제하면 가용성과 내구성이 향상되지만 공격 표면이 확장됩니다. 모든 복제본에 전체 키가 포함되므로 각 사본은 또 다른 단일 손상 지점이 됩니다.
다자간 계산은 DKLS23 프로토콜의 강화된 확장 프로그램을 포함한 임곗값 서명 스키마를 사용하여 이 상충 관계를 해결합니다. 독립적인 하드웨어 기반의 당사자가 각각 격리된 키 공유를 생성하고 보유합니다. 서명 중에 이러한 당사자는 단일 위치에서 전체 비공개 키를 조합하지 않고 유효한 서명을 생성하는 다자간 프로토콜을 실행합니다. 서명 기준점보다 적은 수의 당사자를 침해하는 공격자는 서명을 위조하거나 키를 재구성할 수 없습니다. 동시에 임곗값을 충족할 만큼 충분한 당사자가 남아 있는 한 개별 당사자를 사용할 수 없거나 영구적으로 실패하더라도 서명 작업은 계속됩니다. 프로토콜에 대한 자세한 내용은 DKLS23 암호화 배경을 참조하세요.
지원되는 블록체인
다자간 계산은 다음 키 알고리즘을 지원합니다.
| 알고리즘 | 곡선 | 일반 체인 |
|---|---|---|
ECDSA (EC_SIGN_SECP256K1) |
secp256k1 | 비트코인, 이더리움, EVM 호환 체인 |
EdDSA (EC_SIGN_ED25519) |
Ed25519 | Solana (출시 예정) |
분산 키가 생성되면 다자간 계산은 공개 키와 이 키에서 파생된 블록체인 주소를 반환합니다.
엔터프라이즈 제어
다자간 계산은 전용 격리 인스턴스 내에서 조직을 모델링합니다. 누가 키 공유를 보유하는지, 서명을 승인해야 하는 키 공유의 수, 서명 전에 모든 트랜잭션을 평가하는 규칙을 결정합니다.
사용자 및 역할
사용자는 인스턴스에 온보딩하는 ID입니다. 각 사용자는 Google 계정 또는 직원 ID 제휴 주 구성원 중 하나의 주 구성원에 바인딩됩니다. 각 사용자에게는 하나 이상의 역할이 있습니다.
- 관리자: 사용자, 팀, 기타 인스턴스 리소스를 관리합니다.
- 정책 작성자: 거래 정책을 작성하고 승인합니다.
- 서명자: 키 공유를 보유하고 거래를 승인합니다.
서명자, 정책 작성자, 관리자는 승인 키로 승인에 서명하며, 이 키의 비공개 부분은 고객의 관리에서 벗어나지 않습니다.
API 수준에서 다자간 계산 역할은 IAM 역할과 함께 작동합니다. IAM은 주 구성원이 호출할 수 있는 API 메서드를 제어합니다. 사용자 역할은 해당 주 구성원이 인스턴스 내에서 수행할 수 있는 작업을 제어합니다. IAM 역할과 사용자 역할이 함께 작동하는 방식은 보안 및 승인을 참조하세요.
팀
팀은 부서 또는 임원진과 같은 서명자 그룹입니다. 모든 서명자는 정확히 하나의 팀에 속합니다. 팀을 사용하면 KeyPolicy가 서명자 그룹을 참조할 수 있습니다. 예를 들어 각 사람의 이름을 지정하는 대신 '재무팀 구성원 3명에 대한 키 공유를 생성하고 그중 2명이 서명하도록 요구'할 수 있습니다.
MPC 정책
키링 및 키 정책
KeyRing은 키를 그룹화합니다. KeyRing을 만들 때 KeyPolicy를 설정합니다. 이 정책은 KeyRing에서 생성된 모든 키에 대해 다음을 정의합니다.
- 어떤 팀과 사용자가 키 공유를 보유하고 있는지,
- 서명에 참여해야 하는 인원수 (기준점)
- 각 키 공유가 저장되는 위치 (Google Cloud, 고객 구내 또는 사용자 휴대기기)
키는 KeyRing 간에 이동하거나 삭제할 수 없습니다. 키를 사용 중지하여 추가 서명을 방지할 수만 있습니다.
KeyLists
KeyList는 신뢰할 수 있는 대상과 같이 트랜잭션 정책에서 참조할 수 있는 블록체인 주소의 명명된 목록입니다. 항목은 기존 키, 키링 (나중에 추가된 키 포함) 또는 직접 입력하는 주소입니다.
트랜잭션 정책
트랜잭션 정책은 다자간 계산에서 트랜잭션을 허용하거나 금지하는 Cedar 규칙입니다(예: 지출 한도 또는 대상 허용 목록). 활성 정책은 함께 각 트랜잭션에 대해 허용 또는 거부 결정을 내립니다. 이 결과는 서명자에게 안내를 제공하지만 최종 결정을 강제하지는 않습니다. 자동 거래 정책에서 거부한 거래도 충분한 서명자가 승인하면 실행될 수 있습니다.
규칙을 작성하고 결합하는 방법을 알아보려면 트랜잭션 정책 규칙 작성 및 트랜잭션 정책 평가를 참조하세요.