Vitalik의 새로운 글: 만약 내일 양자 공격이 온다면, 이더리움은 어떻게 문제를 해결할까요?
원문 저자: Vitalik Buterin
번역자: Azuma, Odaily星球日报
3월 9일, 이더리움 공동 창립자 Vitalik Buterin은 이더리움 연구 포럼(ethresear.ch)에서 《갑작스러운 양자 공격으로부터 사용자 자금을 구하는 방법》이라는 제목의 짧은 글을 발표했습니다.
글에서 Vitalik은 만약 양자 공격이 내일 발생한다면, 이더리움이 긴급 상황에서 사용자 자금 손실을 최소화하기 위해 어떻게 해야 하는지, 그리고 어떤 절차를 통해 양자 저항 형태로 전환하여 정상 운영을 회복할 수 있는지를 개요했습니다.
다음은 Vitalik의 전체 내용으로, Odaily星球日报에서 번역하였습니다.
양자 컴퓨터가 내일 실현되고, 범죄자가 어떤 방법으로 그것에 접근할 수 있게 되어 사용자 자금을 훔치려 한다면, 우리는 어떻게 해야 할까요?
Winternitz 서명, STARKs와 같은 양자 저항(quantum-resistant) 기술의 개발은 이러한 상황을 방지하기 위해 이루어졌습니다. 계정 추상화가 준비되면, 모든 사용자는 양자 저항 서명 방식으로 무작위 전환할 수 있습니다. 하지만 우리가 그렇게 많은 시간이 없다면, 양자 공격이 모든 사람이 예상한 것보다 더 갑작스럽게 다가온다면 우리는 어떻게 해야 할까요?
저는 사실 현재 우리가 상대적으로 간단한 복구 분기(recovery fork)를 통해 이 문제를 해결할 충분한 조건을 갖추고 있다고 생각합니다. 이 해결책을 통해 이더리움 네트워크는 하드 포크를 해야 하며, 사용자들은 새로운 지갑 소프트웨어를 다운로드해야 하지만, 자금을 잃는 사용자는 극소수에 불과할 것입니다.
양자 공격의 주요 위협은 다음과 같습니다. 이더리움 주소는 keccak(privtopub(k))[ 12:]를 통해 계산된 함수로, 여기서 k는 개인 키에 해당하며, privtopub은 개인 키를 공용 키로 변환하는 타원 곱셈을 의미합니다.
양자 컴퓨터가 실현되면, 위의 타원 곱셈은 가역적이 될 것입니다(사실 이는 이산 로그 문제의 해결이기 때문입니다). 그러나 해시 연산은 여전히 안전합니다. 사용자가 거래를 한 적이 없다면 공개된 것은 주소 정보뿐이므로 이 경우 그들은 여전히 안전합니다. 그러나 사용자가 한 번이라도 거래를 했다면, 거래 서명이 공용 키를 노출하게 되어 양자 컴퓨터 앞에서 개인 키가 노출될 가능성이 존재합니다. 따라서 이 경우 대부분의 사용자는 위험에 직면하게 됩니다.
하지만 우리는 이 위협을 완화할 방법이 있습니다. 그 핵심은 실제로 대부분의 사용자의 개인 키가 일련의 해시 연산을 통해 생성된다는 것입니다. 예를 들어, 많은 개인 키는 BIP-32 규격에 따라 생성되며, 이는 일련의 니모닉 문구를 기반으로 해시 연산을 통해 생성됩니다. 많은 비-BIP-32 개인 키 생성 방법도 비슷합니다. 예를 들어 사용자가 뇌 지갑을 사용하는 경우, 이는 일반적으로 특정 비밀번호가 일련의 해시 연산(또는 중간 난이도의 키 파생 함수)을 거쳐 생성됩니다.
이는 갑작스러운 양자 공격에 대응하기 위한 복구 분기가 다음 단계를 취할 것임을 의미합니다:
- 첫째, 대규모 공격 발생 이후의 모든 블록을 롤백합니다.
- 둘째, EOA 주소 기반의 전통적인 거래 방식을 비활성화합니다.
- 셋째, (그때까지 구현되지 않았다면) 스마트 계약 지갑(예: RIP-7560의 일부 내용)을 통해 거래를 허용하는 새로운 거래 유형을 추가합니다.
- 넷째, 새로운 거래 유형 또는 작업 코드를 추가하여 사용자가 STARK 증명을 제공할 수 있도록 하며, 증명이 통과되면 사용자 주소의 코드는 새로운 검증된 코드로 전환됩니다. 이후 사용자는 새로운 코드 주소를 스마트 계약 지갑으로 사용할 수 있습니다.
- 다섯째, Gas 절약을 위해 STARK 증명의 데이터 양이 많기 때문에, 우리는 여러 건의 STARK 증명을 동시에 처리할 수 있도록 배치 STARK 증명을 지원합니다.
원칙적으로 내일 우리는 이 복구 분기를 구현하는 데 필요한 인프라 개발을 시작할 수 있으며, 이를 통해 이더리움 생태계가 갑작스러운 양자 공격에 대비할 수 있도록 할 수 있습니다.