10년 된 XRP 원장 버그가 XRP를 공중에서 생성할 수 있었던 이유

3시간 전
4분 읽기
3 조회수

XRP 원장의 결제 엔진 결함 수정

XRP 원장은 2015년에 발생한 결제 엔진의 결함을 조용히 수정했습니다. 이 결함은 공격자가 네트워크의 고정 공급량을 초과하여 사용 가능한 XRP를 생성할 수 있게 했습니다. 문제는 XRP 원장의 내장된 분산형 거래소(DEX)에서 결제를 정산하는 코드 내부에 있었습니다.

어제 발표된 공식 취약점 공개 보고서에 따르면, 단일 결제가 여러 제안을 소비할 때 엔진은 확인되지 않은 64비트 산술을 사용하여 금액을 합산했습니다.

이 합계를 충분히 높게 밀어올리면 정수 오버플로우가 발생하여 거대한 숫자가 작은 숫자로 변환되었습니다. 거래의 반대편에 있는 판매자는 전액을 지급받았지만, 구매자는 포장된 작은 총액만 청구되었습니다. 그 차액은 이전에 존재하지 않았던 XRP였습니다.

원장은 XRP가 결코 생성되지 않도록 확인하는 안전 점검인 불변성을 실행합니다. 그러나 그 점검도 같은 확인되지 않은 수학을 사용했기 때문에, 잡아내기 위해 만들어진 정확한 실패를 인식하지 못했습니다.

결함의 영향과 패치

보고서는 이 결함이 2015년에 작성된 현재 결제 엔진으로 거슬러 올라간다고 설명합니다. 보고서에 따르면, 비용은 몇 백 XRP가 준비금으로 잠겨 있었고, 객체가 제거되면 반환되며, 일반 거래 수수료가 추가됩니다. 공격자는 수백 개의 의도적으로 잘못 가격이 책정된 제안을 배치한 다음, 그들을 통해 하나의 결제를 라우팅해야 했습니다.

수익은 무서운 부분이었으며, RippleX는 이 버그가 단일 검증된 거래에서 총 공급량을 초과하는 사용 가능한 XRP를 생성할 수 있었기 때문에 치명적이라고 언급했습니다.

XRP의 전체 제안은 1000억 개의 토큰이라는 하드 캡에 기반하고 있으므로, 조용한 민트는 자산의 핵심 약속을 타격했을 것입니다. 그래서 Whale Insider와 같은 게시물은 이 버그를 “수십억”의 XRP를 만들어낼 수 있는 버그로 묘사했습니다.

타임라인은 다음과 같이 매우 간단했습니다: 패치는 일반적인 수정 투표를 거치지 않고, 대신 3.4.1 릴리스에서 직접 코드 변경으로 배포되었으며, 각 서버가 업그레이드됨에 따라 효력을 발휘했습니다. 소스 코드는 배포 후에만 공개되었으며, 이는 공격자에게 지도를 제공하지 않기 위한 표준 조치입니다.

향후 계획과 Ripple의 움직임

XRPL 운영 계정은 이후 3.4.1을 최소 요구 버전으로 설정하며 다음과 같이 추가했습니다: 우리는 이 문제가 어떤 공개 네트워크에서 악용되었다는 증거를 찾지 못했습니다. 같은 릴리스에서 두 번째, 낮은 심각도의 버그도 수정되었습니다. 이는 배치 거래가 포장되는 방식과 관련이 있으며, 그 수정은 10월 9일 Mainnet에서 라이브로 진행된 fixBatchV1_2 수정 뒤에 있습니다. 보고서에 따르면, 그로 인해 자금이 손실된 경우는 없었습니다.

이 공개는 Ledger 장치 손실이 약 9340만 달러에 달한 암호화폐 보안의 불행한 주에 발표되었습니다. 마지막으로, Ripple이 지원하는 Evernorth는 월요일에 XRPN으로 Nasdaq에서 거래를 시작할 준비를 하고 있으며, 약 4억 7300만 XRP를 보유하고 있습니다. XRP는 최근 Firelight가 네트워크에서 금고 보호를 활성화하면서 분산 금융(DeFi)으로도 확장하고 있습니다. 말레이시아 법원은 Ripple에게 Seamless Group의 Tranglo에 대한 60% 지분에 대한 청구 명령을 내렸습니다.