대체불가능토큰(NFT) 거래소에서 버그가 발생해 고가의 NFT가 아주 낮은 가격에 판매되는 사고가 발생했다.
블록체인 데이터 분석 스타트업 엘립틱(Elliptic)에 따르면 현지시간으로 24일 오전부터 NFT 거래소 오픈씨(OpenSea)에서 100만 달러(약 12억원) 규모의 NFT가 이러한 방식으로 거래됐다. 엘립틱은 최소 3명의 공격자가 8개의 NFT를 구매했으며, 여기에는 '보어드에이프요트클럽' 등 잘 알려진 고가 NFT도 포함돼 있다고 밝혔다.
가령, 보어드에이프요트클럽 9991번 작품은 현재 시세가 우리돈으로 약 2억 4천만원이다. 공격자는 버그를 이용해 최초 발행 가격 수준인 0.77ETH(약 215만원)에 구매했으며, 이를 84.2ETH(약 2억 3천만원)에 되팔아 엄청난 차익을 남겼다.
이번 공격은 NFT 거래소 가격 수정내역을 조작해, 이전 거래가격을 불러오는 방식으로 이뤄졌다. 블록체인 솔루션 기업 오브(Orbs)의 디파이 개발자 로템 야키르는 트위터를 통해 오픈씨의 구매 프로세스를 악용한 사례라고 설명했다.
오픈씨는 블록체인 네트워크 사용 비용인 '가스비(Gas Fee)' 절약을 위해 거래 정보를 자사의 서버(오프체인)에서 우선 처리한다. 판매자가 'NFT를 이 가격에 판매겠다'는 의사를 밝히고 서명한 데이터가 오프체인에 저장된다.
누군가 해당 NFT를 구매한다면, 판매자가 서명한 데이터를 스마트 계약으로 블록체인 네트워크(온체인)에 전송한다. 여기서 서명과 가격 등을 포함한 정보는 온체인 전송 직전에 유효성을 검증한다.
그런데 판매자가 등록한 NFT를 취소하더라도, 해커가 오프체인 있는 서명 내역을 사전에 탈취하면 이 정보를 이용해 구매를 시도하는 것이 가능하다. 물론, 온체인 검증 단계에서는 이미 취소한 정보일 경우 유효성 검증 단계에서 거래가 차단된다.
버그는 여기서 발생한다. 지금까지 오픈씨에는 기 등록한 NFT 판매를 취소하지 않고도 동일한 작품을 다시 등록할 수 있었으며, 온체인에는 해당 정보가 전달되지 않는다. 따라서 과거에 등록한 NFT를 취소하지 않고 새로 재등록할 경우, 과거 오프체인에 등록된 판매 정보는 거래 목록에 보이지 않을 뿐 그대로 남아있다. 이 버그를 악용하면 공격자는 현재 표시된 NFT 가격이 아닌, 오래전 등록된 낮은 가격으로 고가 NFT를 구매할 수 있다.
해당 버그는 현재 수정됐다. 하지만, NFT 판매자는 안전한 거래를 위해 과거 등록한 판매 내역을 확인하고 취소하는 것이 좋다.
블록체인 데이터 분석 스타트업 엘립틱(Elliptic)에 따르면 현지시간으로 24일 오전부터 NFT 거래소 오픈씨(OpenSea)에서 100만 달러(약 12억원) 규모의 NFT가 이러한 방식으로 거래됐다. 엘립틱은 최소 3명의 공격자가 8개의 NFT를 구매했으며, 여기에는 '보어드에이프요트클럽' 등 잘 알려진 고가 NFT도 포함돼 있다고 밝혔다.
가령, 보어드에이프요트클럽 9991번 작품은 현재 시세가 우리돈으로 약 2억 4천만원이다. 공격자는 버그를 이용해 최초 발행 가격 수준인 0.77ETH(약 215만원)에 구매했으며, 이를 84.2ETH(약 2억 3천만원)에 되팔아 엄청난 차익을 남겼다.
이번 공격은 NFT 거래소 가격 수정내역을 조작해, 이전 거래가격을 불러오는 방식으로 이뤄졌다. 블록체인 솔루션 기업 오브(Orbs)의 디파이 개발자 로템 야키르는 트위터를 통해 오픈씨의 구매 프로세스를 악용한 사례라고 설명했다.
누군가 해당 NFT를 구매한다면, 판매자가 서명한 데이터를 스마트 계약으로 블록체인 네트워크(온체인)에 전송한다. 여기서 서명과 가격 등을 포함한 정보는 온체인 전송 직전에 유효성을 검증한다.
그런데 판매자가 등록한 NFT를 취소하더라도, 해커가 오프체인 있는 서명 내역을 사전에 탈취하면 이 정보를 이용해 구매를 시도하는 것이 가능하다. 물론, 온체인 검증 단계에서는 이미 취소한 정보일 경우 유효성 검증 단계에서 거래가 차단된다.
버그는 여기서 발생한다. 지금까지 오픈씨에는 기 등록한 NFT 판매를 취소하지 않고도 동일한 작품을 다시 등록할 수 있었으며, 온체인에는 해당 정보가 전달되지 않는다. 따라서 과거에 등록한 NFT를 취소하지 않고 새로 재등록할 경우, 과거 오프체인에 등록된 판매 정보는 거래 목록에 보이지 않을 뿐 그대로 남아있다. 이 버그를 악용하면 공격자는 현재 표시된 NFT 가격이 아닌, 오래전 등록된 낮은 가격으로 고가 NFT를 구매할 수 있다.
해당 버그는 현재 수정됐다. 하지만, NFT 판매자는 안전한 거래를 위해 과거 등록한 판매 내역을 확인하고 취소하는 것이 좋다.
해커들의 기술력은 점점 더 강력해지는구나...암호화폐나 NFT, 메타버스에 대한 해킹 방지 시스템이 하루 빨리 강화되여야 될 것 같다.