최근 회의에서 이러한 주제에 대해 토론해 주신 마리아 , 안스가르 , 비탈릭 , 프란체스코 , 카스파르 , 줄리안을 비롯한 많은 참가자 여러분께 감사드립니다.
1. 개요
EIP-8037은 상태 생성에 대한 가스 비용을 통일하고 인상합니다. 가스 비용 인상은 확장성을 저해할 수 있다는 우려가 있습니다. 사용자들이 상태 생성에 더 많은 가스를 사용하게 되어 일반적인 가스 사용량을 감소시킬 수 있기 때문입니다. 따라서 연구원들은 상태 생성 가스를 다른 모든 작업에 적용되는 목표치 및 제한치에서 분리하여 상태 생성 자체에 대한 목표치와 제한치를 설정하는 방안을 연구해 왔습니다. 가격 재조정 후 상태 생성에 50%의 가스가 사용된다고 가정하면(기존 30%에서 증가), 상태 생성을 분리함으로써 다른 모든 작업에서 약 100%의 확장성 향상을 기대할 수 있어 매우 매력적인 방안입니다.
이 문제를 해결하기 위한 세 가지 접근 방식이 제시되었습니다. 일반적인 가격 조정 외에도, 이더리움은 EIP-8011 에서처럼 가스 미터링을 도입할 수 있습니다. 가스 가격은 가스 한도에 따라 동적으로 변동하도록 설정할 수 있으며, 가능한 사양 중 하나가 여기에 제안되었고, 유사한 사양이 EIP-8037의 최신 버전에서도 채택되었습니다. 대안으로, EIP-8075 에서처럼 특정 상태 증가를 목표로 삼고 적응형 가스 비용을 적용하는 미터링된 상태 생성 방식을 사용할 수도 있습니다.
이 글에서는 두 가지 서로 다른 자원(일반 가스와 상태 생성 가스)이 사용될 때 각 블록마다 기본 수수료를 어떻게 업데이트해야 하는지에 대한 특정 주제를 분석합니다. 이 분석 결과는 EIP-8011과 EIP-8075 모두에 적용될 수 있지만, 특히 EIP-8011의 경우 두 자원의 소비량을 특정 상대적 수준으로 맞추는 목표 메커니즘이 없기 때문에 더욱 중요합니다.
먼저, max 및 average 함수 적용과 같은 기존 접근 방식을 시각화합니다. 그런 다음 유클리드 노름을 실행 가능한 절충안으로 제안합니다. 비대칭적 접근 방식도 살펴봅니다. 계량 가스 방정식이 비선형적일수록 확장성을 극대화하기 위해 비대칭성을 더욱 강화할 수 있습니다. 마지막으로 가장 간단한 변경 사항인 다차원 가스 회계를 간략하게 설명합니다. 이 글 전체에서 계량 가스 (G ) , 일반 가스 (G₁ ) , 상태 생성 가스 ( G₂ ) 는 일반 가스 한도의 분수로 표현됩니다.
2. EIP-8011의 최대 기능
EIP-8011은 모든 개별 자원에서 사용된 가스량의 max 기준으로 계량된 가스량 (GG ) 을 계산하고, 이 값은 EIP-1559 기본 요금 업데이트 공식에 입력됩니다. 그림 1은 그 결과를 보여줍니다.
한 가지 우려 사항은 최적화되지 않은 확장성 향상입니다. 특정 리소스가 다른 리소스보다 훨씬 많은 가스를 소비하는 경우, 나머지 리소스는 수요 대비 높은 기본 수수료 때문에 균형 상태의 목표치보다 훨씬 낮은 수준으로 활용될 수 있습니다. 수요가 높은 리소스는 50% 목표치 부근에 머무르게 됩니다. 컴퓨팅과 같이 순간 처리량에 제약이 있는 리소스는 대부분의 블록에서 사용 가능한 처리 능력이 제대로 활용되지 못하므로, 이상적으로는 한계치에 가깝게 활용되어야 합니다.
그림 1. 두 개의 개별 계량 자원에 대해 max 값 함수를 적용하여 계량된 가스량을 계산할 때의 기본 요금 변화. EIP-1559 규격에 따르면, 가격 변동률 0%는 계량 자원이 G=0.5 로 계산되었음을 의미하고 , 12.5 % 의 가격 변동은 G=1 에서 발생 하며 , -12.5 % 는 G=0을 의미 합니다 .
max 함수의 비선형성으로 인해 장기 소비량이 목표치보다 낮아질 수 있다는 점에 유의하십시오. 두 자원의 장기 소비량이 균형을 이루더라도 개별 블록 수준에서는 항상 균형을 이루지는 않습니다. 따라서 가격은 더 많이 사용되는 자원에 대해서만 목표 사용률을 유지하도록 설정됩니다. 예를 들어, 일부 블록이 (0.5 , 0.3 ) 으로 사용되고 다른 블록이 (0.3, 0.5) 으로 사용되는 경우 장기 평균 사용률 은 ( 0.4 , 0.4 ) 정도 에 불과할 수 있습니다 .
또한 두 자원에 대해 지정된 가스 가격이 지정된 "목표" 소비량에 모두 부합하지 않을 수 있다는 점에 유의하십시오. 이러한 측면은 장점이 될 수도 있고 단점이 될 수도 있으며, 7절에서 논의된 바와 같이 계량 과정 중 전처리 단계를 통해 조정할 수 있습니다.
3. EIP-8075의 평균 기능
그림 2는 계량된 가스량 G 를 두 개의 개별 자원에서 사용된 가스량의 average 으로 나타낸 것입니다. 이는 EIP-8075 의 접근 방식입니다(별도의 타겟팅 단계 제외). 이 계량 방식을 사용하면 평형 상태에서 두 자원의 이용률이 다를 경우, 하나는 50% 이상으로, 다른 하나는 50% 미만으로 조정됩니다. 구체적으로, 시스템 이 ( G_1 + G_2 ) /2=0.5 에서 균형 을 이루 므로 G_1+G_2=1이 됩니다 . 이용률 의 상대적 차이 가 그대로 유지된다고 가정하면, 총 소비 가스량이 (정규화된 단위로) 1로 유지되므로 max 함수에 비해 스케일링이 더 잘 유지됩니다.
또 다른 이점은 현재와 마찬가지로 두 가지 자원 모두 기본 수수료에 항상 영향을 미친다는 것입니다. 동적 가격 경매를 사용하는 근본적인 이유는 블록당 고정 가격을 설정하되, 순간적으로 소모되는 자원(예: 일반 가스)의 소비는 제한 범위 내로 유지하고, 장기적으로 소모되는 자원(예: 상태 생성 가스)의 소비는 목표 수준으로 유지하기 위해 가격을 조정할 수 있도록 하기 위함입니다. 상태 생성을 특정 수준으로 유지하려면, 블록이 일반 가스와 상태 생성 가스를 모두 목표 수준으로 소비했을 때와 일반 가스만 목표 수준으로 소비하고 상태 생성 가스는 소비하지 않았을 때의 기본 수수료가 달라지는 것이 유리해 보입니다.
그림 2. 두 개의 개별 계량 자원의 계량 가스량을 계산하기 위해 average 함수를 적용할 때의 기본 요금 변화. EIP-1559 규격에 따르면, 가격 변동률 0%는 계량 자원이 G=0.5 로 계산되었음을 의미하고 , 12.5 % 의 가격 변동은 G=1 에서 발생 하며 , -12.5 % 는 G= 0 을 의미합니다 .
EIP-8011에 이 접근 방식을 적용할 경우, 한 가지 자원을 장기간 사용할 때 자원의 한계에 매우 근접할 수 있다는 우려가 있습니다. 물론 EIP-8011에서 두 개 이상의 자원을 사용할 경우, 한 자원이 완전히 포화될 수도 있습니다. average 함수를 사용하는 EIP-8075에서는 두 자원 모두 50% 활용률에서 평형을 회복하도록 상태 생성 가스 비용이 빠르게 조정되기 때문에 두 자원 사용 시 발생하는 이러한 엄격한 한계 문제는 발생하지 않습니다.
4. max 과 average 사이의 해법
max 와 average 함수는 서로 다른 고려 사항을 가지고 있으며, 결과값을 그 중간 어딘가에 위치시킴으로써 해결할 수 있습니다. 이렇게 하면 확장성이 더 잘 유지되면서도, 불균형한 분포로 인해 장기적으로 자원이 한계에 매우 근접하는 것을 방지할 수 있습니다.
4.1 max 과 average 의 가중 조합
간단한 해결책은 두 자원 G_1 (G 1) 과 G_2 (G 2) 에서 사용된 가스량에 max 과 average 가중 평균하는 것입니다.
w 에 대한 두 가지 가능한 설정은 1/2과 2/3입니다. 그림 3은 w=1/ 2 일 때 의 결과 를 보여주며, 이 경우 전체 방정식은 다음과 같습니다.
그림 3. 두 개의 개별 계량 자원의 계량 가스량을 계산하기 위해 max 과 average 함수의 가중 조합( w=1/ 2 ) 을 적용 할 때의 기본 요금 변화. EIP- 1559 규격 에 따르면, 가격 변동률 0%는 계량 자원이 G=0.5 로 계산되었음을 의미하고 , 12.5 % 의 가격 변동은 G=1 에서 발생 하며 , -12.5 % 는 G =0을 의미 합니다 .
4.2 유클리드 노름
보다 정교한 해결책은 유클리드 노름(L2 노름)을 이용하는 것입니다.
이렇게 하면 각 자원이 계량된 가스에 미치는 한계 영향이 현재 사용량에 비례하는 매끄러운 표면(4분의 1원)이 생성됩니다.
현재 사용량이 G_1 = 2G_2, G 1 = 2 G 2 조건을 만족하는 경우 , 일반 가스의 추가 한계 단위는 상태 생성 가스의 추가 한계 단위보다 계량 가스량을 약 두 배 더 많이 증가시킵니다. 따라서 이 메커니즘은 목표치보다 훨씬 높은 수준에서 작동하는 특정 자원에 가장 민감하게 반응하면서도, 두 자원 모두의 소비량 변화에 항상 영향을 받습니다. 또 다른 흥미로운 특징은 유클리드 노름이 목표 교차점 근처에서 작동할 때 블록 수준에서 매우 미미한 변동성 드래그를 발생시킨다는 점입니다. 유클리드 노름은 또한 계량 가스량을 원점으로부터의 거리로 측정하는 직관적인 기하학적 특성을 가지고 있습니다. 그림 4는 이 함수를 보여줍니다.
그림 4. 두 개의 개별 계량 자원의 계량 가스량을 계산하기 위해 유클리드 노름을 적용할 때의 기본 요금 변화. EIP-1559 규격에 따르면, 가격 변동률 0%는 계량 자원이 G=0.5 로 계산되었음을 의미하고 , 12.5 % 의 가격 변동은 G=1 에서 발생 하며 , -12.5 % 는 G= 0 을 의미합니다 .
개념적으로 max , average 및 유클리드 노름은 모두 다음 방정식으로 나타낼 수 있습니다.
평균 함수의 경우 p=1, p = 1 이고, 유클리드 노름의 경우 p=2, p = 2 이며 , 최대 함수의 경우 p 는 무한대로 접근합니다.
4.3 모든 함수의 결합 그래프
그림 5는 비교를 용이하게 하기 위해 그림 1~4에 제시된 결과를 함께 보여줍니다. 모든 계량 가스 방정식은 두 자원을 동일하게 사용할 때 동일한 결과를 도출하지만, 불균형적인 사용에 대한 반응은 서로 다릅니다.
그림 5. 그림 1~4의 기본 수수료 변화를 하나의 그래프에 나타낸 것.
5. 비대칭적인 목표/한도 비율
5.1 동기 부여
비대칭적인 목표/한도 비율 또한 가능합니다. 상태 성장은 순간적인 증가에 제약을 받지 않으므로 목표치 대비 한도를 높게 설정하는 것이 유리할 수 있습니다. 반대로 일반 가스는 순간적인 증가에 제약을 받기 때문에 현재의 블롭처럼 목표치와 장기 평균 소비량을 한도에 조금 더 가깝게 설정하는 것이 이상적일 수 있습니다. 앞서 언급했듯이 average 함수에서는 목표치를 한도의 절반 이상으로 높이면 다른 자원이 사용되지 않을 경우 한 자원이 한도를 완전히 포화시킬 수 있습니다. 따라서 평균화 시 목표/한도 비율을 높여서는 안 되며, 오히려 낮추는 것이 바람직할 수 있습니다.
다른 기능의 경우, 버스트 제약이 있는 리소스에 대한 목표/제한 비율을 높일 수 있습니다. 이렇게 하는 이유 중 하나는 한 리소스의 사용량이 목표치를 초과하면 다른 리소스의 평형 사용량이 낮아지기 때문입니다. max 함수에서 목표 사용량은 단지 상한값일 뿐이며, 다른 리소스가 원래 예상했던 것보다 상대적으로 더 많이 사용되는 경우 한 리소스의 실제 사용량은 평형 상태에서 거의 0에 가까워질 수 있습니다. 또한, 2절에서 논의한 바와 같이 블록 수준에서의 불균등한 사용량 역시 평형 사용량을 낮추는 역할을 합니다. 따라서 두 리소스에 대한 수요가 동일할 경우 max 함수는 두 리소스 모두의 사용량이 목표치보다 낮아지는 것을 보게 될 것입니다.
5.2 비대칭 최대
그림 6의 비대칭 max 함수는 전처리 G'_1 = \frac{2}{3}G_1 G ′ 1 = 2 3 을 적용하여 정규 가스 목표물이 중간 지점보다 1/4 위(한계의 3/4)에 위치함을 보여줍니다.G 1. 이 전처리로 인해 G_1 = 3 / 4 가 ( 3/4) × (2/3) = 1/2 로 재설정되어 max 함수 를 적용 하기 전에 ( 3/4 ) × ( 2/3 ) = 1/2 가 됩니다 . 이 자원은 버스트 제약이 없으므로 상태 가스의 제한이 20% 확장됩니다.
그림 6. 비대칭 max 함수 하에서의 기본 수수료 변화. 이 함수는 일반 가스의 목표치를 한도의 3/4로 설정하고, 주정부 가스의 한도를 20% 확장합니다.
5.3 비대칭 유클리드 노름
그림 7의 비대칭 유클리드 노름에 따르면, 일반 가스 목표 지점은 중간 지점( T_1=5/8 , 즉 한계점 의 5/8 ) 보다 1/8 위에 위치합니다. 선형 전처리 단계를 적용하여 일반 가스와 상태 가스의 한계 단위 하나가 목표 교차점 (T_1, T_2 ) 에서 동일한 영향 을 미치 도록 합니다. 전처리된 유클리드 계량 방정식을 고려해 보겠습니다.
목표 지점에서의 동일한 한계 영향은 (T_1,T_2) 에서 \ partial G / \ partial G_1 = \partial G/\partial G_2 ∂ G / ∂ G 1 = ∂ G / ∂ G 2 를 의미하며, 이는 다음과 같이 단순화됩니다.
c_1 과 c_2 의 값은 T_2 가 1/2 로 변하지 않으므로 G(T_1,T_2)=T_2 G ( T 1 , T 2 ) = T 2가 되도록 설정 되었습니다. 이는 다음에서 달성됩니다.
천연가스는 공급량에 제한이 없기 때문에 천연가스 사용량 한도가 30% 더 확대되었습니다.
그림 7. 비대칭 유클리드 노름 하에서의 기본 수수료 변화. 일반 가스의 목표값을 한계값의 5/8로 설정하고, 상태 가스의 한계값을 30% 확장합니다. 측정된 가스 값의 전처리를 통해 일반 가스와 상태 가스의 한계 단위 하나가 목표 교차점 (T_1,T_2)에서 동일한 영향을 미치도록 합니다 . ( T1 , T2 ) .
6. 다차원 가스 회계
(어느 정도) 확장성을 유지하기 위해 사용할 수 있는 가장 간단한 메커니즘은 현재 EIP-1559 메커니즘을 활용하되, 블록에서 사용된 누적 가스량을 계산할 때 각 상태 가스 단위를 약간 적게 계산하는 것입니다. 사용자는 상태 가스에 대해 여전히 전체 가격을 지불합니다. 따라서 송신자가 지불하는 gas_used 는 평소와 같이 계산됩니다: gas_used = regular_gas_used + state_gas_used . 그러나 블록의 cumulative_gas_used 을 계산할 때 DISCOUNT_FACTOR (예: DISCOUNT_FACTOR = 2 )가 적용되며, 이 값은 블록의 가스 한도에 포함됩니다.
cumulative_gas_used = regular_gas_used + state_gas_used // DISCOUNT_FACTOR따라서 이 프로토콜은 별도의 제한을 유지하려고 시도하지 않으므로 최종적으로 계량 가스 방정식을 적용하기 위해 두 자원을 개별적으로 집계할 필요가 없습니다. 물론 이는 확장성에 불리하게 작용하는데, 평형 상태에서도 상태 가스가 일반 가스를 (어느 정도 줄어들기는 하지만) 밀어내기 때문입니다.
7. 결론
7.1 실행 가능한 옵션 비교
EIP-8037에 대해 몇 가지 다른 계량 가스 계산식을 검토했습니다. 극단적인 경우, 계량 가스는 두 자원의 max 으로 계산할 수 있습니다. 목표치가 한계치의 절반일 경우, 수요가 더 높은 자원은 장기적으로 목표치를 초과할 수 없으므로 평형 상태에서 한 자원이 매우 낮은 수준으로 소비될 수 있습니다. 이를 보완하기 위해, 가격 재조정 후 예상보다 상태 생성 수요가 훨씬 더 많을 경우 확장성을 유지하기 위해 버스트 제약이 있는 일반 가스의 목표치를 한계치에 더 가깝게 설정하는 것도 가능합니다.
반대로, 계량된 가스는 두 자원의 average 으로 계산될 수 있습니다. 한 자원에 대한 수요가 다른 자원보다 상대적으로 많을 경우, 장기적인 사용량이 다소 증가할 수 있으므로 사용량이 적은 자원은 평형 상태에서 너무 낮아지지 않을 수 있습니다. 그러나 일반 가스의 경우, 장기 평형 사용량이 이미 1에 가까워져 있을 수 있으므로 일반 가스의 목표치를 비대칭적으로 한계치에 가깝게 설정하는 것은 합리적이지 않습니다.
두 극단적인 값 사이의 절충안은 가중 평균 또는 유클리드 노름으로 계산할 수 있습니다. 이러한 절충안을 통해 비대칭적인 목표/한계 비율을 설정할 수 있지만, max 값 함수를 사용할 때보다 그 범위가 더 제한적입니다.
그림 8은 그림 2, 6, 7에서 제시된 세 가지 옵션을 모두 보여주며, 기본 요금이 변하지 않는(0%) 평형점만을 중점적으로 보여줍니다. 중요한 점은 자원 간 수요가 연구자들이 사전에 세운 가정과 다를 때(특히 초기 수요가 두 자원 모두 목표 수준이라고 가정했을 때) 시스템이 어떻게 작동하는지입니다. 따라서 두 자원 간 평형 이용률이 {2:1, 3:1, 4:1, 5:1}일 때의 결과는 원으로 표시했습니다. 시각화를 위해 각 선의 투명도는 정규 분포를 사용하여 설정했으며, 각 비율(각 원)의 정수 증가는 1표준편차를 나타냅니다.
섹션 2에서 논의한 바와 같이, max 함수의 비선형성은 특히 목표 교차점에서 평형 활용률을 낮추는 효과를 가져옵니다. 이러한 특징은 화살표로 표시됩니다. 이 효과는 목표 교차점에 가까운 max 함수에서 가장 강하게 나타납니다. 평균 함수에서는 블록 수준의 불일치가 장기 활용률을 0% 선에 수직이 아닌 0% 선을 따라 이동하게 만듭니다.
그림 8. 본 논문에서 연구한 계량 가스 방정식의 가능한 결과를 보여주는 그림. 원은 한 자원이 다른 자원에 대해 {2:1, 3:1, 4:1, 5:1}의 비율로 소비될 때의 평형 결과를 나타낸다. 화살표는 비선형 계량 가스 방정식에서 개별 블록에 자원이 균등하게 분배되지 않을 경우 장기적인 이용률이 감소한다는 점을 나타낸다.
7.2 수요, 타겟팅 및 가스 한도 변경
EIP-8011과 같은 계량 방식의 문제점은 EIP-8075에서는 드러나지 않는데, 바로 가격 변화가 수요에 어떤 영향을 미칠지 예측하기 어렵다는 점입니다. 어떤 계량 가스 계산식을 채택하든, 연구자들은 새로운 실효 가스 가격이 수요에 어떤 영향을 미칠지 예측하고, 그에 따른 처리 과정을 설계해야 할 것입니다.
특정 가스 가격에서의 수요가 프로토콜에서 설정한 "목표"와 반드시 일치하는 것은 아니라는 점에 유의해야 합니다. EIP-1559, EIP-4844, EIP-8075처럼 가격을 변동시켜 특정 사용량을 보장하는 완전한 "타겟팅"은 존재하지 않습니다. 만약 상태 가스가 일반 가스 대비 3/7의 비율로만 요구된다면, 블록 변동성을 무시할 경우 상태 가스 소비량이 두 배가 되더라도 max 함수 하에서는 가스 가격에 영향을 미치지 않습니다. 상태 가스 소비량이 항상 가스 가격에 영향을 미칠 수 있는 수준(즉, 실질적인 타겟팅)으로 계량되려면, 가스를 여러 수준으로 측정하고 요금을 부과하는 전송 함수를 채택할 수 있습니다. 사용자는 정해진 가스 가격으로 거래 비용을 지불하지만, max 함수는 예를 들어 7/3 더 높은 수준으로 계량된 가스에 적용될 수 있습니다.
이 전략은 5절에서 비대칭 비율에 대해 수행한 정규화 단계와 다소 유사하지만, 목표치에 위치하지 않은 수요를 보정하기 위해 대칭 비율에도 적용됩니다. 그러나 이는 상태 생성이 사용자가 지불하는 가스 가격에 비해 전체 가스 가격에 과도한 영향을 미친다는 것을 의미합니다. 이러한 측면을 고려할 때, 불균형한 수요 상황에서는 max 함수보다 덜 엄격한 접근 방식이 더 매력적으로 보입니다. 6절은 상태 생성 가스가 가격에 미치는 영향을 줄여주므로 비교 대상으로 적합합니다. 이러한 접근 방식은 average 함수 등에도 적용될 수 있습니다.
관련 문제로는 가스 한도 변경에 대한 처리 방식이 있습니다. 가스 한도가 증가하면 상태 생성량도 함께 증가합니다. 상태 생성을 제어하기 위한 한 가지 해결책은 가스 한도 변경에 따라 가스 가격을 조정하는 것입니다. 예를 들어, 여기에서처럼 말입니다. 일회성 가격 재조정이 수요에 미치는 영향을 예측하기 어려운 것처럼, 이러한 점진적인 변화의 효과를 예측하는 것 또한 마찬가지로 어렵습니다. 가스 한도가 두 배가 될 때 상태 생성에 필요한 가스 가격을 단순히 두 배로 올리는 것은 간단한 문제가 아닙니다. 적절한 변경은 수요 탄력성 에 따라 달라지는데, 현재로서는 이를 예측하기가 매우 어렵습니다. 하지만 최선의 노력을 다해 예측을 시도하고, 탄력성이 관찰된 후 다음 하드 포크에서 조정할 수는 있습니다. 이는 초기 하드 포크에서 가정했던 여러 가지 사항을 고려할 때, 다차원 계량 방식에서 일반적으로 취해야 할 접근 방식입니다.












