Published Aug 9, 2022
By Qredo Team

크로스체인 브리지의 저주: 노마드 해킹 사건 분석

요약

  • 노마드(Nomad) 해킹은 서로 다른 두 개의 블록체인 아키텍처 간의 링크 생성에 사용되는 복잡한 스마트 컨트랙트에서 발생한 결함에 따른 결과였습니다.

  • Qredo는 블록체인 상호 운용성에 대해 전혀 다른 접근 방식을 취합니다. 블록체인을 스마트 컨트랙트와 직접 연결하는 것이 아니라 Qredochain을 통해 상호 운용 가능한 레이어 2 네트워크로 연결합니다. 자산은 항상 탈중앙화 MPC에 의해 보호됩니다.

서부 개척 시대에 가장 큰 강도 사건은 기차 강도 사건이 있었습니다.

크립토의 금융 분야에서는 이동 중인 자산도 수익성 있는 대상으로 입증되고 있습니다.

Chainalysis에 따르면 2022년 현재까지 해킹의 69%를 크로스 체인 브리지 해킹이 차지했으며, 20억 달러 이상이 도난당했으며, 크로스 체인 보안에 대한 아이디어 자체가 정밀 조사를 받고 있습니다.

저희는 이 게시물에서 최근 발생한 크로스체인 해킹인 2022년 8월의 노마드 해킹에 대해 분석하고 Qredo가 블록체인 상호 운용성을 위한 더 나은 모델을 제공하는 이유를 설명합니다.

브리지의 종류

블록체인 간에 자산을 이동하려면 다음 두 가지 브리지 유형 중 하나를 선택할 수 있습니다: 신뢰할 수 있는 브리지, 무신뢰 브리지

  • 신뢰할 수 있는 브리지(Trusted bridge)는 운영에 중앙 집중식 엔티티를 사용하기 때문에 신뢰할 수 있는 당사자의 보안에 의존하여 자산에 대한 통제권을 포기해야 합니다. 이 모델은 암호화폐의 P2P 정신과는 정반대입니다.

무신뢰 브리지(Trustless bridge)는 스마트 컨트랙트와 알고리즘에 의존합니다. 자산에 대한 제어를 유지할 수 있지만 스마트 컨트랙트와 기본 블록체인의 보안에 의존해야 합니다.

무신뢰 브리지: 해커들의 주요 표적이될 수 있습니다

무신뢰 브리지는 일반적으로 각 체인에 스마트 컨트랙트를 통해 작동합니다. 토큰은 한 체인의 스마트 컨트랙트에 락(lock)되어 있으며 간혹 "래핑"된 형태로 다른 체인에서 재발행됩니다.

예를 들면, 100개의 토큰을 솔라나에서 이더리움으로 이동하기 위해 토큰 소유자는 토큰을 솔라나의 브리징 스마트 컨트랙트에 락(lock)시킵니다. 그런 다음 브리징 컨트랙트는 이더리움에서 100개의 비슷하거나 래핑된 버전의 토큰을 발행합니다.

토큰을 원래 체인으로 되돌리기 위해 토큰 소유자는 스마트 컨트랙트로 토큰을 다시 보내 소각하여 다른 체인의 브리징 컨트랙트를 트리거하여 토큰을 해제합니다.

이러한 브리지가 지속적으로 공격 대상이 되는 이유는 크게 두 가지며 이유는 다음과 같습니다:

  1. 가치(Value)
    크로스체인 브리지는 간혹 스마트 컨트랙트에 엄청난 양의 자산을 보유하고 있습니다.

  2. 취약점(Vulnerabilities)
    아키텍처, 컨센서스 알고리즘 및 프로그래밍 언어의 기술적 차이로 인해 서로 다른 블록체인을 연결하기가 매우 어려울 수 있습니다. 오류는 쉽게 발생할 수 있으며 공격자가 취약점을 악용할 수 있습니다.

노마드 해킹이 발생한 이유

노마드 브리지를 사용하면 아발란체 및 이더리움을 포함한 여러 블록체인 간에 토큰을 전송할 수 있습니다. 최신 크로스체인 유출 사건에서는 1억 5천만 달러 이상의 암호화폐 자산이 빠져나갔습니다.

그래서, 어떻게 이런 일이 일어났을까요?

노마드 브리지에는 두 가지 구성 요소가 있습니다: 각체인의 스마트 컨트랙트 그리고 체인에 걸쳐 상태를 보호하고 전달하는 오프체인 에이전트입니다.

해당 유출사건은 수신받는 체인의 스마트 컨트랙트("복제 컨트랙트"으로 알려짐)을 방해 행위에 취약하게 만드는 최근 업그레이드를 이용했습니다.

어떻게 이런 일이 발생했는지 정확하게 이해하기 위해서는 머클 트리(일명 해시 트리)로 알려진 특정 데이터 구조에 익숙해져야 합니다.


머클 트리는 무엇일까요?

머클 트리는 데이터 세트에 대한 고유 식별자를 생성하기 위해 암호화 및 데이터 과학에 사용되는 데이터 구조입니다. 블록체인에서 머클 트리는 블록의 모든 데이터를 암호화, 요약 및 검증하는 데 사용됩니다. 이러한 방식으로 네트워크의 피어 간에 전달될 때 블록의 모든 데이터가 완전하고 손상되지 않았으며 변경되지 않았는지 신속하게 확인하는 디지털 지문처럼 작동합니다. 머클 트리의 핵심 요소 중 하나는 머클 루트입니다. 머글 루트는 해시된 모든 트랜잭션의 해시(“leaves”으로 불림) 이며 해당 블록에 포함된 모든 데이터의 무결성을 나타냅니다.

그렇다면 노마드 브리지에는 어떤 일이 일어났을까요?

일반적으로 초기화된 트랜잭션 해시는 트랜잭션을 포함하는 블록의 머클 루트 해시와 연결됩니다. 이를 통해 검증인(validators)은 트랜잭션이 입증되었는지 확인하고 블록체인 상태를 업데이트할 수 있습니다.

메시지가 초기화되지 않았으므로, 검증되지 않은 메시지의 머글 루트는 0x00이 됩니다. 

결과적으로, 일반적인 업그레이드 중에 노마드 팀은 실수로 신뢰할 수 있는 루트를 0x00으로 초기화했습니다. 이는 머글 트리가 트랜잭션이 유효하다는 것을 증명하지 않는다는 것을 의미합니다.

따라서 누구나 브리지에서 자산을 인출하는 기존 트랜잭션을 찾고 대상 주소를 자신의 주소로 대체한 다음 자산을 가져오기 위해 블록체인으로 다시 브로드캐스팅(rebroadcasting)할 수 있습니다.

초기 공격자가 이것이 가능하다는 것을 입증하자 다른 사람들도 빠르게 합류하여 최초의 탈중앙화된 약탈 이벤트를 만들었습니다.

크로스체인 상호 운용성에 대한 Qredo의 접근 방식

최근 거의 모든 브리지 해킹과 마찬가지로 노마드 해킹은 두 개의 서로 다른 블록체인 아키텍처 간의 링크 생성에 사용되는 복잡한 스마트 컨트랙트 취약성의 결과였습니다.


Qredo는 블록체인과 스마트 컨트랙트를 직접 연결하는 것이 아니라 Qredochain을 통해 상호 운용 가능한 레이어 2 네트워크로 연결하는 다른 접근 방식을 취합니다.


이러한 방식으로 Qredo에 보유된 자산은 기본 체인에서 항상 보안을 유지하고 은행급 보안 및 탈중앙화 MPC의 맞춤형 거버넌스에 의해 뒷받침됩니다.

그 후 레이어 2 Qredochain은 자산 레지스트리 역할을 하여 Qredo 네트워크의 월렛 간에 자산을 즉시 거래할 수 있도록 하고 메타마스크 인스티튜셔널WalletConnect와의 통합을 통해 다른 블록체인에 배포할 수 있습니다.

Qredo 월렛에 보관된 자산은 항상 사용자의 통제 하에 있으며 거버넌스 정책을 통해서만 관리할 수 있습니다.

블록 탐색기를 통해 각 레이어 2 Qredo 월렛이 기본 네트워크 주소에 매핑되는 방식에 대한 투명하고 변경할 수 없는 기록을 보여주며 지불 능력(Solvency)이 보장됩니다.

QREDO 월렛 만들기