EIP-7706을 자세히 설명하고 최신 Ethereum Gas 메커니즘을 정리합니다.

avatar
马里奥看Web3
4개월 전
이 글은 약 3608자,전문을 읽는 데 약 5분이 걸린다
Vitalik은 2024년 5월 13일 EIP-7706 제안을 발표하여 기존 가스 모델에 대한 보완 계획을 제안하고, 콜 데이터의 가스 계산을 별도로 분리하고, Blob 가스와 유사한 기본 수수료 가격 책정 메커니즘을 맞춤화하여 L2 운영 비용을 더욱 절감할 것을 제안했습니다.

원저자 : @Web3 Mario

소개 : Vitalik은 2024년 5월 13일에 EIP-7706 제안을 발표하여 기존 가스 모델에 대한 보완을 제안하고, 호출 데이터의 가스 계산을 별도로 분리하고, Blob 가스와 유사한 기본 수수료 가격 책정 메커니즘을 사용자 정의하여 L2 운영 비용을 더욱 절감합니다. 관련 제안은 오래전인 2022년 2월에 제안된 EIP-4844까지 거슬러 올라갈 필요가 있으므로 관련 정보를 참고한 후 최신 이더리움 가스 메커니즘에 대한 개요를 모두가 빠르게 이해할 수 있도록 작성하고 싶습니다. 그것.

현재 지원되는 Ethereum Gas 모델 - EIP-1559 및 EIP-4844

초기 설계에서 이더리움은 거래 수수료의 가격을 책정하기 위해 간단한 경매 메커니즘을 사용했는데, 이는 사용자가 자신의 거래에 대해 적극적으로 입찰하도록 요구했습니다. 즉, 일반적으로 사용자가 지불하는 거래 수수료는 채굴자에게 귀속됩니다. , 따라서 채굴자는 경제적 최적화 원칙에 따라 입찰 가격을 기준으로 거래 패키징 순서를 결정하게 되며 이는 MEV를 무시한다는 점에 유의하세요. 당시 핵심 개발자에 따르면 이 메커니즘은 다음과 같은 네 가지 문제에 직면했습니다.

  • 거래 수수료 수준의 변동성과 거래의 합의 비용 간의 불일치: 활성 블록체인의 경우 거래 패키징에 대한 수요가 충분하므로 블록을 쉽게 채울 수 있지만 이는 종종 전체 비용의 변동성이 크다는 것을 의미합니다. 예를 들어, 평균 가스 가격이 10 Gwei인 경우, 블록 내 다른 트랜잭션을 수락하여 네트워크에서 발생하는 한계 비용은 평균 가스 가격이 1 Gwei일 때보다 10배 높으므로 허용할 수 없습니다.

  • 사용자에게 불필요한 지연: 각 블록의 엄격한 가스 제한과 과거 거래량의 자연스러운 변동으로 인해 거래는 일반적으로 패키징되기 전에 여러 블록을 기다리게 되지만 이는 전체 네트워크에 해를 끼칩니다. 블록별 수요 차이를 충족하기 위해 한 블록을 더 크게 만들고 다음 블록을 더 작게 허용하는 완화 메커니즘이 없습니다.

  • 비효율적인 가격 책정: 단순한 경매 메커니즘을 사용하기 때문에 공정한 가격 발견의 효율성이 낮습니다. 이는 사용자가 합리적인 가격을 제시하기 어려울 것이며, 이는 많은 경우 사용자가 높은 수수료를 지불한다는 것을 의미합니다.

  • 블록 보상이 없는 블록체인은 불안정할 것입니다. 채굴로 인한 블록 보상이 제거되고 순수 수수료 모델이 채택되면 채굴을 장려하여 거래 수수료를 훔치는 자매 블록과 같은 많은 불안정성을 초래할 수 있습니다. 더욱 강력한 이기적 마이닝 공격 벡터 등.

EIP-1559의 제안 및 구현 이전까지 Gas 모델은 2019년 4월 13일 Vitalik 등 핵심 개발자에 의해 처음으로 반복되었으며, 2021년 8월 5일 런던 업그레이드에서 채택되었습니다. 이 메커니즘은 경매 메커니즘을 포기하고 대신 기본 수수료와 우선 순위 수수료의 이중 가격 책정 모델을 채택합니다. 여기서 기본 수수료는 상위 블록에서 생성된 가스 소비량과 유동 및 재귀적 가스 목표를 기반으로 관계가 정량적으로 계산됩니다. 확립된 수학적 모델을 통해 직관적인 효과는 이전 블록의 가스 사용량이 미리 정해진 가스 목표를 초과하면 기본 수수료가 증가하고 가스 목표보다 적으면 기본 수수료가 감소한다는 것입니다. 기본요금 산정을 기관에서 임의로 정하는 것이 아닌 시스템에서 직접 결정하기 때문에 공급과 수요 관계를 더 잘 반영할 수 있고, 합리적인 가스 예측을 보다 정확하게 하여 오작동으로 인한 가스 가격이 치솟는 것을 방지할 수 있습니다. 사용자. 구체적인 코드는 다음과 같습니다.

EIP-7706을 자세히 설명하고 최신 Ethereum Gas 메커니즘을 정리합니다.

parent_gas_used가 parent_gas_target보다 큰 경우 현재 블록의 기본 수수료는 이전 블록의 기본 수수료에 오프셋 값을 더한 값과 비교되며, 오프셋 값은 parent_base_fee에 총 가스 비용을 곱한 것입니다. 이전 블록 가스 타겟에 대한 오프셋 및 가스 타겟과 상수 사이의 모듈러스 1의 최대값입니다. 반대로 논리는 비슷합니다.

또한 기본 수수료는 더 이상 채굴자에게 보상으로 분배되지 않고 직접 폐기되므로 ETH의 경제 모델이 디플레이션 상태에 놓이게 되어 가치 안정성에 도움이 됩니다. 반면 우선순위 수수료는 사용자가 채굴자에게 제공하는 보상과 동일하며 자유롭게 가격을 책정할 수 있습니다. 이를 통해 채굴자의 정렬 알고리즘을 어느 정도 재사용할 수 있습니다.

EIP-7706을 자세히 설명하고 최신 Ethereum Gas 메커니즘을 정리합니다.

시간이 2021년으로 진행됨에 따라 Rollup의 개발은 점차 좋은 상황에 들어갈 것입니다. OP Rollup인지 ZK Rollup인지는 L2 데이터 압축 후 특정 증명 데이터를 calldata를 통해 체인에 업로드해야 데이터를 실현할 수 있음을 의미한다는 것을 알고 있습니다. 가용성(데이터 사용 가능) 또는 확인을 위해 체인에 직접 제출됩니다. 이로 인해 이러한 Rollup 솔루션은 L2 완결성을 유지할 때 큰 가스 비용에 직면하게 되며 이러한 비용은 결국 사용자에게 전가되므로 당시 대부분의 L2 프로토콜을 사용하는 비용은 상상만큼 낮지 않았습니다.

동시에 이더리움은 블록 공간 경쟁의 딜레마에 직면해 있습니다. 우리는 각 블록에 가스 제한이 있다는 것을 알고 있습니다. 이는 현재 블록의 모든 트랜잭션의 총 가스 소비가 이 값을 초과할 수 없음을 의미합니다. 가스 한도는 30000000으로 계산됩니다. 이론적으로 한도는 30,000,000 / 16 = 1,875,000바이트입니다. 여기서 16은 EVM이 각 통화 데이터 바이트를 처리하기 위해 16개 가스 단위를 소비한다는 사실을 나타냅니다. 이는 단일 블록이 전송할 수 있는 최대 데이터 크기가 약 1.79MB임을 의미합니다. L2 시퀀서에서 생성된 Rollup 관련 데이터는 일반적으로 크기가 커서 다른 메인 체인 사용자의 거래 확인과 경쟁하게 되어 단일 블록으로 포장할 수 있는 거래량이 적어 TPS에 영향을 미칩니다. 메인 체인의.

이러한 딜레마를 해결하기 위해 핵심 개발자들은 2022년 2월 5일 EIP-4844 제안을 제안했고, 2024년 2분기 초 Dencun 업그레이드 이후 구현되었습니다. 제안에서는 Blob Transaction이라는 새로운 트랜잭션 유형을 제안합니다. 기존의 Transaction 유형과 비교하여 Blob Transaction의 핵심 아이디어는 Blob 데이터라는 새로운 데이터 유형을 추가하는 것입니다. calldata 유형과 달리 Blob 데이터는 EVM에서 직접 액세스할 수 없으며 VersionedHash라고도 하는 해당 해시에만 액세스할 수 있습니다. 또한 두 가지 디자인이 있는데, 하나는 일반 트랜잭션에 비해 Blob 트랜잭션의 GC 주기가 짧아서 블록 데이터가 너무 커지지 않도록 보장하는 것입니다. 다른 하나는 Blob 데이터에 기본 가스 메커니즘이 있다는 것입니다. 일반적으로 제시되는 효과는 EIP-1559와 유사하지만, 자연지수 함수의 기울기가 이는 자연 지수 함수로서, 현재 네트워크 거래 규모의 상태와 관계없이 거래 규모가 급격하게 증가하면 Blob Gas의 기본 수수료가 더 완벽하게 반응하여 동시에 거래 활동을 효과적으로 억제합니다. 시간, 이 함수에도 중요한 특징이 있습니다. 가로좌표가 0이면 함수 값은 1입니다.

base_fee_per_blob_gas = MIN_BASE_FEE_PER_BLOB_GAS * e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION)

그 중 MIN_BASE_FEE_PER_BLOB_GAS, BLOB_BASE_FEE_UPDATE_FRACTION 2개의 상수이며, extra_blob_gas는 상위 블록의 총 블롭 가스 소모량과 TARGET_BLOB_GAS_PER_BLOCK 상수의 차이로 결정된다. 총 블롭 가스 소모량이 목표값을 초과하는 경우, 즉 그 차이는 양수이다. . , e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION)가 1보다 크면 base_fee_per_blob_gas가 커지고, 그렇지 않으면 작아집니다.

이러한 방식으로 특정 대규모 데이터를 인증하여 가용성을 보장하기 위해 이더리움의 합의 기능만 사용하려는 일부 시나리오는 블록의 트랜잭션 패키징 기능을 방해하지 않고 저렴한 비용으로 실행할 수 있습니다. Rollup 시퀀서를 예로 들면, L2의 주요 정보는 Blob 트랜잭션을 통해 Blob 데이터로 캡슐화될 수 있으며, EVM의 정교한 설계를 통해 versionedHash를 사용하여 온체인 검증 로직을 구현할 수 있습니다.

TARGET_BLOB_GAS_PER_BLOCK 및 MAX_BLOB_GAS_PER_BLOCK의 현재 설정은 메인넷에 제한, 즉 블록당 평균 3개의 Blob(0.375MB)을 처리하는 목표와 최대 6개의 Blob(0.75MB)으로 제한된다는 점을 추가해야 합니다. 이러한 초기 제한은 이 EIP가 네트워크에 가하는 스트레스를 최소화하도록 설계되었으며 네트워크가 더 큰 블록에서 안정성을 입증함에 따라 향후 업그레이드에서 증가할 것으로 예상됩니다.

EIP-7706을 자세히 설명하고 최신 Ethereum Gas 메커니즘을 정리합니다.

실행 환경의 추가 개선 가스 소비 모델——EIP-7706

현재 이더리움의 가스 모델을 명확히 한 후, EIP-7706 제안의 목표와 구현 세부 사항을 살펴보겠습니다. 이 제안서는 2024년 5월 13일 Vitalik에 의해 제출되었습니다. Blob 데이터와 유사하게 이 제안은 호출 데이터라는 특별한 특성을 가진 다른 데이터 필드에 해당하는 가스 모델을 제거합니다. 그리고 해당 코드 구현 로직을 최적화했습니다.

원칙적으로 calldata의 기본 수수료 계산 로직은 EIP-4844의 blob 데이터에 대한 기본 수수료와 동일합니다. 둘 다 지수 함수를 사용하며 상위 블록의 실제 가스 소비 값 간의 편차를 기반으로 현재 기본 수수료를 계산합니다. 그리고 목표값.

EIP-7706을 자세히 설명하고 최신 Ethereum Gas 메커니즘을 정리합니다.

새로운 매개변수 설계인 LIMIT_TARGET_RATIOS=[ 2, 2, 4 ]에 주목할 가치가 있습니다. 여기서 LIMIT_TARGET_RATIOS[ 0 ]는 Gas 작업 클래스의 목표 비율을 나타내고, LIMIT_TARGET_RATIOS[ 1 ]는 Blob 데이터 클래스 Gas, LIMIT_TARGET_RATIOS의 목표 비율을 나타냅니다. [ 2]는 calldata 클래스 Gas의 목표 비율을 나타냅니다. 이 벡터는 상위 블록의 세 가지 유형의 가스에 해당하는 가스 목표 값을 계산하는 데 사용됩니다. 즉, LIMIT_TARGET_RATIOS를 사용하여 정수 나누기를 수행합니다. 가스 제한에 대한 작업:

EIP-7706을 자세히 설명하고 최신 Ethereum Gas 메커니즘을 정리합니다.

gas_limits의 설정 로직은 다음과 같습니다.

gas_limits[0]은 기존 조정 공식을 따라야 합니다.

gas_limits[1]은 MAX_BLOB_GAS_PER_BLOCK과 같아야 합니다.

가스 제한[ 2 ]은 가스 제한[ 0 ]과 동일해야 합니다. // CALLDATA_GAS_LIMIT_RATIO

우리는 현재 gas_limits[0]이 30000000이고 CALLDATA_GAS_LIMIT_RATIO가 4로 사전 설정되어 있음을 알고 있습니다. 이는 현재 호출 데이터 가스 목표가 약 30000000 // 4 // 4 = 1875000임을 의미하며 현재 호출 데이터 가스 계산 논리로 인해 각 non-Zero Bytes는 16 Gas를 소비하고, 0 Byte는 4 Gas를 소비합니다. 특정 통화 데이터 세그먼트에서 0이 아닌 Byte의 분포가 각각 50%를 차지한다고 가정하면, 1 Byte를 처리하는 데 평균 10 Gas가 필요합니다. 통화 데이터. 따라서 현재 통화 데이터 가스 목표는 현재 평균 사용량의 약 2배인 187500바이트의 통화 데이터 데이터에 해당해야 합니다.

이것의 장점은 통화 데이터가 가스 한도에 도달할 확률을 크게 줄이고 경제 모델을 통해 통화 데이터의 사용을 보다 일관된 상태로 유지하며 통화 데이터의 남용도 제거한다는 것입니다. 이렇게 설계한 이유는 L2 개발의 길을 명확하게 하기 위함이며, Blob 데이터를 활용하면 Sorter의 비용을 더욱 절감할 수 있습니다.

창작 글, 작자:马里奥看Web3。전재 / 콘텐츠 제휴 / 기사 요청 연락처 report@odaily.email;违규정 전재 법률은 반드시 추궁해야 한다.

ODAILY는 많은 독자들이 정확한 화폐 관념과 투자 이념을 수립하고 블록체인을 이성적으로 바라보며 위험 의식을 확실하게 제고해 달라고 당부했다.발견된 위법 범죄 단서에 대해서는 관련 부서에 적극적으로 고발하여 반영할 수 있다.

추천 독서
편집자의 선택