이 질문은, '유의미한 시간 안에 임의의 SHA256 충돌을 일으킬 수 있는가?'와 관련됩니다.(참조: 해시함수란 무엇인가요?)
SHA256은 임의의 입력값을 받아 고정된 256비트의 숫자로 출력해주는 해시함수이며, 보통 출력값은 16진수 64자리로 표현합니다. 이론적으로 2^256개를 초과하는 입력이 있다면 비둘기집 원리에 의해 충돌이 발생하지만, 2^256은 10^77에 달하는 천문학적인 숫자입니다.
현재 비트코인 네트워크의 해시레이트는 평균 350 EH/s 입니다. 이 엄청난 속도로 연산해도 비트코인 네트워크가 SHA256 충돌을 발견하려면 10^49년이 걸립니다. 우주의 나이가 약 1.38 * 10^10년임을 감안하면, 물리적으로 SHA256 충돌을 찾는 것은 불가능에 가깝습니다.
그렇다면 양자컴퓨터의 경우는 어떠합니까?양자컴퓨터라 하면 무엇이 떠오르시나요? 아주 빠른 컴퓨터인가요?
보통 사람들이 양자컴퓨터에 대해 갖는 이미지는 '무조건 빠른 컴퓨터'입니다. 그러나 이는 정확한 이해가 아닙니다. 양자컴퓨터는 소인수 분해를 효율적으로 수행하는 쇼어 알고리즘과 같이, 특수한 문제 해결에 강점을 보이는 컴퓨터입니다. 문제는 이 영역에 RSA나 비트코인이 사용하는 ECDSA(타원곡선암호)와 같은 공개키 암호체계가 포함된다는 점입니다.
반면, SHA256과 같은 해시함수에 대해서는 양자컴퓨터도 '그로버 알고리즘'을 통해 속도를 높일 수는 있지만, 이는 단순히 암호의 자릿수를 조금 늘리는 것만으로도 대처가 가능할 만큼 위협적이지 않습니다. 즉, 양자컴퓨터가 등장해도 SHA256은 여전히 견고합니다.
중요한 것은 비트코인 주소가 만들어지는 과정입니다.
비트코인의 주소는 개인키로부터 도출된 공개키를 그대로 사용하는 것이 아니라, 그 공개키에 SHA256과 RIPEMD160을 적용하여 두 번 더 해싱한 값을 사용합니다. (P2PKH 등의 일반적인 주소 체계).
SHA256은 양자컴퓨터로도 역산이 불가능하므로, **'아직 한 번도 사용되지 않은 비트코인 주소'**의 경우, 양자컴퓨터가 아무리 뛰어나도 주소만 보고 그 뒤에 숨겨진 공개키를 유추해낼 수는 없습니다. 공개키를 모르면 ECDSA 공격을 시작조차 할 수 없습니다.
이 구조가 중요한 이유는, 양자컴퓨터가 개발되더라도 전 세계의 모든 비트코인이 그 즉시 해킹당하는 '즉사(Instant Death)' 시나리오를 막아주기 때문입니다.
하지만 이것이 완벽한 안전을 보장하지는 않습니다. 다음과 같은 경우에는 공개키가 노출되어 위험에 처할 수 있습니다.
- 트랜잭션 전송 시점: 비트코인을 어딘가로 보내려면 서명과 함께 공개키를 네트워크(멤풀)에 공개해야 합니다. 이때 공격 속도가 충분히 빠르다면, 승인 대기 중인 트랜잭션의 공개키를 보고 개인키를 역산하여 코인을 가로채는 공격이 가능해집니다.
- 코인을 출금한 주소: 과거에 한 번이라도 출금한 적이 있는 주소는 이미 블록체인 장부에 공개키가 기록되어 있으므로 공격 대상이 됩니다.
- P2PK 주소: 초창기 사토시 시대의 채굴 코인 등 일부는 해싱 과정을 거치지 않고 공개키가 그대로 주소로 쓰이는 스크립트(P2PK)를 사용하므로 즉시 위험에 노출됩니다.
결론적으로, 비트코인의 해싱된 주소 체계는 양자컴퓨터의 위협으로부터 우리에게 대응할 시간(골든타임)을 벌어줍니다.
비트코인 커뮤니티에서는 이미 양자내성 서명을 따르는 새로운 서명방식을 적용하는 것에 대한 연구가 진행 중입니다. 이 구현 역시 세그윗 및 탭루트 업그레이드 때와 마찬가지로 소프트포크를 통해 새로운 주소체계를 도입하는 방식으로 해결 가능합니다. 양자컴퓨터가 가시적인 위협이 되기 전에, 우리는 이 안전한 주소로 자산을 이동(Migration)시킴으로써 방어할 수 있습니다.
사토시가 사라지기 전, 그가 남긴 기록들 - 1분 비트코인
요약하면:
- SHA256은 양자컴퓨터가 나와도 여전히 안전할 것이며, 이를 기반으로 한 채굴이나 블록체인 무결성은 유지된다.
- ECDSA(공개키 암호)는 양자컴퓨터에 취약하다. 하지만 비트코인 주소는 공개키를 SHA256으로 해싱하여 숨겨두었기 때문에, 주소만으로는 개인키를 털 수 없다. 이는 양자컴퓨터 등장 시 즉각적인 네트워크 붕괴를 막아준다.
- 진짜 위험은 공개키가 노출되는 순간이다. 멤풀에 대기 중인 트랜잭션, 주소를 재사용한 적이 있는 지갑, 그리고 초창기 P2PK 주소들은 양자컴퓨터의 공격 대상이 될 수 있다.
- 따라서 양자컴퓨터 위협이 현실화되기 전, 소프트포크를 통해 양자 내성 주소를 도입하고 자산을 이동시키는 절차가 필요하다.
참고:
1. Will quantum computing break SHA-256 encryption?
2. Quantum Computers Break Encryption in China But Far From Cracking Bitcoin
3. 사토시가 사라지기 전, 그가 남긴 기록들 - 1분 비트코인
4. SHA-256 충돌은 왜 발견되지 않았을까?
5. @atomicBTC - 양자컴퓨터가 나오면 비트코인은 끝일까?
6. 양자 내성에 대한 커밋, 더 나은 방어: 빠른 양자 컴퓨팅 공격에 대한 비트코인의 속도와 위험을 구성할 수 있는 방어
2025-04-09 추가
7. BIP-0360 (Pay to Quantum Resistant Hash)