저자: Bitmax Research
출처: https://www.bitmex.com/blog/Mitigating-The-Impact-Of-The-Quantum-Freeze
요약 : 본 논문에서는 양자 컴퓨팅의 과제를 해결하기 위해 제안된 몇 가지 코인 동결 방식을 검토합니다. 이러한 방식들은 거의 동결 코인을 양자 컴퓨팅 환경에서 안전하게 복구할 수 있도록 함으로써 동결 의 영향을 완화합니다. 이는 (1) 준비 트랜잭션(해시 커밋먼트 포함)과 (2) 복구 트랜잭션, 이렇게 두 개의 트랜잭션을 사용하여 구현할 수 있습니다. 또 다른 접근 방식은 단 하나의 트랜잭션만 필요로 하며, 사용자가 지갑의 시드 단어를 알고 있음을 증명하는 "영지식 증명(ZKP)"을 트랜잭션에 추가해야 합니다. 이러한 시스템들은 이론적으로 거의 모든 거의 동결 지갑을 복구할 수 있는 동결 방식을 구축하는 것이 가능함을 시사합니다. 그러나 복구 프로세스와 복구를 가능하게 하는 소프트 포크 프로토콜 업그레이드는 매우 복잡할 수 있으며, 노드 운영자의 부담 증가와 같은 다른 단점을 가질 수도 있습니다. 그럼에도 불구하고, 실제로 코인을 동결 해야 하는 경우 이러한 복구 옵션들은 고려해 볼 가치가 있습니다.

개요
이번 글은 양자 컴퓨터에 대한 비트코인의 회복력에 관한 시리즈의 세 번째 글입니다. 첫 번째 글에서는 램포트 서명 ( 중국어 번역 )을, 두 번째 글에서는 양자 보안 결제 방식인 탭리프 (Tapleaf)의 이점을 살펴보았습니다. 이번 글에서는 양자 컴퓨터에 대응하여 동결 취약 코인을 동결 영향을 완화하는 방법, 특히 다양한 양자 보안 복구 방식을 통해 잠재적인 코인 손실을 줄이는 방법에 대해 알아보겠습니다.
(역자 주: 양자 컴퓨터의 영향에 대한 논의에서, 양자 컴퓨터가 분실된 동전을 훔치거나 되찾아 유통에 미치는 영향을 완화하기 위해 이러한 동전을 동결 방안이 종종 제안됩니다. 여기서 "동결"은 양자 컴퓨터로 해독될 수 있는 지불 방식, 즉 단순 타원 곡선 서명을 비활성화하는 것을 의미하며, "복원"은 이러한 동전에 대한 통제권을 되찾는 것, 즉 소유자만이 통제할 수 있는 안전한 지불 방식을 갖춘 곳으로 동전을 옮기는 것을 의미합니다.)
헌신 - 복원 방법
커밋먼트 트랜잭션과 OP_Return 출력을 사용하면 자금을 동결 후 양자 컴퓨팅 환경에서도 안전하게 복구할 수 있습니다. 이는 표준 P2PKH 출력에도 적용할 수 있습니다(단, 사전에 주소 재사용이 방지된 경우에 한함). 이 설계는 두 개의 트랜잭션을 전송해야 하며, 두 번째 트랜잭션에서 개인 키가 온체인 평문으로 노출됩니다.
주소를 재사용하지 않는 P2PKH 펀드는 이미 양자 장거리 공격에 대한 면역력을 갖추고 있습니다. 유일한 리스크 은 양자 공격자가 지출 거래가 블록에 확정되기 전에 개인 키를 역분석할 수 있다는 것입니다. 아래 다이어그램은 이러한 공격을 방지하기 위해 커밋먼트 거래와 100블록의 윈도우를 사용합니다.
복원 방법의 구조는 그림에도 나와 있습니다.

이 과정을 단계별로 설명해 드리겠습니다.
- 초기 "준비 트랜잭션"에 OP_Return 출력을 배치합니다.
- 100개 블록 확인을 기다리는 중입니다.
- 두 번째 거래, 즉 "복원 거래"를 생성하려면 양자 취약 코인이 소모됩니다. 또한, 양자 동결 이전의 기존 규칙에 따라 거래가 유효하려면 올바른 양자 취약 서명이 필요합니다.
- 두 번째 거래의 OP_Return 출력에는 다음 필드들이 처음부터 끝까지 순서대로 연결되어 있습니다.
- 개인 키
- 전송 목적지 주소
- 거래 준비를 위한 TXID
- 트랜잭션 준비를 위한 OP_Return 출력은 복원된 트랜잭션의 OP_Return 출력에 있는 두 필드
SHA256(私钥+ 转账目标地址)의 해시 값이어야 합니다. 트랜잭션 준비에 사용된 TXID는 이 커밋 해시 값에 포함될 수 없으며, 이는 당연한 사실이지만 불필요한 요소입니다.
이 복구 방식은 매우 복잡한 프로토콜 업그레이드를 필요로 합니다. 이 업그레이드는 후속 복구 트랜잭션이 OP_Return 출력의 모든 세부 정보가 최소 100개의 블록 확인을 받은 트랜잭션의 해시 커밋과 완전히 일치하고, 유효한 서명을 포함하는 경우에만 유효하다고 명시합니다. 복구 프로세스가 올바르게 완료되지 않으면 자금은 동결 유지됩니다. 복구 트랜잭션은 여전히 유효한 양자 취약성 서명을 포함하고 있으므로 양자 동결 이전의 규칙에 따라 유효합니다. 따라서 이 업그레이드는 하드 포크 아닌 소프트 포크 일 수 있습니다. 이 방법을 사용하면 자금 사용자는 서명이 블록체인에 전송되기 전에 개인 키를 알고 있었음을 증명하여 양자 보안을 보장할 수 있습니다.
이 접근 방식은 완벽하지 않으며 한 번만 사용할 수 있습니다. 개인 키를 평문으로 온체인 공개하면 누구나 알 수 있으며, 100블록이 지난 후에는 누구나 남은 자금을 가져갈 수 있습니다. 더욱이 복구 거래가 전송 후 100블록 이내에 확인되지 않으면 거의 모든 사람이 자금을 훔칠 수 있습니다. 즉, 채굴자가 100블록 동안 거래를 검열할 수 있다면 자금을 훔칠 수 있다는 뜻입니다. 저희는 이 접근 방식을 권장하는 것이 아니라, 비교적 간단한 기본 요소(기본적으로 해시 함수만 사용)를 사용하여 양자 컴퓨팅에 강한 복구 체계를 구축하는 방법을 보여주는 예시로 제시하는 것입니다. 반면에 프로토콜을 업그레이드하고, 이 과정을 처리할 수 있는 지갑을 개발하고, 사용자에게 이 복구 방법을 알리는 것은 매우 어려울 수 있습니다.
또 다른 문제는 주소 재사용입니다. P2PKH 출력의 공개 키는 해당 주소가 처음 사용되기 전까지 온체인 이미 노출될 수 있습니다. 이 복구 방식이 허용된다면, 주소 재사용이 존재하는 한 양자 컴퓨팅 공격자가 사용자의 코인을 탈취할 수 있어 동결 무용지물이 됩니다. 이를 해결하는 한 가지 방법은 재사용되지 않은 주소에만 이 복구 방식을 적용하는 것입니다. 그러나 이 경우 노드는 복구 거래의 유효성을 확인하기 위해 전체 비트코인 기록을 검토해야 하므로 상당한 부담이 될 수 있습니다. 특히, 노드가 제거된 경우에는 복구 거래의 유효성을 확인할 수 없게 됩니다.
시드 단어 약속 방법
많은 사람들이 지갑을 생성하고 비트코인을 저장하기 위해 12단어 또는 24단어로 된 시드 용어를 사용한다는 점에 주목할 필요가 있습니다. 예를 들어, BIP-39 시드 용어 표준을 사용할 수 있습니다. 이 순서대로 나열된 용어에서 지갑 시드를 도출하려면 암호 기반 키 유도 함수가 필요합니다. 이 함수는 SHA512 해시 함수를 사용하는데, 따라서 양자 컴퓨팅 환경에서도 안전합니다(적어도 현재까지 알려진 바로는). 따라서 양자 컴퓨터가 이론적으로 온체인 공개 키를 확인하고 양자 역학적 기법을 사용하여 개인 키를 역추적할 수는 있지만, 순서대로 나열된 12단어 용어를 무한정 추론할 수는 없습니다.
따라서, 12단어 구문에서 마스터 개인 키를 도출하는 과정이 양자 컴퓨팅 공격에 안전하다면, 시드 구문을 공개하여 마스터 개인 키를 사용하는 과정 또한 양자 컴퓨팅 공격에 안전할 것이라는 아이디어가 있습니다. 이 과정은 "준비 트랜잭션"과 "복원 트랜잭션"의 두 단계로 이루어집니다. 이 방법은 공개 키가 이미 온체인 노출된 상황(예: 주소 재사용 및 Taproot 출력)에서도 사용할 수 있습니다.
이 복원 방법의 구조는 아래 그림과 같습니다.

절차는 다음과 같습니다.
- 초기 "준비 트랜잭션"에 OP_Return 출력을 배치합니다.
- 100개 블록 확인을 기다리는 중입니다.
- 두 번째 거래, 즉 "복원 거래"를 생성하려면 양자 취약 코인이 소모됩니다. 또한, 양자 동결 이전의 기존 규칙에 따라 거래가 유효하려면 올바른 양자 취약 서명이 필요합니다.
- 두 번째 거래의 OP_Return 출력에는 다음 필드들이 처음부터 끝까지 순서대로 연결되어 있습니다.
- 12개 단어로 구성된 시드 단어 순서 지정
- 지갑 파생 경로
- 전송 목적지 주소
- 거래 준비를 위한 TXID
- 트랜잭션 준비를 위한 OP_Return 출력은 복원된 트랜잭션의 OP_Return 출력에 있는 세 필드
SHA256(种子词+ 派生路径+ 转账目标地址)이어야 합니다. 앞서 언급했듯이 준비된 트랜잭션의 TXID는 포함될 수 없습니다.
이 접근 방식은 앞서 언급한 "약정-복원 접근 방식"과 많은 단점을 공유하지만, 앞서 언급한 옵션 외에 이 접근 방식을 허용하면 더 많은 코인을 복원할 가능성이 있다는 점이 다릅니다.
QDay 사전 약정 방식
이 커밋먼트 기반 복구 시스템은 양자 컴퓨터에 가장 취약한 P2PK 출력물까지 복구하는 데 사용할 수 있습니다. P2PK 출력물은 스크립트가 자금을 받는 순간(출력물이 생성되는 순간) 노출되는데, 이는 시드 용어 표준이 존재하기도 전입니다. 다음 다이어그램은 이 방법을 보여줍니다.

이 접근 방식의 특이점은 양자 컴퓨터가 완성되는 날(QDay) 이전에 거래 준비 내역을 블록체인 온체인 게시해야 한다는 점입니다. 따라서 당시 자금의 정당한 소유자만이 자신의 개인 키를 알고 있다고 가정할 수 있습니다. 이 복구 방식은 앞서 언급한 복구 시스템과는 달리 자금 소유자가 QDay 이전에 조치를 취해야 한다는 점에서 다소 우스꽝스럽게 들릴 수 있습니다. 그러나 소유자가 QDay 이전에 조치를 취할 수 있다면 자금을 양자 보안이 적용된 출력 위치로 이전할 수 있습니다. 결국, 자금을 양자 보안이 적용된 출력 위치로 이전하는 것은 거래 준비 내역을 작성하는 것보다 훨씬 쉬울 것입니다.
하지만 이러한 복구 방식은 사토시 나카모토(혹은 2009년 채굴 보상의 대부분을 받은 사람)에게 특히 유용할 수 있습니다. 사토시 나카모토 양자역학 데이(QDay) 이전에 사전 준비 거래를 생성할 수 있습니다. 사람들은 사토시 나카모토 무엇을 하는지 알 수 없습니다. 왜냐하면 우리는 사토시 나카모토 의 코인과는 전혀 관련 없어 보이는 일반적인 거래만 보게 될 것이고, 출력은 OP_Return(256비트 데이터)뿐이기 때문입니다. 이렇게 하면 사토시 나카모토 이 오래된 코인들이 사용되었는지 여부에 대해 그럴듯한 변명을 유지할 수 있지만, QDay 이후에는 원한다면 양자역학에 안전한 방식으로 코인을 회수할 수 있습니다. 물론, 이는 사토시 나카모토 실제로 이러한 방식에 관심이 있다는 가정 하에 가능한 이야기입니다.
우리는 커밋먼트 거래소 에 포함된 256비트 커밋먼트가 수천 개의 양자 컴퓨팅에 취약한 출력에 대한 복원 조건을 가진 거대한 머클 트리의 머클 루트 해시인 시나리오까지 구현할 수 있습니다. 따라서 OP_Return 출력의 단일 256비트 해시 커밋먼트를 사용하여 나중에 수천 개의 출력(잠재적으로 수백 또는 수천 BTC 상당)을 복원할 수 있습니다. 이 경우, 리프 노드에서 머클 루트까지의 경로를 제공해야 하므로 복원 트랜잭션의 OP_Return 출력은 매우 커집니다. (다행히 이제는 큰 OP_Return 출력을 네트워크를 통해 전달할 수 있습니다.) 이러한 머클 루트 접근 방식은 QDay 이전에 커밋먼트 트랜잭션을 서둘러 생성하여 발생하는 블록체인 혼잡을 완화하는 데에도 도움이 될 수 있습니다.
영지식 증거 시드 단어 방법
위의 모든 방식에는 치명적인 결함이 있습니다. 각 주소는 복구 작업을 한 번만 시작할 수 있다는 것입니다. 하지만 "영지식 증명(ZKP)"이라는 것이 있습니다. 영지식 증명을 사용하면 프로세스에 대한 일부 정보를 기밀로 유지하면서 무언가를 증명할 수 있습니다. 예를 들어, 영지식 증명을 사용하여 시드 단어(주소를 생성하고 해당 디지털 서명을 생성할 수 있는 단어)를 소유하고 있음을 증명할 수 있지만, 이 시드 단어는 비밀로 유지됩니다. 많은 영지식 증명 방식은 양자 컴퓨팅에 취약하지만, STARK 와 같은 일부 방식은 양자 컴퓨팅에 안전합니다.
ZKP 방법은 다음 그림에 나와 있습니다.

이 접근 방식의 핵심 장점은 영지식 증명(ZKP)을 사용할 때 시드 항 자체가 노출되지 않는다는 것입니다. 따라서 동일한 주소를 ZKP 지출(복구)에 여러 번 사용할 수 있습니다. 이로써 두 번의 트랜잭션(준비 트랜잭션 + 복구 트랜잭션)이 필요 없어지고 단 한 번의 트랜잭션으로 충분합니다. 하지만 이 ZKP 방식은 시드 항에만 유용하며, 양자 컴퓨팅에 취약한 서명이 온체인 공개되어야 트랜잭션이 유효하게 유지되는 "커밋먼트-복구 방식"에는 사용할 수 없습니다. 따라서 양자 컴퓨터는 필연적으로 개인 키를 추론할 수 있습니다.
이 접근 방식에는 또 다른 장점이 있습니다. 비트코인 보유자는 QDay 이전에 자금을 이동할 필요가 없습니다. 이 새로운 지출 방식은 OP_Return 출력에 영지식 증명(ZKP)을 포함하여 사용자가 시드 단어를 소유하고 있음을 증명하는 방식이며, QDay 이후에도 새로운 지출 방식으로 사용할 수 있습니다. 사용자는 지갑 동결 까지 평소처럼 지갑을 사용할 수 있으며, 동결 후에는 지갑 소프트웨어를 업그레이드하고 ZKP 출력을 추가하여 코인을 계속 사용할 수 있습니다. QDay 이후에는 필요에 따라 ZKP보다 효율적인 지출 방식(예: SPHINCS+ 해시 함수 서명을 사용하는 출력)으로 자금을 점진적으로 이전할 수 있습니다. 핵심은 QDay 이전에는 자금 이전을 걱정할 필요가 없다는 것입니다.
이 ZKP 방식의 또 다른 잠재적 이점은 개인 정보 보호가 향상된다는 것입니다. 시드 용어를 공개하면 지갑의 과거 거래 내역이 모두 드러나게 됩니다. 하지만 ZKP를 사용하면 사용된 출력값이 복구 자금과 연결되지 않을 수 있습니다.
이 방법의 주요 단점은 모든 사람이 시드 단어를 사용하여 자신만의 지갑을 생성하는 것은 아니라는 점입니다. 하지만 시드 단어를 이용한 지갑 생성 방식은 10년 넘게 매우 인기를 누려왔습니다.
결론적으로
이러한 복구 방식은 이론적으로 우리가 진정으로 원한다면 양자 동결 방식을 구축하여 동결 상태에 가까운 거의 모든 코인을 복구할 수 있음을 보여줍니다. 여러 복구 옵션을 지원하면 코인 복구 확률이 높아집니다. 예를 들어, ZKP 시드 복구 방식은 시드 용어가 있는 지갑에서 작동하며, 지갑에 시드 용어가 없는 경우 커밋먼트 복구 방식을 사용할 수 있습니다. 이는 대부분의 코인을 포괄할 가능성이 높습니다. 시드 용어를 사용하지 않았고 공개 키가 노출된 코인만 완전히 복구할 수 없습니다. 아래 표는 현재 다양한 스크립트 유형에서 보유하고 있는 코인 종류와 적용 가능한 복구 방식을 나열합니다.
| 출력 유형 | 화폐 단위 | 공급 점유비율 | 가능한 동결 방안 |
|---|---|---|---|
| P2WPKH | 8,011,484 | 40.1% | 약정 복구 솔루션, 시드 키워드 약정 솔루션 및 ZKP 시드 키워드 솔루션 |
| P2PKH | 4,709,800 | 23.6% | 약정 복구 솔루션, 시드 키워드 약정 솔루션 및 ZKP 시드 키워드 솔루션 |
| 피2쉬 | 4,045,377 | 20.3% | 약정 복구 솔루션, 시드 키워드 약정 솔루션 및 ZKP 시드 키워드 솔루션 |
| P2WSH | 1,296,835 | 6.5% | 약정 복구 솔루션, 시드 키워드 약정 솔루션 및 ZKP 시드 키워드 솔루션 |
| P2PK | 1,716,419 | 8.6% | QDay 사전 해시 커밋먼트 |
| 직근 | 196,292 | 1.0% | 시드 키워드 약정 제도 및 ZKP 시드 키워드 제도 |
| 새로운 양자 안전 출력 | 0 | 0.0% | 복원 불필요 |
| 총 | 19,976,207 | 100.0% |
데이터 출처: https://dune.com/murchandamus/bitcoins-utxo-set
이러한 잠재적인 양자 동결 복구 시스템은 각각 단점을 가지고 있습니다. 예를 들어, 복잡할 수 있고, 대규모 소프트 포크 프로토콜 업그레이드가 필요하며, 노드 운영자에게 문제를 일으킬 가능성이 있습니다(새로운 DoS 취약점 발생 가능성). 하지만 실제로 동결 한다면, 이러한 복구 옵션들이 진지하게 고려되고 있다는 점은 긍정적입니다. 최소한 흥미로운 사고 실험이라고 할 수 있습니다.
(위에)



