EIP-7045 증명 포함 슬롯 상한 확대 (Increase max attestation inclusion slot)
최종 확정 · 합의·스테이킹 · 원문 상태 Final · 2023-05-18 작성
비콘체인 증명(attestation)을 블록에 넣을 수 있는 기한을 생성 후 한 에폭에서 다음 에폭 끝까지로 늘립니다. LMD-GHOST 보안 분석과 빠른 확정 규칙에 필요한 변경입니다.
왜 필요한가
검증자가 만든 증명은 지금까지 최소 지연(메인넷 기준 1슬롯) 이후부터 생성 슬롯에서 SLOTS_PER_EPOCH 슬롯이 지날 때까지만 블록에 포함될 수 있었습니다. 모든 증명에 똑같은 길이의 포함 창을 주는 이 방식은 '공평하다'는 판단으로 Phase 0 때 정해졌습니다. 당시 검토된 다른 안은 현재 에폭과 다음 에폭 동안 포함을 허용하는 것이었는데, 이 경우 에폭 초반에 만든 증명이 후반에 만든 증명보다 포함 기회가 더 많아집니다. 그런데 이후 연구에서 바로 이 대안 설계가 현재 LMD-GHOST 보안 증명과 새로운 확정 규칙(평상시 메인넷 기준 약 3~4슬롯 안에 블록 확정)에 꼭 필요하다는 점이 드러났습니다. 이 EIP는 그 요구에 맞춰 증명의 최대 포함 슬롯을 늘립니다.
무엇이 바뀌나
지금
- 증명은 생성 슬롯 기준 SLOTS_PER_EPOCH 슬롯 뒤까지만 블록에 포함할 수 있습니다
- 에폭 안 어느 위치에서 만들었든 포함 창 길이가 똑같습니다
- 포함이 늦어지면 올바른 타깃 투표라도 TIMELY_TARGET_FLAG 보상을 받지 못할 수 있습니다
EIP-7045 이후
- 에폭 N에서 만든 증명은 에폭 N+1의 마지막 슬롯까지 포함할 수 있습니다
- 에폭 초반에 만든 증명일수록 포함 기회가 더 많아집니다
- 포함 시점과 관계없이 올바른 타깃 투표는 0이 아닌 기본 보상을 받습니다
- 가십(gossip) 전파도 늘어난 범위에 맞춰 허용됩니다
누구에게 영향이 있나
- 검증자: 네트워크 지연 등으로 늦게 전파된 증명도 다음 에폭 끝까지 포함되고 타깃 보상을 받을 수 있습니다.
- 클라이언트 팀: 합의 레이어의 상태 전이 함수와 가십 검증 조건을 수정해야 하며 하드포크와 함께 적용해야 합니다.
- 사용자·애플리케이션: 이 변경이 뒷받침하는 확정 규칙이 적용되면 평상시 약 3~4슬롯 안에 블록 확정을 확인할 수 있습니다.
- 실행 레이어: 실행 레이어(Execution Layer)에는 아무 변경이 없습니다.
심층 설명
process_attestation 수정: 상한 검사 제거
상태 전이 함수의 process_attestation에서 슬롯 상한 검사를 없앱니다. 대신 포함 가능 범위를 두 조건으로 정의합니다. 하나는 최소 슬롯(최소 지연)이고 다른 하나는 증명의 타깃 에폭이 현재 에폭 또는 직전 에폭이어야 한다는 조건입니다. 에폭 N의 증명은 에폭 N+1이 끝날 때까지, 즉 타깃 에폭이 '직전 에폭'인 동안 유효하므로, 상한을 따로 두지 않아도 포함 범위가 에폭 N+1의 마지막 슬롯까지로 정해집니다. 이 변경은 Consensus Specs의 Deneb 업그레이드에 포함되어 있습니다.
get_attestation_participation_flag_indices 수정: 타깃 보상에서 inclusion_delay 제외
기존에는 get_attestation_participation_flag_indices가 증명이 SLOTS_PER_EPOCH 창 안에 포함된 경우에만 TIMELY_TARGET_FLAG를 설정했고 이 플래그가 있어야 올바른 타깃 투표에 대한 보상이 나왔습니다. 이 EIP는 TIMELY_TARGET_FLAG 설정에서 inclusion_delay 고려를 없앱니다. 그 결과 유효한 포함 창 안에만 들어가면 올바른 타깃 투표는 언제나 0이 아닌 기본 보상을 받습니다. 보상이 있어야 클라이언트가 이런 증명을 블록에 담으려는 유인이 생기고 이것이 보안 분석에 중요합니다. 원문은 이것이 기존 범위 정의에서도 의도된 동작이었다고 설명합니다.
가십 조건 확대
상태 전이 규칙만 바꾸면 늘어난 창의 증명이 네트워크에서 전파되지 못할 수 있습니다. 그래서 개별 증명 가십(beacon_attestation subnet)과 집계 증명 가십(beacon_aggregate_and_proof)의 검증 조건도 함께 수정해 확대된 포함 범위 동안 증명이 가십으로 전파되도록 허용합니다.
왜 이 범위가 보안에 중요한가
포함 상한을 다음 에폭 끝까지 늘리는 것은 현재 LMD-GHOST 포크 선택 규칙의 보안 증명이 성립하는 데 필요한 전제입니다. 또 새로 제안된 확정 규칙(confirmation rule)도 이 범위를 전제로 하며 이 규칙이 적용되면 평상시 메인넷 조건에서 약 3~4슬롯 안에 블록 확정이 가능합니다. 원문 Security Considerations는 이 변경이 LMD-GHOST 보안을 개선하고 빠른 확정 규칙을 가능하게 하며 알려진 부정적 보안 영향은 없다고 밝힙니다.
하드포크 필요성과 적용 시점
이 변경은 합의 레이어의 블록 검증 규칙을 이전과 호환되지 않게 바꾸므로 하드포크와 함께 적용해야 합니다. 명세는 Deneb 업그레이드에 포함되었고 메인넷 FORK_TIMESTAMP는 1710338135입니다. 실행 레이어 변경은 없으며 테스트 케이스는 consensus-specs 저장소의 deneb 테스트 스위트에 있습니다. 이 EIP의 상태는 Final입니다.