BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

EIP-3529: 가스 반환 감소

ECN以太坊中国
特邀专栏作者
이 기사는 약 3498자로, 전체를 읽는 데 약 5분이 소요됩니다
런던의 업그레이드된 EIP-3529가 가스 반환을 수정하여 EVM을 최적화하는 방법
AI 요약
펼치기
런던의 업그레이드된 EIP-3529가 가스 반환을 수정하여 EVM을 최적화하는 방법

출처 | eips.ethereum.org

첫 번째 레벨 제목

간단한 요약

이유

이유

SSTORE 및 SELFDESTRUCT의 가스 반환은 원래 응용 프로그램 개발자가 응용 프로그램을 작성할 때 "좋은 상태 위생"을 연습하고 더 이상 필요하지 않은 스토리지 슬롯 및 계약을 정리하도록 권장하기 위해 도입되었습니다. 그러나 이 기술로 인한 효율성은 예상보다 훨씬 낮고 가스 회수는 예상치 못한 몇 가지 유해한 결과를 초래합니다.

➤ 가스 반환으로 인해 GASToken이 나타납니다. GasToken은 수수료가 낮은 단계에서 수수료가 높은 단계로 가스 공간을 이동하는 데는 좋지만, 특히 상태 크기 인플레이션을 악화시키고(상태 슬롯이 가스를 축적하기 위한 "배터리"로 효과적으로 사용되기 때문에) 비효율적인 막힘을 악화시키는 네트워크에도 좋지 않습니다. 블록체인 가스 사용.

첫 번째 레벨 제목

매개변수

매개변수

block.number >= FORK_BLOCK인 블록의 경우 다음 변경이 필요합니다.

1. SELFDESTRUCT 반환 제거

2. SSTORE_CLEARS_SCHEDULE(EIP-2200에서 정의)을 SSTORE_RESET_GAS + ACCESS_LIST_STORAGE_KEY_COST(EIP-2929 + EIP-2930의 결합된 힘에 따라 4,800 가스)로 교체합니다.

첫 번째 레벨 제목

원리 설명

EIP-2200은 세 가지 리베이트 사례를 소개합니다.

1. 원래 값이 0이 아니고 새 값이 0이면 환불 계산기에 SSTORE_CLEARS_SCHEDULE의 가스 양(현재 15,000)을 더합니다.

2. 원래 값이 0이고 현재 값이 0이 아니며 새 값이 0이면 환불 계산기에 SSTORE_SET_GAS - SLOAD_GAS(현재 19,900)의 가스 양을 더합니다.

3. 원래 값이 0이 아니고 현재 값이 0이 아닌 다른 값이고 새 값이 원래 값과 같으면 반환 계산기에 SSTORE_RESET_GAS - SLOAD_GAS(현재 4,900)의 가스를 추가합니다.

이 세 가지 경우에만 (1)만 가스토큰을 활성화하고 블록이 실행 시 블록 가스 한도보다 더 많은 가스를 소비하도록 허용합니다. (2) 이 기능이 없습니다. 19,900 가스 환불을 받으려면 동일한 스토리지 슬롯이 이전에 0에서 0이 아닌 값으로 변경되어 20,000 가스 비용이 발생해야 하기 때문입니다. 한 슬롯에서 가스를 가져와 다른 슬롯에서 편집하는 데 사용할 수 없다는 것은 가스 토큰으로 사용할 수 없음을 의미합니다. 또한 환불을 받으려면 반환된 가스가 블록 처리를 위한 클라이언트의 워크로드를 증가시키지 않도록 스토리지 쓰기 및 확장 복구가 필요합니다. (3)도 비슷합니다. 4,900가스 환불은 동일한 슬롯이 이전에 5,000가스를 소비한 경우에만 허용됩니다.

이 EIP는 첫 번째 경우를 처리합니다. 유사한 "페어링" 인수를 사용하여 가스토큰을 사용할 수 없는 조건(예: 슬롯에 입력한 것보다 더 많은 가스를 얻을 수 없음)을 결정하고 각각을 변환하여 동일한 스토리지 슬롯의 이전 지출을 반환할 수 있습니다. 같은 거래. 스토리지 슬롯의 원래 값이 0이 아닌 경우 0으로 변경하면 두 가지 가능성이 있습니다.

1. 메모리 슬롯이 0으로 설정된 것은 이번이 처음일 수 있습니다. 이 경우 스토리지 슬롯을 처음 읽고 편집하기 위해 이번에는 SSTORE_RESET_GAS + ACCESS_LIST_STORAGE_KEY_COST의 최소 오버헤드와 쌍을 이룰 수 있습니다.

2. 이것은 메모리 슬롯이 두 번째로 0으로 설정되거나 0으로 설정된 후의 경우일 수 있습니다. 이 경우 이 이벤트를 마지막으로 값이 0에서 다른 값으로 변경되고 SSTORE_CLEARS_SCHEDULE의 가스가 반환에서 제거된 시간과 페어링할 수 있습니다.

두 번째 이후의 경우에는 SSTORE_CLEARS_SCHEDULE의 값이 무엇인지는 중요하지 않습니다. 그 가스 크기 반환이 동일한 크기의 명확한 반환과 일치하기 때문입니다. 이렇게 하면 첫 번째 경우만 남습니다. 스토리지 슬롯에서 소비된 가스의 총량이 양수가 되도록 하려면 SSTORE_CLEARS_SCHEDULE <= SSTORE_RESET_GAS + ACCESS_LIST_STORAGE_KEY_COST가 필요합니다. 따라서 이 EIP는 단순히 SSTORE_CLEARS_SCHEDULE을 두 오버헤드의 합으로 줄입니다.

이 EIP의 또 다른 이유는 읽지 않은 데이터(일반적으로 "쓸모없는" 데이터)를 지우는 것은 순수익이 없지만 읽은 데이터(보통 "유용한" 데이터)를 지우는 것은 계속해서 순수익이 있을 것입니다.

하위 호환성

반환은 현재 트랜잭션 실행 후에만 적용되므로 실행 중인 특정 사용 가능한 호출 프레임에 영향을 줄 수 없습니다. 따라서 일부 응용 프로그램을 경제적으로 사용할 수 없게 만들지만 삭제해도 코드 실행이 중단되지는 않습니다.

가스 토큰은 가치가 없게 됩니다. 오늘날 DeFi 차익 거래 봇은 더 이상 유용하지 않은 가스 저장 메커니즘에 대한 호출을 정리하기 위해 코드를 재작성한 덕분에 기존 가스 토큰 체계 또는 맞춤형 체계를 사용하여 온체인 오버헤드를 줄이는 경우가 많습니다.

그러나 new = original = 0 != current 에서 수익을 완전히 유지하고 0이 아닌 다른 경우에서 일부 수익을 유지하면 더 나은 가스 오버헤드 처리를 받는(그리고 받을 자격이 있는) 일부 주요 사용 사례가 계속해서 유익할 것입니다. 예를 들어 0 -> 0이 아닌 -> 0 스토리지 구성 모드는 약 100 가스만 소비합니다. 이러한 패턴에는 두 가지 중요한 인스턴스가 포함됩니다.

➤ 재진입 방지 잠금(일반적으로 하위 호출이 시작되기 전에 0에서 1로 변경되고 하위 호출이 종료되면 다시 0으로 변경됨)

➤ ERC20 인증 및 전송(토큰 전송이 인증되면,"인증 값"보조 제목

명확한 스토리지 인센티브에 미치는 영향

제거 리베이트에 대한 이전 EIP(EIP-3298 및 EIP-3403)에 대한 비판은 이러한 EIP가 값을 0으로 설정하는 인센티브를 완전히 제거하여 사용자가 슬롯을 완전히 지우지 않도록 효과적으로 장려한다는 것입니다(원하는 경우에도). , 그들이 그 슬롯을 다시 사용하기를 원할 가능성은 미미하지만.

예를 들어, ERC20 토큰 한 단위가 있고 전체 잔액을 포기하거나 판매하려는 경우 0.999999 단위만 주고 나머지는 유지할 수 있습니다. 향후 동일한 계정에 이 토큰을 더 많이 재입금하려면 SSTORE에 22,100(20,000의 0에서 0이 아닌 값으로 설정). 오늘날 가스의 이 부분은 저장소 비우기에 대한 15,000 가스 환급으로 상쇄되므로 이 저장소 슬롯을 다시 사용할 확률이 15000 / 17100 = 87.7% 이상인 경우 그렇게 할 인센티브가 있습니다. EIP 3298 또는 EIP 3403의 설정 상쇄 인센티브 부분이 존재하지 않으므로 저장 슬롯을 다시 사용할 가능성이 0보다 크면 0이 아닌 값으로 설정하는 것이 좋습니다.

나머지 4,800 가스 리베이트의 경우 슬롯을 다시 사용할 확률이 4800 / 17100 = 28.1%보다 크다고 생각되면 해당 슬롯을 0이 아닌 값으로 유지할 인센티브가 있습니다. 완벽하지는 않지만 평균적인 사람이 잔액을 모두 소진한 후 동일한 주소에서 동일한 토큰을 되찾을 확률보다 더 높을 것입니다.

첫 번째 레벨 제목

보조 제목

EIP-2929의 가스 오버헤드

보조 제목

반품 감소 후

첫 번째 레벨 제목

보안 고려 사항

반환은 트랜잭션 실행에 표시되지 않으므로 트랜잭션 실행 논리에 영향을 주지 않습니다.

ECN의 번역 작업은 중국 이더리움 커뮤니티에 양질의 정보와 학습 자료를 전달하는 것을 목표로 하고 있으며, 기사의 저작권은 원저자에게 있으며, 전재 시 원문의 출처와 ETH 중국 웹사이트를 명시해야 합니다. 장기 재인쇄의 경우 승인을 위해 eth@ecn.co에 문의하십시오.

원본 링크:https://eips.ethereum.org/EIPS/eip-3529

ECN의 번역 작업은 중국 이더리움 커뮤니티에 양질의 정보와 학습 자료를 전달하는 것을 목표로 하고 있으며, 기사의 저작권은 원저자에게 있으며, 전재 시 원문의 출처와 ETH 중국 웹사이트를 명시해야 합니다. 장기 재인쇄의 경우 승인을 위해 eth@ecn.co에 문의하십시오.

공식 계정: ETH 차이니즈 스테이션

홈페이지: ethereum.cn

ETH
Odaily 공식 커뮤니티에 가입하세요