Tech/EIPs/#100
EIP 100카테고리 · 코어유형 · 표준 트랙상태 · 최종

Change difficulty adjustment to target mean block time including uncles

EIP-100은 블록 난이도 조정 공식을 수정하여 엉클 블록을 포함한 평균 블록 시간을 목표로 설정하도록 변경한 제안으로, 최종 승인되었습니다. 이를 통해 엉클 블록 생성률이 높아도 블록 생성 속도가 과도하게 빨라지는 현상을 방지했습니다.

문제 배경

기존 난이도 조정 알고리즘은 메인 체인 블록 타임만을 기준으로 했습니다. 엉클 블록이 많이 생성되면 네트워크의 실제 해시레이트가 반영되지 않아 블록 시간이 목표치보다 빨라지는 문제가 있었습니다.

기술적 변경

새로운 공식은 부모 블록에 포함된 엉클 수를 고려하여 난이도를 조정합니다. 엉클이 많을수록 더 높은 난이도가 설정되어 전체 블록 생성 속도(메인 + 엉클 포함)가 안정화됩니다.

구체적 공식

새 난이도는 parent_diff + parent_diff // 2048 * max(1 + len(parent.uncles) - (block_timestamp - parent_timestamp) // 9, -99)로 계산됩니다. 엉클 수를 조정 인자에 반영하는 것이 핵심입니다.

네트워크 안정성 효과

EIP-100은 Byzantium 하드포크(2017)에서 활성화되었습니다. 이를 통해 네트워크 해시레이트의 변동에 대해 더 정확하게 반응하는 난이도 조정이 가능해졌습니다.

지분 증명으로의 전환

이더리움이 The Merge를 통해 지분 증명으로 전환한 이후 작업 증명 기반 난이도 조정 메커니즘은 사용되지 않게 되었습니다. 그러나 EIP-100은 PoW 시대 이더리움 보안의 중요한 개선 사항이었습니다.

공식 EIP 문서open_in_new