오늘은 비트코인 코어 0.20.0의 공식 출시일로, 사토시 나카모토가 11년 이상 전에 출시한 비트코인의 원래 소프트웨어 클라이언트의 20번째 주요 릴리스입니다.
비트코인 코어의 주요 유지 관리자인 블라디미르 반 더 라안의 감독 아래, 이번 최신 주요 릴리스는 약 6개월에 걸쳐 100명 이상의 기여자에 의해 개발되었습니다. 500개 이상의 병합된 풀 리퀘스트의 결과로, 비트코인 코어 0.20.0은 비트코인 코어 코드베이스를 정리하고 강화하며, 하드웨어 지갑 통합을 발전시키고, 네트워크 신뢰성을 개선하며 여러 가지 다른 개선 사항을 포함합니다.
여기 몇 가지 주목할 만한 변경 사항이 있습니다.
GUI에서의 하드웨어 지갑 통합 강화
비트코인 코어는 0.18.0 버전부터 하드웨어 지갑과 호환되었습니다. 그러나 사용자는 비트코인 코어의 그래픽 사용자 인터페이스(GUI)에서 하드웨어 지갑으로 거래를 할 수 없으며, 대신 명령줄 인터페이스(CLI)를 사용해야 합니다.
비트코인 코어 0.20.0은 GUI에서 하드웨어 지갑 통합을 위한 한 걸음을 내딛고 있습니다. 사용자는 이제 부분 서명된 비트코인 거래(PSBT) 형식을 사용하여 비트코인 코어 GUI에서 서명 없이 거래를 생성하고 클립보드에 복사할 수 있습니다. 복사된 후, 사용자는 거래를 하드웨어 지갑으로 전송하여 서명할 수 있지만, 이 전송은 아직 자동화되지 않았으며 거래를 방송하려면 여전히 CLI를 사용해야 합니다.
향후 비트코인 코어 릴리스는 하드웨어 지갑 통합을 계속 발전시킬 것입니다.
보다 신뢰할 수 있는 네트워크 연결을 위한 Asmap
비트코인 코어는 비트코인 네트워크에서 여러 피어(다른 비트코인 노드)에 연결됩니다. 비트코인 코어는 IP 주소를 기반으로 다른 노드를 매핑하여 다양한 지역과 인터넷 서비스 제공업체(ISP)에서 피어와 연결을 설정하려고 합니다. 노드가 전 세계의 피어로부터 블록과 거래를 수신하면 특정 데이터(예: 특정 거래)가 숨겨질 위험이 감소합니다.
비트코인 코어는 현재 네트워크 운영자 그룹에 따라 IP 주소를 매핑합니다. 그러나 이러한 그룹 중 일부는 실제로 동일한 자율 시스템(AS)의 일부입니다: 주요 인터넷 경로를 공유하는 네트워크 운영자 그룹의 클러스터로, 따라서 데이터가 필터링될 수 있는 동일한 라우팅 병목 현상을 공유할 수 있습니다.
비트코인 코어 0.20.0은 자율 시스템 번호(ASN)에 따라 IP 주소를 매핑하는 새로운 구성 옵션인 Asmap을 포함합니다. 이를 통해 노드는 다양한 AS의 피어와 연결되어 잠재적인 네트워크 병목 현상을 줄이고 특정 데이터가 숨겨질 위험을 더욱 제한합니다. (현재로서는 네트워크 운영자 그룹에 따라 IP 주소를 매핑하는 것이 기본 구성으로 남아 있습니다.)
BIP61 거부 메시지 제거
거부 메시지(BIP61)는 노드가 피어로부터 수신한 거래가 거부될 때 반환하는 알림으로, 그 이유를 설명합니다. (거래가 유효하지 않거나 수수료가 충분하지 않거나 다른 이유로 거부될 수 있습니다.)
그러나 비트코인 코어 개발자는 거부 메시지가 그리 유용하다고 생각하지 않습니다. 가장 중요한 것은, 피어가 신뢰할 수 있게 거부 메시지를 반환할 것이라고 가정해서는 안 된다는 것입니다. 즉, 노드가 거부 메시지를 수신하지 않는다고 해서 거래가 수락되었다는 의미는 아닙니다. 이는 메시지의 유용성을 제한하며, 거래가 유효하고 충분한 수수료를 포함하는지 확인하기 위한 더 나은 솔루션이 있습니다. 한편, 이러한 메시지는 피어 투 피어 프로토콜을 더 복잡하게 만들고 대역폭을 차지하고 있었습니다.
따라서 BIP61 거부 메시지는 비트코인 코어 0.18.0에서 기본적으로 이미 비활성화되었습니다. 비트코인 0.20.0은 이제 이 기능을 완전히 제거했습니다.
BIP70 결제 프로토콜(및 OpenSSL) 제거
결제 프로토콜(BIP 70)은 비트코인의 결제 경험을 개선하기 위해 몇 년 전에 설계되었습니다. 사용자와 상인은 결제에 대한 추가 세부정보를 통신할 수 있으며, 예를 들어 인간이 읽을 수 있는 목적지 주소(상인의 이름)와 구매에 문제가 발생했을 경우 환불 주소를 포함할 수 있습니다.
비트코인 코어는 결제 프로토콜을 통합했지만, 이 표준은 널리 채택되지 않았습니다. 대신 대부분의 지갑은 여전히 더 기본적인 URI 스킴(BIP21)을 사용합니다: 클릭 가능한 링크나 스캔 가능한 QR 코드 형식으로, 예를 들어 결제 주소와 금액을 전달합니다.
채택 부족보다 더 중요한 것은, BIP70 결제 프로토콜이 수년간 여러 가지 보안 및 개인 정보 보호 취약점을 겪었다는 것입니다. 특히, 암호화 기능을 위한 OpenSSL 소프트웨어 라이브러리에 대한 의존성은 일련의 단기 긴급 업그레이드를 요구했습니다. 이러한 이유로 일부 비트코인 지갑은 BIP70 구현을 완전히 거부했습니다.
비트코인 코어 0.19.0은 GUI에서 결제 프로토콜을 제거했지만, 사용자는 여전히 기능을 사용하기 위해 특별한 구성으로 노드를 컴파일할 수 있었습니다. 비트코인 코어 0.20.0은 이제 결제 프로토콜을 완전히 제거했습니다.
BIP70가 사라짐에 따라(그리고 의존성을 제거하기 위한 몇 가지 소프트웨어 조정과 함께), 비트코인 코어는 코드베이스에서 OpenSSL을 완전히 제거할 수 있었습니다.
Dumptxoutset: 빠른 부트스트래핑을 위한 Assumeutxo의 첫 번째 단계
새로운 원격 프로시저 호출(RPC)을 통해 비트코인 코어 0.20.0은 특정 시점(블록 높이)에서 블록체인에 기록된 비트코인 소유 상태를 반영하는 UTXO 세트의 스냅샷을 생성할 수 있습니다. 이 스냅샷은 공유될 수 있습니다.
향후 비트코인 코어 릴리스는 피어가 네트워크에 처음 참여할 때 이러한 스냅샷을 공유할 것입니다. 이를 통해 새로운 노드는 스냅샷이 만들어진 시점부터 즉시 네트워크에 참여할 수 있으며, 블록체인의 전체 기록은 백그라운드에서 확인됩니다. (Assumevalid와 유사한 단축키인 Assumeutxo는 전체 블록체인이 확인되기 전에 신뢰의 거래가 필요하며, 그때까지는 이러한 거래를 염두에 두고 사용해야 합니다.)
더 많은 업그레이드 목록은 비트코인 코어 0.20.0 릴리스 노트를 참조하십시오.
정보와 피드백을 제공해 주신 Sjors Provoost에게 감사드립니다.