---
title: "이더리움 상하이 DoS 공격"
title_en: "Ethereum Shanghai DoS attacks"
aliases: ["Ethereum Shanghai DoS attacks", "EIP-150", "Ethereum 2016 DoS attacks", "Ethereum transaction spam attack 2016", "Spurious Dragon", "Tangerine Whistle", "스퓨리어스 드래건", "이더리움 2016 디도스 공격", "이더리움 상하이 공격", "이더리움 트랜잭션 스팸 공격", "탠저린 휘슬"]
type: 사건
url: https://wiki.tokenpost.kr/w/ethereum-shanghai-dos-attacks-2016
canonical: https://wiki.tokenpost.kr/w/ethereum-shanghai-dos-attacks-2016
language: ko
publisher: "토큰포스트"
citation: "토큰포스트 위키, “이더리움 상하이 DoS 공격”, 2026-10-03 수정, https://wiki.tokenpost.kr/w/ethereum-shanghai-dos-attacks-2016"
updated: 2026-10-03T01:13:59.495+00:00
created: 2026-10-03T01:13:56.526696+00:00
status: reviewed
---

# 이더리움 상하이 DoS 공격

이더리움 상하이 DoS 공격(Ethereum Shanghai DoS attacks)은 2016년9월부터 10월까지 누군가 값싼 가스로 디스크 조회가 많은 명령어를 반복 호출해 [이더리움](https://wiki.tokenpost.kr/w/ethereum) 노드를 느리게 만든 서비스 거부 공격이다. 공격이 개발자 회의 데브콘2가 열린 상하이 일정과 겹쳐 이 이름이 붙었고, 이더리움은 두 차례 하드포크로 명령어 가스 값을 고치고 공격이 만든 빈 계정을 지웠다.

**다른 이름**: Ethereum Shanghai DoS attacks · EIP-150 · Ethereum 2016 DoS attacks · Ethereum transaction spam attack 2016 · Spurious Dragon · Tangerine Whistle · 스퓨리어스 드래건 · 이더리움 2016 디도스 공격 · 이더리움 상하이 공격 · 이더리움 트랜잭션 스팸 공격 · 탠저린 휘슬

**분류**: 사건

## 1. 블록 하나 검증에 1분

[이 문단의 원문](https://wiki.tokenpost.kr/w/ethereum-shanghai-dos-attacks-2016#section-attack)

2016년9월18일 이더리움 개발자 제프리 윌케는 게스(Geth) 노드들이 블록 2,283,416을 처리하다 메모리가 바닥나 멈춘다는 보안 경고를 올렸다. 다음 날부터 상하이에서 데브콘2가 열릴 예정이었다. 개발팀은 몇 시간 만에 'From Shanghai, with love'라는 이름의 게스 1.4.12를 내놓았다. 공격은 그 뒤에도 방식을 바꿔 이어졌다. 이더리움 재단은 9월22일 공지에서 공격자가 EXTCODESIZE 명령어를 반복 호출해 거래 하나당 약 5만 번의 디스크 조회를 일으켰고, 그 결과 블록 하나를 검증하는 데 20~60초가 걸렸다고 설명했다. 블록 생성 속도는 평소의 2분의 1에서 3분의 1로 떨어졌다. 재단은 합의가 깨져 체인이 갈라지거나 네트워크가 완전히 멈추지는 않았다고 밝혔다. 채굴자들에게는 블록 가스 한도를 150만으로 낮추라고 권고했다.[^1][^2]

## 2. 두 번의 하드포크

[이 문단의 원문](https://wiki.tokenpost.kr/w/ethereum-shanghai-dos-attacks-2016#section-forks)

원인은 상태 트리를 읽는 명령어의 가스 값이 실제 처리 비용보다 지나치게 낮다는 데 있었다. [비탈릭 부테린](https://wiki.tokenpost.kr/w/vitalik-buterin)이 2016년9월24일 작성한 EIP-150은 EXTCODESIZE와 EXTCODECOPY를 20에서 700으로, CALL을 40에서 700으로, SLOAD를 50에서 200으로 올리고, 0이던 SELFDESTRUCT에 5,000을 매겼다. 이 내용은 2016년10월18일 블록 2,463,000에서 '탠저린 휘슬(Tangerine Whistle)' 하드포크로 적용됐다. 공격자는 아무것도 들어 있지 않은 빈 계정을 대량으로 만들어 상태 데이터를 부풀려 놓기도 했다. 2016년11월22일 블록 2,675,000의 '스퓨리어스 드래건(Spurious Dragon)' 하드포크는 EIP-161로 이런 빈 계정을 지울 수 있게 했다. 같은 포크에 리플레이 공격을 막는 EIP-155와 컨트랙트 코드 크기를 2만4,576바이트로 제한하는 EIP-170도 들어갔다. [더 다오 해킹](https://wiki.tokenpost.kr/w/the-dao) 뒤 몇 달 만에 이더리움이 다시 하드포크를 두 번 한 셈이며, 이후 이더리움은 명령어 가스 값을 실제 비용에 맞춰 여러 차례 조정했다.[^3][^4][^5]

## 3. 연표

- **2016.09** (사건) 9월18일 블록 2,283,416에서 게스 노드 다운, 게스 1.4.12 긴급 배포
- **2016.09** (사건) 9월22일 재단, EXTCODESIZE 반복 호출 공격 공지와 가스 한도 하향 권고
- **2016.10** (이정표) 10월18일 탠저린 휘슬 하드포크(EIP-150)
- **2016.11** (이정표) 11월22일 스퓨리어스 드래건 하드포크(EIP-155·160·161·170)

## 각주

[^1]: [Transaction spam attack: Next Steps](https://blog.ethereum.org/2016/09/22/transaction-spam-attack-next-steps) — Ethereum Foundation Blog · 2016-09-22
[^2]: [Wallet stop syncing at block 2,283,415 / 2,283,416](https://github.com/ethereum/mist/issues/1780) — GitHub ethereum/mist
[^3]: [EIP-150: Gas cost changes for IO-heavy operations](https://eips.ethereum.org/EIPS/eip-150) — Ethereum Improvement Proposals · 2016-09-24
[^4]: [EIP-161: State trie clearing](https://eips.ethereum.org/EIPS/eip-161) — Ethereum Improvement Proposals · 2016-10-24
[^5]: [History of Ethereum](https://ethereum.org/en/history/) — ethereum.org

---

인용: 토큰포스트 위키, “이더리움 상하이 DoS 공격”, 2026-10-03 수정, https://wiki.tokenpost.kr/w/ethereum-shanghai-dos-attacks-2016
원문: https://wiki.tokenpost.kr/w/ethereum-shanghai-dos-attacks-2016
최종 수정: 2026-10-03T01:13:59.495+00:00
발행: 토큰포스트 위키. 인용할 때 문서 제목과 원문 주소를 함께 밝혀 주세요.