옵티미즘 무한 발행 버그

사건표준

Optimism infinite money bug

토큰포스트 위키인용하기

다른 이름 Optimism infinite money bug · Optimism bug · Optimism infinite money duplication · Optimism SELFDESTRUCT bug · saurik Optimism bounty · 사우릭 옵티미즘 · 옵티미즘 SELFDESTRUCT 버그 · 옵티미즘 무한 복제 버그 · 옵티미즘 버그

옵티미즘 무한 발행 버그(Optimism infinite money bug)는 이더리움 레이어 2 네트워크 옵티미즘의 노드 소프트웨어 l2geth에서 계약이 스스로를 파괴할 때 잔액이 지워지지 않아 이더(ETH)를 끝없이 복제할 수 있었던 치명적 취약점이다. 개발자 제이 프리먼(Jay Freeman, 'saurik')이 2022년 2월 2일 제보했고, 옵티미즘은 몇 시간 안에 수정한 뒤 2월 10일 공개했다. 프리먼은 포상금 2,000,042달러를 받았다. 실제 악용은 없었고, 이 사건은 대형 버그 바운티가 제 역할을 한 사례로 자주 인용된다.

1.자폭한 계약의 돈이 남았다#

옵티미즘은 이더리움 기본 클라이언트 go-ethereum(geth)을 고친 'l2geth'로 OVM 2.0을 돌리고 있었다. 프리먼의 분석에 따르면 문제는 이더리움 가상머신의 SELFDESTRUCT 명령에 있었다. 계약이 이 명령을 실행하면 남은 돈을 받을 '수혜자'를 지정하고 자신의 잔액을 0으로 비워야 한다. 그런데 옵티미즘 L2에서 이더는 ERC20 토큰 계약에 기록됐고, l2geth의 SELFDESTRUCT 처리는 계약이 파괴될 때 이 실제 잔액을 표준 경로로 지우지 않았다. 그래서 이더를 가진 계약이 자신을 파괴하면 수혜자는 돈을 받는데 원래 계약의 잔액도 그대로 남았다. 프리먼은 이 과정을 되풀이하면 브리지 반대편의 차용증 격인 OETH를 원하는 만큼 찍어 낼 수 있고, 겉보기에 정상 이체처럼 보이게 준비금에서 천천히 돈을 빼거나 온체인 오라클을 조작하는 데 쓸 수 있었다고 설명했다. 그는 버그가 이미 40일쯤 전에 한 번 발동됐는데도 아무 경보가 울리지 않았다고 적었다.

[1]

2.제보에서 수정까지#

프리먼은 2022년 2월 2일 옵티미즘에 버그를 알렸다. 그는 ETHDenver 발표 주제를 찾다가 옵티미즘이 이뮤니파이에 내건 최고 2,000,042달러짜리 버그 바운티를 보고 코드를 살폈다고 밝혔다. 당시 옵티미즘은 중앙화된 시퀀서를 운영하고 있어 자기 노드와 인프라를 빠르게 고칠 수 있었다. 포크로그가 전한 옵티미즘 발표에 따르면 수정본은 제보 몇 시간 만에 코반 테스트넷과 메인넷의 모든 인프라 운영자에게 배포됐다. 옵티미즘 코드를 가져다 쓴 보바(Boba)와 메티스(Metis), 브리지 운영자에게도 알려 모두 패치를 마쳤다. 사후 분석에서 실제로 코인이 찍혀 나간 일은 없었고, 버그를 건드린 것은 이더스캔 직원이 우연히 실행한 한 번뿐이었다.

[2][3]

3.200만 42달러#

프리먼은 2022년 2월 10일 트위터에서 최고액인 2,000,042달러를 받았다고 밝혔다. 그는 자신의 글에서 이 금액이 단일 버그에 대한 포상금으로 가장 클 수 있다고 적었다. 포크로그에 따르면 그 직전 최고 사례는 2021년 10월 폴리곤이 8억 5,000만 달러 손실 위험이 있던 취약점 제보에 지급한 200만 달러였다. 옵티미즘 포크인 보바와 메티스의 최고 포상금은 각각 10만 달러와 100만 달러였다. 옵티미즘은 공개 글에서 버그 바운티의 중요성을 강조했다. 같은 시기 웜홀 브리지는 12만 ETH를 도난당했다. 이뮤니파이는 3월 버그 수정 리뷰에서 제보 당시 옵티미즘에 묶인 예치금 약 3억 2,250만 달러가 위험에 노출돼 있었다고 정리했다. 프리먼은 큰 포상금이 실수를 바로잡게 만드는 역할을 했다고 평가했다.

[4][5][6]

4.연표2건

  1. 2022.02사건2월2일 제이 프리먼, l2geth SELFDESTRUCT 잔액 복제 취약점 제보·당일 수정
  2. 2022.02이정표2월10일 취약점 공개, 포상금 2,000,042달러 지급

각주

  1. [1]Attacking an Ethereum L2 with Unbridled Optimism — saurik.com · Jay Freeman (saurik)
  2. [2]Optimism team pays out over $2 million for disclosed vulnerability — forklog.com · ForkLog
  3. [3]Attacking an Ethereum L2 with Unbridled Optimism — saurik.com · Jay Freeman (saurik)
  4. [4]Optimism team pays out over $2 million for disclosed vulnerability — forklog.com · ForkLog
  5. [5]Optimism Infinite Money Duplication Bugfix Review — immunefi.com · Immunefi
  6. [6]Attacking an Ethereum L2 with Unbridled Optimism — saurik.com · Jay Freeman (saurik)

이 문서가 도움이 됐나요?

이 문서 인용하기
토큰포스트 위키, “옵티미즘 무한 발행 버그”, 2026-10-28 수정, https://wiki.tokenpost.kr/w/optimism-infinite-money-bug-2022

문단 3개 · 연표 2건 · 각주 6개