Sui Paymaster로 가스 없는 경험 구축: 아키텍처 및 구현 가이드
사용자가 네이티브 토큰(SUI)을 전혀 보유하지 않아도 dApp과 원활하게 상호작용할 수 있는 세상을 상상해 보세요. 이제 이는 먼 꿈이 아닙니다. Sui의 Gas Station(또는 Paymaster) 덕분에 개발자는 사용자를 대신해 가스 비용을 부담할 수 있어, Web3에 처음 진입하는 사용자들의 가장 큰 장벽을 완전히 제거하고 진정한 무마찰 온체인 경험을 제공할 수 있습니다.
이 글에서는 dApp을 가스 없는 형태로 업그레이드하는 전체 가이드를 제공합니다. Sui Paymaster의 핵심 개념, 아키텍처, 구현 패턴 및 모범 사례를 깊이 있게 살펴보겠습니다.
1. 배경 및 핵심 개념: 스폰서드 트랜잭션이란?
블록체인에서는 모든 트랜잭션에 네트워크 수수료, 즉 “가스”가 필요합니다. Web2의 매끄러운 경험에 익숙한 사용자에게 이는 큰 인지적·운영상의 장벽이 됩니다. Sui는 프로토콜 수준에서 스폰서드 트랜잭션이라는 개념으로 이 문제를 해결합니다.
핵심 아이디어는 간단합니다: 한 당사자(스폰서)가 다른 당사자(사용자)의 트랜잭션에 대한 SUI 가스 비용을 대신 지불하도록 허용합니다. 이렇게 하면 사용자가 지갑에 SUI가 전혀 없어도 온체인 행동을 성공적으로 시작할 수 있습니다.
Paymaster ≈ Gas Station
Sui 생태계에서 트랜잭션을 스폰서하는 로직은 일반적으로 Gas Station 또는 Paymaster라 불리는 오프체인·온체인 서비스가 담당합니다. 주요 역할은 다음과 같습니다.
- 트랜잭션 평가: 사용자의 가스 없는 트랜잭션 데이터(
GasLessTransactionData)를 받습니다. - 가스 제공: 트랜잭션에 필요한 가스 비용을 잠그고 할당합니다. 이는 보통 다수의 SUI Coin 객체로 구성된 가스 풀을 통해 관리됩니다.
- 스폰서 서명 생성: 스폰서를 승인한 뒤, Gas Station은 자신의 개인키(
SponsorSig)로 트랜잭션에 서명하여 비용을 지불하겠다는 의사를 인증합니다. - 서명된 트랜잭션 반환: 이제 가스 데이터와 스폰서 서명이 포함된
TransactionData를 반환해 사용자의 최종 서명을 기다립니다.
요컨대, Gas Station은 dApp 사용자의 “차량”(트랜잭션)이 Sui 네트워크 위를 부드럽게 달릴 수 있도록 연료를 공급하는 역할을 합니다.
2. 고수준 아키텍처 및 상호작용 흐름
가스 없는 트랜잭션은 사용자, dApp 프론트엔드, Gas Station, Sui Full Node 간의 협업으로 이루어집니다. 흐름은 다음과 같습니다:
흐름 세부 설명
- 사용자가 dApp UI에서 행동을 수행하면 가스 정보가 없는 트랜잭션 데이터 패키지가 생성됩니다.
- dApp은 이 데이터를 지정된 Gas Station에 보내 스폰서십을 요청합니다.
- Gas Station은 요청의 유효성을 검증(예: 사용자가 스폰서 대상인지 확인)하고, 가스 코인을 채워 서명한 뒤 반쯤 완성된 트랜잭션을 dApp에 반환합니다.
- 사용자는 지갑에서 전체 트랜잭션 상세(예: “NFT 하나 구매”)를 확인하고 최종 서명을 제공합니다. 이는 사용자가 자신의 행동에 대한 동의를 유지하도록 하는 중요한 단계입니다.
- dApp은 사용자와 스폰서의 서명이 모두 포함된 완전한 트랜잭션을 Sui Full Node에 전송합니다.
- 트랜잭션이 체인에 최종 확정되면 Gas Station은 온체인 이벤트나 영수증을 청취해 이를 확인하고, 필요 시 웹훅을 통해 dApp 백엔드에 성공을 알릴 수 있습니다.
3. 세 가지 핵심 상호작용 모델
비즈니스 요구에 맞게 아래 세 모델을 개별적으로 혹은 조합하여 사용할 수 있습니다.
모델 1: 사용자‑주도 → 스폰서‑승인 (가장 일반적)
대부분의 dApp 상호작용에 적합한 표준 모델입니다.
- 사용자가
GasLessTransactionData를 생성: dApp 내에서 행동을 수행합니다. - 스폰서가
GasData를 추가하고 서명: dApp 백엔드가 트랜잭션을 Gas Station에 보내면, 스폰서는 가스 코인을 첨부하고 서명합니다. - 사용자가 최종 서명: 사용자는 지갑에서 전체 트랜잭션을 확인하고 서명합니다. 이후 dApp이 네트워크에 전송합니다.
보안과 사용자 경험 사이의 균형이 뛰어납니다.
모델 2: 스폰서‑주도 에어드롭/인센티브
에어드롭, 사용자 인센티브, 배치 자산 배포에 최적화된 모델입니다.
- 스폰서가
TransactionData를 미리 채우고 서명: 프로젝트 팀이 대부분의 트랜잭션을 사전에 구성(예: 특정 주소에 NFT 에어드롭)하고 스폰서 서명을 붙입니다. - 사용자의 두 번째 서명만으로 실행: 사용자는 “미리 승인된” 트랜잭션에 한 번만 서명하면 됩니다.
클릭 한 번으로 보상을 청구하거나 작업을 완료할 수 있어 전환율이 크게 상승합니다.
모델 3: 와일드카드 GasData (신용 한도 모델)
보다 유연하고 권한 기반의 모델입니다.
- 스폰서가
GasData객체를 전송: 스폰서는 예산이 정해진 가스 코인 객체를 생성해 직접 사용자에게 소유권을 이전합니다. - 사용자는 예산 한도 내에서 자유롭게 사용: 사용자는 해당 가스 코인을 이용해 예산과 유효 기간 내에서 원하는 트랜잭션을 자유롭게 실행할 수 있습니다.
- 가스 코인 반환: 소진되거나 만료되면 가스 코인 객체는 자동 파괴되거나 스폰서에게 반환되도록 설계할 수 있습니다.
한정된 시간·예산의 “가스 신용카드”를 제공하는 형태로, 게임 시즌 동안 무료 플레이 경험을 제공하는 등 높은 자율성이 요구되는 시나리오에 적합합니다.