EIP-7044 자발적 퇴장 서명의 영구 유효화 (Perpetually Valid Signed Voluntary Exits)

최종 확정 · 합의·스테이킹 · 원문 상태 Final · 2023-05-18 작성

검증자의 자발적 퇴장(voluntary exit) 서명 검증을 카펠라 포크 도메인에 고정합니다. 한 번 서명한 퇴장 메시지가 이후 어떤 업그레이드가 와도 계속 유효해집니다.

왜 필요한가

검증자가 스테이킹을 끝내려면 활성 키(active key)로 서명한 자발적 퇴장 메시지를 네트워크에 보내야 합니다. 그런데 비콘 체인은 서명을 검증할 때 현재와 직전 포크 버전만 인정하므로, 서명된 퇴장 메시지는 업그레이드 두 번까지만 유효했습니다. 검증자를 실제로 돌리는 운영자(활성 키 보유자)와 자금 주인(출금 자격증명 보유자)이 다른 경우가 문제입니다. 퇴장은 활성 키로만 서명할 수 있으니 자금 주인은 운영자에게서 서명된 퇴장을 미리 받아 둬야 하는데, 포크가 올 때마다 무효가 되어 끝없이 다시 받아야 했습니다. 이 제한은 원래 하드 포크로 체인이 둘로 갈라졌을 때 퇴장 메시지가 양쪽에서 재사용되는 것을 막으려는 장치였습니다. 하지만 재사용돼도 자금이 위험해지지 않고 스테이커가 한쪽 또는 양쪽 체인에 다시 스테이킹하면 되므로, 이런 사용성 저하를 감수할 이유가 못 된다고 보았습니다.

무엇이 바뀌나

지금

EIP-7044 이후

누구에게 영향이 있나

심층 설명

서명 도메인을 카펠라에 고정

상태 전이 함수에서 바뀌는 것은 하나입니다. process_voluntary_exit가 서명 도메인과 서명 루트를 CAPELLA_FORK_VERSION에 고정해 계산하도록 수정됩니다. 이 변경은 컨센서스 스펙의 데네브(Deneb) 업그레이드에 포함되어 있습니다. voluntary_exit 가십 검증 조건도 이 변경을 지원하도록 암묵적으로 함께 수정됩니다. 하위 호환을 위해 도메인을 데네브가 아니라 카펠라 포크에 고정했습니다.

왜 두 번의 업그레이드까지만 유효했나

비콘 체인 상태는 서명 검증 때 현재 포크 버전과 직전 포크 버전만 고려합니다. 그래서 서명된 자발적 퇴장은 블록 포함 기준으로 최대 두 번의 업그레이드까지만 유효했습니다. 활성 키를 가진 운영자와 출금 자격증명을 가진 자금 소유자가 다른 스테이킹 구조에서는, 앞으로 올 포크 수가 정해져 있지 않으므로 서명된 퇴장을 포크마다 미리 교환해야 하는 부담이 생겼습니다.

리플레이 보호를 포기한 근거

유효 기간 제한은 원래 하드 포크로 체인 A와 B가 모두 유지되는 상황을 대비한 것이었습니다. 한 검증자가 양쪽 체인에서 활동하다 퇴장을 보내면 그 메시지가 양쪽에서 재사용될 수 있습니다. 하지만 재사용이 일어나도 자금이 위험해지지 않고 스테이커가 한쪽 또는 양쪽 체인에 다시 스테이킹할 수 있으므로, 이 가능성만으로는 앞서 설명한 사용성 저하를 정당화하기 어렵다고 보았습니다.

데네브 도메인으로 미리 서명했다면 무효

이 변경은 합의 계층의 블록 처리 로직에 하위 호환됩니다. 다만 퇴장의 미래 유효성에 대한 기대는 상위 호환되지 않습니다. 데네브 포크 도메인으로 미리 서명해 둔 퇴장이 계속 유효할 것으로 기대했던 사용자는 그 서명이 이제는 유효한 것으로 인정되지 않는다는 점을 알아야 합니다. 데네브와 이후 포크에서 계속 유효하려면 카펠라 포크 도메인으로 서명해야 합니다. 실행 계층에는 변경 사항이 없고 호환성 문제도 없습니다.

보안 영향

이전에는 포크된 네트워크마다 서명 도메인이 달라져 하드 포크 두 번이 지나면 자발적 퇴장의 리플레이가 막혔습니다. 이 변경으로 그 리플레이 보호는 사라집니다. 리플레이가 일어나면 포크 양쪽의 개별 스테이커에게 영향을 줄 수 있지만 자금이 위험해지지 않고 체인의 보안에도 영향이 없습니다.

설계 의도와 현재 상태

영구 유효한 퇴장 서명 덕분에 스테이킹 운영 설계가 단순해집니다. 또한 이런 객체의 사용성이 BLSToExecutionChanges, 입금과 맞춰져 하위 도구가 포크 버전 정보를 업데이트할 필요가 없어집니다. 이 EIP는 Final 상태이며, 테스트 케이스는 consensus-specs 저장소의 deneb 테스트 스위트에 있습니다.

EIP 원문 · ← EIPs