XRP 원장, 2015년부터 숨겨진 '무한 발행' 버그 발견 및 수정

XRP 원장(XRP Ledger) 개발팀이 2015년부터 네트워크에 존재했던 심각한 결함을 발견하고 긴급 패치를 완료했다고 발표했습니다. 이 결함은 이론적으로 공격자가 무한대의 XRP를 발행할 수 있게 하여 총 발행량 상한선을 위협할 수 있는 잠재력을 지녔으나, 다행히 실제 악용된 흔적은 발견되지 않았습니다.
이번에 수정된 문제는 XRP 원장의 결제 엔진에 내재된 정수 오버플로우(integer overflow) 오류입니다. 평소의 결제 처리 과정에서는 발생하기 어려운 매우 특수한 조건에서, 다수의 주문서(order book)에 걸쳐 수백 건의 매수 제안이 하나의 거래에 포함될 경우 발생할 수 있습니다. 이 조건이 충족되면, 구매자가 지불해야 할 총 금액이 시스템이 저장할 수 있는 최대값을 초과하게 되고, 이로 인해 '랩어라운드(wrap around)' 현상이 발생하여 실제로는 적은 금액만 지불되고 그 차액만큼 새로운 XRP가 생성되는 결과를 낳습니다.
더욱 심각한 문제는, XRP 원장의 자체적인 안전 장치인 'XRP 생성 금지' 기능 역시 동일한 오류가 있는 산술 연산을 사용하고 있어, 새로 발행된 XRP를 탐지하지 못하고 넘어갔다는 점입니다. 개발팀은 이 취약점을 통해 공격자가 단 한 번의 거래로 XRP 총 발행량의 상한선을 훨씬 초과하는 양의 XRP를 생성하고, 이를 유통시키거나 거래소로 전송하는 것이 이론적으로 가능했다고 설명했습니다.
RippleX 엔지니어들은 이 버그가 현재 결제 엔진이 처음 작성된 2015년부터 존재했으며, 일반적인 결제 환경에서는 이 오버플로우를 유발할 만큼의 복잡한 거래가 발생하지 않아 오랫동안 발견되지 않았다고 밝혔습니다. 현재까지 이 버그가 실제로 악용된 증거는 없다고 팀은 강조했습니다.
해당 오류에 대한 패치는 9월 25일 배포된 버전 3.4.1에 포함되었으며, 네트워크를 구성하는 신뢰할 수 있는 검증자(validator)의 80% 이상이 당일 해당 버전을 실행하고 있었습니다.
이번 패치는 XRP 원장의 일반적인 수정 절차를 우회하여 긴급하게 적용되었습니다. 보통 새로운 기능이나 수정 사항은 검증자들의 투표를 거쳐 2주간의 유예 기간을 거친 후에야 적용되지만, 이번 사안은 거래 처리 로직에 관련된 중대한 보안 결함이었기 때문에, 오픈 소스 코드의 취약점이 외부에 노출될 경우 악용될 위험이 수 주간 지속될 수 있다는 판단 하에 긴급하게 처리되었습니다. 이러한 방식은 10년 이상 시스템이 도입된 이래, 트랜잭션 처리 변경에 대해 처음으로 적용된 사례입니다.
이번 XRP 원장의 보안 결함 발견은 올해 초 Zcash에서도 발생했던 유사한 사건을 떠올리게 합니다. 당시 Zcash는 보안 풀(shielded pool)에서 위조 코인 발행을 허용할 수 있는 버그가 발견되어 네트워크의 아이언우드(Ironwood) 업그레이드로 해결되기 전까지 ZEC 가격이 급락하는 등 큰 파장을 일으켰습니다.
한편, 이러한 보안 이슈는 XRP의 시장 가격에도 영향을 미쳤습니다. 발표 당일 XRP는 주요 암호화폐 중 가장 저조한 성적을 기록하며 1.38달러에 거래되었고, 24시간 동안 1.6%, 최근 7일 동안 9.4% 하락했습니다. 이는 시장의 불안감을 반영하는 것으로 해석됩니다.