본문으로 건너뛰기

"EIP-4895" 태그로 연결된 1개 게시물개의 게시물이 있습니다.

모든 태그 보기

이더리움의 상하이(Shapella) 업그레이드, 완전 해부

· 약 5분
Dora Noda
Software Engineer

출금, 가스 조정, 그리고 그 이후의 일들—과대광고 없이.


요약

Shapella 업그레이드는 Shanghai(실행 레이어용)와 Capella(합의 레이어용)의 합성어로, 2023년 4월 12일에 이더리움에서 실행되었습니다. 주요 특징은 Beacon Chain 출시 이후 처음으로 스테이킹 출금을 가능하게 한 것입니다.

헤드라인 변경사항인 EIP-4895는 검증자 출금이 합의 레이어에서 실행 레이어로 자동으로 "푸시"되는 시스템을 도입했으며, 사용자 트랜잭션이나 가스 수수료가 필요하지 않습니다. 이와 함께 EVM을 미세 조정하는 4개의 작은 EIP들이 배포되었는데, 가스 비용 절감(Warm COINBASE), 바이트코드 최적화(PUSH0), 컨트랙트 생성 제한(Initcode metering)이 포함됩니다. 이 업그레이드는 또한 SELFDESTRUCT 오피코드가 단계적으로 폐지될 것이라는 최종 경고를 개발자들에게 제공했습니다.

Shapella는 Merge의 루프를 효과적으로 닫았고, 다음 주요 업그레이드인 Dencun이 2024년 3월 13일에 뒤따르며 EIP-4844 "blob"으로 네트워크의 초점을 확장성으로 전환했습니다.


왜 Shapella가 중요한 이정표였나

Beacon Chain의 시작부터 2023년 4월까지, ETH 스테이킹은 일방통행이었습니다. 32 ETH를 예치해 네트워크 보안에 도움을 주고 보상을 받을 수 있었지만, 원금이나 합의 레이어 보상을 다시 빼낼 수는 없었습니다. 이렇게 잠긴 유동성은 상당한 약속이었고 많은 잠재적 스테이커들에게 장벽이었습니다.

Shapella는 출구 문을 열어 모든 것을 바꾸었습니다.

업그레이드의 핵심은 EIP-4895였는데, 이는 **시스템 수준의 "출금 작업"**을 독창적으로 설계했습니다. 스테이커들이 트랜잭션을 만들고 가스를 지불해 출금하는 대신, 이제 프로토콜 자체가 자동으로 합의 레이어에서 적격 자금을 수집하고 실행 레이어로 푸시합니다. 이 깔끔한 푸시 기반 설계는 복잡성과 위험을 최소화하여 변경사항을 테스트하고 안전하게 배포하기 훨씬 쉽게 만들었습니다.


실제로 변경된 것들: 평이한 한국어로 설명하는 EIP들

Shapella는 5개의 주요 이더리움 개선 제안(EIP)의 번들이었습니다:

  • EIP-4895 — Beacon Chain 출금 (푸시 기반) 이것이 메인 이벤트였습니다. 부분적(보상) 및 완전(원금 + 보상) 출금 모두가 합의 레이어에서 스테이커의 지정된 출금 주소로 흐를 수 있게 했습니다. 핵심 혁신은 이것들이 사용자가 시작하는 트랜잭션이 아니라는 것입니다; 제안된 블록에 내장된 자동 작업입니다.

  • EIP-3651 — "Warm COINBASE" 이 EIP는 작지만 중요한 가스 최적화를 만들었습니다. EVM에서 COINBASE는 블록 생산자(검증자)의 주소를 가리키며, 거래소가 아닙니다. Shapella 이전에는 스마트 컨트랙트가 트랜잭션 내에서 이 주소에 처음 접근할 때 더 높은 가스 비용이 발생했습니다. EIP-3651은 COINBASE 주소를 기본적으로 "warm"하게 만들어, MEV 팁을 블록 빌더에게 직접 지불하는 것과 같이 이와 자주 상호작용하는 프로토콜의 가스 비용을 줄였습니다.

  • EIP-3855 — PUSH0 오피코드 EVM에 대한 간단하지만 우아한 추가입니다. 이 새로운 오피코드 PUSH0는 말 그대로의 기능을 합니다: 값 0을 스택에 푸시합니다. 이전에 개발자들은 이를 달성하기 위해 더 무겁고 비싼 오피코드들을 사용해야 했습니다. PUSH0는 바이트코드를 약간 더 작고 가스 효율적으로 만들며, 특히 변수를 0으로 초기화하는 수많은 컨트랙트에 유용합니다.

  • EIP-3860 — initcode 제한 및 측정 이 변경사항은 스마트 컨트랙트를 생성하는 데 사용되는 코드(initcode)에 대한 두 가지 규칙을 도입했습니다. 첫째, initcode의 최대 크기를 49,152바이트로 제한했습니다. 둘째, 이 코드의 32바이트 청크마다 작은 가스 수수료를 추가했습니다. 이는 과도하게 큰 컨트랙트와 관련된 서비스 거부 공격을 방지하고 컨트랙트 생성 비용을 더 예측 가능하게 만듭니다.

  • EIP-6049 — SELFDESTRUCT 중단 (경고) 이는 코드 변경이 아니라 개발자 커뮤니티에 대한 공식 경고였습니다. 컨트랙트가 스스로를 삭제하고 ETH를 대상 주소로 보낼 수 있게 하는 SELFDESTRUCT 오피코드가 향후 업그레이드에서 기능이 대폭 변경될 것이라고 알렸습니다. 이는 개발자들이 Dencun 업그레이드가 나중에 EIP-6780으로 그 동작을 변경하기 전에 의존성을 단계적으로 제거할 시간을 주었습니다.


출금 101: 부분적 vs. 완전

Shapella는 각각 고유한 규칙을 가진 두 가지 유형의 자동 출금을 도입했습니다.

  • 부분 출금 이들은 자동 보상 수집입니다. 검증자의 잔액이 합의 레이어 보상으로 32 ETH 이상으로 증가하면, 프로토콜이 자동으로 초과 금액을 "스킴"하고 지정된 출금 주소로 보냅니다. 검증자는 활성 상태를 유지하고 그 역할을 계속합니다. 이는 스테이커의 어떤 조치도 필요로 하지 않습니다.

  • 완전 출금 (퇴장) 이는 검증을 중단하고 전체 잔액을 회수하려는 스테이커를 위한 것입니다. 스테이커는 먼저 자발적 퇴장 메시지를 방송해야 합니다. 대기 기간 후, 검증자는 완전 출금 자격을 얻습니다. 수집에서 처리되면, 전체 잔액이 출금 주소로 보내지고, 검증자는 더 이상 활성 세트의 일부가 아닙니다.

처리량과 주기

네트워크는 불안정성을 야기하지 않으면서 출금을 원활하게 처리하도록 설계되었습니다.

  • 각 블록(12초마다)에 최대 16개의 출금이 포함될 수 있어, 하루에 약 115,200개의 출금이 최대치로 가능합니다.
  • 블록 제안자는 활성 검증자 목록을 스캔하고 처음 16개의 적격 출금을 포함합니다. 다음 블록 제안자는 마지막이 중단한 곳에서 계속하여, 모든 검증자가 대기열에서 순서를 얻도록 보장합니다.
  • 대량 탈출이 네트워크를 불안정화시키는 것을 방지하기 위해, 에포크당(약 6.4분마다) 퇴장할 수 있는 검증자의 수는 유출 제한으로 제한됩니다. 이 제한은 총 활성 검증자 수를 기반으로 동적이며, 퇴장 파도를 완화합니다.

합의 레이어 보상은 이 EIP-4895 출금 메커니즘으로 처리되는 반면, 실행 레이어 보상(우선 수수료 및 MEV)은 검증자의 구성된 수수료 수신자 주소로 직접 보내지고 즉시 사용 가능하다는 것도 중요합니다.


그 다음에 온 것: Dencun과 확장성으로의 길

Shapella는 "Merge 시대"의 성공적인 완료를 기록했습니다. 스테이킹이 이제 완전히 유동적인 양방향 프로세스가 되면서, 개발자들은 이더리움의 다음 큰 도전에 주의를 돌렸습니다: 확장성.

바로 다음 주요 업그레이드인 Dencun (Deneb + Cancun)이 2024년 3월 13일에 도착했습니다. 그 중심은 Layer 2 롤업이 이더리움 메인넷에 트랜잭션 데이터를 게시할 수 있는 새롭고 더 저렴한 방법인 "blob"을 도입한 EIP-4844였습니다. 이는 L2에서 트랜잭션 수수료를 극적으로 낮췄고 롤업 중심 로드맵에서 대규모 전진이었습니다. Dencun은 또한 SELFDESTRUCT 오피코드의 권력을 크게 제한한 EIP-6780을 구현하여 EIP-6049의 약속을 이행했습니다.


큰 그림

Shapella는 이더리움의 Proof-of-Stake 합의에 대한 필수적인 신뢰 이정표였습니다. 출금을 가능하게 함으로써 스테이킹의 위험을 줄이고, 유동성을 복원하며, 복잡하고 조정된 업그레이드를 실행할 네트워크의 능력을 확인했습니다. 또한 기술적 부채를 정리하고 향후 최적화의 길을 닦은 실용적인 EVM 개선사항들을 제공했습니다.

요약하면, Shapella는 스테이커들을 위한 출구 문을 열었을 뿐만 아니라—Post-Merge 시대의 기반을 고체화하고 이더리움이 다음 개척지인 대규모 확장성에 집중할 수 있는 활주로를 정리했습니다.