비트코인 코어 32.0, 최종 테스트 착수 및 10월 10일 출시 목표

비트코인 코어 32.0은 개발 주기의 막바지에 접어들었으며, 가장 눈에 띄는 변화가 반드시 가장 흥미로운 변화는 아닐 수 있습니다. 릴리스 후보 버전이 출시되었으며, 개발팀은 10월 10일을 최종 버전 출시 목표로 삼고 있습니다. 이번 릴리스에서는 더욱 체계화된 유효성 검사, 개선된 HTTP 서버, 그리고 여러 보안 수정 사항이 포함될 예정입니다. 또한, AI 기반 감사를 통해 매우 유익한 테스트 시퀀스가 진행되었는데, 초기 진단만으로는 모든 것을 설명할 수 없었던 것으로 드러났습니다.
요약하자면
- 비트코인 코어 32.0은 수개월간의 개발 끝에 출시를 앞두고 있으며, 현재 최종 기여자 테스트를 위해 릴리스 후보 버전이 제출되었습니다.
- 블록 유효성 검사는 특정 데이터의 병렬 로딩 덕분에 내부적으로 발전했으며, 이는 특히 자체 노드를 운영하는 운영자에게 유용합니다.
- Kimi K3는 개발자가 해당 시나리오가 더 많은 연결에 영향을 미칠 수 있다는 사실을 발견하기 전에 HTTP 서버의 취약점을 찾아내는 데 도움을 주었습니다.
- 수정 사항 자체는 여러 번의 조정을 거쳐야 했는데, 첫 번째 버전은 메모리를 보호하는 대신 일부 지속적인 연결에서 성가신 지연 시간을 유발했기 때문입니다.
- 일반 사용자에게는 이러한 변화가 거의 눈에 띄지 않겠지만, 개발자와 운영자는 더욱 안전하고 효율적으로 운영되는 인프라를 통해 주로 이점을 얻게 될 것입니다.
비트코인 작동 방식을 변경하지 않고 블록 검증 속도를 높입니다.
비트코인 코어는 컴퓨터가 외부 서비스에 위임하지 않고도 거래와 네트워크 블록을 직접 검증할 수 있도록 합니다. 따라서 버전 32.0은 주로 노드 운영자, 개발자 및 이 인프라를 기반으로 구축된 서비스에 영향을 미칩니다.가장 눈에 띄는 성능 개선 사항은 블록 유효성 검사와 관련이 있습니다. 트랜잭션을 검증하기 위해 소프트웨어는 이전에 사용한 출력값, 즉 프리
보우트(prevout)를 가져와야 합니다 . 이러한 프리보우트가 디스크에 저장되어 있는 경우 읽기 작업 속도가 저하될 수 있습니다. 새 버전에서는 체인 상태 데이터베이스에서 이 데이터를 병렬로 미리 불러올 수 있습니다.
기본적으로 8개의 스레드가 작동하며 최대 16개까지 설정할 수 있습니다. 사양이 낮은 기계에서는 이 개수를 0으로 줄이고 해당 기능을 비활성화할 수 있습니다.
이 개선 사항은 블록체인의 속도를 높이거나 블록 생성 간격을 단축시키지는 않습니다. 이는 노드에서 로컬로 수행되는 작업과 관련된 것입니다. 화면상으로는 미묘하게 보일 수 있는 기술적 차이지만, 매일같이 인프라를 유지 관리하는 사람들에게는 매우 체감할 수 있는 차이입니다.
AI 기반 감사가 인간이 더 자세히 살펴보는 문제를 발견했습니다.
이 이야기는 pinheadmz라는 필명으로 활동하는 기고자인 매튜 집킨으로부터 시작됩니다. 비트코인 레드팀에서도 사용하는 AI 모델인 Kimi K3를 이용해 새로운 HTTP 서버를 감사하던 중, 그는 메모리 고갈 상황을 발견했습니다.
서버는 이미 요청을 처리 중인 동안에도 클라이언트가 보낸 데이터를 계속 읽을 수 있었습니다. 악의적인 클라이언트는 이러한 방식으로 요청을 계속 처리하면서 더 많은 데이터를 전송할 수 있었고, 이렇게 축적된 데이터는 메모리에 쌓이게 되었습니다.
Zipkin은 처음에는 공격에 인증이 필요하다고 생각했습니다. 하지만 코드 검토를 통해 생각이 바뀌었습니다. 개발자 jeanpablojp는 REST 인터페이스를 테스트한 결과, 자격 증명 없이 16개의 연결이 발생했을 때 노드의 리소스 사용량이 1분 만에 약 46MB에서 거의 3GB까지 증가하는 것을 확인했습니다.
인공지능은 실제로 문제를 발견했습니다. 하지만 문제를 종결짓지는 않았습니다. 사람이 테스트를 더 진행하여 더 광범위한 문제 발생 경로를 찾아냈습니다. 이는 누가 더 많은 버그를 찾아내는지 경쟁하는 것보다 훨씬 더 흥미로운 인간-기계 협업의 사례입니다.
메모리 문제를 해결했더니 또 다른 골칫거리가 생겼다.
Zipkin의 첫 번째 대응은 상당히 냉철한 논리를 따랐습니다. 요청이 이미 처리 중인 경우, 다음 데이터를 애플리케이션 메모리로 계속 가져올 필요가 없다는 것입니다. TCP 사용량이 증가하여 송신 측 속도가 자연스럽게 느려질 때까지 시스템 측에서 기다릴 수 있다는 것입니다.
이 패치의 해결책은 요청을 처리하는 동안에는 소켓을 아예 읽지 않는 것입니다.
매튜 집킨, GitHub PR #36123
하지만 첫 번째 패치에는 결함이 있었습니다. jeanpablojp는 지속적인 연결에서 평균 지연 시간이 약 0.14ms에서 53ms로 증가하는 것을 측정했습니다. 이 수정 사항은 메모리를 보호했지만 일부
요청을 불필요하게 지연시켰습니다.
새 버전, 새로운 테스트. 수정 후, 인증되지 않은 REST 연결 16개로 인해 90초 동안 추가되는
데이터 양이 이전의 3.2GB에서 약 3MB로 줄었습니다. 약 50ms의 지연 시간도 사라졌습니다.
바이낸스에서 첫 암호화폐 거래를 시작하세요. 이 링크는 제휴 프로그램을 이용합니다.
하지만 모든 것이 무료는 아닙니다. 지속적인 파이프라인 처리가 적용되는 비활성 노드에서 한
리뷰어는 처리량이 초당 383건에서 18.9건으로 떨어지는 것을 측정했습니다. 이는 매우 특수한 경우이며, 그는 실제 클라이언트에서는 이러한 현상을 발견하지 못했다고 말했습니다. 따라서 보안이
분명히 우선시되었으며, 숨겨진 방식이 아닌 측정 가능한 방식의 보안 타협이 이루어졌습니다.
노드 운영자는 10월 릴리스에서 무엇을 기대할 수 있을까요?
버전 32.0은 단순히 이 메모리 관련 내용만이 아닙니다. 예정대로 진행된다면 몇 가지 덜 눈에 띄는 변경 사항도 함께 적용될 것입니다. 부분적으로 서명된 트랜잭션과 관련된 네 가지 명령은 기본적으로 PSBT v2를 사용하게 됩니다. 필요한 경우 이전 버전을 요청할 수도 있습니다.
한편, HTTP 서버는 libevent를 대체하도록 재작성되었습니다. 더 엄격한 규칙을 적용하며 기본적으로 동시에 연결할 수 있는 HTTP 클라이언트 수를 16개로 제한합니다. 또 다른 중요한 개선 사항은 재구축 후 txindex 트랜잭션 인덱스가 이전의 절반 이하로 디스크 공간을 차지하게 된다는 점입니다.
지갑 측면에서 exportwatchonlywallet을 사용하면 개인 키를 보유하지 않고도 시계 전용 지갑에
필요한 정보를 내보낼 수 있습니다.
이번 수정으로 walletnotify 취약점도 해결되었습니다. Windows 이외의 시스템에서 필요한 권한을 가진 인증된 RPC 사용자가 특정 지갑 이름을 위조하여 명령을 실행할 수 있었는데, 이제 이러한
이름은 문자 그대로 처리됩니다.
가벼운 애플리케이션 사용자에게는 이러한 문제들이 전혀 영향을 미치지 않습니다. 하지만
블록체인 노드를 운영하는 사람들에게는 이러한 세부 사항들이 훨씬 더 중요합니다.
10월 10일 전에 기억해야 할 것들
- 비트코인 코어 32.0의 출시 예정일은 2026년 10월 10 일이지만, 최종 테스트 과정에서 변경될 수 있습니다.
- 검증 과정에서는 기본적으로 8개의 스레드를 사용하고 최대 16개의 스레드를 사용하여 특정 데이터를 미리 로드할 수 있으며, 블록 생성 속도는 변경되지 않습니다.
- 수정 후, 인증되지 않은 REST 연결 16개로 인해 90초 동안 약 3MB의 메모리가 추가되었으며, 수정 전에는 3.2GB가 추가되었습니다.
- 네 가지 지갑 명령어는 기본적으로 PSBT v2를 채택할 예정이며, 애플리케이션은 이전 버전을 요청할 수 있는 기능을 유지합니다.
- 완전히 재구축된 txindex는 디스크 공간을 절반 이하로 차지하며, 새로운 HTTP 서버는 여러
가지 추가적인 보안 조치를 갖추게 됩니다.
일정은 흥미로운 우연의 일치를 보여줍니다. 비트코인 코어는 10월 출시를 목표로 하고 있는 반면, 이더리움은 블록체인의 차기 주요 진화 버전
인 글램스터담을 준비하고 있습니다 . 세폴리아는 개발 네트워크에서 발견된 버그가 수정된다면
10월 6일에 테스트를 진행할 예정입니다. 메인넷은 여전히 4분기 출시가 예상되지만, 12월 출시
가능성도 있습니다. 두 프로젝트 모두 다른 방식을 따르고 있습니다. 테스트하고, 때로는 오류를 수정하고, 마침내 출시하는 것입니다.




댓글 0
첫 댓글을 남겨보세요.