Ethereum, Glamsterdam 검증자 예치금 결함 수정

3시간 전
7분 읽기
5 조회수

Ethereum의 Glamsterdam 업그레이드와 예치금 처리 결함 수정

Ethereum 개발자들은 블록 빌더가 새로운 검증자를 위해 의도된 ETH를 받을 수 있는 예치금 처리 결함을 수정하는 패치를 Glamsterdam 업그레이드에 통합했습니다. 이는 처음에 제안된 변경 사항을 거부하기로 한 결정 이후 이루어진 것입니다.

Ethereum의 합의 사양에 따르면, 유지보수자인 Justin Traglia는 개발자 avsetsin이 Gloas 포크 동안 보류 중인 예치금 처리 방식에 문제를 발견한 후 10월 26일 수정 사항을 병합했습니다. 이 변경 사항은 빌더 예치금을 검증자 예치금과 분리하여 인출 자격 증명에 따라 처리함으로써, 두 예치금이 동일한 공개 키를 사용할 경우 잘못된 계좌로 자금이 들어가는 것을 방지합니다.

이 취약점은 개발 중인 규칙과 관련이 있으며, Ethereum의 메인넷에서 확인된 도난 사건은 아닙니다.

개발자들은 이 수정 사항을 사양에 통합했지만, 개별 합의 클라이언트는 여전히 수정된 동작을 구현하고 테스트해야 합니다. 이 문제는 Glamsterdam의 제안자-빌더 분리에서 계획된 변경 사항에서 발생했으며, 이는 블록 구성과 블록 제안을 서로 다른 역할에 할당합니다. 빌더는 거래 페이로드를 조립하고, 검증자는 Ethereum의 지분 증명 시스템을 통해 블록을 제안하고 확인하는 데 참여합니다.

연구자 avsetsin은 10월 12일 이 결함을 설명하며, 네트워크 업그레이드 시 대기 중인 예치금을 처리하는 규칙에 문제가 있음을 지적했습니다. 만약 빌더가 동일한 공개 키를 사용하여 등록한 후 검증자 예치금이 도착하면, 제안된 논리는 두 예치금을 모두 빌더에게 크레딧할 수 있습니다. 연구자는 새로운 검증자를 설정하기 위해 유동성 스테이킹 프로토콜로부터 자금을 받는 스테이킹 운영자의 시나리오를 설명했습니다. 운영자가 먼저 빌더로 등록하면, 프로토콜의 검증자 예치금이 빌더 잔액으로 들어가게 되어 인출 주소가 운영자의 통제 하에 있을 수 있습니다.

“운영자는 프로토콜의 자금을 인출할 수 있습니다,”라고 avsetsin은 GitHub 보고서에서 경고했습니다.

예상되는 검증자가 생성되지 않기 때문에, 스테이킹 서비스는 정상적인 예치금 및 회복 절차를 완료하는 데 필요한 증명을 얻기 어려울 수 있습니다. 연구자는 Lido, Origin 및 Rocket Pool과 관련된 잠재적 노출을 초기 코드 연구를 통해 조사했습니다. 이러한 발견은 개별 프로토콜이 예치금을 처리하는 방식에 따라 달라지며, 보고서는 해당 프로젝트들이 공격을 당했다는 것을 입증하지 않았습니다.

제안된 수정 사항은 연구자가 예치금 라우팅 위험을 설명했음에도 불구하고 처음에는 Ethereum 클라이언트 개발자들로부터 저항을 받았습니다. 10월 19일, Traglia는 핵심 개발자들 간의 논의 후 풀 리퀘스트를 닫았습니다.

“이 시점에서 이 변경을 위한 클라이언트의 지원이 충분하지 않았습니다,”라고 Traglia는 썼습니다.

그러나 이 결정은 유지되지 않았고, 개발자들은 10월 23일 추가 검토 후 제안을 다시 열었습니다. 이후 리뷰어 potuz는 접근 방식을 승인했지만 특정 예치금 조합에 대한 추가 테스트를 요청했습니다. avsetsin은 10월 23일 이러한 테스트를 추가하여 빌더와 검증자 예치금이 동일한 공개 키를 공유하지만 별도로 처리해야 하는 경우를 다루었습니다. 최종 변경 사항은 추가 클라이언트 검토 후 10월 26일 Ethereum의 합의 사양에 병합되었습니다.

이는 유효한 검증자 예치금을 검증자 대기열로 안내하고, 합법적인 빌더 예치금이 기존 빌더에 등록하거나 자금을 추가할 수 있도록 합니다. 새로운 규칙은 인출 자격 증명을 통해 예치금을 구분하며, 이는 허용된 인출 방식에 따라 결정됩니다. 이들은 동일한 공개 키가 두 역할에 나타나더라도 빌더와 검증자 기록을 별도로 유지합니다.

사양 업데이트는 Ethereum 개발자들이 Hoodi 테스트넷에서 Glamsterdam의 예정된 활성화에 영향을 미치는 별도의 문제를 검토하는 동안 도착했습니다. Ethereum 재단은 연구자들이 EIP-8037과 관련된 호환성 위험을 식별한 후 10월 26일 업그레이드를 연기했습니다.

crypto.news가 이전에 보도한 바와 같이, 이 결정은 Amsterdam 실행 변경 사항과 Gloas 합의 변경 사항을 Hoodi의 예정된 활성화에서 제외했습니다. 2억 가스 한도로의 증가 제안도 함께 연기되었습니다. Ethereum 연구자 Toni Wahrstätter는 EIP-8037이 실행 중 가스에 대한 가정에 의존하는 스마트 계약에 간섭할 수 있다고 설명했습니다. 그는 가스 회계가 거래를 예기치 않게 되돌리거나 개발자들이 도달할 수 없다고 가정했던 실행 경로를 허용할 수 있는 경우를 식별했습니다. 계약 호환성 문제는 GitHub 수정에서 다룬 빌더-예치금 결함과는 별개입니다. 두 가지 모두 Glamsterdam과 관련이 있지만, 재단의 10월 22일 연기는 기존 계약과의 EIP-8037 상호작용에 대한 추가 조사를 구체적으로 언급했습니다.

Glamsterdam은 10월 6일 Sepolia 테스트넷에서 이미 활성화되었으며, 개발자들은 블록 구성 변경 사항과 더 높은 거래 처리 용량을 검토했습니다. 이후 Hoodi 리허설은 일정이 잡히지 않았으며, Ethereum 메인넷에서의 활성화 날짜는 확인되지 않았습니다. 병합된 예치금 수정 사항에는 Gloas 전환 동안 예치금이 어떻게 분류되는지를 다루는 회귀 테스트가 포함되어 있습니다. 클라이언트 팀은 사양 변경 사항을 소프트웨어에 통합하고, 업데이트된 규칙이 향후 네트워크 업그레이드 동안 작동할 수 있도록 추가 테스트를 완료해야 합니다.