[원문 링크 : https://blog.qtum.org/historical-review-catching-one-of-bitcoins-major-vulnerabilities-3fb458663177]
2009 년에 비트 코인 메인 넷이 출시 된 이후로 11 년 동안 "안전한"상태를 유지했으며 "매우 적은"주요 보안 침해가 발생했습니다. 이것은 또한 비트 코인의 가치입니다. 그러나 "보안"은 항상 상대적 개념입니다. 결국 Bitcoin은 일련의 소프트웨어이므로 소프트웨어에 문제가 있습니다.
Qtum 개발 팀은 2018 년에 독립적으로 발견했으며 비트 코인 보안 팀에 비트 코인을 파괴 할 수있는 추가 문제인 CVE-2018–17144를보고했습니다. 이 취약점은 비트 코인 역사상 가장 중요한 보안 취약점 중 하나입니다. 이 기사는이 취약점의 영향과 일부 기술적 세부 사항을 소개하고 Qtum 팀의 독립적 인 취약점 발견을 검토합니다.
Bitcoin CVE-2018–17144 취약점은 DoS (서비스 거부) 공격에서 일부 이전 버전의 Bitcoin 노드와 충돌 할 수 있습니다. CVE (Common Vulnerabilities and Exposures)는 공개적으로 알려진 사이버 보안 취약점의 국제 목록이며 모든 문제를보고하는 데 사용됩니다 소프트웨어 유형). 더 무서운 것은이 취약점을 이용하여 추가 비트 코인을 발행 할 수 있다는 것입니다. 즉,이 취약점이 악용되면 2,200 만 비트 코인 상한선이 깨지고 공격자는 새로운 비트 코인을 전혀 만들 수 없습니다. 시장에 무제한의 비트 코인 유입이있을 것인데, 이는 틀림없이 비트 코인 생태계에 치명적인 타격을 줄 것입니다.
이 취약점은 2017 년 Bitcoin 0.14.x 버전에서 도입되었으며 2018 년 9 월 0.16.3 버전까지 복구되지 않았으며 9 월 20 일에 완전히 공개되었습니다. 다행히도이 기간 동안이 허점을 악용 한 사람은 없었습니다. 비트 코인은 현재 완전히 다를 수 있습니다.
[1]에 공개 된 정보에 따르면, Bitcoin Core 개발 팀은 2018 년 9 월 17 일 익명 개발자로부터 DoS 취약성 보고서를 받았으며 Bitcoin Core 개발자는 추가 문제가 있음을 발견했습니다. DoS 문제는 덜 심각했지만 추가 문제는 Bitcoin을 공격하는 데 사용될 수 있기 때문에 중요한 문제였습니다. 따라서 비트 코인 코어 개발 팀은 9 월 18 일이 문제를 해결하고 추가적인 취약점이 발견되었다는 사실을 숨겼습니다. 그들은 커뮤니티에 이것이 DoS 취약점 수정일 뿐이라고 말하고 주요 마이닝 풀에 연락하여 업그레이드했습니다. Qtum 개발자 인 David Jaenson은 9 월 20 일까지 추가적인 취약점에 대한 세부 정보를 독립적으로 발견하고보고했습니다 [4]. Bitcoin Core 팀은이 취약점에 대한 모든 정보를 완전히 공개해야했습니다.
취약성 공개 프로세스의 작업도 그 심각성을 증명하기에 충분합니다. Bitcoin 생태계 전체를 위협하는 문제에 대해서만 Bitcoin 핵심 팀은 일시적으로 은폐를 선택합니다.
Bitcoin Core 개발 팀은 CVE-2018–17144 취약점에 대한 세부 정보를 자세히 공개했으며 [1] 많은 커뮤니티 개발자들도 이벤트 [2] [3] 이후 세부적인 기술 분석을 수행했으며 관심있는 독자는 참조를 참조 할 수 있습니다 상세 사항은. 다음은 원리에 대한 간략한 소개입니다.
“더블 소비”는 모든 디지털 통화가 해결해야하는 핵심 문제입니다. 소위 "이중 지출"은 동일한 금액이 두 번 사용됨을 의미합니다. 이는 "무에서 돈을 버는 것"과 같으며 이는 디지털 통화로는 용납 할 수 없습니다. Bitcoin의 최하위 계층은 UTXO 모델 (Unspent Transaction Output)을 사용하므로 매우 간단한 논리로 "이중 지출"을 방지 할 수 있습니다. 동일한 UTXO를 두 번 사용할 수 없습니다. 보다 친숙한 계정 모델에서 이러한 문제를 처리하는 논리는 훨씬 복잡하며이 기사와 관련이 없으므로 소개되지 않습니다.
CVE-2018–17144 취약점은 비교적 드문“이중 지출”공격과 관련이 있습니다. 광부는이 취약점을 사용하여 자신의 블록에 불법적 인“이중 지출”트랜잭션을 포함시킬 수 있습니다. 이 트랜잭션은 추가 비트 코인 "발행"에 대한 입력과 동일한 UTXO와 함께 반복적으로 사용됩니다.
이 공격은 확실히 쉽지 않으며 이전 버전의 Bitcoin 은이 상황을 엄격하게 확인했습니다. 그러나 소프트웨어로서 Bitcoin은 지속적으로 업데이트 및 반복됩니다. 개발자는 이러한 검사를 많은 논리와 효율성으로 재구성하고 최적화했습니다. 다중 최적화 프로세스 중에는 위에서 언급 한 "이중 지출"검증에 문제가있는 것입니다.
취약점을 도입하는 과정은 대략 다음과 같습니다 [4] :
2012 년에 출시 된 Bitcoin 버전에서 개발 팀은 중복성 검사를 도입하여 위에서 언급 한 "이중 지출"검사를 서로 다른 두 가지 코드로 반복했습니다. 물론 이것은 그 자체로는 문제가 아니며 시간을 낭비합니다.
그 이후로 개발자는 중복 2 단계 검사의 논리를 최적화하고 1 단계 검사가 이미 검사를 확인 했으므로 위의 "이중 지출"이 발생하여 노드를 종료 할 때 트랜잭션 거부 논리를 변경했습니다. 따라서 두 번째 검사에서는 다시 나타나지 않습니다.
2017 년 Bitcoin 0.14 버전에서는 다른 개발자가 중복 1 계층 검사에서 성능 최적화를 수행했습니다.이 검사는 각 트랜잭션의 입력을 하나씩 검사하고 개발자는이 효율성이 매우 낮다고 느꼈기 때문에 검사는 기본적으로 생략되었습니다.
0.15–0.16 버전에서 비트 코인 노드의 데이터베이스 구조는 비교적 크게 조정되었습니다. 이 과정에서 위에서 언급 한 2 단계 중복 검사가 완전히 삭제되었습니다. 이 시점에서 원래 2 단계 중복 검사는 완전히 "제거되었습니다".
결과적으로 위에서 설명한 광부가 시작한 "이중 지출"공격이 가능해집니다.
0.14.x 노드의 경우이 공격으로 인해 노드가 소위 DoS 공격에서 충돌 할 수 있습니다.
최신 버전의 0.15.x-0.16.2의 경우,이 "이중 지출"공격은 비트 코인의 "추가 발행"을 실현하기위한 법적 거래로 직접 인식됩니다.
일반 사용자가 시작한 "이중 지출"트랜잭션은 브로드 캐스트되면 곧 불법으로 간주되고 광부는 트랜잭션을 블록에 직접 쓸 수 있기 때문에 채굴 자만 위에서 언급 한 공격을 시작할 수 있습니다. 따라서이 공격 비용도 매우 높으며이를 지원하기에 충분한 컴퓨팅 성능이 필요합니다.
그러나 직접 공격을 시작하지 않더라도이 취약점과 공격 방법을 공개적으로 공개하면 비트 코인을 쉽게 "짧게"할 수 있으므로 2 차 시장에서 큰 이점을 얻을 수 있습니다.
당시 비트 코인 네트워크에있는 대부분의 노드는 0.14 – 0.16 버전에 영향을 미쳤습니다. 이 취약점이 악용 된 경우 지난 10 년 동안 Bitcoin이 설정 한 모든 합의를 파괴하는 것으로 충분합니다. Qtum 팀은이 추가 문제를 독립적으로 최초로 발견했으며 이론적으로 공격을 시작할 시간이 충분했습니다. 그러나 Qtum 팀은 공격을 시작하거나 공개 채널을 통해 공격을 공개하지 않고 대신 책임있는 공개를 사용하여 가능한 빨리 Bitcoin 보안 팀에 기밀로보고했습니다.
Qtum 팀이 Bitcoin 보안 허점을 발견 할 수있는 이유는 무엇입니까?
Qtum은 Bitcoin UTXO 모델을 기반으로 스마트 계약을 성공적으로 지원하는 최초의 공개 체인 프로젝트입니다. Qtum이 제안한 UTXO 기반 솔루션은 Bitcoin에서도 구현할 수 있지만 보수적 인 Bitcoin 핵심 개발 팀이 이러한 큰 개선을 촉진하기는 어렵습니다. 동시에 Qtum은 항상 최신 비트 코인 코드를 따르는 유일한 오픈 소스 프로젝트입니다. 비트 코인의 모든 반복은 Qtum에 도입됩니다. 뿐만 아니라, Qtum은 비트 코인의 기본 UTXO 모델 코드와 이더 리움의 EVM을 모두 포함합니다. 또한 PoS 합의 메커니즘을 사용하므로 고려할 보안 문제는 비트 코인보다 복잡합니다. Qtum 개발자가 되려면 먼저 비트 코인과 이더 리움의 전문가가되어야합니다.
2018 년 9 월 18 일 Bitcoin Core 팀이 새로운 버전을 커뮤니티에 푸시하여“DoS 취약성”을 수정하여 취약점이 추가되었다는 사실을 숨겼습니다. Qtum 팀이이 업그레이드를 수행했지만 테스트 과정에서 Qtum 개발자 David Jaenson은 추가 문제가 있음을 신속하게 발견했습니다. David는 신중한 접근 방식으로 Qtum의 UTXO 코드, EVM 코드 및 PoS 코드를 자세히 조사한 후 비트 코인 코드 자체의 추가 문제라고 판단했습니다. 팀과 논의한 후 Qtum은이 취약점을 Bitcoin 개발 팀에보고하고 완전한 공격 테스트 사례를 제출했습니다. 비트 코인 팀은이 취약점을 완전히 공개 한 후 Qtum 개발자 David Jaenson에게 감사의 말을 전했습니다 [1].
Qtum 개발자들 사이에는 많은 비트 코인 코드 기고자가 있으며 비트 코인 및 이더 리움 코드에 가장 친숙한 기술 팀 중 하나입니다. Qtum의 공동 창업자 Patrick Dai가 2020 년에 Bitcoin Circle의 비공개 비공개 회의에 참여하도록 초대 한 것은 Bitcoin 기술 커뮤니티에 대한 Qtum의 기술 팀의 장기적인 지원 덕분입니다. Satoshi Roundtable [5]. 이 비공개 회의는 Bitcoin Circle의 "Bilderberg Meeting"이라고도합니다.
앞으로 Qtum 기술 팀은 Bitcoin 및 Ethereum과 같은 오픈 소스 프로젝트에서 계속 활동하고 있으며 오픈 소스 커뮤니티와 협력하여 블록 체인의 기본 보안 메커니즘을 보장합니다. 동시에 Qtum은 블록 체인 프라이버시 컴퓨팅, 개선 된 합의 메커니즘 및 고급 가상 머신에서 획기적인 발전을 이룰 것입니다. 향후 비트 코인과 같은 다른 오픈 소스 프로젝트에서 더 많은 Qtum 기술 솔루션을 채택하여 블록 체인의보다 완전한 기반 인프라를 공동으로 만들 것으로 생각합니다.