이더리움 메인넷 2021년 연말 회고: 롤업이 확장 계산의 최적 단기 솔루션이 되다
원문 제목: 이더리움 메인넷 2021년 연말 회고
원문 저자: ECN
이더리움 재단의 Tim Beiko는 11월에 "지분 증명으로의 전환 과정 이해하기"라는 주제로 발표를 했습니다. 이번 발표에서 그는 2021년 이더리움 메인넷에서 진행된 네 번의 하드포크를 회고하고 정리하며, 각각 어떤 개선이 이루어졌는지 개요를 설명했습니다; 이더리움 2.0 로드맵의 진화 과정을 정리하고 현재 롤업 중심의 아키텍처와 실행 가능한 신호 체인을 채택한 이유를 설명했습니다; 병합 이후의 이더리움 아키텍처와 전환 과정에 대해 자세히 분석했습니다; 마지막으로 2021년 클라이언트 팀이 병합 구현과 테스트를 탐색한 과정을 회고하며 현재 진행 상황과 미래의 구현 계획을 설명했습니다.
이 발표는 이더리움 메인넷의 지난 한 해를 요약하는 데 매우 적합하며, ECN은 이 비디오의 발표 부분을 번역하고 관련 기사 자료를 보충 및 색인으로 첨부하여 독자들이 다시 보고 정리할 수 있도록 했습니다.
2021년 이더리움의 네 번의 하드포크 베를린 업그레이드 (4월) 포함된 EIP:
➤ EIP-2565: 모듈 거듭제곱 연산 Gas 비용 (ModExp Gas Cost)
이전의 모듈 거듭제곱 연산 프리컴파일 모듈에 대한 EIP-198(대수 모듈 거듭제곱)에 대해 재정가를 진행했습니다. 이 모듈은 RSA 서명 검증과 같은 많은 암호학적 알고리즘에 필요한 모듈 거듭제곱 연산을 도입할 수 있게 해줍니다. EIP-2565는 이 모듈 ModExp(0x00..05)의 gas 비용을 낮추어 다른 작업의 비용 수준과 유사하게 만들었습니다.
➤ EIP-2718: 유형화된 거래 봉투 (Typed Transaction Envelope)
이 제안은 다양한 거래 유형을 더 쉽게 지원할 수 있는 새로운 거래 유형인 거래 봉투를 도입합니다. 이더리움이 메인넷에 처음 올라왔을 때는 "To"(거래 전송 목적지 지정)와 "Data"(거래에 포함된 임의 데이터) 필드를 가진 하나의 거래 유형만 있었습니다. 이로 인해 이더리움 클라이언트는 완전히 동일한 시간에 완전히 동일한 변경을 보장해야 했습니다. 이후 거래 유형이 변경되면서 스푸리어스 드래곤(Spurious Dragon) 하드포크에서 EIP-155(재전송 공격에 대한 간단한 방어)가 포함되어 클라이언트가 필드에 대해 서로 다른 해석을 할 수 있게 되었습니다. EIP-2718은 EIP-155가 도입한 복잡성을 해결할 수는 없지만, 미래에 더 많은 복잡성이 도입되는 것을 방지하여 새로운 거래 유형을 추가하는 것을 더 쉽게 만듭니다. 예를 들어 EIP-1559 유형의 거래가 있습니다.
➤ EIP-2929: 상태 접근 연산 코드의 Gas 비용 증가 (Gas cost increases for state access opcodes)
이 EIP는 거래가 처음으로 SLOAD, CALL, BALANCE, EXT 및 SELFEDESTRUCT를 호출할 때의 gas 비용을 증가시킵니다. 그러나 주목할 점은 각 주소나 저장 슬롯에 대해 이러한 높은 비용은 처음 발생할 때만 발생하며, 이후의 여러 호출은 매번 100 gas만 소모합니다. 이러한 gas 비용을 증가시키는 것은 이더리움 프로토콜에 여전히 남아 있는 최대 DoS 공격 벡터의 영향을 완화하는 한편, 향후 무상태 이더리움 구현을 위해 증인 데이터의 크기를 제한하는 것입니다.
➤ EIP-2930: 선택적 접근 목록 (Optional access lists)
이 제안의 목적은 EIP-2929가 기존 계약에 미친 파괴적인 영향을 수정하고 gas 비용 증가로 인한 문제를 완화하는 것입니다. 이 제안은 거래 계획이 접근할 주소와 저장 항목 키를 포함하는 접근 목록을 포함하는 새로운 거래 유형을 추가합니다. 접근 목록을 지정함으로써 클라이언트는 거래를 더 쉽게 처리할 수 있으며, gas 소모량도 안전하게 줄일 수 있습니다.
관련 기사:
《베를린 하드포크 이후 gas 비용》
《이더리움 베를린 업그레이드 공지》 런던 업그레이드 (8월) 포함된 EIP:
➤ EIP-1559: Eth1.0 수수료 시장 변경 (Fee market change for ETH1.0 chain)
EIP-1559는 이더리움 역사상 가장 기대되는 변경 중 하나이며, 런던 업그레이드에서 가장 큰 변화를 가져온 EIP입니다. 이 EIP는 네트워크 블록에 "기본 수수료(basefee)"를 도입하여, 이 수수료는 블록 공간 수요에 기반하여 네트워크가 수용할 거래의 gas 가격을 추적합니다. 이는 지갑과 사용자가 거래 가격을 더 쉽게 예측할 수 있게 해줍니다. 또한 EIP-1559는 사용자가 지불할 최대 한도를 지정할 수 있는 새로운 거래 유형을 추가합니다. 사용자가 이 최대 한도 수수료를 채굴자에게 보낼 때, 최대 한도 수수료에서 기본 수수료와 채굴자 팁의 합계를 뺀 차액을 환불받습니다. 마지막으로 이 EIP는 일부 거래 수수료가 소각되도록 하여, 커뮤니티의 대부분이 이더리움 네트워크 경제에서 중요한 개선 조치로 간주합니다.
➤ EIP-3198: BASEFEE 연산 코드 (BASEFEE opcode)
이 EIP는 EIP-1559와 함께 작동합니다. 단순히 BASEFEE 연산 코드를 추가하여, 이는 거래가 실행되는 블록의 기본 수수료를 반환합니다. 이를 통해 스마트 계약은 체인에서 이 값을 접근할 수 있게 되어, 사기 증명 제출 및 신뢰할 수 없는 gas 가격 파생 상품 생성에 도움이 됩니다.
➤ EIP-3529: gas 환급 감소 (Reduction in refunds)
런던에서 도입된 또 다른 주요 변경 사항은 SELFDESTRUCT 연산 코드의 gas 환급을 취소하고 SSTORE의 gas 환급을 줄이는 것입니다. 환급을 설정한 초기 목적은 개발자가 가능한 경우 상태를 정리하도록 장려하는 것이었지만, 현실은 이로 인해 Gas Token이 등장하여 오히려 상태 크기를 증가시켰습니다. 이러한 환급된 gas를 활용하여 Gas Token은 gas 가격이 낮을 때 상태를 채우고, gas 가격이 상승할 때 이러한 거래를 실행하는 환급을 받을 수 있습니다. 또한, gas 환급은 블록 실행 시간의 변화를 초래합니다. EIP-3529는 "실행 gas 환급"을 50%에서 최대 20%로 조정했습니다. 이 변경은 EIP-1559가 도입한 추가 블록 크기 변화를 상쇄하는 데 도움이 될 것입니다. EIP-1559는 블록에서 사용할 수 있는 gas가 현재 gas 한도의 두 배가 될 수 있도록 허용합니다.
➤ EIP-3541: 0xEF 바이트로 시작하는 새로운 주소 거부 (Reject new contracts starting with the 0xEF byte)
이 EIP는 런던 업그레이드 이후 0xEF 바이트로 시작하는 새로운 계약이 배포될 수 없도록 합니다. 이들은 나중에 EIP-3540의 의미에 부합하는 방식으로 식별하기 위해 보존됩니다. EIP-3540이 제안한 EVM 객체 형식(EVM Object Format, EOF)은 확장 가능하고 버전화된 EVM 바이트코드 컨테이너 형식으로, 배포 시 한 번의 검증이 이루어집니다. 따라서 EIP-3541은 향후 더 광범위한 EVM 개선을 위한 기초를 마련합니다.
➤ EIP-3554: 난이도 폭탄을 2021년 12월 1일로 연기 (Difficulty Bomb Delay to December 1st 2021)
EIP-3554는 난이도 폭탄을 연기하며, 이는 빙하기로도 알려져 있습니다. 난이도 폭탄 또는 빙하기는 이더리움이 도입한 메커니즘으로, 네트워크가 지분 증명으로 전환될 때 채굴을 "동결"합니다. 지분 증명으로의 전환이 아직 준비되지 않았기 때문에 폭탄의 "폭발" 시간을 연기해야 합니다. 이는 과거에 세 번 진행되었습니다: 메트로폴리스(EIP-649), 콘스탄티노플(EIP-1234) 및 뮈르 빙하(EIP-2384).
관련 기사:
《런던 업그레이드 개요》
《런던 메인넷 업그레이드 공지 및 관련 코드 변경》
《왜 1559가 필요한가》
《왜 나는 EIP-1559의 블록 용량 변화에 대해 걱정할 필요가 없다고 생각하는가》
《MEV와 EIP-1559》
《MEV 관점에서 EIP-1559 하의 거래 패키징 시장 분석》
《이더리움 런던 업그레이드 완료 시 (제 37회 이더리움 주간 대담)》
《EIP-3529: GAS 환급 감소》 신호 체인 알테어 업그레이드 (10월) 알테어는 신호 체인의 업그레이드로, 추가된 기능은 다음과 같습니다:
경량 클라이언트를 위한 동기화 위원회 지원
규격 복잡성을 줄이기 위한 인센티브 계산 개혁
인센티브 호환성을 높이기 위한 보상 수정
각 검증자의 태만 처벌을 개별적으로 계산
처벌 매개변수를 원래의 처벌 수준으로 업데이트
관련 기사:
《알테어 메인넷 업그레이드 공지》
《알테어 업그레이드의 영향 모델링 분석》
《최종화 no.24》
《알테어 업그레이드 설명 (제 30회 이더리움 주간 대담)》
각 호의 《합의 계층 진행 업데이트》 애로우 글래시어 업그레이드 (12월) 애로우 글래시어는 뮈르 빙하와 유사한 네트워크 업그레이드입니다. 이는 단 하나의 EIP를 포함하며------난이도 폭탄을 내년 여름으로 연기하여 블록체인이 동결되는 것을 방지합니다, 즉 "빙하기(ice age)"입니다.
관련 기사:
이더리움 2.0 로드맵 진화 과정
2018년 타이베이에서 열린 세미나에서 이더리움의 핵심 개발자들은 세 단계로 나누어진 이더리움 2.0 로드맵을 제시했으며, 각 단계에서 제공되는 내용은 다음과 같습니다:
단계 0은 신호 체인을 가져옵니다.
단계 1에서는 데이터 샤딩이 추가됩니다.
단계 2에서는 각 샤드에 가상 머신이 추가되어 시스템 내에서 계산을 구현합니다.
2020년 말, 신호 체인이 거의 시작될 준비가 되었을 때, 단계 1의 작업은 순조롭게 진행되었지만, 단계 1에서 도입될 샤딩에서 계산 기능을 구현하는 단계 2는 여전히 많은 미해결 문제가 있었습니다. 동시에 롤업(즉, 2층 확장 솔루션) 분야에서는 매우 빠른 발전이 있었습니다. 여러 팀이 테스트넷을 출시하겠다고 발표하고 고무적인 초기 성과를 거두었습니다. 이 시점에서 비탈릭은 이더리움 마법사 포럼에 장문의 글을 발표하여 단기 및 중기 확장 작업을 롤업에 집중해야 한다고 주장했습니다. 이들은 단계 2가 완료되기 전에 메인넷에 올라가게 될 것이며, 단계 1의 최대 수혜자가 될 것입니다.
같은 해 11월, 미하일 칼리닌이 발표한 《실행 가능한 신호 체인 (Executable Beacon Chain)》은 현재의 병합 아키텍처를 제시하며 몇 가지 통찰을 제공합니다:
신호 체인이 이미 시작되었으며, 이제 합의 엔진으로 사용할 수 있습니다;
롤업은 계산 확장의 최적의 단기 솔루션입니다;
현재의 Eth1 클라이언트는 병합 후 실행 계층의 최적의 기반입니다;
지분 증명으로의 전환은 현재 실행 중인 애플리케이션에 미치는 영향을 최소화하는 방식으로 이루어질 수 있습니다.
이 글에서 미하일은 지분 증명을 클라이언트에서 사용할 새로운 합의 알고리즘으로 직접 제안했습니다.
관련 기사:
《상세한 이더리움 2.0 신호 체인》
《비탈릭: 롤업 중심의 이더리움 로드맵》
《실행 가능한 신호 체인》
《이더리움 핵심 개발자 회의 업데이트 006》
병합 이후의 아키텍처와 병합 과정
요약하자면, 병합 이후 클라이언트는 PoW 체인에 따라 이더리움의 최신 유효 블록을 결정하는 것에서 PoS 체인에 따라 결정하는 것으로 전환됩니다. 또한 클라이언트의 대부분 기능, 그리고 더 중요한 EVM, 그 상태, 그리고 거래를 실행하는 방식은 모두 변하지 않습니다. 현재의 Eth1과 Eth2 클라이언트는 각각 이더리움의 실행 계층과 합의 계층(또는 엔진)으로 변모합니다. 이는 Eth1 또는 신호 체인 클라이언트의 노드 운영자가 전체 검증 노드를 소유하기 위해 스택의 "다른 반쪽"을 실행해야 함을 의미합니다.
병합 과정에서 신호 노드는 현재의 PoW 체인을 모니터링하며, 블록의 총 난이도(Total Difficulty)가 설정된 TERMINALTOTALDIFFICULTY(종결 총 난이도)에 도달하면 해당 블록이 마지막 PoW 블록이 되고, 이후 블록은 신호 체인상의 검증자에 의해 구축되고 증명됩니다. 이 블록이 신호 체인에서 최종 확정되면 병합이 완료됩니다.
관련 기사:
병합 구현의 과정과 계획
병합 구현의 세 가지 상징적인 사건은 4월에 진행된 레이오니즘 해커톤, 10월에 진행된 암포라 워크숍, 그리고 11월에 시작된 킨츠기 계획입니다.
실행 가능한 신호 체인 아키텍처의 타당성을 검증하기 위해, 한 달 간의 레이오니즘 해커톤에서 클라이언트 팀은 프로토타입 설계를 진행하고 테스트넷 노크튠(Nocturne)을 구축하여 실행 가능한 신호 체인이 타당한 아키텍처임을 증명했습니다.
10월에는 암포라 워크숍 활동에서 클라이언트 팀이 다시 모여 규격에서 미해결된 문제를 해결했습니다. 활동의 마지막에 클라이언트 팀은 모든 클라이언트 조합의 전환 과정을 완료하고 병합된 블록에 대한 최종 확정을 했습니다.
암포라 활동 이후, 네 개의 짧은 개발 테스트넷을 거쳐 개발자들은 킨츠기 테스트넷 계획을 발표했습니다. 11월부터 12월 중순까지 매주 개발자들이 새로운 개발 테스트넷을 출시하고 이전 것을 기반으로 개선했습니다. 크리스마스 휴가 기간 동안에는 장기적인 공공 테스트넷이 출시되었으며, 모두가 테스트에 참여하도록 권장했습니다.
현재 구현 작업은 80%~90% 완료되었으며, 애로우 글래시어는 난이도 폭탄을 내년 6월로 연기했습니다. 이는 내년 6월 이전에는 더 많은 테스트 작업이 이루어질 것임을 의미합니다.
관련 기사: