TechFlow 소식에 따르면, Cosmos 공동 창립자인 이단 부크맨(Ethan Buchman)은 BSC 크로스체인 브리지 공격 사건에 대해 다음과 같은 견해를 밝혔다. 이번 사건의 핵심 문제는 해커가 머클 증명(Merkle proof)을 위조할 수 있었다는 점이다. 이는 있을 수 없는 일이며, 머클 증명은 높은 무결성을 제공해야 하기 때문이다. 블록체인 경량 클라이언트(그리고 IBC)는 머클 증명을 기반으로 구축되어 있으며, 많은 블록체인이 데이터를 머클 트리에 저장하여 특정 데이터가 트리에 포함되어 있음을 입증할 수 있는 증명을 생성한다.
Cosmos 체인은 IAVL이라 불리는 머클 트리를 사용하는데, IAVL 저장소는 범위 증명('RangeProof')을 사용하는 API를 공개하고 있다. 그러나 RangeProof 내부 동작에 심각한 오류가 존재함이 드러났다. IAVL RangeProof 코드의 문제점은 InnerNode의 Left 및 Right 필드를 채울 수 있도록 허용한다는 것이다. 공격자는 Right 필드에 정보를 삽입하는 방식을 악용하였으며, 이 정보는 검증되지도 않았고 해시 계산에도 영향을 주지 않아, 검증자가 특정 리프 노드가 트리의 일부라고 잘못 인식하게 만들었다. 결과적으로 그들은 성공적으로 머클 증명을 위조할 수 있었다.
부크맨은 RangeProof 사용이 좋은 선택은 아니었지만, 이를 해결할 수 있는 방법이 있다고 지적했다. 즉, 내부 노드에서 좌우 필드가 모두 채워진 경우 증명을 사전에 거부하면 된다는 것이다. IBC의 머클 증명에서는 IAVL 트리의 내장된 RangeProof 시스템을 사용하지 않고, 대신 ICS23 표준을 활용하여 IAVL 트리로부터 머클 증명을 생성하고 검증한다. ICS23 코드에는 이러한 취약점이 없으며, 명시적으로 'RangeProof'를 거부할 수 있다.원문 링크




