이더리움 DeFi의 가스 소비에 개선 여지가 있을까요?
본 문서는 DODOZoo에 게시되었으며, 저자: 레이밍다, DODO 창립자입니다.
여기서 Gas 문제에 대해 체계적으로 소개하겠습니다.
Gas의 사용 메커니즘
먼저, 이더리움의 Gas는 선불 메커니즘입니다. DEX 사용 과정에서 세 가지 Gas 수치를 보게 됩니다.
A. DEX 프론트엔드에 표시된 Gas
B. 지갑 서명 시 보는 Gas limit
C. Etherscan에서 보는 실제 Gas 소비
예를 들어, 호텔에 가는 경우를 생각해 보세요:
A. 여행 사이트에서 본 호텔 가격 예상 1000
B. 호텔이 당신에게 선불로 3000을 청구함
C. 체크아웃 시 숙박과 음료로 실제로 1200을 지출함
여기서는 실제 소비에 대해 먼저 논의하고, 그 다음 이 숫자를 사용자에게 가능한 한 실제로 보여주는 방법에 대해 논의하겠습니다.
Gas가 비싸다는 것은 무엇인가?
우리가 말하는 한 거래에 100달러의 Gas가 사용되었다는 것은 다음을 의미합니다:
「Gas * GasPrice * ethPrice」
여기서 GasPrice는 사용자가 결정합니다. 빠르게 거래를 성사시키고 싶다면 더 많이 지불하고, 급하지 않다면 적게 지불하면 됩니다. ethPrice는 시장에 의해 결정됩니다.
실제로 제품에 영향을 미치는 것은 Gas 소비 자체입니다. 따라서 Gas를 깊이 이해하려면 우리가 논의하는 기초가 달러에서 Gas 수량으로 바뀌어야 합니다.
수량급 개념
그렇다면 Gas는 주로 어디에 소비될까요?
두 가지 주요 부분: 1. 데이터 쓰기 2. 외부 호출
소위 Gas 최적화란 가능한 적은 데이터 쓰기와 외부 호출로 비즈니스 로직을 완료하는 것을 의미합니다.
데이터 쓰기에는 약 20,000~5,000 Gas가 소요되고, 계약 호출에는 약 3,000 Gas가 소요됩니다. 이는 가장 큰 부분이며, 계산 실행 환경의 복잡성으로 인해 생산 환경에서 아래에 언급된 모든 Gas 소비는 소규모로 변동할 수 있습니다.
한 번의 ERC 20 전송은 두 번의 쓰기를 포함하며, 약 60,000 Gas가 소요됩니다.
한 번의 ERC 20 승인에는 한 번의 쓰기가 포함되며, 약 45,000 Gas가 소요됩니다.
한 번의 Uniswap 단일 점프 거래는 약 110,000 Gas가 소요됩니다 (예: USDT→ETH).
한 번의 Uniswap 이중 점프 거래는 약 170,000 Gas가 소요됩니다 (예: USDT→ETH→UNI).
한 번의 Uniswap 삼중 점프 거래는 약 230,000 Gas가 소요됩니다 (예: USDT→ETH→WBTC→LINK).
따라서 Uniswap에서도 한 번의 Swap이 Gas 소비에서 큰 차이를 보일 수 있습니다!
이것은 라우팅 전략이 매우 간단한 경우입니다. 만약 라우팅 전략이 복잡해지면, 예를 들어 1inch나 Matcha와 같은 경우, 한 거래의 Gas는 150,000에서 1,000,000 사이에서 변동할 수 있습니다.
따라서 특정 플랫폼의 Gas가 비싸다고 단순히 말할 수는 없습니다.
집계기의 Gas가 Uniswap보다 훨씬 비싸 보이는데, 집계기를 버려야 할까요?
그렇지 않습니다.
집계기의 Gas가 비싸긴 하지만, 이는 어리석게 비싼 것이 아닙니다. 비싼 이유는 추가 로직을 실행해야 하기 때문이며, 이러한 추가 로직은 큰 이익을 가져옵니다. 이익이 Gas의 추가 비용을 커버할 수 있다면 집계기를 사용하는 것이 좋습니다.
과거에는 집계기가 Gas에 대해 그리 신경 쓰지 않았지만, 현재 Gasprice와 이더리움 가격의 상승으로 인해 Gas의 달러 지출이 100배 증가했습니다. 그래서 DODOV2에서는 Gas와 가격을 종합적으로 비교하여 평균 비용이 가장 낮은 솔루션을 제공합니다.
DODO는 비싼가?
비싸기도 하고, 그렇지 않기도 합니다.
DODO는 라우팅을 실행할 때 원래 유동성 외에 함수 호출을 추가로 하여 유동성 출처보다 약 40,000 Gas 정도 더 비쌉니다.
하지만:
- Gas 보조금을 고려하면 DODO의 Gas 소비는 유동성 출처와 같거나 더 저렴할 수 있습니다.
- 가격의 장점을 고려할 때, Gas의 지출이 크지만 평균 비용은 DODO에서 가장 낮습니다.
Gas를 합리적으로 표시하는 방법
이전에 호텔의 예를 떠올려 보세요.
만약 당신이 여행 사이트라면, 당신의 목표는 사용자에게 실제 지출을 가능한 한 진실하게 보여주는 것입니다.
일반 사용자들은 이미 호텔에 가서 지불하는 선승인 금액이 실제 소비보다 많다는 것을 알고 있으며, 그리 신경 쓰지 않습니다.
A. DEX 프론트엔드에 표시된 Gas
B. 지갑 서명 시 보는 Gas Limit
C. Etherscan에서 보는 실제 Gas 소비
하지만 이더리움 사용자는 이러한 메커니즘을 아직 충분히 이해하지 못하고 있으며, 그들은 지갑에서 나타나는 것이 선승인이라는 것을 모릅니다. 만약 웹페이지에 숫자 C를 직접 표시하고, 지갑에서 나타나는 숫자 B가 크면 사용자는 매우 혼란스러워 할 것입니다.
그래서 DODO의 웹페이지에서는 먼저 숫자 B를 표시하여 지갑과의 통일성을 보장합니다. 그 다음 숫자 C를 표시하여 사용자가 주저하지 않도록 합니다.
여기서 0.084는 숫자 A, 즉 지갑의 선승인입니다. 0.084-0.042는 숫자 C, 즉 DODO가 예상하는 실제 지출입니다. 이 경우, 당신의 실제 지출은 Uniswap 단일 점프와 비슷합니다.
DODO의 Gas는 개선의 여지가 있나요?
있습니다. DODOV2에서는 다음과 같은 몇 가지 측면에서 주로 개선됩니다:
• Gas와 가격을 종합적으로 비교하여 가격의 장점이 있지만 Gas가 너무 비싸서 사용자 이익이 손해 보지 않도록 합니다;
라우팅 개선으로 상위 계산 비용을 줄입니다;
• V2 풀의 Gas 최적화로 하위 계산 비용을 줄입니다;
• 더 정확한 Gas Price 추정으로 사용자가 정확하게 우선 순위를 정할 수 있게 합니다 (이 점은 스타트업 마이닝 풀의 Gasnow 서비스에 감사드립니다);
• BSC 및 L2 평행 이동을 지원합니다.
요약
Gas는 모든 프로젝트가 피할 수 없는 고통이며, 이는 행복한 고민입니다. 저는 이더리움 1 gwei로 거래를 포장하던 암울한 시절을 겪어봤습니다. 그때는 체인 상 거래가 무료처럼 느껴졌지만, 생활은 매우 힘들었습니다.
이제 DeFi의 가치가 발견되었고, 사람들의 거래 활발도가 크게 증가했으며, Gas 가격도 급등했습니다. 각 프로젝트는 최소한의 읽기 및 쓰기 작업으로 비즈니스를 완료하여 이더리움 생태계에 귀중한 블록 공간을 절약할 의무가 있습니다.
또한 각 프로젝트는 사용자에게 저렴하고 안전한 L2 솔루션을 찾을 의무가 있습니다.
DODO는 항상 Gas 문제를 연구 프로젝트로 간주하며, 연구의 최전선에 서 있습니다. 우리는 사용자가 V2에서 제공하는 Gas 최적화를 조속히 경험할 수 있기를 기대하며, Gas 최적화에 대한 모든 제안을 환영합니다.