Tangem Wallet 스마트 가스 도입: 스테이블코인으로 네트워크 수수료 결제
이제 Tangem Wallet에서 Ethereum, BNB Smart Chain, Polygon, Arbitrum One, Base 네트워크의 스마트 가스 트랜잭션을 사용할 수 있어요.
중앙화 거래소에서 자체 보관 지갑으로 옮겨오는 사용자들은 항상 같은 문제에 부딪혀요. 토큰을 새 지갑으로 출금하고, 트랜잭션을 시도하지만 진행이 되지 않아요. 네트워크의 기본 토큰(예: Ethereum의 ETH, BNB Smart Chain의 BNB, Polygon의 MATIC)으로 가스비를 내야 하는데, 해당 토큰이 하나도 없는 경우가 많기 때문이에요.
이건 단순한 불편이 아니에요. 자산을 옮기려면 소량의 네이티브 토큰을 따로 구매해야 해요. 소액 구매를 지원하는 거래소를 찾아야 하고, 필요한 양보다 출금 수수료가 더 많을 수도 있어요. 아니면 지인을 통해 받거나, 퍼셋을 찾아야 하죠. 특히 자체 보관이 처음인 분들은 여기서 포기하는 경우가 많아요.
Tangem Wallet은 이런 장벽을 완전히 없애기 위해 스마트 가스 트랜잭션을 도입했어요.
스마트 가스 결제란?
스마트 가스 결제는 네이티브 토큰 대신 인기 있는 스테이블코인으로 네트워크 수수료를 결제할 수 있는 기능이에요. 지원되는 네트워크에서 USDC나 USDT가 있다면, 바로 트랜잭션 수수료로 사용할 수 있어요.
예시: Alice는 Coinbase에서 100 USDT를 Ethereum 네트워크의 Tangem Wallet로 출금했어요. 50 USDT를 Bob에게 보내고 싶은데, Tangem에 ETH가 없어 가스비를 낼 수 없어요. 스마트 가스 트랜잭션 기능으로 앱이 USDT 잔액을 감지해 USDT로 수수료 결제를 제안해요. Alice가 확인하고 서명하면 50 USDT가 Bob에게 전송되고, 약 $0.80 상당의 USDT가 네트워크 수수료로 차감돼요. ETH를 따로 준비할 필요가 없어요.
지원 네트워크와 토큰
스마트 가스 트랜잭션은 EIP-7702(Pectra 업그레이드)가 적용된 주요 EVM 네트워크에서 사용할 수 있어요. 유동성, 전송 가스비 예측 가능성, 널리 사용되는지 등을 기준으로 수수료 토큰을 선정했어요. 대부분 거래소 출금 후 가장 많이 보유하게 되는 USD 연동 스테이블코인 위주예요.
네트워크 | 지원 수수료 토큰 |
|---|---|
Ethereum | USDC, USDT |
BNB Smart Chain | USDC, BSC-USD |
Polygon | USDC, USDT0 |
Arbitrum One | USDC, USDT0 |
Base | USDC |
스마트 가스 트랜잭션의 동작 원리
이 기능은 2025년 5월 Pectra 업그레이드로 도입된 EIP-7702(“EOA에 코드 설정”) 표준을 기반으로 해요. 이 표준은 Ethereum 계정의 기능을 크게 확장시켜요.
EIP-7702의 작동 방식
기존 Ethereum에는 두 가지 계정 유형이 있어요. 외부 소유 계정(EOA)은 개인 키로 제어되고, 컨트랙트 계정은 실행 가능한 코드를 포함해요. EOA는 자산 보관과 트랜잭션 서명만 가능하지만, 커스텀 로직 실행은 불가해요. 컨트랙트 계정은 임의의 코드 실행이 가능하지만 배포가 필요하고, 보안 특성도 달라요.
EIP-7702는 이 간극을 메워줘요. 사용자가 서명한 인증 메시지로 EOA가 스마트 컨트랙트 코드를 임시로 위임받을 수 있게 해줘요. 중요한 점은 이 인증이 온체인 트랜잭션 없이, 메시지 서명만으로 가능하다는 거예요. 사용자가 메시지에 서명하면, 그 서명이 다른 사람이 제출하는 트랜잭션에 포함될 수 있어요.
이 덕분에 스마트 가스 트랜잭션이 가능해졌어요. 사용자는 별도의 가스비 없이 자신의 계정에 Tangem의 컨트랙트 로직을 붙일 수 있어요.
Tangem 스마트 컨트랙트 구현
Tangem은 기존 솔루션 대신 자체 스마트 컨트랙트를 개발했어요. 기존 솔루션들은 불필요한 오버헤드로 사용자 비용이 더 들거나, Tangem의 목적에 맞지 않는 기능이 포함되어 공격 표면이 넓어지는 문제가 있었어요.
Tangem의 구현은 두 개의 컨트랙트를 사용해요:
Tangem7702Smart gasExecutor
이 컨트랙트는 사용자의 EOA가 위임하는 역할을 해요. 주요 기능은 다음과 같아요:
- Signature verification — 스마트 가스 트랜잭션 파라미터가 계정 소유자에 의해 EIP-712 타입 데이터 서명으로 검증
- Transaction execution — 사용자가 원하는 트랜잭션(예: 토큰 전송) 실행
- Fee compensation — 실제 소모된 가스를 계산해 수수료 토큰을 수취인에게 전송
컨트랙트는 최소한의 저장소만 유지해요—리플레이 방지를 위한 nonce만 저장하며, 사용자 계정에 다른 컨트랙트가 붙을 경우 충돌을 막기 위해 Solidity의 커스텀 저장소 레이아웃 기능을 활용해요.
// Core data structures
struct Transaction {
address to;
uint value;
bytes data;
}
struct Fee {
address feeToken; // Token used for fee payment
uint maxTokenFee; // Maximum fee in token units
uint coinPriceInToken; // Native currency price in token
uint feeTransferGasLimit; // Gas limit for fee transfer
uint baseGas; // Fixed overhead (signature verification, nonce update)
address feeReceiver; // Fee collection address
}
struct Smart gasTransaction {
Transaction transaction;
Fee fee;
uint nonce; // From user's contract storage
}주요 상수:
- BASE_GAS = 60,000 — 서명 검증, nonce 업데이트, 실행 구조의 고정 가스 오버헤드
Tangem7702EntryPoint(엔트리 포인트 컨트랙트)
Tangem은 리레이 인프라의 인터페이스 역할을 하는 엔트리 포인트 컨트랙트도 배포했어요. 이 컨트랙트는 사용자의 주소에 연결된 컨트랙트 코드가 Tangem이 기대하는 코드와 정확히 일치하는지 검증한 뒤, 트랜잭션 실행을 중계해요.
function executeTransaction(
Smart gasTransaction calldata gasslessTx,
bytes calldata signature,
bool forced,
address executor
) externalforced 파라미터는 수수료 전송 가스가 feeTransferGasLimit을 초과할 때 동작을 제어해요:
- false — 트랜잭션을 되돌림(가스 추정 시 사용)
- true — 이벤트를 발생시키고 계속 진행(실제 실행 시, 이미 가스가 소모된 경우)
이로써 Tangem 리레이 인프라의 안전성이 보장돼요. Tangem은 실제 가스비를 먼저 지불하고, 사용자의 수수료 토큰 잔액에서 보상을 받으므로, 연결된 컨트랙트가 올바르게 보상을 계산해 전송하는지 확실히 해야 해요. 엔트리 포인트 컨트랙트는 Tangem이 감수한 코드와만 상호작용하도록 보장해요.
수수료 파라미터
스마트 가스 트랜잭션을 승인할 때, 다음 정보에 서명하게 돼요:
- Fee token: 결제에 사용될 스테이블코인(예: USDC)
- Token price: 수수료 토큰과 네이티브 통화 간 환율(동등 비용 산출에 사용)
- Maximum fee: 사용자가 지불할 의사가 있는 최대 수수료(앱에 표시됨)
- 리플레이 방지 및 트랜잭션 세부 정보용 추가 파라미터
최대 수수료는 사용자가 비용을 확실히 알 수 있게 해줘요. 실제 청구되는 수수료는 실제 가스 사용량에 따라 결정되며, 보통 이 최대치보다 낮아요.
보안 모델
Tangem은 기존 솔루션도 검토했지만, 자체 컨트랙트 개발을 보안상 더 안전하다고 판단했어요. Tangem 컨트랙트는 토큰 전송 및 수수료 결제에만 집중해, 감사를 쉽게 하고 신뢰성을 높였어요.
항목 | ERC-4337 | Tangem 구현 |
|---|---|---|
가스 오버헤드 | 높음(번들러 인프라) | 낮음(직접 실행) |
공격 표면 | 넓음(기능 다양) | 최소(단일 목적) |
저장소 충돌 위험 | 구현별 상이 | 커스텀 저장소 레이아웃으로 완화 |
업그레이드 가능성 | 종종 포함(관리자 키 위험) | 업그레이드 불가 |
감사
이 컨트랙트는 스마트 컨트랙트 보안 분석 전문 업체 Pessimistic의 감사를 받았어요. 전체 감사 보고서는 GitHub에서 확인할 수 있어요.
사용자 경험
복잡한 기술이 숨어 있지만, 사용자 입장에서는 과정이 아주 간단해요:
- 지원 네트워크에서 트랜잭션(송금, 스왑, 스왑을 통한 송금 등)을 시작해요.
- 지원되는 스테이블코인 잔액이 있으면, 앱이 해당 토큰으로 수수료 결제를 제안해요.
- 스테이블코인 기준 최대 수수료를 확인하고 트랜잭션을 승인해요.
- 백그라운드에서는 EIP-7702 인증(계정에 Tangem 스마트 컨트랙트 연결)과 스마트 가스 트랜잭션 파라미터 모두에 서명해요.
- 서명된 번들이 Tangem 백엔드로 전송되고, 네트워크에 제출돼요.
- 트랜잭션이 실행되고, 수수료가 스테이블코인 잔액에서 차감돼요.
사용자 입장에서는 평소와 같은 트랜잭션이지만, 네이티브 코인을 따로 준비할 필요가 없다는 점이 달라요.
제한 사항 및 참고점
스마트 가스 트랜잭션은 앞서 소개한 스테이블코인에서만 현재 지원돼요. 유동성, 보급률, 기술 호환성을 기준으로 선정했어요. 추가로 다음과 같은 제한이 있어요:
- 수수료 프리미엄: 스마트 가스 트랜잭션은 컨트랙트 실행 오버헤드와 토큰 가격 변환 등으로 네이티브 가스 결제보다 약간 더 비용이 들 수 있어요. Tangem은 이 프리미엄을 최소화하도록 최적화했어요.
- 네트워크 지원: EIP-7702는 Pectra 업그레이드를 적용한 네트워크에서만 사용 가능해요. Tangem은 EIP-7702와 스테이블코인 유동성이 모두 확보된 네트워크에서만 이 기능을 제공해요.
맺음말
스마트 가스 트랜잭션은 자체 보관에서 가장 불편한 부분 중 하나를 해결해요. Tangem은 EIP-7702를 활용해, 사용자가 이미 보유한 토큰만으로도 트랜잭션을 할 수 있도록 만들었어요.
거래소에서 옮겨온 사용자라면, 출금한 토큰을 바로 사용할 수 있어요. 더 넓은 생태계 관점에서도, 사용자가 가스 구조를 이해하지 않아도 바로 자산을 이동할 수 있게 해주는 한 걸음이에요.