EIP-3554 난이도 폭탄 2021년 12월로 연기 (Difficulty Bomb Delay to December 2021)
최종 확정 · 합의·스테이킹 · 원문 상태 Final · 2021-05-06 작성
난이도 폭탄의 효과가 2021년 12월 첫 주에 나타나도록 미루는 변경입니다. 클라이언트가 난이도를 계산할 때 실제 블록 번호 대신 9,700,000을 뺀 가짜 블록 번호를 쓰게 합니다.
왜 필요한가
이더리움의 난이도 계산식에는 블록 번호가 커질수록 기하급수적으로 커지는 항, 이른바 난이도 폭탄(difficulty bomb)이 들어 있습니다. 이 항이 커지기 시작하면 블록 하나를 만드는 시간이 점점 길어져 네트워크를 쓰기 불편해집니다. 이 제안이 나온 2021년 5월 시점의 목표는 상하이(Shanghai) 업그레이드나 머지(the Merge)를 2021년 12월 전에 끝내는 것이었습니다. 그래서 폭탄 효과가 2021년 12월 첫 주에 맞춰 나타나도록 시점을 조정하고 그때 가서 폭탄을 다시 미루거나 아예 없애기로 했습니다. 효과가 눈에 보이기 시작하되 당장 급하지는 않은 수준으로 맞춰, 필요하면 대응할 여유를 남긴 설계입니다.
무엇이 바뀌나
지금
- 난이도 계산에 실제 블록 번호를 그대로 씁니다
- 폭탄 효과가 상하이 업그레이드나 머지 준비가 끝나기 전에 나타날 수 있습니다
EIP-3554 이후
- FORK_BLOCK_NUMBER부터는 실제 번호에서 9,700,000을 뺀 가짜 블록 번호로 폭탄 항을 계산합니다
- 예측상 폭탄 효과가 2021년 12월 첫 주에 블록 시간 0.1초 지연으로 시작해 월말에 1초 지연 수준이 됩니다
누구에게 영향이 있나
- 사용자: 블록 생성이 느려져 거래 확인이 늦어지는 불편을 2021년 12월 전까지는 겪지 않습니다
- 채굴자: 난이도가 폭탄 때문에 급격히 오르는 일 없이 평소대로 블록을 만듭니다
- 클라이언트 팀: 난이도 계산식의 폭탄 항에서 블록 번호를 가짜 번호로 바꿔 끼우는 수정을 반영합니다
- 코어 개발자: 상하이 업그레이드나 머지를 2021년 12월 전에 내놓을 시간을 법니다
심층 설명
가짜 블록 번호 공식
FORK_BLOCK_NUMBER부터 calc_difficulty의 지수형 아이스 에이지(ice age) 항을 계산할 때 block.number 대신 fake_block_number = max(0, block.number - 9_700_000)을 씁니다. FORK_BLOCK_NUMBER 전에는 기존대로 block.number를 그대로 씁니다. max(0, ...)은 뺀 값이 음수가 되는 경우를 막습니다. 난이도 계산식 전체를 바꾸는 것이 아니라 폭탄 항에 들어가는 블록 번호만 바꾸는 최소한의 수정입니다.
지연 폭을 정한 예측 스크립트
원문은 predict_diff_bomb_effect 함수로 몇 달 뒤 블록 시간에 미치는 영향을 비율로 예측합니다. 마지막 예측에 쓴 값은 current_blknum = 12382958, current_difficulty = 7393633000000000, block_adjustment = 9700000, months = 6입니다. 한 달치 블록 수는 (86400 * 30) // 13.3으로 잡고 폭탄 항은 2 ** ((future_blknum - block_adjustment) // 100000 - 2)로 계산합니다. 이 예측에 따르면 2021년 12월 첫 주에 블록 시간이 0.1초, 12월 말에는 1초 늘어납니다. 효과가 보이기 시작해 대응할 이유는 생기지만 급박하지는 않아 필요하면 우회할 여유가 있는 수준입니다.
왜 2021년 12월인가
상하이 업그레이드나 머지가 2021년 12월 전에 일어나는 것을 목표로 잡았기 때문입니다. 그 시점이 되면 폭탄을 다시 조정하거나 아예 제거할 수 있습니다. 즉 이 EIP는 폭탄 문제를 끝내는 것이 아니라, 다음 결정 시점을 2021년 12월로 못 박는 연기안입니다.
하위 호환성
알려진 하위 호환성 문제는 없습니다. 난이도 계산에 들어가는 블록 번호만 바꾸므로 기존 트랜잭션이나 컨트랙트 동작에는 영향이 없습니다.
보안 고려 사항
난이도 효과를 잘못 예측하면 다음 하드포크가 나올 때까지 블록 시간이 예상보다 길어질 수 있습니다. 난이도가 크게 출렁이면 이 예측이 심하게 어긋날 수 있고 장기적인 난이도 조정에 따른 점진적 블록 시간 변화도 폭탄 에포크의 타이밍에 영향을 줍니다. 다만 이는 네트워크 사용성의 문제이지 보안 문제로 이어질 가능성은 낮다고 원문은 평가합니다.
상태와 제안 정보
이 EIP는 상태가 Final로 확정된 코어(Core) 표준입니다. James Hancock이 2021년 5월 6일에 제안했습니다. 이전의 폭탄 연기들과 마찬가지로 가짜 블록 번호 방식 한 가지만 담은 짧은 명세입니다.