이더리움은 3일 안에 이러한 주요 변경 사항을 겪게 됩니다.
Sahil Sojitra 의 원문
Odaily Planet Daily Golem( @web3_golem ) 에서 편집
2025년 12월 3일에 시행될 예정인 후사카 하드 포크는 펙트라에 이어 이더리움의 또 다른 주요 네트워크 업그레이드로, 암호화폐 거대 기업이 확장을 향해 나아가는 또 다른 중요한 단계를 의미합니다.
Pectra의 업그레이드된 EIP는 성능, 보안 및 개발자 도구 개선에 중점을 둡니다. 반면 Fusaka의 업그레이드된 EIP는 확장성, opcode 업데이트 및 실행 보안을 강조합니다.
PeerDAS(EIP-7594)는 노드가 모든 데이터를 다운로드하지 않고도 블롭을 검증할 수 있도록 하여 데이터 가용성을 향상시킵니다. ModExp 제한(EIP-7823), 거래 가스 한도 제한(EIP-7825), ModExp 가스 비용 업데이트(EIP-7883) 등 여러 업그레이드를 통해 실행 보안도 강화되었습니다. 이 Fusaka 업그레이드는 결정론적 제안자 예측 메커니즘(EIP-7917)을 통해 블록 생성을 개선하고, 실행 비용에 연동된 "예약 가격"을 설정하여 블롭 수수료를 안정적으로 유지합니다(EIP-7918).
기타 개선 사항으로는 RLP 형식의 블록 크기 제한(EIP-7934), 비트 연산 속도를 높이기 위한 새로운 CLZ 명령어 추가(EIP-7939), 최신 암호화 및 하드웨어 보안 키와의 호환성을 높이기 위한 secp256r1 사전 컴파일 도입(EIP-7951) 등이 있습니다.
후사카(Fusaka)는 풀루(Fulu, 실행 계층)와 오사카(Osaka, 합의 계층)를 합친 이름입니다. 이는 레이어 2 롤업이 더 낮은 비용과 더 빠른 속도로 운영될 수 있는 확장성이 뛰어나고 데이터가 풍부한 미래를 향한 이더리움의 또 다른 진전을 의미합니다.
이 글에서는 후사카 하드 포크의 9가지 핵심 EIP 제안에 대한 심층 분석을 제공합니다.
EIP-7594: PeerDAS — 노드 데이터 가용성 샘플링
이더리움은 네트워크에서 사용자, 특히 Rollup 사용자에게 더 많은 데이터 가용성을 제공하고자 하기 때문에 이 제안이 필요합니다.
그러나 현재의 EIP-4844 설계에서는 각 노드가 게시 여부를 확인하기 위해 여전히 대량의 블롭 데이터를 다운로드해야 합니다. 이는 모든 노드가 모든 데이터를 다운로드해야 할 경우 네트워크 대역폭과 하드웨어 요구 사항이 증가하고 탈중앙화 수준에 영향을 미치기 때문에 확장성 문제를 야기합니다. 이 문제를 해결하기 위해 이더리움은 노드가 모든 데이터를 다운로드하지 않고도 데이터의 가용성을 확인할 수 있는 방법을 필요로 합니다.
데이터 가용성 샘플링(DAS)은 노드가 소량의 무작위 데이터만 조사할 수 있도록 하여 이 문제를 해결합니다.
하지만 이더리움은 기존 가십 네트워크와 호환되고 블록 생성자에게 과도한 연산 부담을 주지 않는 DAS 방식도 필요합니다. PeerDAS는 이러한 요구를 충족하고 노드 요구 사항을 낮게 유지하면서 블롭 처리량을 안전하게 높이기 위해 개발되었습니다.
PeerDAS는 노드가 전체 데이터가 게시되었는지 확인하기 위해 작은 데이터 조각만 다운로드할 수 있도록 하는 네트워크 시스템입니다. 전체 데이터를 다운로드하는 대신, 노드는 일반적인 가십 네트워크 공유를 활용하여 어떤 노드가 특정 데이터 부분을 보유하고 있는지 파악하고 필요한 작은 샘플만 요청합니다. 핵심 아이디어는 데이터 조각의 무작위적인 작은 부분만 다운로드하더라도 노드가 전체 조각의 존재를 확신할 수 있다는 것입니다. 예를 들어, 노드는 전체 256KB 조각 대신 데이터의 약 1/8만 다운로드할 수 있습니다. 하지만 여러 노드가 서로 다른 부분을 샘플링하기 때문에 누락된 데이터는 빠르게 감지됩니다.
PeerDAS는 샘플링을 위해 기본적인 이레이저 코딩(Erasure Coding) 방식을 사용하여 EIP-4844의 각 데이터 세그먼트를 확장합니다. 이레이저 코딩은 일부 데이터 세그먼트가 누락되더라도 원본 데이터를 복구할 수 있도록 중복 데이터를 추가하는 기술입니다. 마치 몇 개의 조각이 누락되더라도 퍼즐을 맞출 수 있는 것과 같습니다.
블롭은 원본 데이터와 함께 후속 데이터 재구성을 위해 추가로 인코딩된 데이터를 포함하는 "행"으로 변환됩니다. 이 행은 KZG 커밋과 관련된 최소 검증 단위인 "셀"이라는 더 작은 조각으로 나뉩니다. 모든 "행"은 이후 "열"로 재구성되며, 각 열에는 모든 행에서 동일한 위치에 있는 셀이 포함됩니다. 각 열은 특정 가십 서브넷에 할당됩니다.
각 노드는 노드 ID를 기반으로 특정 열을 저장하고 각 시간 슬롯에서 피어로부터 일부 열을 샘플링해야 합니다. 노드가 열의 50% 이상을 수집하면 데이터를 완전히 재구성할 수 있습니다. 50% 미만을 수집하면 피어에게 누락된 열을 요청해야 합니다. 이렇게 하면 데이터가 실제로 게시된 경우 항상 재구성할 수 있습니다. 간단히 말해, 총 64개의 열이 있는 경우 노드는 전체 블롭을 재구성하는 데 약 32개의 열만 필요합니다. 노드는 일부 열을 직접 보관하고 피어로부터 다른 열을 다운로드합니다. 열의 절반이 네트워크에 존재하는 한, 일부 열이 누락되어도 노드는 모든 것을 재구성할 수 있습니다.
또한, EIP-7594는 중요한 규칙을 도입합니다. 어떤 트랜잭션도 6개 이상의 블롭을 포함할 수 없습니다. 이 제한은 트랜잭션 검증, 가십 전파, 블록 생성 및 블록 처리 과정에서 반드시 적용되어야 합니다. 이를 통해 단일 트랜잭션이 블롭 시스템에 과부하를 일으키는 극단적인 상황을 줄일 수 있습니다.
PeerDAS는 "셀 KZG 증명"이라는 기능을 추가했습니다. 셀 KZG 증명은 KZG 커밋이 블롭의 특정 셀(작은 단위)과 실제로 일치함을 보여줍니다. 이를 통해 노드는 샘플링하려는 셀만 다운로드할 수 있습니다. 데이터 무결성을 보장하면서 완전한 블롭을 확보하는 것은 데이터 가용성 샘플링에 매우 중요합니다.
그러나 이러한 모든 단위 증명을 생성하는 데는 비용이 많이 듭니다. 블록 생성자는 여러 블롭에 대해 이러한 증명을 반복적으로 계산해야 하므로 속도가 너무 느립니다. 그러나 증명 검증 비용은 매우 낮습니다. 따라서 EIP-7594는 블롭 트랜잭션 송신자가 모든 단위 증명을 미리 생성하여 트랜잭션 래퍼에 포함하도록 요구합니다.
이러한 이유로 Gossip(PooledTransactions)은 이제 수정된 래퍼를 사용합니다.
rlp([tx_payload_body, wrapper_version, blobs, committ, cell_proofs])
새로운 래퍼에서 `cell_proofs`는 각 블롭의 각 셀에 대한 모든 증명을 포함하는 목록입니다(예: `[cell_proof_0, cell_proof_1, ...]`). 다른 필드 `tx_payload_body`, `blobs`, `commitments`는 EIP-4844의 필드와 동일합니다. 차이점은 기존의 단일 "proofs" 필드가 제거되고 새로운 `cell_proofs` 목록으로 대체되었으며, 현재 사용되는 래퍼 형식을 나타내는 `wrapper_version`이라는 새 필드가 추가되었다는 것입니다.
PeerDAS는 이더리움이 노드 작업 부하를 증가시키지 않고도 데이터 가용성을 향상시킬 수 있도록 지원합니다 . 현재 노드는 전체 데이터의 약 1/8만 샘플링하면 됩니다. 앞으로는 이 비율이 1/16 또는 1/32까지 낮아져 이더리움의 확장성이 향상될 수 있습니다. 각 노드는 수많은 피어를 보유하고 있어, 한 피어가 필요한 데이터를 제공할 수 없는 경우 다른 피어에게 요청할 수 있기 때문에 이 시스템은 원활하게 작동합니다. 이는 자연스럽게 중복성을 구축하고 보안을 강화합니다. 또한 노드는 실제 필요한 것보다 더 많은 데이터를 저장할 수 있으므로 네트워크 보안이 더욱 강화됩니다.
검증자 노드는 일반 전체 노드보다 더 많은 책임을 집니다. 검증자 노드는 더 강력한 하드웨어에서 실행되므로 PeerDAS는 총 검증자 노드 수에 따라 해당 노드에 데이터 호스팅 부하를 할당합니다. 이를 통해 항상 더 많은 데이터를 저장하고 공유할 수 있는 안정적인 노드 그룹을 확보하여 네트워크 안정성을 향상시킵니다. 간단히 말해, 90만 개의 검증자 노드가 있는 경우 각 검증자 노드는 전체 데이터의 일부만 저장 및 서비스용으로 할당받을 수 있습니다. 검증자 노드는 더 강력한 머신을 보유하고 있으므로 네트워크는 검증자 노드를 신뢰하여 데이터 가용성을 보장할 수 있습니다.
PeerDAS는 행 샘플링 대신 열 샘플링을 사용하는데, 이는 데이터 재구성을 크게 간소화하기 때문입니다. 노드가 전체 행(전체 블롭)을 샘플링하면 원래 존재하지 않았던 "확장 블롭"을 추가로 생성해야 하므로 블록 생성 속도가 느려집니다.
열 샘플링을 통해 노드는 추가 행 데이터를 미리 준비할 수 있으며, 필요한 증명은 블록 생성자가 아닌 트랜잭션 발신자가 계산합니다. 이를 통해 블록 생성 속도와 효율성을 유지할 수 있습니다. 예를 들어, 블롭(blob)이 4x4 셀 그리드라고 가정해 보겠습니다. 행 샘플링은 행에서 네 개의 셀을 모두 가져오는 것을 의미하지만, 일부 확장된 행은 아직 준비되지 않았으므로 블록 생성자가 즉시 생성해야 합니다. 반면 열 샘플링은 각 행(열)에서 하나의 셀을 추출하고, 재구성에 필요한 추가 셀을 미리 준비하여 노드가 블록 생성 속도를 늦추지 않고 데이터를 검증할 수 있도록 합니다.
EIP-7594는 EIP-4844와 완벽하게 호환되므로 이더리움의 기존 기능을 손상시키지 않습니다. 모든 테스트와 세부 규칙은 합의 및 시행 사양에 포함되어 있습니다.
모든 DAS 시스템의 주요 보안 위험은 블록 프로듀서가 데이터를 사용할 수 있는 것처럼 가장하지만 실제로는 데이터의 일부를 숨기는 "데이터 은닉 공격"입니다. PeerDAS는 무작위 샘플링을 사용하여 이를 방지합니다. 즉, 노드가 데이터의 무작위 부분을 검사합니다. 샘플링된 노드가 많을수록 공격자가 속이기 어려워집니다. EIP-7594는 총 노드 수(n), 총 샘플 수(m), 그리고 노드당 샘플 수(k)를 기반으로 이러한 공격의 성공 확률을 계산하는 공식까지 제공합니다. 약 10,000개의 노드가 있는 이더리움 메인넷에서는 공격 성공 확률이 매우 낮기 때문에 PeerDAS는 안전한 것으로 간주됩니다.

EIP-7823: MODEXP의 최대 크기를 1024바이트로 설정합니다.
이 제안의 필요성은 이더리움의 현재 MODEXP 사전 컴파일 메커니즘이 지난 수년간 수많은 합의 취약점을 야기해 왔다는 사실에 있습니다. 이러한 취약점은 주로 MODEXP가 엄청나게 방대하고 비실용적인 입력 데이터를 허용하여 클라이언트가 수많은 예외를 처리하도록 강요하는 데서 비롯됩니다.
각 노드는 트랜잭션에서 제공되는 모든 입력을 처리해야 하므로, 상한값이 없기 때문에 MODEXP 테스트가 더 어렵고 오류가 발생하기 쉬우며 클라이언트마다 다르게 동작할 가능성이 더 큽니다. 또한, 입력 데이터가 너무 많아 가스 비용 공식을 예측하기 어렵습니다. 데이터 양이 무한정 증가할 수 있기 때문에 가격 책정이 어려워지기 때문입니다. 이러한 문제로 인해 향후 EVMMAX와 같은 도구를 사용하여 MODEXP를 EVM 수준 코드로 대체하는 것도 어렵습니다. 고정된 제약 조건이 없으면 개발자가 안전하고 최적화된 실행 경로를 생성할 수 없기 때문입니다.
이러한 문제를 완화하고 이더리움의 안정성을 개선하기 위해 EIP-7823은 MODEXP 입력 데이터 양에 엄격한 제한을 추가하여 사전 컴파일 프로세스를 보다 안전하게 만들고, 테스트하기 쉽게 만들고, 예측 가능하게 만들었습니다.
EIP-7823은 간단한 규칙을 도입합니다. MODEXP에서 사용하는 세 가지 길이 필드(기수, 지수, 모듈러스)는 모두 8192비트(1024바이트) 이하여야 합니다. MODEXP 입력은 EIP-198에 정의된 형식인 <len(BASE)> <len(EXPONENT)> <len(MODULUS)> <BASE> <EXPONENT> <MODULUS>를 따르므로, 이 EIP는 길이 값만 제한합니다. 길이가 1024바이트를 초과하면 전처리가 즉시 중단되고 오류를 반환하며 모든 가스를 소모합니다.
예를 들어, 누군가 2000바이트 진법을 제공하려고 하면 작업이 시작되기 전에 호출이 실패합니다. 이러한 제한은 모든 실제 적용 시나리오를 충족합니다. RSA 검증은 일반적으로 1024비트, 2048비트 또는 4096비트의 키 길이를 사용하며, 이는 모두 새로운 제한 내에 있습니다. 타원 곡선 연산은 일반적으로 384비트 미만의 더 작은 입력 크기를 사용하므로 영향을 받지 않습니다.
이러한 새로운 제한 사항은 향후 업그레이드를 용이하게 합니다. 향후 MODEXP를 EVMMAX를 사용하는 EVM 코드로 다시 작성하면 개발자는 일반적인 입력 크기(예: 256비트, 381비트 또는 2048비트)에 최적화된 경로를 추가하고 드문 경우를 대비하여 더 느린 대체 방식을 사용할 수 있습니다. 최대 입력 크기를 고정함으로써 개발자는 매우 일반적인 모듈에 대한 특수 처리 기능도 추가할 수 있습니다. 이전에는 입력 크기가 무제한이어서 설계 공간이 지나치게 크고 관리하기 어려워서 이러한 작업이 불가능했습니다.
이러한 변경이 과거 거래에 지장을 주지 않는지 확인하기 위해 저자들은 5,472,266번 블록(2018년 4월 20일)부터 21,550,926번 블록(2025년 1월 4일)까지 모든 MODEXP 사용량을 분석했습니다. 그 결과, 역사적으로 성공적인 MODEXP 호출 중 어떤 것도 새로운 제한인 1024바이트보다 훨씬 적은 513바이트를 초과하는 입력을 사용하지 않았습니다. 실제 호출 대부분은 32바이트, 128바이트 또는 256바이트와 같이 더 짧은 길이의 입력을 사용했습니다.
빈 입력, 중복 바이트로 패딩된 입력, 그리고 매우 크지만 유효하지 않은 입력 등 유효하지 않거나 손상된 호출이 있습니다. 이러한 호출은 그 자체로 유효하지 않기 때문에 새로운 제한에 따라 유효하지 않게 동작합니다. 따라서 EIP-7823은 중요한 기술적 변경이지만, 과거 거래의 결과에는 실제로 영향을 미치지 않습니다.
보안 관점에서 허용 입력 크기를 줄이는 것은 새로운 위험을 초래하지 않습니다. 오히려 이전에 클라이언트 간 오류와 불일치를 야기했던 불필요한 극단적인 사례를 제거합니다. EIP-7823은 MODEXP 입력을 합리적인 범위로 제한함으로써 시스템의 예측 가능성을 높이고, 예상치 못한 극단적인 사례를 줄이며, 서로 다른 구현 간의 오류 발생 가능성을 낮춥니다. 이러한 제한은 향후 업그레이드(예: EVMMAX)에서 최적화된 실행 경로가 도입될 경우, 더욱 원활한 전환을 준비하는 데에도 도움이 됩니다.
EIP-7825: 1670만 가스 거래 한도
이더리움은 실제로 이 제안이 필요합니다. 왜냐하면 현재 단일 거래가 블록의 가스 한도를 거의 모두 소모할 수 있기 때문입니다.
이로 인해 여러 가지 문제가 발생합니다. 단일 거래가 블록 리소스의 대부분을 소모하여 DoS 공격과 유사한 느린 지연이 발생할 수 있습니다. 가스를 많이 소모하는 작업으로 인해 이더리움의 상태 업데이트가 너무 빨리 증가할 수 있습니다. 또한 블록 검증 속도가 느려져 노드가 따라잡기 어려울 수 있습니다.
사용자가 가스를 거의 모두 소모하는 대규모 트랜잭션(예: 4천만 가스 블록에서 3천8백만 가스를 소모하는 트랜잭션)을 제출하면 다른 일반 트랜잭션은 해당 블록에 포함될 수 없으며, 각 노드는 블록 검증에 추가 시간을 소비해야 합니다. 이는 검증 속도가 느리면 취약한 노드가 뒤처지게 되어 네트워크의 안정성과 탈중앙화를 위협합니다. 이 문제를 해결하기 위해 이더리움은 단일 트랜잭션이 사용할 수 있는 가스량을 제한하는 안전한 가스 캡을 필요로 합니다. 이를 통해 블록 부하를 예측 가능하게 하고, DoS 공격 위험을 줄이며, 노드의 부하를 보다 균형 있게 분산할 수 있습니다.
EIP-7825는 모든 거래가 16,777,216(2²⁴) 가스를 초과하여 소모해서는 안 된다는 엄격한 규칙을 도입합니다. 이는 프로토콜 수준의 상한선으로, 사용자가 거래를 전송하는 단계, 거래 풀이 거래를 확인하는 단계, 그리고 검증자가 거래를 블록으로 패키징하는 단계 등 모든 단계에 적용됩니다. 누군가 이 상한선을 초과하는 가스를 전송하면 클라이언트는 즉시 거래를 거부하고 MAX_GAS_LIMIT_EXCEEDED와 같은 오류를 반환해야 합니다.
이 한도는 블록 가스 한도와는 완전히 별개입니다. 예를 들어, 블록 가스 한도가 4천만이라 하더라도 단일 트랜잭션의 가스 소비량은 1,670만을 초과해서는 안 됩니다. 이는 단일 트랜잭션이 전체 블록을 차지하는 것을 방지하기 위해, 각 블록이 여러 트랜잭션을 수용할 수 있도록 하기 위한 것입니다.
이를 더 잘 이해하기 위해, 블록 하나에 4천만 가스가 저장될 수 있다고 가정해 보겠습니다. 이 제한이 없다면 누군가 3천 5백만에서 4천만 가스를 소모하는 거래를 보낼 수 있습니다. 이 거래는 블록을 독점하게 되어 다른 거래가 들어갈 공간이 없게 됩니다. 마치 누군가 버스 전체를 전세 내서 다른 사람이 탑승하지 못하게 하는 것과 같습니다. 새로운 1천 6백 7십만 가스 제한은 블록이 자연스럽게 여러 거래를 수용할 수 있도록 하여 이러한 남용을 방지합니다.
이 제안은 또한 클라이언트가 거래를 검증하는 방법에 대한 구체적인 요건을 제시합니다. 거래의 가스가 16,777,216을 초과하면 거래 풀은 해당 거래를 거부해야 하며, 이는 해당 거래가 대기열에 추가되지 않음을 의미합니다. 블록 검증 과정에서 블록에 가스 한도를 초과하는 거래가 포함된 경우, 해당 블록 자체는 거부되어야 합니다.
16,777,216(2²⁴)이라는 숫자를 선택한 이유는 2의 거듭제곱 경계를 명확히 나타내어 구현이 용이하고, 스마트 컨트랙트 배포, 복잡한 DeFi 상호작용, 다단계 컨트랙트 호출 등 대부분의 실제 트랜잭션을 처리할 수 있을 만큼 충분히 크기 때문입니다 . 이 값은 일반적인 블록 크기의 약 절반으로, 가장 복잡한 트랜잭션도 이 제한 내에서 쉽게 처리할 수 있습니다.
이 EIP는 기존 가스 메커니즘과의 호환성도 유지합니다. 대부분의 사용자는 이러한 변화를 눈치채지 못할 것입니다. 기존 거래의 거의 대부분이 1,600만 가스보다 훨씬 적은 가스를 소모하기 때문입니다. 검증자와 블록 생성자는 각 거래가 새로운 가스 한도를 준수하는 한 총 가스가 1,670만 가스를 초과하는 블록을 생성할 수 있습니다.
영향을 받는 유일한 거래는 이전에 새로운 한도를 초과하려고 시도하여 규모가 매우 커진 거래입니다. 이러한 거래는 이제 매우 큰 파일 업로드를 두 개의 작은 파일로 나누는 것처럼 여러 개의 작은 작업으로 나누어야 합니다. 기술적으로 이 변경 사항은 이러한 드물고 극단적인 거래와 하위 호환되지 않지만, 영향을 받는 사용자 수는 매우 적을 것으로 예상됩니다.
보안 측면에서, 가스 캡은 공격자가 검증자에게 매우 큰 규모의 거래를 처리하도록 강요할 수 없게 함으로써 이더리움을 가스 기반 DoS 공격에 더욱 강력하게 만듭니다. 또한, 블록 검증 시간의 예측 가능성을 유지하여 노드의 동기화를 더욱 쉽게 유지합니다. 극단적인 경우, 몇몇 대규모 컨트랙트 배포가 가스 캡 요건을 충족하지 못해 배포 단계를 재설계하거나 여러 단계로 분할해야 할 수도 있습니다.
전반적으로 EIP-7825의 목표는 남용으로부터 네트워크 보호를 강화하고, 합리적인 노드 수요를 유지하고, 블록 공간 사용의 공정성을 개선하고, 가스 캡이 증가함에 따라 블록체인이 여전히 빠르고 안정적으로 작동할 수 있도록 하는 것입니다.
EIP-7883: ModExp 가스 요금 인상
이더리움에 이 제안이 필요한 이유는 모듈러 지수 연산에 사용되는 ModExp 사전 컴파일 코드의 가격이 실제로 소모하는 리소스에 비해 꾸준히 낮았기 때문입니다.
경우에 따라 ModExp 연산의 연산 요구량이 사용자가 현재 지불하는 수수료를 훨씬 초과합니다. 이러한 불일치는 위험을 초래합니다. 복잡한 ModExp 호출의 가격이 너무 낮게 책정되면 병목 현상이 발생하여 네트워크가 가스 한도를 안전하게 증가시키기 어려워질 수 있습니다. 블록 프로듀서가 매우 낮은 비용으로 매우 무거운 작업을 처리해야 할 수도 있기 때문입니다.
이 문제를 해결하기 위해 이더리움은 ModExp 가격 책정 공식을 조정하여 가스 소비량이 클라이언트가 실제로 수행한 작업량을 정확하게 반영하도록 해야 했습니다. 따라서 EIP-7883은 최소 가스 비용과 총 가스 비용을 증가시키고, 대량의 입력 데이터(특히 32바이트를 초과하는 지수, 밑수 또는 모듈로 연산)를 처리하는 작업의 비용을 증가시키는 새로운 규칙을 도입하여 가스 가격을 실제 연산 요구량에 맞추었습니다.
이 제안은 여러 가지 주요 측면에서 비용을 증가시켜 EIP-2565에서 원래 정의된 ModExp 가격 책정 알고리즘을 수정합니다.
첫째, 최소 가스 소비량이 200에서 500으로 증가했고, 총 가스 소비량을 더 이상 3으로 나누지 않아 총 가스 소비량이 사실상 세 배로 증가했습니다. 예를 들어, ModExp 호출이 이전에 1,200 가스를 소비했다면, 새로운 공식을 적용하면 약 3,600 가스를 소비하게 됩니다.
둘째, 지수가 32바이트보다 길면 곱셈기가 8에서 16으로 늘어나므로 계산 비용이 두 배가 됩니다. 예를 들어 지수 길이가 40바이트인 경우 EIP-2565는 반복 횟수를 8 × (40 − 32) = 64배로 늘리는 반면, EIP-7883은 이제 16 × (40 − 32) = 128배를 사용하여 비용이 두 배가 됩니다.
셋째, 이제 가격 책정은 최소 기수/모듈러스 크기를 32바이트로 가정하며, 이 값이 32바이트를 초과하면 계산 비용이 급격히 증가합니다. 예를 들어, 모듈러스가 64바이트인 경우, 새로운 규칙은 이전의 간단한 공식 대신 두 배의 복잡도(2 × 단어²)를 적용하여 대량 연산의 실제 비용을 반영합니다. 이러한 변경 사항을 통해 소규모 ModExp 연산은 합리적인 최소 수수료를 지불하고, 대규모 복잡한 연산의 비용은 연산 크기에 따라 적절하게 조정됩니다.
이 제안은 새로운 Gas 계산 함수를 정의하고 복잡도 및 반복 횟수 규칙을 업데이트합니다. 곱셈 복잡도는 이제 32바이트 이하의 기수/모듈러스 길이에 대해 기본값 16을 사용하지만, 더 큰 입력에 대해서는 더 복잡한 공식인 2 × words²로 전환됩니다. 여기서 "words"는 8바이트 블록의 개수를 나타냅니다. 반복 횟수도 업데이트되어 32바이트 이하의 지수는 비트 길이를 사용하여 복잡도를 결정하고, 32바이트를 초과하는 지수는 더 큰 Gas 페널티를 받게 됩니다.
이를 통해 계산 비용이 큰 매우 큰 지수의 가스 비용이 더 높아집니다. 중요한 점은 반환되는 최소 가스 비용이 기존 200에서 500으로 강제 적용되어 가장 간단한 ModExp 호출도 더욱 합리적으로 수행될 수 있다는 것입니다.
이러한 가격 인상은 ModExp 사전 컴파일 가격이 많은 경우 상당히 저평가되어 있음을 보여주는 벤치마킹 테스트에 따른 것입니다. 개정된 공식은 소규모 작업의 경우 가스 비용을 150%, 일반적인 작업의 경우 약 200%, 그리고 대규모 또는 불균형 작업의 경우 지수, 기저 또는 모듈러스의 크기에 따라 가스 비용을 몇 배, 때로는 80배 이상 증가시킵니다 .
이번 조치의 목적은 ModExp의 작동 방식을 변경하는 것이 아니라, 극도로 리소스가 많이 소모되는 상황에서도 네트워크 안정성을 위협하거나 향후 블록 가스 캡 증가를 방해하지 않도록 하는 것입니다. EIP-7883은 ModExp에 필요한 가스량을 변경하기 때문에 이전 버전과 호환되지 않지만, 이더리움에서 가스 가격 조정이 여러 차례 이루어졌으며 이는 잘 알려져 있습니다.
테스트 결과, 가스 비용 증가가 상당함을 보여줍니다. 과거 ModExp 호출의 약 99.69%는 현재 500가스(이전에는 200가스) 또는 이전 가격의 세 배를 필요로 합니다. 그러나 일부 고부하 테스트 사례에서는 가스 비용 증가가 훨씬 더 큽니다. 예를 들어, "지수 연산 집약적" 테스트에서 가스 소비량은 215에서 16,624로 약 76배 증가했습니다. 이는 매우 높은 지수에 대한 가격이 이제 더 합리적이기 때문입니다.

보안 측면에서 이 제안은 새로운 공격 벡터를 도입하거나 계산 비용을 낮추지 않습니다. 대신, 심각한 위험을 완화하는 데 중점을 둡니다. 지나치게 저렴한 ModExp 연산으로 인해 공격자는 매우 낮은 비용으로 매우 계산 집약적인 계산으로 블록을 채울 수 있습니다. 유일한 잠재적 단점은 일부 ModExp 연산의 비용이 너무 높아질 수 있다는 점이지만, 이는 현재의 지나치게 낮은 가격 문제보다는 훨씬 낫습니다. 이 제안은 인터페이스 변경이나 새로운 기능을 도입하지 않으므로 기존 산술 동작과 테스트 벡터는 유효합니다.
EIP-7917: 다음 제안자를 정확하게 예측
이더리움은 네트워크의 다음 에포크에 대한 제안자 일정을 완전히 예측할 수 없기 때문에 이 제안이 필요합니다. N+1번째 에포크의 RANDAO 시드가 N번째 에포크에서 알려지더라도, 실제 제안자 목록은 N번째 에포크 내 유효 잔액(EB) 업데이트로 인해 변경될 수 있습니다.
이러한 EB 변화는 슬래싱, 페널티, 1 ETH를 초과하는 보상, 검증인 통합, 또는 신규 예치금으로 인해 발생할 수 있으며, 특히 EIP-7251이 최대 유효 잔액을 32 ETH 이상으로 증가시킨 이후에 더욱 그렇습니다. 이러한 불확실성은 다음 제안자를 미리 알고 있어야 하는 시스템(예: 사전 확인 프로토콜)에 문제를 야기하며, 이러한 시스템은 원활하게 작동하기 위해 안정적이고 예측 가능한 타임라인을 요구합니다. 검증인은 다음 에포크의 제안자에게 영향을 미치기 위해 유효 잔액을 "펌핑"하거나 조작하려고 시도할 수도 있습니다.
이러한 문제로 인해 이더리움은 제안자 타임라인을 다음 몇 에포크에 걸쳐 완전히 결정론적으로 만들 수 있는 방법이 필요합니다. 그래야 마지막 순간의 EB 업데이트로 인해 타임라인이 변경되지 않고 애플리케이션 계층에서 쉽게 접근할 수 있습니다.
이를 위해 EIP-7917은 결정론적 제안자 예측 메커니즘을 도입합니다. 이 메커니즘은 각 에포크 시작 시 다음 MIN_SEED_LOOKAHEAD + 1 에포크에 대한 제안자 스케줄을 미리 계산하여 저장합니다. 간단히 말해, 이제 비콘 상태에는 `prosoperer_lookahead`라는 목록이 포함되며, 이 목록은 항상 두 사이클(총 64개 슬롯) 동안 제안자를 포함합니다.
예를 들어, 에포크 N이 시작될 때 목록에는 이미 에포크 N과 에포크 N+1의 각 슬롯에 대한 제안자가 포함되어 있습니다. 그런 다음 네트워크가 에포크 N+1에 진입하면 목록이 앞으로 이동합니다. 에포크 N의 제안자 항목이 제거되고, 에포크 N+1의 항목이 목록의 앞으로 이동하며, 에포크 N+2의 새로운 제안자 항목이 목록의 끝에 추가됩니다. 이를 통해 스케줄링이 고정되고 예측 가능하게 되며, 클라이언트는 각 슬롯의 제안자를 다시 계산하지 않고도 스케줄을 직접 확인할 수 있습니다.
목록을 최신 상태로 유지하기 위해 각 에포크 경계에서 앞으로 이동합니다. 이전 에포크의 데이터는 제거되고, 다음 미래 에포크에 대한 새로운 제안자 인덱스 세트가 계산되어 목록에 추가됩니다. 이 프로세스는 이전과 동일한 시드 및 유효 잔액 규칙을 사용하지만, 이제 스케줄링이 더 일찍 계산되어 시드가 결정된 후 유효 잔액 변경의 영향을 받지 않습니다. 포크 이후 첫 번째 블록은 또한 전체 룩어헤드 범위를 채워 모든 미래 에포크가 스케줄링을 올바르게 초기화했는지 확인합니다.
단순화를 위해 에포크당 슬롯이 32개가 아닌 8개라고 가정해 보겠습니다. 이 EIP가 없다면 5번째 에포크 동안 6번째 에포크의 시드를 알고 있더라도, 검증자가 페널티를 받거나 5번째 에포크 동안 유효 잔액을 변경할 만큼 충분한 보상을 받으면 6번째 에포크의 슬롯 2에 대한 실제 제안자가 여전히 변경될 수 있습니다. EIP-7917을 사용하면 이더리움은 5번째 에포크 시작 시 5번째, 6번째, 7번째 에포크의 모든 제안자를 미리 계산하여 `prosopers_lookahead`에 순차적으로 저장합니다. 따라서 5번째 에포크 후반에 잔액이 변경되더라도 6번째 에포크의 제안자 목록은 고정되고 예측 가능합니다.
EIP-7917은 비콘 체인 설계의 오랜 결함을 해결합니다. 이전 에포크의 RANDAO가 사용 가능해지면 향후 에포크의 검증자 선택이 변경되지 않도록 보장합니다. 또한, 검증자가 RANDAO를 확인한 후 잔액을 조정하여 다음 에포크의 제안자 목록에 영향을 미치는 "효과적인 잔액 스크램블링"을 방지합니다. 이 결정론적 예측 메커니즘은 전체 공격 벡터를 제거하여 보안 분석을 크게 간소화합니다. 또한 합의 클라이언트가 누가 다음 블록을 제안할지 미리 알 수 있도록 하여 구현을 용이하게 하고, 애플리케이션 계층이 비콘 루트의 머클 증명을 통해 제안자 일정을 쉽게 검증할 수 있도록 합니다.
이 제안 이전에는 클라이언트가 현재 시간 슬롯에 대한 제안자만 계산했습니다. EIP-7917을 통해 클라이언트는 각 에포크 전환 시 다음 에포크의 모든 시간 슬롯에 대한 제안자 목록을 동시에 계산합니다. 이는 약간의 작업량을 추가하지만, 제안자 인덱스 계산은 매우 간단하며, 주로 시드를 사용하여 검증자 목록을 샘플링하는 작업만 포함합니다. 그러나 클라이언트는 이러한 추가 계산이 성능 문제를 일으키지 않는지 확인하기 위해 벤치마크를 수행해야 합니다.
EIP-7918: Blob 기반 수수료는 실행 비용에 의해 제한됩니다.
이더리움에 이 제안이 필요한 이유는 현재의 Blob 수수료 시스템(EIP-4844에서 파생)이 가스가 롤링의 주요 비용이 되면 실패하기 때문입니다.
현재 대부분의 Rollup에서 지불하는 실행 가스(Blob 트랜잭션을 블록에 포함하는 데 드는 비용)는 실제 Blob 수수료보다 훨씬 높습니다. 이로 인해 문제가 발생합니다. 이더리움이 기본 Blob 수수료를 지속적으로 인하하더라도 Rollup의 총 비용은 실제로 변하지 않습니다. 가장 높은 비용이 실행 가스이기 때문입니다. 따라서 기본 Blob 수수료는 최소값(1 wei)에 도달할 때까지 계속 감소합니다. 이 시점에서 프로토콜은 더 이상 Blob 수수료를 사용하여 수요를 제어할 수 없습니다. 그 후 Blob 사용량이 갑자기 급증하면 Blob 수수료가 정상 수준으로 회복되는 데 여러 블록이 걸립니다. 이로 인해 가격이 불안정하고 예측 불가능해집니다.
예를 들어, Rollup이 데이터를 게시하려고 한다고 가정해 보겠습니다. 실행 가스로 약 25,000,000gwei를 지불해야 하는데(약 1,000,000gwei에는 25gwei가 필요함), Blob 수수료는 약 200gwei에 불과합니다. 즉, 총 비용은 약 25,000,200gwei이며, 이 비용의 거의 대부분은 Blob 수수료가 아닌 실행 가스에서 발생합니다. 이더리움이 Blob 수수료를 계속해서 인하한다면, 예를 들어 200gwei에서 50gwei로, 그다음 10gwei로, 그리고 마지막으로 1gwei로 인하하더라도 총 비용은 거의 변동 없이 25,000,000gwei를 유지하게 됩니다.
EIP-7918은 실행 기반 비용에 기반한 최소 "예약 가격"을 도입하여 이 문제를 해결하고, 이를 통해 Blob 가격이 너무 낮아지는 것을 방지하고 Rollup의 Blob 가격을 보다 안정적이고 예측 가능하게 만듭니다.
EIP-7918의 핵심 아이디어는 간단합니다. 블롭의 가격은 특정 실행 가스 비용(BLOB_BASE_COST)보다 낮아서는 안 된다는 것입니다. calc_excess_blob_gas() 함수의 값은 2¹³로 설정되며, 이 메커니즘은 calc_excess_blob_gas() 함수를 약간 수정하여 구현됩니다.
일반적으로 이 함수는 블록에서 사용되는 블롭 가스가 목표값보다 높거나 낮은지에 따라 블롭 기본 수수료를 증가 또는 감소시킵니다. 이 제안에 따르면, 블롭 가스가 실행 가스에 비해 "너무 낮아지면" 함수는 목표 블롭 가스를 차감하지 않습니다. 이를 통해 초과 블롭 가스가 더 빠르게 증가하여 블롭 기본 수수료가 더 이상 감소하지 않도록 합니다. 따라서 블롭 기본 수수료는 이제 최소값을 가지며, 이는 BLOB_BASE_COST × 가스당 기본 수수료 ÷ BLOB당 가스입니다.
이것이 왜 필요한지 이해하기 위해 블롭(blob)에 대한 수요를 살펴보겠습니다. 롤업은 실행 비용과 블롭 비용을 합친 총 비용에 초점을 맞춥니다. 실행 가스 비용이 20gwei처럼 매우 높으면 블롭 비용이 2gwei에서 0.2gwei로 낮아지더라도 총 비용은 거의 변하지 않습니다. 즉, 블롭의 기본 비용을 낮추어도 수요에 거의 영향을 미치지 않습니다. 경제학에서는 이를 "비용 비탄력성"이라고 합니다. 이는 수요 곡선이 거의 수직인 상황을 만들어냅니다. 즉, 가격을 낮춰도 수요가 증가하지 않습니다.
이 시나리오에서 Blob 기본 수수료 메커니즘은 맹목적으로 작동하여 수요가 발생하지 않더라도 가격을 계속 낮춥니다. 이것이 Blob 기본 수수료가 종종 1gwei까지 떨어지는 이유입니다. 이후 실제 수요가 증가하면 프로토콜은 수수료를 합리적인 수준으로 인상하기 위해 거의 가득 찬 블록이 한 시간 이상 필요합니다. EIP-7918은 실행 가스에 연동된 예비 가격을 설정하여 실행 비용이 높은 경우에도 Blob 수수료가 유효하도록 함으로써 이 문제를 해결합니다.
이 예약 가격을 추가하는 또 다른 이유는 노드가 블롭 데이터의 KZG 증명을 검증하기 위해 많은 추가 작업을 해야 하기 때문입니다. 이러한 증명은 블롭의 데이터가 약속과 일치함을 보장합니다. EIP-4844에서는 노드가 각 블롭에 대해 하나의 증명만 검증하면 되므로 비용이 저렴합니다. 그러나 EIP-7918에서는 노드가 훨씬 더 많은 증명을 검증해야 합니다. 이는 전적으로 EIP-7594(PeerDAS)에서 블롭이 셀이라는 여러 개의 작은 조각으로 나뉘고, 각 셀에는 자체 증명이 포함되어 있어 검증 작업 부하가 크게 증가하기 때문입니다.
장기적으로 EIP-7918은 이더리움의 미래 준비에도 도움이 됩니다. 기술이 발전함에 따라 데이터 저장 및 공유 비용은 자연스럽게 감소할 것이며, 이더리움은 시간이 지남에 따라 더 많은 Blob 데이터를 저장할 수 있을 것으로 예상됩니다. Blob 용량이 증가함에 따라 Blob 수수료(ETH 기준)는 자연스럽게 감소할 것입니다. 이 제안은 보유 가격이 고정된 값이 아닌 실행 가스 가격에 고정되어 네트워크 성장에 따라 조정될 수 있기 때문에 이러한 추세를 뒷받침합니다.
블롭 공간과 실행 블록 공간이 확장됨에 따라 가격 관계는 균형을 유지합니다. 이더리움이 실행 가스 용량을 늘리지 않고 블롭 용량을 크게 늘리는 매우 드문 경우에만 예비 가격이 과도하게 높아질 수 있습니다. 이러한 경우, 블롭 수수료는 결국 실제 필요량을 초과할 수 있습니다. 그러나 이더리움은 이러한 방식으로 확장할 계획이 없습니다. 블롭 공간과 실행 블록 공간은 동시에 증가할 것으로 예상되기 때문입니다. 따라서 선택된 값(BLOB_BASE_COST = 2¹³)은 안전하고 균형 잡힌 것으로 간주됩니다.
실행 가스 수수료가 갑자기 급등할 때 주의해야 할 작은 세부 사항이 있습니다. 블롭의 가격은 기본 실행 비용에 따라 달라지기 때문에 실행 비용이 갑자기 증가하면 블롭 수수료가 일시적으로 실행 비용에 의해 지배되는 상태가 될 수 있습니다. 예를 들어, 한 블록 내에서 실행 가스 수수료가 20gwei에서 60gwei로 갑자기 급등했다고 가정해 보겠습니다. 블롭의 가격은 이 값에 고정되어 있기 때문에 블롭 수수료는 새롭게 높아진 수준보다 낮아질 수 없습니다. 블롭이 계속 사용 중이라면 수수료는 정상적으로 계속 증가하지만, 프로토콜은 더 높은 실행 비용에 맞춰 수수료가 충분히 증가할 때까지 수수료 감소를 허용하지 않습니다. 즉, 몇 블록 이내에 블롭 수수료가 실행 비용보다 느리게 증가할 수 있습니다. 이러한 일시적인 지연은 무해하며, 오히려 블롭 가격의 급격한 변동을 방지하고 시스템을 원활하게 만듭니다.
저자들은 또한 2024년 11월부터 2025년 3월까지 실제 블록 거래 활동에 대한 실증 분석을 수행하여 최저 가격 규칙을 적용했습니다. 높은 실행 수수료(평균 약 16gwei) 기간 동안, 최저 가격 임계값은 기존 메커니즘에 비해 기본 블록 수수료를 상당히 증가시켰습니다. 낮은 실행 수수료(평균 약 1.3gwei) 기간 동안, 계산된 기본 블록 수수료가 최저 가격보다 낮지 않는 한 블록 수수료는 거의 일정하게 유지되었습니다. 저자들은 수천 개의 블록을 비교함으로써 새로운 메커니즘이 수요에 대한 자연스러운 반응을 유지하면서도 더 안정적인 가격을 생성함을 보여줍니다. 4개월 동안의 블록 수수료 히스토그램은 최저 가격이 블록 수수료가 1gwei까지 급락하는 것을 방지하여 극심한 변동성을 줄인다는 것을 보여줍니다.
보안 측면에서 이 변경은 어떠한 위험도 초래하지 않습니다. 기본 블록 수수료는 항상 BLOB_BASE_COST 가스 실행 단위 비용과 같거나 더 높습니다. 이는 최소 수수료만 인상하고, 가격 하한선을 설정하더라도 프로토콜의 정확성에 영향을 미치지 않기 때문에 안전합니다. 이는 단지 건전한 경제 운영을 보장하기 위한 것입니다.
EIP-7934: RLP가 블록 크기 제한을 적용합니다.
EIP-7934 이전에는 이더리움에 RLP로 인코딩된 실행 블록 크기에 대한 엄격한 상한선이 없었습니다. 이론적으로 블록에 많은 수의 트랜잭션이나 매우 복잡한 데이터가 포함된 경우, 블록의 크기가 매우 커질 수 있습니다. 이로 인해 네트워크 불안정성과 서비스 거부(DoS) 공격 위험이라는 두 가지 주요 문제가 발생했습니다.
블록이 너무 크면 노드가 블록을 다운로드하고 검증하는 데 더 오랜 시간이 걸려 블록 전파 속도가 느려지고 일시적인 블록체인 포크가 발생할 가능성이 높아집니다. 더 심각한 문제는 공격자가 의도적으로 매우 큰 블록을 생성하여 노드에 과부하를 일으켜 지연을 유발하거나 심지어 노드를 오프라인 상태로 만들 수 있다는 것입니다. 이는 전형적인 서비스 거부 공격입니다. 더욱이 이더리움의 합의 계층(CL) 가십 프로토콜은 이미 10MB를 초과하는 블록의 전파를 거부하고 있습니다. 즉, 지나치게 큰 실행 블록은 네트워크 전파에 실패하여 체인 내 파편화 또는 노드 간 불일치를 유발할 수 있습니다. 이러한 위험을 감안할 때, 이더리움은 지나치게 큰 블록을 방지하고 네트워크 안정성과 보안을 유지하기 위한 명확한 프로토콜 수준의 규칙이 필요합니다.
EIP-7934는 프로토콜 수준 RLP 인코딩을 도입하여 블록 크기 제한을 적용함으로써 이 문제를 해결합니다. 허용되는 최대 블록 크기(MAX_BLOCK_SIZE)는 10MiB(10,485,760바이트)로 설정되어 있지만, 이더리움은 비콘 블록도 일부 공간(SAFETY_MARGIN)을 차지하기 때문에 이 제한에 2MiB(2,097,152바이트)를 추가합니다.
즉, 허용되는 최대 RLP 인코딩 블록 크기는 MAX_RLP_BLOCK_SIZE = MAX_BLOCK_SIZE - SAFETY_MARGIN입니다. 인코딩된 블록이 이 제한을 초과하면 유효하지 않은 것으로 간주되어 노드는 해당 블록을 거부해야 합니다. 이 규칙에 따라 블록 생성자는 자신이 생성하는 각 블록의 인코딩된 크기를 확인해야 하며, 검증자는 블록 검증 과정에서 이 제한을 확인해야 합니다. 이 크기 제한은 가스 제한과 무관합니다. 즉, 블록이 "가스 제한 미만"이더라도 인코딩된 크기가 너무 크면 거부됩니다. 이를 통해 가스 사용량과 실제 바이트 크기 제한을 모두 충족할 수 있습니다.
10MiB 제한은 합의 계층의 가십 프로토콜에 있는 기존 제한과 일치하기 때문에 의도적으로 선택되었습니다. 10MiB를 초과하는 데이터는 네트워크 전체에 브로드캐스트되지 않으므로, 이 EIP는 실행 계층이 합의 계층의 제한과 일관성을 유지하도록 합니다. 이를 통해 모든 구성 요소의 일관성이 보장되고, CL(클라이언트 블록 생성)의 전파 거부로 인해 유효하게 실행된 블록이 "숨겨지지 않는" 상태가 되는 것을 방지합니다.
이 변경 사항은 새로운 제한보다 큰 블록에는 하위 호환되지 않으므로, 채굴자와 검증자는 규칙을 준수하기 위해 클라이언트를 업데이트해야 합니다. 그러나 크기가 큰 블록은 본질적으로 문제가 될 수 있고 실제로 흔하지 않기 때문에 영향은 미미합니다.
보안 측면에서 EIP-7934는 특정 블록 크기를 노리는 DoS 공격에 대한 이더리움의 방어 능력을 크게 향상시켜, 어떤 참여자도 네트워크를 마비시킬 수 있는 블록을 생성할 수 없도록 합니다. 요약하자면, EIP-7934는 중요한 보안 경계를 추가하고, 안정성을 향상시키며, 실행 로직(EL)과 실행 로직(CL)의 동작을 표준화하고, 대형 블록 생성 및 전파와 관련된 다양한 공격을 방지합니다.
EIP-7939: 선행 0(CLZ) 연산 코드 계산
이 EIP 이전에는 이더리움에 256비트 숫자의 선행 0 개수를 계산하는 내장 연산 코드가 없었습니다. 개발자는 Solidity를 사용하여 CLZ 함수를 직접 구현해야 했는데, 이를 위해 수많은 비트 연산과 비교 연산이 필요했습니다.
이는 사용자 정의 구현 방식이 느리고 비용이 많이 들며, 많은 양의 바이트코드를 소모하여 가스 소비량을 증가시키기 때문에 심각한 문제입니다. 영지식 증명 시스템의 경우, 비용이 훨씬 더 높습니다. 오른쪽 시프트 연산의 증명 비용이 매우 높기 때문에 CLZ와 같은 연산은 영지식 증명 회로의 속도를 크게 저하시킵니다. CLZ는 수학 라이브러리, 압축 알고리즘, 비트맵, 서명 체계, 그리고 다양한 암호화 또는 데이터 처리 작업에 널리 사용되는 매우 일반적인 저수준 함수이므로, 이더리움에는 더 빠르고 경제적인 계산 방법이 필요합니다.
EIP-7939는 CLZ(0x1e)라는 새로운 명령어를 도입하여 이 문제를 해결합니다. 이 명령어는 스택에서 256비트 값을 읽어 선행 0의 개수를 반환합니다. 입력 값이 0이면 명령어는 256을 반환합니다. 256비트 0은 선행 0이 256개이기 때문입니다.
이는 ARM 및 x86과 같이 CLZ 연산이 기본적으로 지원되는 여러 CPU 아키텍처에서 CLZ가 작동하는 방식과 일치합니다. CLZ를 추가하면 여러 알고리즘의 오버헤드를 크게 줄일 수 있습니다. lnWad, powWad, LambertW, 다양한 수학 함수, 바이트 문자열 비교, 비트맵 스캔, 데이터 압축/압축 해제 호출, 포스트 퀀텀 시그니처 기법과 같은 연산은 모두 더 빠른 제로 룩어헤드 감지의 이점을 누릴 수 있습니다.
CLZ의 가스 비용은 ADD와 비슷한 5로 설정되어 있으며, 이전 MUL 가격보다 약간 높습니다. 이는 낮은 가격으로 인한 서비스 거부(DoS) 공격 위험을 방지하기 위한 것입니다. 벤치마크 결과에 따르면 CLZ의 연산 비용은 ADD와 거의 동일하며, SP1 rv32im 증명 환경에서 CLZ의 증명 비용은 실제로 ADD보다 낮아 영지식 증명 비용을 절감할 수 있습니다.
EIP-7939는 새로운 명령어를 도입하고 기존 동작을 수정하지 않기 때문에 이전 버전과의 완벽한 호환성을 갖추고 있습니다.
전반적으로 EIP-7939는 현대 CPU에서 이미 지원되는 간단하고 효율적인 기본 요소를 추가하여 이더리움을 더 빠르고, 더 저렴하고, 개발자 친화적으로 만들어 가스 비용을 줄이고, 바이트코드 크기를 줄이고, 많은 일반적인 작업에 대한 제로 지식 증명 비용을 낮춥니다.
EIP-7951: 최신 하드웨어에 대한 서명을 지원합니다.
이 EIP 이전에는 이더리움에는 secp256r1(P-256) 곡선을 사용하여 생성된 디지털 서명을 검증하는 안전하고 기본적인 방법이 없었습니다.
이 곡선은 Apple Secure Enclave, Android Keystore, HSM, TEE, FIDO2/WebAuthn 보안 키와 같은 최신 기기에서 사용되는 표준입니다. 이러한 지원이 없으면 애플리케이션과 지갑은 기기 수준의 하드웨어 보안을 사용하여 서명을 쉽게 수행할 수 없습니다. 이전 시도(RIP-7212)에는 무한대 지점 처리 및 잘못된 서명 비교와 관련된 두 가지 심각한 보안 취약점이 있었습니다. 이러한 문제는 검증 오류 및 합의 실패로 이어질 수 있습니다. EIP-7951은 이러한 보안 문제를 해결하고 안전한 사전 컴파일된 네이티브 프로토콜을 도입하여 이더리움이 최신 하드웨어의 서명을 안전하고 효율적으로 지원할 수 있도록 합니다.
EIP-7951은 주소 0x100에 P256VERIFY라는 이름의 사전 컴파일된 새로운 계약을 추가합니다. 이 계약은 secp256r1 곡선을 사용하여 ECDSA 서명 검증을 수행합니다. 이를 통해 Solidity에서 알고리즘을 직접 구현하는 것보다 서명 검증 속도가 빠르고 비용이 절감됩니다.
EIP-7951은 엄격한 입력 검증 규칙도 정의합니다. 유효하지 않은 케이스가 있는 경우, 사전 컴파일은 롤백 없이 실패를 반환하며, 성공적인 호출과 동일한 가스를 소비합니다. 검증 알고리즘은 표준 ECDSA를 따릅니다. s⁻¹ mod n을 계산하고, 서명 지점 R'을 재구성한 후, R'이 무한대에 있으면 거부하고, 마지막으로 R'의 x 좌표가 r(mod n)과 일치하는지 확인합니다. 이는 r'을 모듈로 단순화하는 대신 r'을 직접 비교하는 RIP-7212의 오류를 수정합니다.
이 작업의 가스비는 RIP-7212 버전보다 높은 6,900가스로 설정되어 있지만, secp256r1에서 검증한 실제 성능 벤치마크와 일치합니다. 중요한 점은 이 인터페이스가 이미 RIP-7212를 배포한 레이어 2 네트워크(동일한 주소, 동일한 입출력 형식)와 완벽하게 호환되므로 기존 스마트 계약은 아무런 변경 없이 정상적으로 작동할 수 있다는 것입니다. 유일한 차이점은 수정된 동작 방식과 더 높은 가스비입니다.
보안 관점에서 EIP-7951은 ECDSA의 올바른 동작을 복원하고, 사전 컴파일 단계에서 가소성 문제를 해결하여 선택적 검사를 애플리케이션에 맡기고, 사전 컴파일 과정에서 상수 시간 실행이 필요하지 않음을 명시적으로 명시합니다. secp256r1 곡선은 128비트 보안을 제공하며, 광범위한 신뢰와 분석을 통해 이더리움에서 안전하게 사용할 수 있도록 지원합니다.
간단히 말해, EIP-7951의 목적은 최신 하드웨어 지원 인증을 이더리움에 안전하게 도입하고, 기존 제안의 보안 문제를 해결하며, 생태계 전반에서 P-256 서명을 검증하는 안정적이고 표준화된 방법을 제공하는 것입니다.
요약하다
아래 표는 Fusaka EIP별로 어떤 이더리움 클라이언트가 변경이 필요한지 요약한 것입니다. "합의 클라이언트" 아래에 체크 표시가 있으면 EIP의 합의 계층 클라이언트를 업데이트해야 함을 나타내고, "실행 클라이언트" 아래에 체크 표시가 있으면 업그레이드가 실행 계층 클라이언트에 영향을 미침을 나타냅니다. 일부 EIP는 합의 계층과 실행 계층 모두 업데이트가 필요하지만, 어떤 EIP는 둘 중 하나만 업데이트하면 됩니다.

요약하자면, Fusaka 하드 포크에 포함된 주요 EIP는 다음과 같습니다. 이 업그레이드는 가스 조정 및 opcode 업데이트부터 새로운 사전 컴파일 버전까지 합의 및 실행 클라이언트에 대한 여러 개선 사항을 포함하지만, 이 업그레이드의 핵심은 여전히 PeerDAS입니다. PeerDAS는 P2P 데이터 가용성 샘플링을 도입하여 네트워크 전반에서 Blob 데이터를 더욱 효율적이고 분산된 방식으로 처리할 수 있도록 합니다.
- 核心观点:以太坊Fusaka硬分叉提升网络扩容与安全性。
- 关键要素:
- PeerDAS实现高效数据可用性采样。
- 多项EIP优化执行安全与Gas机制。
- 新增操作码与预编译增强开发兼容性。
- 市场影响:降低Layer2成本,提升以太坊可扩展性。
- 时效性标注:长期影响


