Google Cloud의 기관 비트코인 보관

단일 손상 지점을 만들지 않고 기관의 비트코인 준비금을 보호하려면 Google Cloud 다자간 계산을 사용하여 하드웨어 격리 Enclave에 서명 키를 배포하면 됩니다. 이 문서에서는 Cloud Key Management Service(Cloud KMS) 및 Cloud HSM을 다자간 계산과 비교하고, 비트코인 보관을 위한 두 보안 모델을 평가하고, 참조 토폴로지를 제시합니다.

비트코인 보관을 클라우드로 이전할 때는 두 가지 키 관리 아키텍처 중에서 선택합니다.

  • 단일 키 하드웨어 보안 모듈 (HSM): Cloud KMS 및 Cloud HSM은 물리적 HSM 경계 내에서 정적 암호화 키를 관리합니다.
  • 분산 임곗값 서명: 다자간 계산은 HSM 신뢰할 수 있는 루트 키로 지원되는 하드웨어 격리 신뢰할 수 있는 실행 환경 (TEE)에 키 공유를 분산합니다.

Cloud KMS 및 Cloud HSM은 엔터프라이즈 봉투 암호화 및 웹 공개 키 인프라를 지원합니다. 하지만 비트코인 개선 제안 32 (BIP32), BIP340 Schnorr 서명, 세분화된 다자간 거버넌스에 따른 계층적 결정론적 (HD) 키 파생과 같은 비트코인 보관 프리미티브를 위해 설계되지 않았습니다.

클라우드 기반 비트코인 보관의 주요 과제

다음 표에는 비트코인 보관을 위한 표준 클라우드 키 관리 서비스를 평가할 때 발생하는 세 가지 주요 과제와 다자간 계산이 각 요구사항을 해결하는 방법이 요약되어 있습니다.

요구사항 Cloud KMS 및 Cloud HSM의 제한사항 다자간 계산이 이 요구사항을 해결하는 방법
BIP32 키 파생

멀티 테넌트 Cloud HSM 파티션은 엔터프라이즈 엔벨롭 암호화와 같은 정적 플랫 키 관리를 위해 설계되었습니다. 공유 클라우드 환경에서 하이퍼바이저 수준 보안을 유지하기 위해 클라우드 제공업체는 커스텀 HSM 펌웨어 모듈을 허용하지 않으므로 Cloud HSM은 BIP32 파생 경로를 기본적으로 컴퓨팅할 수 없습니다.

이 제약조건으로 인해 Cloud KMS에는 플랫 키 아키텍처가 필요합니다. 애플리케이션은 개별 키 리소스를 추적하거나 암호화되지 않은 호스트 메모리에서 하위 키를 파생해야 합니다.

다자간 계산은 DKLS23 단조 스팬 프로그램의 선형 동형을 사용하여 비강화 BIP32 파생 경로를 로컬에서 계산합니다. 각 노드는 공개 스칼라 오프셋 조정 (IL)을 독립적으로 계산하고 네트워크 통신 라운드 없이 로컬 키 공유에 해당 오프셋을 적용합니다.

단일 키 지갑에서 상위 확장 공개 키(xpub)와 강화되지 않은 하위 비공개 키 하나가 모두 손상되면 공격자가 상위 비공개 키를 계산할 수 있습니다. 다자간 계산은 하위 비공개 키(kchild)가 일반 텍스트로 조합되지 않으므로 이러한 노출을 제거합니다. 하드웨어 암호화 TEE 메모리 내에 분산된 임시 로컬 공유(s1', s2')로만 존재합니다.

단일 침해 지점

전체 비공개 키는 단일 물리적 HSM 경계 내에 있습니다. 승인 사용자 인증 정보가 손상되거나 내부자 위협이 발생하면 전체 월렛이 노출됩니다.

전체 비공개 키는 어느 한 위치에도 일반 텍스트로 존재하지 않습니다. 키 공유는 독립적인 컴퓨팅 노드에 수학적으로 분산됩니다.

알고리즘 민첩성 (Schnorr 및 Taproot)

물리적 HSM 하드웨어 주기가 느립니다. secp256k1 곡선에서 BIP340 Schnorr와 같은 타원 곡선 또는 서명 스키마에 대한 지원을 추가하려면 다년간의 하드웨어 재인증이 필요합니다.

암호화 작업은 하드웨어 격리 컨피덴셜 VM 엔클레이브 내에서 실행되므로 다자간 컴퓨팅에서 물리적 HSM 경계를 수정하지 않고도 프로토콜 업데이트를 채택할 수 있습니다.

Cloud KMS와 다자간 계산 비교

Google Cloud에서 디지털 애셋 서명 인프라를 설계할 때 분산 임곗값 모델과 비교하여 단일 키 HSM 모델을 평가할 수 있습니다.

단일 키 Cloud KMS 및 Cloud HSM 모델

Cloud KMS 배포에서 Cloud HSM은 FIPS 140-2 Level 3 인증을 받은 물리적 HSM 내에서 직접 EC_SIGN_SECP256K1_SHA256 알고리즘을 사용하는 비대칭 서명 키를 생성합니다. 다음 그림은 하위 키를 파생할 때 애플리케이션 계층이 Cloud HSM과 상호작용하는 방식을 보여줍니다.

Cloud HSM FIPS 140-2 Level 3 경계와 상호작용하는 두 개의 표준 VM 애플리케이션 계층. 여기서 강화된 하위 파생은 호스트 메모리의 상위 키를 노출합니다.

이 아키텍처는 관리형 FIPS 140-2 레벨 3 검증을 제공하고 비트코인 네트워크에서 허용하는 낮은 S 정규화 secp256k1 타원 곡선 디지털 서명 알고리즘 (ECDSA) 서명을 생성합니다. 하지만 비트코인 보관에 두 가지 아키텍처 제한사항이 있습니다.

  • 키 관리 단편화: Cloud HSM은 BIP32 파생 경로를 계산할 수 없으므로 애플리케이션이 Cloud KMS에서 수백만 개의 개별 CryptoKey 리소스 ID를 추적하여 단일 루트 복구 워크플로를 삭제해야 합니다.
  • 메모리 노출 위험: 강화된 파생을 실행하려면 애플리케이션이 루트 시드를 호스트 메모리로 내보내야 하므로 하드웨어 보안 경계가 손상됩니다.

분산 다자간 계산 기준점 모델

다자간 계산은 DKLS23 임곗값 ECDSA 프로토콜의 강화된 확장 프로그램을 구현합니다. AMD SEV-SNP 하드웨어 암호화 엔클레이브의 Confidential Space 내에서 실행되는 독립 노드는 단일 전체 키를 생성하는 대신 수학적 키 공유를 생성하고 보유합니다. 프로토콜에 대한 자세한 내용은 DKLS23 암호화 배경을 참조하세요.

다음 그림은 다자간 계산이 독립적인 HSM 키 암호화 키로 지원되는 TEE 노드에 서명을 배포하는 방법을 보여줍니다.

DKLS23 프로토콜을 실행하고 Cloud HSM 및 Cloud EKM을 통해 키 공유를 래핑 해제하는 두 개의 TEE 노드로 라우팅된 비트코인 트랜잭션 요청

이 분산 임곗값 모델은 세 가지 주요 보안 이점을 제공합니다.

  • 완전한 비공개 키 없음: 단일 실제 기기, 엔클레이브 또는 운영자가 완전한 비공개 키를 보유하지 않습니다.
  • 하드웨어 기반 신뢰할 수 있는 루트: 키 공유는 FIPS 140-2 Level 3 Cloud HSM 파티션 또는 Cloud External Key Manager를 통해 연결된 외부 온프레미스 HSM으로 보호되는 키 암호화 키 (KEK)를 사용하여 저장 시 암호화됩니다.
  • 증명 적용 복호화: Cloud KMS는 하드웨어 증명 견적에서 노드가 확인되고 변조되지 않은 다자간 컴퓨팅 컨테이너 이미지를 실행하는 것으로 확인된 경우에만 키 공유를 엔클레이브 메모리로 래핑 해제합니다.

BIP32 및 Taproot의 암호화 메커니즘

비트코인 보관을 위한 임곗값 서명을 평가할 때 프로토콜이 노드 간 네트워크 라운드를 추가하지 않고 계층적 주소 파생 및 Taproot 조정을 지원하는지 확인합니다.

비강화 BIP32 가산 유도

BIP32는 비강화 하위 비공개 키 파생을 모듈식 스칼라 덧셈으로 정의합니다.

\[ k_{\text{child} } = (k_{\text{par} } + \text{parse}_{256}(I_L)) \bmod n \]

다자간 계산은 단조 스팬 프로그램에 기반한 선형 비밀 공유 스킴을 사용하므로 참여자 노드는 네트워크 통신 라운드 없이 로컬에서 하위 키 공유를 파생합니다. 다음 그림은 이 0라운드 로컬 파생 흐름을 보여줍니다.

노드 1과 노드 2는 로컬에서 HMAC-SHA512 스칼라 조정을 독립적으로 계산하고, 공유 2는 변경하지 않은 상태로 공유 1을 업데이트하고, 온라인 DKLS23 서명 세션을 실행합니다.

BIP341 탭루트 키 조정

이 선형 속성은 기본 키 공유 배포를 수정하지 않고도 BIP341 Taproot 키 조정을 지원합니다.

\[ Q = P + t \cdot G \quad \text{where} \quad t = H_{\text{TapTweak} }(P \parallel \text{MerkleRoot}) \]

임곗값 서명 절차에 참여하기 전에 참여자 노드는 스칼라 조정 (t)을 로컬 키 공유에 직접 적용합니다. 이 기능을 사용하면 키를 다시 생성하거나 다시 공유하지 않고도 Taproot 스크립트 트리, Ordinals, Discreet Log Contracts와 상호작용할 수 있습니다.

아키텍처 비교

다음 표에서는 핵심 보관 차원에서 Cloud KMS 및 Cloud HSM을 다자간 계산과 비교합니다.

아키텍처 측정기준 Cloud KMS 및 Cloud HSM 다자간 계산
암호화 프리미티브 secp256k1 곡선의 단일 서명 ECDSA Ed25519 곡선의 임곗값 ECDSA (DKLS23) 및 임곗값 Edwards 곡선 디지털 서명 알고리즘 (EdDSA)은 secp256k1 곡선의 임곗값 Schnorr로 확장 가능
하드웨어 경계 실물 PCIe HSM 카드 Cloud HSM 신뢰할 수 있는 루트에 고정된 AMD SEV-SNP Confidential Space 엔클레이브
BIP32 HD 지갑 지원 개별 Cloud KMS 키의 수동 관리 0라운드 로컬 가산 키 공유 조정
실물 키 보호 FIPS 140-2 레벨 3 키 공유를 래핑하는 HSM 상주 KEK의 경우 FIPS 140-2 Level 3
서명 지연 시간 (p95) 20~50ms 분산된 리전에서 1,000ms (1초 미만) 미만
사용자 인증 정보 유출의 영향 범위 호출자 인증 정보 또는 Identity and Access Management(IAM) 정책이 손상된 경우 키가 완전히 노출됨 공격자가 독립적인 엔클레이브와 KEK의 기준점을 동시에 침해하지 않는 한 승인되지 않은 서명이 불가능함
감사 가능성 Cloud 감사 로그 Cloud 감사 로그 및 키 액세스 근거 하드웨어 증명 로그

BIP32에서 임곗값 키 관리로의 진화

사내 디지털 애셋 보관 플랫폼을 설계할 때는 개별 하드웨어 지갑을 위해 생성된 파생 표준과 기관 거버넌스를 위해 설계된 분산 키 관리를 구분해야 합니다. BIP32는 주소 추적에 널리 사용되지만 다자간 계산 (MPC) 아키텍처 내에서 보안을 위해 BIP32 파생 트리에 의존하는 것은 중복되며 운영 복잡성을 가중시킬 수 있습니다.

단일 시드 BIP32 지갑의 역사적 배경

BIP32는 임계값 암호화 및 하드웨어 엔클레이브가 널리 사용되기 전에 개별 자체 보관의 제약 조건을 중심으로 설계되었습니다.

  • 루트 시드 종속 항목: 초기 비트코인 보관은 사람이 읽을 수 있는 12개 또는 24개 단어로 구성된 단일 니모닉 문구를 물리적으로 보호하는 데 의존했습니다.
  • 단일 백업 복구: BIP32 HD 지갑을 사용하면 개인이 하나의 시드 문구를 백업하고 여러 계정에서 결정론적으로 주소를 파생할 수 있습니다.
  • 단일 장애점: 루트 니모닉 시드는 전체 단일 장애점을 나타냅니다. 공격자가 해당 문구나 물리적 백업을 침해하면 모든 계정의 모든 파생 하위 비공개 키가 노출됩니다.

다음 그림은 단일 루트 시드가 손상되면 파생된 모든 하위 계정이 노출되는 방식을 보여줍니다.

하위 키 1, 하위 키 2, 하위 키 N으로 분기되는 12단어 또는 24단어 루트 니모닉 시드. 시드가 손상되면 파생된 모든 하위 비공개 키가 노출됩니다.

임곗값 서명으로 루트 시드 삭제

제로 트러스트 기관 클라우드 아키텍처에서는 인간이 읽을 수 있는 루트 니모닉 시드가 필요하지 않습니다. 다자간 계산은 중앙 루트 비공개 키를 완전히 제거합니다. 어떤 단일 머신이나 백업 매체에도 완전한 비공개 키가 일반 텍스트로 존재하지 않으므로 단일 구문 주소 복구가 필요하지 않습니다. 다자간 계산은 하나의 보안 비밀에서 키 트리를 파생하는 대신 암호화 방식으로 격리된 엔클레이브에 독립적인 키 공유를 배포합니다.

다자간 계산에서 BIP32 파생 경로 비교

통합에 외부 주소 추적기 또는 회계 워크플로에 대한 BIP32 호환성이 필요한 경우 다음 표에서 두 가지 기술 구현 경로를 비교하세요.

구현 경로 암호화 메커니즘 보안 및 노출 프로필 지연 시간 및 서명 성능
다자간 계산을 사용하는 비강화 BIP32

로컬 가산 조정: s1' = (s1 + IL) mod n.

각 노드는 공개 스칼라 오프셋(IL)을 독립적으로 계산하고 해당 오프셋을 로컬 키 공유에 적용합니다.

  • 단일 키 위험: MPC가 아닌 지갑에서 상위 공개 키 (xpub)와 하위 비공개 키가 모두 손상되면 공격자가 상위 비공개 키를 역산할 수 있습니다.
  • MPC 완화: 하위 비공개 키(kchild)는 일반 텍스트로 조합되지 않으며 하드웨어 암호화 TEE 메모리 내에 임시 분산 키 공유(s1', s2')로만 존재하므로 하위에서 상위로의 키 복구가 방지됩니다.
  • 하위 키를 파생하기 위해 MPC 노드 간에 네트워크 통신 라운드가 필요하지 않습니다.
  • 서명하기 전에 로컬 CPU 속도로 실행됩니다.
  • 암호화된 gRPC 채널을 통해 1초 미만의 서명 지연 시간 (p95 1초 미만)을 지원합니다.
다자간 계산을 사용하는 강화된 BIP32

비밀 공유 상위 키 자료를 통해 계산된 대화형 다자간 HMAC-SHA512 해시입니다.

  • 상위 비공개 키를 해싱하여 하위 키에서 상위 키로의 에스컬레이션을 방지합니다. 이로 인해 프로토콜 복잡성이 크게 증가합니다.
  • 상위 키가 이미 비밀 공유되고 유출로부터 보호되는 다자간 엔클레이브 환경에서는 추가적인 보안 이점을 제공하지 않습니다.
  • 비밀 공유 입력에 대한 기준점 HMAC-SHA512 회로를 평가하려면 MPC 노드 간에 여러 번의 대화형 네트워크 라운드가 필요합니다.
  • 서명 지연 시간이 늘어나고 트랜잭션 처리 병목 현상이 발생합니다.

기관 수탁을 위한 권장사항

다자간 계산은 기존 시스템 및 외부 주소 추적기와의 호환성을 위해 강화되지 않은 BIP32 가산 파생을 지원합니다. 전용 기관 보관의 경우 다자간 계산에서 직접 관리되는 독립적인 임곗값 키로 전환하는 것이 좋습니다.

  • 단일 루트 종속 항목 제거: 단일 루트 키에서 수학적 오프셋으로 키를 파생하는 대신 격리된 엔클레이브 내에서 독립적인 키 공유를 생성, 순환, 백업합니다.
  • 알고리즘 민첩성 향상: 조정 레이어를 비트코인 관련 BIP32 파생 경로에서 분리하여 하나의 거버넌스 모델에서 스마트 계약 네트워크의 Ed25519 서명 스키마와 같은 비ECDSA 서명 스키마를 채택할 수 있습니다.
  • 서명 복잡성 감소: 개별 기준 키를 관리하여 데이터베이스 조회를 간소화하고, 트랜잭션 요청을 간결하게 유지하며, 서명 지연 시간을 최소화합니다.