Try   HackMD

중앙화된 블록체인?

  • Axie Infinity - Ronin Network (이더리움)
  • Worm Hole Bridge (솔라나)

Axie Infinity - Ronin Network

Axie Infinity 란?

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • 2021년 큰 흥행을 이끌었던 대표적인 1세대 P2E (Play to Earn) 게임이다. 이 게임은 2018년 Crypto Kitty (최초의 이더리움 기반 NFT) + 포켓몬을 결합한 게임으로, 캐릭터를 키우고, 다른 유저와의 전투 (PvP) 또는 던전을 깨면서 (PvE), 돈을 버는 구조의 게임이다.
  • 이더리움 기반의 게임으로, 처음에 게임을 시작하기 위해서 3 Axie로 팀을 맞춰야 하는데, 2022.05.03 기준, 가장 저렴한 1 Axie가 약 $10 에 거래되고 있다. [1] 한 때, 인기가 많았을 때는 팀을 맞추는데 약 100만원 정도 들었다고 한다.
  • Axie Infinity는 Hashed, a16z, Consensys, Libertus Capital, Collab+Currency, Binance 등 대형 VC와 블록체인과 크립토 관련 기업들로부터 투자를 받은 것으로 유명하다.
  • Axie Infinity의 토크노믹스는 다음과 같다.
    • 유저는 자신의 Axie 팀으로 PvP 또는 챌린지를 수행해서 SLP (Smooth Love Portion) 를 획득. SLP는 Axie Infinity 내 유틸리티 토큰이고, Uniswap 같은 탈중앙화 거래소 (Dex) 뿐만 아니라 바이낸스와 같은 중앙화 거래소 (Cex)에서도 거래 가능.
    • 유저는 AXS (고정) + SLP (breeding 횟수에 따라 변동) 를 소각하여 새로운 Axie를 생성(breeding). 새로 생성된 Axie는 마켓에서 거래되고, 신규 유저는 AXS, ETH, Fiat (달러)를 통해서 Axie를 구입.
    • 유저는 게임 뿐만 아니라 AXS를 스테이킹함으로써 Axie Infinity의 거버넌스에 참여. AXS를 스테이킹한 유저들은 커뮤니티 운영을 위한 투표권을 갖고 있고, Community Treasury라는 커뮤니티의 금고로 들어오는 수수료에 대한 수익을 보상으로 얻음.

Axie Infinity 게임 내 토크노믹스

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

AXS 공급 비율과 사용처
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Ronin Network 란?

  • 위에서 언급된 유저의 AXS, SLP 뿐만 아니라 게임 내 사용되는 아이템과 랜드 등 디지털 자산들은 기존에 이더리움 기반으로 거래가 되었다. 하지만, 이더리움의 느린 속도와 비싼 수수료 때문에, Axie Infinity 게임 제작사인 Sky Mavis는 별도의 사이드 체인인 Ronin Side Network (이하 Robin Network)를 개발했다. 2021년 4월, 이더리움에서 Ronin Network 마이그레이션을 진행했고, 이후 폭발적으로 사용자가 증가하게 되었다. [2]

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  • Ronin Network 에 대해서 알아보기 전에, 사이드 체인은 무엇일까? 사이드 체인은 이더리움과 같은 메인 네트워크의 일부 기능을 수행하는 확장 솔루션이다. 기존의 메인 네트워크는 transaction이 증가함에 따라서 수수료 비용도 비싸지고, transaction 처리 속도도 느려진다. (이더리움의 경우 15초에 하나의 블록을 생성하는데, 사람들이 너무 몰리게 되면 15초에 하나 생성되는 블록에도 포함되지 못하고 내 transaction은 30초, 45초로 미뤄질 수 있다.) 이와 같은 문제를 해결하기 위해서 사이드 체인이 도입되었다. 사이드 체인의 특징은 다음과 같다. [3]

    1. 독립적인 합의 알고리즘: 사이드 체인은 메인 네트워크와 별개의 독립적인 합의 알고리즘을 갖고 있기 때문에 PoW를 따르지 않고 PoS, PoA, BFT 등 다른 합의 알고리즘을 별도로 사용.
    2. 종속적인 검증 노드: 사이드 체인은 독립적인 노드를 갖지 않고, 메인 네트워크에 있는 노드를 선정.
    3. 멀티 체인: 하나의 메인 네트워크는 여러 기능을 사이드 체인으로 분산시켜 처리하는 멀티 체인 구조를 가짐. 즉, 사이드 체인은 메인넷의 특정 기능을 담당하는 체인임.
      Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
  • Ronin Network 의 특징은 다음과 같았다. [4]

    • Axie Infinity 게임에서 사용되는 AXS, SLP, 랜드 등 디지털 자산을 관리하는 목적의 사이드 체인.
    • 9개의 노드로 구성되어 있는 검증자 노드로 구성. 9개 중 5개의 노드가 합의하면 성공적으로 검증된 transaction으로 문제없이 받아들여짐. 이 9개의 검증 노드를 구성하는 노드 중 4개를 Axie Infinity 제작사인 Sky Mavis가 소유.
    • Operator 가 검증 노드를 선택하는 방식으로 운영. (추후에 Multisig 방식을 전환)

해킹 과정

  1. 2021년 11월, Axie Infinity 유저가 폭증함에 따라 사이드 체인인 Ronin Network도 높은 트래픽을 감당하기 어려워짐.
  2. Sky Mavis 사는 유저 사용성을 개선하기 위해, 다른 검증 노드들의 키를 빌려와서 자체 서버에 두고 운영.
  3. 2021년 12월, 개인키를 다른 검증 노드들에게 반납. 하지만, 여기서 반납 후 키를 서버에서 폐기하지 않음. 즉, Sky Mavis 서버에 Ronin Network 내 디지털 자산을 이동(deposit/withdraw) 할 수 있는 모든 키가 있었음.
  4. 2022년 3월, Sky Mavis 서버를 해킹한 해커가 아직 폐기되지 않은 개인키들을 발견. 9개 중 4개 (Sky Mavis 서버에 저장) + 1개 (다른 검증 노드), 총 5개의 키가 있으면 디지털 자산을 이동시킬 수 있으므로 총 6억 달러 (7000억원) 규모의 디지털 자산을 이동.
  5. 해커는 1주일 전 미리 만들어 놓은 바이낸스 지갑을 통해서 AXS, ETH, SLP 등 자산을 이동시킴.
  6. 약 1주일 후 한 Axie Infinity 유저가 자신의 자산이 출금되지 않은 것을 발견하고 Sky Mavis 측에 문의.
  7. Sky Mavis 측은 해킹 사실을 인정.

이후 대응

  1. Sky Mavis 측은 9개의 검증 노드의 5개가 아닌 8개의 노드가 서명할 경우 디지털 자산을 옮기도록 보안을 강화.
  2. 피해 보상을 위해 Binance 주도 하에 Animoca Brands, a16z 등 투자사들이 1억 5천만 달러 자금 조달에 참여함.
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

시사하는 바

  • 블록체인 자체가 보안 해킹에 노출된 적은 없음.
  • 블록체인의 확장성(scalability)나 상호운용성(interoperability)을 개선하기 위해 사용되는 사이드 체인이나 브릿지 등은 종종 해킹됨.
  • 블록체인은 탈중앙화되었지만, 사이드 체인이나 브릿지는 탈중앙화 되어있지 않을 수도 있음 (예. Ronin Network처럼 실상 키들이 독점 및 중앙 관리하는 경우)
  • 또는 검증 노드들의 개수가 메인 네트워크보다 많지 않을 수 있어 보안 수준이 상대적으로 낮을 수 있음.
  • 기술적인 문제보다, 안일한 보안 인식인 경우가 많음.
  • 이더리움-솔라나 브릿지인, *웜홀 해킹 사건도 기술적인 문제보다는 브릿지를 설계할 때, 보안 취약점을 고려하지 않은 채 설계한 안일한 보안 인식이 문제였음.

Appendix

솔라나, 웜홀 해킹 사건

  • 웜홀은 이더리움-솔라나 크로스 체인 브릿지임.
  • 크로스 체인 브릿지는 사이드 체인과는 개념이 다름. 사이드 체인은 메인넷의 일부 기능을 담당한다면, 크로스 체인은 서로 다른 네트워크 간 자산 이동을 가능하도록 하는 역할.
  • 한 쪽 네트워크의 자산을 lock 시켜놓고 다른 쪽 네트워크에 mint하는 방식으로 동작하며, 양방향에서 자산을 주고 받을 수 있어 two-way pegging 방식으로 동작.
  • 이더리움을 만든 비탈릭 부테린 또한, 레이어 1 네트워크의 자산 (예를 들어, ETH, SOL) 간 브릿지는 보안에 취약하다고 경고함.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

해킹 과정

이더리움-솔라나 웜홀 브릿지

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • 이 사건이 충격적이었던 이유는, 80k 의 이더리움이 lock 되지 않았지만 그에 상응하는 이더리움이 정상적인 검증을 통해서 발행되었음.
  • 브릿지의 검증자 (guardians) 들이 정상적으로 동작하는 방식
    1. 검증자들이 각자 signature 를 생성.
    2. 이들의 signature 를 모아서 signature set 을 생성. 검증자가 유효할 때만 signature 만 받
    3. 승인이 되면 wrapped 이더리움을 정상적으로 발행.
  • 문제는 소스코드의 버그에 있었는데 '2. 검증자들가 유효할 때만 signature를 받음'에서 의 유효성 검증을 위해서 사용한 함수 (verify_signatures) 가 실제로는 검증하지 않았음.
  • 다시 말해, verify_signatures 명령어에서 load_instruction_at 이라는 명령어를 사용했는데, 이 함수 안에서 입력값으로 주어진 검증자 계정(sysvar program account)을 확인하지 않고 바로 true 를 반환.
  • 어떤 계정이 주어져도 항상 검증자라고 생각함.
  • 해커는 이 취약점을 노리고, 가짜 계정을 넣고 유효한 검증자 역할을 했음.
  • 그 결과 signuature_set 전부가 true 로 표시되었고, 모든 signature 가 valid 하다고 잘못 판단.
  • 브릿지 설계 시 발생한 코드 결함때문에 wrapped 이더리움을 발행하는 함수(post_vaa)를 정상적으로 수행할 수 있었음.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →