과거에 @stable의 가스토큰은 gUSDT였으며, 이를 얻기 위해선 USDT0를 래핑했어야했다.
가스 토큰의 가치는 스테이블했지만
유저가 별도의 가스비를 따로 준비해야된다는 번거로움이 있었다.
이번에 Stable은 v1.2.0 업그레이드를 통해 ERC-20 토큰이자, 수 많은 네트워크에 스테이블코인으로 통용되는 USDT0 그 자체를 네이티브 가스 토큰으로 업그레이드시킨다.
기존 네이티브 토큰 주소: 0x0000000000000000000000000000000000001000
업데이트 이후 네이티브 토큰 주소(USDT0): 0x779Ded0c9e1022225f8E0630b35a9b54bE713736
이는 아주 간단한 업그레이드 같지만 사용자 입장에서는 또 다른 하나의 가스토큰(gUSDT)를 관리할 필요가 전혀 없기 때문에 엄청난 UX 향상이다.
사용자들의 기존 gUSDT 잔고는 전부 자동적으로 USDT0으로 바뀌기 때문에 기존 사용자들은 걱정할 필요가 없다.
여기서 잠깐, USDT0은 네이티브 토큰이자 ERC-20 토큰이기 때문에, Stable이 EVM 실행 중에 USDT0 컨트랙트를 호출하며 가스를 차감하기가 어렵다.
따라서 Stable은 선 락업(pre-charge) 및 후 환불 정산(refund settlement) 모델을 사용한다.
사용자가 트랜잭션을 생성하면 가스비를 최대치로 먼저 수취한다음에, 트랜잭션을 실행하여 실제로 사용한 가스량을 기록하고, 이후에 그 차이만큼 다시 사용자에게 환불을 해준다.
이외에도 이번 v1.2.0 업그레이드에서 중요하게 도입되는 기능 중 하나는 Gas Waiver이다.
Stable에는 거버넌스가 승인한 Waivers라는 특정 주소가 있는데, 이 주소들은 가스비가 0인 트랜잭션도 성공적으로 제출할 수 있는 권한을 갖는다.
사용자는 로직을 포함한 InnerTx를 gasPrice=0으로 설정하여 개인키로 서명하면, Wavier가 이를 WrapperTx로 포함하여 네트워크에 트랜잭션을 전파하는 것이다.
밸리데이터들은 이 트랜잭션을 받아 Waiver의 트랜잭션임을 확인하고, Wavier임을 검증하며, 사용량 제한, 블록 내의 WrapperTx의 캡, API 호출 속도 제한 등의 조건을 만족하면 블록에 포함시킬 수 있다.
이는 사용자가 가스 토큰을 미리 보유하지 않아도 사전에 허용된 특정 시나리오(온보딩, 첫 결제, 계정 생성 등)에서 트랜잭션을 실행할 수 있게 하는 것이다.
Stable이 리테일뿐만 아니라 엔터프라이즈 대상의 USDT 결제 레일을 목표하는 것을 생각하면 이번 업데이트는 기업 입장에서 회계, 정산을 매우 쉽게 하고, 비크립토 유저도 쉽게 온보딩할 수 있도록 하는 것이다. 과연 Stable이 이러한 유저 친화적인 기능을 기반으로 다양한 유즈케이스를 만들 수 있을지 지켜보자.