원저자 : @웹3마리오
소개 : Vitalik은 2024년 5월 13일에 EIP-7706 제안을 발표하여 기존 Gas 모델에 대한 보완 솔루션을 제안하고, 콜데이터의 Gas 계산을 분리하고, Blob Gas와 유사한 기본 수수료 가격 책정 메커니즘을 사용자 지정하여 L2의 운영 비용을 더욱 절감했습니다. 관련 제안은 오래 전인 2022년 2월에 제안된 EIP-4844로 거슬러 올라가야 합니다. 따라서 관련 자료를 참조했고, 모든 사람이 빠르게 이해할 수 있도록 최신 Ethereum Gas 메커니즘을 요약하고자 합니다.
현재 지원되는 Ethereum Gas 모델 - EIP-1559 및 EIP-4844
초기 설계에서 이더리움은 거래 수수료를 책정하기 위해 간단한 경매 메커니즘을 사용했는데, 이를 위해 사용자는 자신의 거래에 대해 적극적으로 입찰해야 했습니다. 즉, 가스 가격을 설정해야 했습니다. 일반적으로 사용자가 지불한 거래 수수료는 채굴자에게 귀속되므로 채굴자는 경제적 최적성 원칙과 입찰 가격에 따라 거래 패키징 순서를 결정합니다. 여기서는 MEV를 무시합니다. 당시 핵심 개발자는 이 메커니즘이 다음과 같은 네 가지 문제에 직면했다고 생각했습니다.
-
거래 수수료 수준의 변동성과 거래의 합의 비용 간의 불일치: 활성 블록체인의 경우 거래 패키징에 대한 수요가 충분하여 블록을 쉽게 채울 수 있지만, 이는 종종 전체 수수료 변동성이 매우 크다는 것을 의미합니다. 예를 들어, 평균 가스 가격이 10Gwei인 경우 네트워크가 블록에서 다른 거래를 수락하는 한계 비용은 평균 가스 가격이 1Gwei일 때의 10배이며, 이는 받아들일 수 없습니다.
-
사용자에게 불필요한 지연 발생: 블록당 고정된 가스 한도와 과거 거래량의 자연스러운 변동으로 인해 거래가 포함되기 전에 여러 블록을 기다려야 하는 경우가 많아 네트워크 전체에 비효율적입니다. 즉, 블록별 수요 차이를 수용하기 위해 한 블록을 더 크게 하고 다음 블록을 더 작게 할 수 있는 완화 메커니즘이 없습니다.
-
비효율적인 가격 책정: 간단한 경매 메커니즘은 공정 가격 발견의 효율성이 낮아 사용자가 합리적인 가격을 제시하기 어렵다는 것을 의미합니다. 즉, 많은 경우 사용자는 높은 수수료를 지불합니다.
-
블록 보상이 없는 블록체인은 불안정할 것입니다. 채굴로 인한 블록 보상이 취소되고 순수한 수수료 모델이 채택되면 거래 수수료를 훔치는 자매 블록 채굴에 대한 인센티브가 제공되거나 더 강력한 이기적 채굴 공격 벡터가 생기는 등 많은 불안정성이 발생할 수 있습니다.
EIP-1559의 제안 및 구현까지 가스 모델은 첫 번째 반복을 거쳤습니다. EIP-1559는 2019년 4월 13일에 Vitalik과 다른 핵심 개발자가 제안했으며, 2021년 8월 5일에 런던 업그레이드에서 채택되었습니다. 이 메커니즘은 경매 메커니즘을 포기하고 기본 요금과 우선 요금의 이중 가격 책정 모델을 채택합니다. 여기서 기본 요금은 부모 블록에서 생성된 가스 소비와 플로팅 및 재귀적 가스 목표 간의 관계를 기반으로 하는 확립된 수학적 모델을 통해 정량적으로 계산됩니다. 직관적인 효과는 이전 블록의 가스 사용량이 미리 정해진 가스 목표를 초과하면 기본 요금이 증가하고 가스 목표보다 적으면 기본 요금이 낮아진다는 것입니다. 이를 통해 공급과 수요 관계를 더 잘 반영하고 합리적인 가스 예측을 더 정확하게 만들어 오작동으로 인한 가스 가격의 급등을 피할 수 있습니다. 기본 요금 계산은 사용자가 자유롭게 지정하는 것이 아니라 시스템에서 직접 결정하기 때문입니다. 구체적인 코드는 다음과 같습니다.
parent_gas_used가 parent_gas_target보다 큰 경우 현재 블록의 기본 수수료가 이전 블록의 기본 수수료에 오프셋 값을 더한 값과 비교되는 것을 볼 수 있습니다. 오프셋 값은 parent_base_fee의 최대값에 가스 대상에 대한 이전 블록의 총 가스 수수료 오프셋을 곱한 값과 가스 대상과 상수와 1의 모듈로입니다. 반대의 경우에도 논리는 비슷합니다.
또한 Base 수수료는 더 이상 광부들에게 보상으로 분배되지 않고 직접 파괴되므로 ETH의 경제 모델은 디플레이션 상태에 있으며 이는 가치의 안정성에 도움이 됩니다. 반면 Priority 수수료는 사용자가 광부에게 제공하는 보상과 동일하며 자유롭게 가격을 책정할 수 있으며 어느 정도 광부의 정렬 알고리즘을 재사용할 수 있습니다.
시간이 2021년이 되면서 Rollup의 개발은 점차 나아지고 있습니다. OP Rollup과 ZK Rollup은 모두 L2 데이터 압축 후 일부 증명 데이터를 calldata를 통해 체인에 업로드하여 데이터 가용성(Data Available)을 달성하거나 검증을 위해 체인에 직접 전달해야 한다는 것을 알고 있습니다. 이로 인해 이러한 Rollup 솔루션은 L2의 최종성을 유지할 때 많은 가스 비용을 지출해야 하며 이러한 비용은 결국 사용자에게 전가됩니다. 따라서 당시 대부분의 L2 프로토콜을 사용하는 비용은 상상만큼 낮지 않았습니다.
동시에 이더리움은 블록 공간 경쟁이라는 딜레마에 직면해 있습니다.우리는 각 블록에 가스 한도가 있다는 것을 알고 있습니다.즉, 현재 블록의 모든 거래에 대한 총 가스 소비량은 이 값을 초과할 수 없습니다.현재 가스 한도인 30000000에 따르면 이론적 한계는 30,000,000 / 16 = 1,875,000바이트이며, 여기서 16은 EVM이 각 콜데이터 바이트를 처리하는 데 16단위의 가스를 소비해야 함을 의미하며, 즉 단일 블록이 운반할 수 있는 최대 데이터 크기는 약 1.79MB입니다.L2 정렬기에서 생성된 롤업 관련 데이터는 일반적으로 크기가 크기 때문에 다른 메인 체인 사용자의 거래 확인과 경쟁이 발생하여 단일 블록에 패키징할 수 있는 거래량이 줄어들고, 이는 메인 체인의 TPS에 영향을 미칩니다.
이 딜레마를 해결하기 위해 핵심 개발자들은 2022년 2월 5일에 EIP-4844 제안을 제안했고, 2024년 2분기 초에 Dencun 업그레이드 이후 구현되었습니다. 이 제안은 Blob Transaction이라는 새로운 거래 유형을 제안했습니다. 기존의 거래 유형과 비교할 때, Blob Transaction의 핵심 아이디어는 Blob 데이터라는 새로운 데이터 유형을 추가하는 것입니다. calldata 유형과 달리, blob 데이터는 EVM에서 직접 액세스할 수 없고 VersionedHash라고도 하는 해시로만 액세스할 수 있습니다. 또한, 두 가지 수반되는 디자인이 있습니다. 첫째, 일반적인 거래와 비교할 때, blob 거래의 GC 주기가 더 짧아 블록 데이터가 너무 부풀어 오르지 않도록 합니다. 둘째, blob 데이터에는 기본 Gas 메커니즘이 있습니다. 전반적인 효과는 EIP-1559와 유사하지만, 자연 지수 함수는 거래 규모의 변동을 처리할 때 더 안정적으로 만들기 위해 수학 모델에서 선택되었습니다. 자연 지수 함수의 기울기도 자연 지수 함수이기 때문입니다. 즉, 현재 네트워크 거래 규모가 어떤 상태이든 거래 규모가 급등하면 블롭 가스의 기본 수수료가 더 충분히 반응하여 거래 활동을 효과적으로 억제합니다. 동시에 이 함수는 중요한 특징도 있습니다. 수평축이 0일 때 함수 값은 1입니다.
블롭 가스당 기본 수수료 = 블롭 가스당 최소 기본 수수료 * e**(초과 블롭 가스 / 블롭 가스 기반 수수료 업데이트 비율)
그 중 MIN_BASE_FEE_PER_BLOB_GAS와 BLOB_BASE_FEE_UPDATE_FRACTION은 두 개의 상수이고, excess_blob_gas는 부모 블록의 총 blob gas 소비량과 TARGET_BLOB_GAS_PER_BLOCK 상수의 차이로 결정됩니다. 총 blob gas 소비량이 목표 값을 초과하면, 즉 차이가 양수이면 e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION)이 1보다 크면 base_fee_per_blob_gas가 커지고, 그렇지 않으면 작아집니다.
이런 방식으로, 가용성을 보장하기 위해 특정 대규모 데이터를 저장하기 위해 Ethereum의 합의 기능만 사용하려는 일부 시나리오는 블록의 트랜잭션 패키징 용량을 압축하지 않고도 저렴한 비용으로 실행할 수 있습니다. Rollup 정렬기를 예로 들면, L2의 핵심 정보는 blob 트랜잭션을 통해 blob 데이터로 캡슐화될 수 있으며, EVM의 정교한 설계를 통해 versionedHash를 통해 온체인 검증의 논리를 구현할 수 있습니다.
TARGET_BLOB_GAS_PER_BLOCK 및 MAX_BLOB_GAS_PER_BLOCK의 현재 설정은 메인넷에 제한을 가한다는 점에 유의해야 합니다. 즉, 블록당 3개의 블롭(0.375MB)의 목표와 블록당 6개의 블롭(0.75MB)의 제한입니다. 이러한 초기 제한은 이 EIP로 인해 발생하는 네트워크의 부담을 최소화하기 위한 것이며, 네트워크가 더 큰 블록으로 안정성을 입증함에 따라 향후 업그레이드에서 증가할 것으로 예상됩니다.
실행 환경 가스 소비 모델의 추가 개선 – EIP-7706
현재 Ethereum Gas 모델을 명확히 한 후 EIP-7706 제안의 목표와 구현 세부 사항을 살펴보겠습니다. 이 제안은 2024년 5월 13일에 Vitalik이 제안했습니다. Blob 데이터와 유사하게 이 제안은 calldata인 다른 특수 데이터 필드에 해당하는 Gas 모델을 제거합니다. 그리고 해당 코드 구현 로직을 최적화합니다.
원칙적으로 calldata의 기본 수수료 계산 로직은 EIP-4844의 blob data에 대한 기본 수수료와 동일합니다. 둘 다 지수 함수를 사용하고 부모 블록의 실제 가스 소비 값과 목표 값의 편차를 기반으로 현재 기본 수수료의 스케일링 비율을 계산합니다.
새로운 매개변수 디자인인 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를 사용하여 가스 한도를 나눕니다.
gas_limits의 설정 논리는 다음과 같습니다.
gas_limits[ 0 ]은 기존 조정 공식을 따라야 합니다.
gas_limits[ 1 ]은 MAX_BLOB_GAS_PER_BLOCK과 같아야 합니다.
gas_limits[ 2 ]는 gas_limits[ 0 ]와 같아야 합니다. // CALLDATA_GAS_LIMIT_RATIO
현재 gas_limits[0]이 30000000이고, CALLDATA_GAS_LIMIT_RATIO가 4로 사전 설정되어 있다는 것을 알고 있습니다. 즉, 현재 calldata gas 목표는 약 30000000 // 4 // 4 = 1875000입니다. 현재 calldata gas 계산 로직에 따르면 0이 아닌 각 바이트는 16가스를 소모하고 0바이트는 4가스를 소모합니다. 특정 calldata에서 0이 아닌 바이트와 0이 아닌 바이트의 분포가 각각 50%라고 가정하면 1바이트의 calldata를 처리하는 데 평균 10가스가 필요합니다. 따라서 현재 calldata gas 목표는 187500바이트의 calldata 데이터에 해당해야 하며, 이는 현재 평균 사용량의 약 2배입니다.
이것의 이점은 콜데이터가 가스 한계에 도달할 확률을 크게 줄이고, 경제 모델을 통해 콜데이터의 사용량을 비교적 일정한 상태로 유지하면서 콜데이터의 남용을 방지한다는 것입니다. 이 설계의 이유는 L2 개발에 대한 장애물을 제거하고, 블롭 데이터를 사용하면 정렬기 비용이 더욱 감소하기 때문입니다.
이 기사는 인터넷에서 발췌한 것입니다: EIP-7706 및 최신 Ethereum Gas 메커니즘에 대한 자세한 설명
관련: 5월에 비트코인(BTC)을 능가할 것으로 예측되는 3가지 강세 Altcoin
요약 바이낸스 코인은 지속적인 통합과 새로운 ATH 형성에 근접해 있기 때문에 가장 성과가 좋은 자산 중 하나가 될 것으로 예상됩니다. 지난 3개월 동안 이미 585% 성장을 기록한 PEPE는 41% 더 상승할 수 있습니다. 트론(TRX)은 일간 차트에서 데드 크로스를 막아내어 추가 성장의 여지와 기회를 제공했습니다. 비트코인(BTC)은 세계에서 가장 큰 암호화폐이지만, 때로는 알트코인조차도 킹 코인의 성과를 능가할 수 있습니다. BeInCrypto는 5월에 BTC보다 성과가 좋을 가능성이 있는 세 가지 알트코인을 분석합니다. 바이낸스 코인(BNB)은 여전히 경쟁에 있습니다. 바이낸스 코인 가격은 한 달 반 이상 통합되어 $640 위로 마감하려고 시도했습니다. 그러나 이 알트코인은 실패했습니다...