Tangerine Whistle 하드포크

메인넷 2016-10-18

DoS 공격에 악용되던 옵코드의 가스 비용을 올렸습니다.

무엇이 달라졌나

사용자
네트워크를 느리게 만들던 공격이 멈춰 거래 처리가 다시 안정됐습니다. 2016년 가을 공격자는 값이 싸게 매겨진 명령어를 거래 하나에서 반복 호출해 노드가 블록 하나를 처리하는 데 오래 걸리게 했고 그동안 거래 확정이 늦어졌습니다. 이 포크로 그 명령어들의 가스 비용이 올라 같은 공격에 훨씬 많은 수수료가 들게 됐습니다. 보통 송금이나 토큰 전송의 수수료는 거의 달라지지 않았고 사용자가 따로 할 일은 없었습니다.
지갑·앱 개발자
컨트랙트 안에서 다른 계정의 잔액이나 코드를 읽는 명령어, 저장 공간을 읽는 명령어, 다른 컨트랙트를 호출하는 명령어의 가스 비용이 크게 올랐습니다. 이런 동작을 반복문 안에서 많이 쓰는 컨트랙트는 같은 일에 더 많은 가스가 들었고 가스 한도를 빠듯하게 잡아 둔 함수는 실행이 실패할 수 있었습니다. 호출할 때 남은 가스를 전부 넘기지 못하고 일부를 반드시 남겨 두도록 규칙도 바뀌어, 호출 가스를 고정값으로 적어 둔 코드는 점검이 필요했습니다.
노드 운영자
가장 직접 혜택을 본 쪽입니다. 공격 기간에는 디스크를 많이 읽는 명령어가 싼 값에 반복 실행돼 블록 하나를 검증하는 데 평소보다 훨씬 오래 걸렸고 동기화가 뒤처지는 노드가 많았습니다. 포크 뒤에는 명령어 비용이 실제 처리 부담에 가깝게 맞춰져 블록 처리 시간이 정상으로 돌아왔습니다. 하드포크이므로 정해진 블록 높이 전에 클라이언트를 새 버전으로 올려야 했고 올리지 않은 노드는 옛 체인에 남았습니다.

주요 EIP

← 하드포크 · 로드맵