Home / Knowledge / 비트코인은 양자 안전하지 않으며, 필요할 때 우리가 이를 수정할 수 있는 방법

비트코인은 양자 안전하지 않으며, 필요할 때 우리가 이를 수정할 수 있는 방법

비트코인은 양자 안전하지 않으며, 필요할 때 우리가 이를 수정할 수 있는 방법 1

비트코인은 양자 안전하지 않으며, 필요할 때 우리가 이를 수정할 수 있는 방법 2

지난 1년 동안 비트코인 기술 커뮤니티에서는 비트코인이 현재 형태로는 부분적으로 양자 안전하다는 사실이 알려지게 되었습니다. 사용된 비트코인 주소는 비트코인을 수신하고 송금한 주소로, 해당 주소의 공개 키가 블록체인에 노출되어 양자 컴퓨터를 사용하는 적들이 비트코인의 타원 곡선 암호를 깨뜨릴 수 있게 됩니다. 반면에 사용되지 않은 비트코인 주소는 비트코인을 수신했지만 한 번도 사용되지 않은 주소로, 공개 키가 노출되지 않아 SHA256 및 RIPEMD-160의 훨씬 강력한 암호 보장을 누릴 수 있습니다. 어떤 비트코인 주소에서 처음으로 거래가 이루어질 때, 그 주소에 저장된 모든 자금이 새로운 주소로 변경된다면, 비트코인은 이전만큼 안전하게 유지될 것이라는 이론이 있습니다. 실제로 대부분의 지갑은 개인 정보 보호를 위해 주소를 재사용하지 않으려 하므로, 대부분의 사용자에게는 더 엄격한 보안 조건을 충족하기 위해 소프트웨어의 약간의 수정만 필요할 것입니다. 이 주장은 비트코인 커뮤니티의 많은 사람들이 제기했으며, 저도 그 중 하나입니다. 그러나 실제로 이 주장은 치명적인 결함이 있습니다.

해시와 곡선

먼저 기술적 배경에 대해 설명하겠습니다. 비트코인 사용자의 지갑에서 각 사용자의 비트코인 주소는 세 가지 고유한 숫자로 표현됩니다: 개인 키, 공개 키 및 주소 자체입니다. 공개 키는 개인 키에서 타원 곡선 곱셈을 통해 파생되며, 현재 존재하는 고전적인 컴퓨터만으로는 공개 키에서 개인 키를 복구하는 것이 사실상 불가능합니다. 주소는 공개 키에서 세 단계의 과정을 통해 파생됩니다: 공개 키에 SHA256 해시 함수를 적용하고, 그에 RIPEMD-160 해시 함수를 적용한 후, 마지막으로 오류 수정 목적으로 체크섬이라는 값을 추가합니다 (비트코인 주소로 송금할 때 한 글자를 잘못 입력하더라도 돈이 사라지지 않도록 하기 위해서입니다). 해시 함수의 요점은 타원 곡선 곱셈과 마찬가지로 역으로 계산하는 것이 계산적으로 불가능하다는 것입니다; 주소가 주어지면, 모든 가능한 공개 키를 brute force 방식으로 시도하는 것 외에는 주소가 파생된 공개 키를 찾을 방법이 없습니다.

양자 컴퓨터는 암호를 깨는 데 있어 고전 컴퓨터보다 우수한 두 가지 주요 도구를 가지고 있습니다: 쇼어의 알고리즘과 그로버의 알고리즘. 쇼어의 알고리즘은 주로 숫자를 인수분해하는 데 유용합니다 – 예를 들어, 숫자 1728499가 1129 * 1531로 구성되어 있다는 것을 알아내는 것입니다. 7자리 숫자는 충분한 인내로 종이에 풀 수 있지만, 숫자가 수백 자리일 경우 양자 컴퓨터가 필요합니다. 사실, 매우 긴 숫자를 인수분해하는 어려움은 RSA의 기초로, RSA는 가장 오래된 공개 키 암호화 알고리즘이며 현재도 사용되고 있습니다. 그로버의 알고리즘은 훨씬 더 일반적입니다 – 숫자 목록과 수학적 속성이 주어지면, 그 속성을 만족하는 숫자를 찾아낼 수 있습니다. 수정된 쇼어의 알고리즘은 타원 곡선 암호를 깨는 데도 사용될 수 있으며, 그로버의 알고리즘은 SHA256 및 RIPEMD-160을 포함한 거의 모든 것을 공격합니다.

그러나 두 알고리즘은 효율성 면에서 크게 다릅니다. 쇼어의 알고리즘은 타원 곡선 암호를 깨는 실행 시간을 O(2k/2)에서 O(k3)으로 줄입니다 – 즉, 비트코인 개인 키가 256비트 길이이므로, 이를 깨는 데 필요한 계산 단계 수가 340조 조조에서 최대 몇억 단계로 줄어듭니다. 반면 그로버의 알고리즘은 그렇게 극적인 속도 향상을 제공하지 않습니다. 오히려 O(2k)에서 O(2k/2)로의 적당한 감소를 제공합니다. RIPEMD-160의 경우, 비트코인 주소를 생성하는 데 사용되는 두 해시 중 더 약한 해시로, 주소에서 공개 키를 복구하는 데 필요한 단계 수가 1.4조 조조 조조에서 1.2조 조조로 줄어듭니다. 다소 쉬워졌지만 여전히 실용적이지 않습니다. 위에서 설명한 바와 같이, 사용된 비트코인 주소는 공개 키가 노출되므로, 쇼어의 알고리즘으로 타원 곡선 암호를 깨는 것이 병목 현상이 됩니다. 반면 사용되지 않은 비트코인 주소는 주소 자체만 노출되므로, RIPEMD-160 그로버 문제는 약화된, 그러나 여전히 극복할 수 없는 도전을 제기합니다.

문제는 무엇인가?

여기서 위의 논리가 잘못된 지점이 있습니다. 위 두 단락에서 언급된 양자 컴퓨터에 대한 모든 내용은 공개된 지식에 따라 본질적으로 올바르며, 비트코인 주소가 진정으로 사용되지 않는다면, 양자 컴퓨터가 있더라도 그 안에 있는 비트코인은 안전합니다. 그러나 문제는 자금을 실제로 어떻게 사용하는가입니다. 해당 주소로 송금된 비트코인을 사용하기 위해서는 비트코인 거래를 생성해야 하며, 그 거래에는 서명과 공개 키가 포함되어야 합니다. 이는 개인 키의 소유자가 서명했음을 확인하기 위한 것입니다. 그러나 여기서 문제가 발생합니다. 그 거래를 생성함으로써, 당신은 양자 컴퓨터를 가진 누구든지 당신을 완전히 가장하는 데 필요한 모든 정보를 즉시 공개하게 됩니다. 양자 컴퓨터가 없을 경우, 이는 불가능합니다. 비트코인의 타원 곡선 서명은 공개 키를 복구할 수 있는 정보만 제공하며, 개인 키는 제공하지 않기 때문입니다. 양자 컴퓨터가 있다면, 타원 곡선 서명은 디지털 종이 한 장처럼 허술해집니다.

주소 13ign에서 100 BTC를 모두 사용하는 거래를 보내고, 10 BTC를 1v1tal에 지불하고 90 BTC의 잔돈을 새로운 주소 1mcqmmnx로 돌려보낸다면, 거래를 처음으로 전송하는 노드는 잔돈 주소를 원하는 대로 바꾸고, 공개 키에서 개인 키를 복구하여 서명을 위조할 수 있습니다. 이 문제를 피하는 유일한 방법은 본질적으로 거래를 BTCGuild 또는 Slush와 같은 채굴 풀에 직접 전송하고, 채굴 풀이 정직하게 거래를 블록체인에 직접 배치할 것이라고 기대하는 것입니다. 그러나 그 경우에도 핀니 공격에 취약합니다 – 부정직한 채굴자는 당신의 서명을 위조하고, 그의 위조 거래를 포함한 유효한 블록을 생성하여 가장 최근 블록(당신의 거래를 포함한 블록) 이전의 블록에서 블록체인을 계속 이어갈 수 있습니다. 이전 블록과 새로운 블록의 길이가 같아지면 공격자는 그의 블록이 우선권을 가질 50%의 확률을 가지게 됩니다. 따라서 안전한 거래는 본질적으로 불가능합니다.

람포트 서명: 해결책

기본적으로 해시 함수의 목적은 수학적으로 잠금 장치의 동등한 역할을 제공하는 것입니다. 값의 해시를 공개하는 것은 잠금을 공개하는 것과 유사하며, 원래 값을 공개하는 것은 잠금을 여는 것과 같습니다. 그러나 잠금이 열리면 다시 닫을 수 없습니다. 그러나 문제는 잠금만으로는 안전한 디지털 서명 체계를 만들 수 없다는 것입니다. 타원 곡선 암호가 제공하는 것은 SHA256 및 RIPEMD-160이 제공하지 않는 것으로, 수학적 잠금 뒤에 비밀 값을 가지고 있다는 것을 증명하고, 이 증명을 특정 메시지에 첨부하며, 원래 값을 공개하지 않거나 첨부한 메시지 외의 다른 메시지에 대해 유효한 증명을 만들지 않는 방법입니다. 비트코인에서 문제의 메시지는 거래입니다. 비트코인 클라이언트가 네트워크에 거래를 보낼 때, 실제로 수행하는 것은 다음 사실의 수학적 증명을 보내는 것입니다: 이 거래는 내가 이 금액을 이 주소로 송금한다고 명시하며, 비트코인 주소에서 송금하는 개인 키를 소유한 사람이 작성한 것입니다. 이것이 비트코인의 보안 측면에서 거래의 기초입니다.

그러나 RSA, 타원 곡선 또는 기타 전통적인 공개 키 암호 체계 없이 이 문제를 해결할 수 있는 구조가 있습니다: 람포트 서명. 람포트 서명은 다음과 같은 방식으로 잠금 상자 문제를 해결하는 일회성 서명입니다: 여러 개의 잠금 장치가 있으며, 메시지의 내용(또는 메시지의 해시)이 어떤 잠금을 열어야 하는지를 결정합니다. 누군가 당신의 메시지를 위조하려고 시도하면, 람포트 서명 체계는 그들이 이미 열지 않은 잠금 장치 중 적어도 하나를 열어야 할 것이 거의 확실합니다 – 그들은 공개되지 않은 비밀 값을 가지고 있지 않기 때문에 이를 수행할 수 없습니다.

람포트 서명의 작동 방식, 자세히

람포트 서명은 기술적으로 복잡해 보일 수 있지만, 단 하나의 요소 – 해시 함수(이 경우 RIPEMD-160)를 사용하기 때문에 실제로는 일반인이 이해하기 가장 쉬운 암호 프로토콜 중 하나입니다. 알고리즘은 다음과 같이 작동합니다:

  1. 160개의 160비트 랜덤 숫자 쌍을 생성합니다 (모든 숫자를 RIPEMD-160으로 단일 시드에서 생성할 수 있습니다: RIPEMD-160(seed+1), RIPEMD-160(seed+2) 등). 이 값들, 또는 일부 구현에서는 이를 생성하는 데 사용된 시드가 당신의 개인 키입니다.
  2. 모든 랜덤 숫자를 해시하고 (예: RIPEMD-160으로), 160 쌍의 해시를 모두 공개합니다. 이것이 당신의 공개 키이며, 네트워크에서 나중에 당신의 서명을 검증하는 데 필요합니다.
  3. 메시지에 서명하려면, 메시지의 RIPEMD-160 해시를 계산한 후, 해시의 각 비트에 따라 각 쌍의 첫 번째 또는 두 번째 해시 뒤에 있는 비밀 숫자를 공개합니다. 비트가 0이면 첫 번째 해시를 열고, 비트가 1이면 두 번째 해시를 엽니다.

이 체계 하에서 비트코인 주소는 여전히 공개 키의 SHA256+RIPEMD-160 해시가 될 것입니다; 유일한 차이점은 공개 키가 타원 곡선 점이 아닌 320개의 해시로 구성된다는 것입니다. 거래는 오늘날과 마찬가지로 공개 키와 서명을 포함하며, 오늘날과 마찬가지로 검증자는 공개 키가 주소와 일치하고 서명이 메시지 및 공개 키와 일치하는지 확인합니다. 서명은 위조할 수 없습니다; 그로버의 알고리즘을 사용하더라도, 적이 이미 공개한 160개의 비밀 숫자와 동일한 숫자를 공개해야 하는 사기 거래를 구성하는 데 280단계가 필요합니다. 또는 적은 모든 해시를 깨는 데 280*80단계를 소요할 수 있습니다. 두 숫자 모두 조조의 조조 계산에 해당합니다.

필요한 유일한 행동 변화는 사람들이 주소를 한 번만 사용하는 것입니다; 두 번 사용한 후에는 람포트 체계의 보안이 240으로 떨어지며, 이는 처음에는 양자 컴퓨터에 대해 여전히 안전할 수 있지만, 겨우 그렇고 세 번 사용한 후에는 타원 곡선 암호만큼 약해집니다. 이론적으로, 그러나 이것은 부분적으로 극복할 수 있습니다; 머클 서명 체계는 람포트의 아이디어를 기반으로 하여 개인 키를 은퇴하기 전에 수십 번, 수백 번, 또는 잠재적으로 수천 번 사용할 수 있는 서명을 생성합니다. 주소당 최대 거래 수에 대한 유일한 제한은 기본적으로 블록체인 부풀리기를 제한하는 문제입니다.

현재 공개된 지식에 따르면, 양자 컴퓨터는 아직 멀었습니다; 지금까지 가장 강력한 양자 컴퓨터는 쇼어의 알고리즘을 사용하여 숫자 21을 인수분해하는 데 성공했습니다. 그러나 갑작스러운 발전은 항상 가능하며, 에드워드 스노든이 NSA가 완전한 기능을 갖춘 양자 컴퓨터를 비밀 데이터 센터에 숨기고 있다고 누설하기로 결정할 경우 우리가 무엇을 할 수 있는지에 대한 계획이 항상 필요합니다. 우리는 그러한 갑작스러운 사건을 처리할 수 없겠지만, 한 달의 사전 경고가 주어진 경우에는 확실히 처리할 수 있습니다. 해결책은 이렇습니다: 양자 사전 비상 사태가 선언되면, 모든 사람은 사용되지 않은 구식 비트코인 주소와 새로운 람포트 체계로 생성된 주소 간의 1-of-2 다중 서명 거래로 자산을 이동해야 합니다. 그런 다음 개발자들은 가능한 한 많은 비트코인 클라이언트에 대해 람포트 패치를 신속하게 생성하고 모든 사람이 업그레이드하도록 촉구해야 합니다. 전체 과정이 몇 주 이내에 완료된다면, 양자 컴퓨터가 위협이 될 때까지 대부분의 사람들의 비트코인은 새로운 스타일의 람포트 주소에 안전하게 보관될 것입니다. 그 시점까지 구식 주소에 자산을 보유한 사람들은 (사용되지 않은 구식 주소에 해당; 그 시점에서 사용된 구식 주소의 코인은 쉽게 도난당할 수 있습니다) 몇몇 신뢰할 수 있는 조직이 신뢰할 수 있는 노드로서 동의하여 머클 서명 체계를 사용하여 구식 주소에서 새로운 주소로 송금하는 거래에 추가 서명을 추가할 것입니다. 네트워크 사기 및 핀니 공격을 방지하기 위해 새로운 비트코인 규칙은 특정 시점 이후 구식 주소에서 새로운 주소로의 모든 거래가 이러한 권한에 의해 서명되도록 요구할 것입니다. 권한 시스템은 중앙 집중화를 도입하지만, 이는 일시적인 비상 조치일 뿐이며, 몇 년 후에는 시스템을 완전히 퇴출할 수 있습니다. 그 후 우리는 상처를 핥고, 손실을 회복하며, 양자 컴퓨팅이 제공하는 더 멋진 것들을 즐기기 위해 나아갑니다.

관련 기사

마이애미 IT 직원, 전 상사로부터 190만 달러 비트코인 절도 혐의로 체포 1

마이애미 비트코인 절도, IT 직원 체포

마이애미의 한 남성이 경찰에 따르면 전 직장에서 거의 200만 달러 상당의 비트코인을 훔친 혐의로 여러 중범죄 혐의에 직면해 있습니다. 이

카사, 비트코인 보유자를 겨냥한 증가하는 사회 공학 공격에 대응하기 위해 네 가지 보안 기능 출시 1

사회 공학 공격에 대응하는 카사 기능

비트코인 보안 회사 카사는 2025년 암호화폐 도난의 대부분을 차지하는 공격 벡터인 사회 공학을 겨냥한 네 가지 기능을 출시했습니다. 이 기능은

마스터카드, 디지털 자산 전략을 강화하기 위해 뉴욕 비트라이센스 확보 1

마스터카드, 비트라이센스 획득

마스터카드는 뉴욕주 금융 서비스국(NYDFS)으로부터 비트라이센스를 받았으며, 이는 이 결제 거대 기업이 미국에서 가장 엄격한 암호화 규제 프레임워크 중 하나 아래에서

크라켄, 비트코인 보관소 출시 - BTC 보유에 대한 수익 제공 1

비트코인 보관소 | 크라켄의 새로운 금융 솔루션

크라켄은 고객이 자산을 판매하지 않고도 비트코인 보유량에 대해 BTC 기준 보상을 받을 수 있는 새로운 제품인 비트코인 볼트를 크라켄 어

폴드, 비트코인 신용 카드 성장을 위한 1억 5천만 달러 유치 1

비트코인 신용 카드, Fold의 성장 동력

Fold Holdings, Inc., 최초의 상장된 비트코인 금융 서비스 회사가 Encina Lender Finance, LLC와 4년간의 고정 담보 회전 신용 시설에 진입했습니다.

DDC, 한 주에 비트코인을 두 번 구매하며 자산을 14% 증가시켜 희석 없이 재무를 성장시킵니다. 1

비트코인으로 DDC 자산 14% 증가

DDC Enterprise Limited (NYSE American: DDC)는 수요일에 131 비트코인을 구매하여 기업 비트코인 금고를 2,714 BTC로 확장했다고 발표했습니다. 뉴욕에 본사를 둔