메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.stablenet.network/llms.txt

Use this file to discover all available pages before exploring further.

수수료 위임은 애플리케이션이 사용자 대신 가스를 납부할 수 있게 합니다. 사용자는 WKRC를 보유하지 않고도 dApp과 상호작용할 수 있습니다.

두 가지 역할

수수료 위임 트랜잭션(타입 0x16)에는 두 명의 독립적인 서명자가 있습니다:
역할서명납부
발신자 (From)트랜잭션 의도 (v, r, s)전송 가치만
수수료 지불자 (FeePayer)가스 동의 (fv, fr, fs)gasLimit × gasPrice
트랜잭션을 제출하기 전에 두 서명 모두 필요합니다. 어느 쪽도 단독으로 행동할 수 없습니다 — 발신자는 수수료 지불자의 서명 없이 수수료를 지정할 수 없고, 수수료 지불자는 트랜잭션 내용을 변경할 수 없습니다.

달라지지 않는 것

tx.origin은 항상 발신자입니다. msg.sender 또는 tx.origin을 확인하는 컨트랙트는 표준 트랜잭션과 동일하게 동작합니다 — 컨트랙트 코드 변경이 필요 없습니다. 미사용 가스는 발신자가 아닌 수수료 지불자에게 환불됩니다.

왜 중요한가

표준 EVM 체인에서는 모든 사용자가 네이티브 가스 토큰을 보유해야 합니다. 수수료 위임은 이 요구사항을 제거합니다:
  • 가스리스 온보딩 — 신규 사용자가 WKRC 없이도 앱과 상호작용
  • 보조된 액션 — 특정 흐름에 백엔드가 가스 지원 (첫 민트, 일일 클레임 등)
  • 배치 릴레이어 — 단일 수수료 지불자 계정이 여러 사용자의 가스를 처리

작동 방식 (개요)

  1. 발신자가 feePayer 필드를 설정해 트랜잭션 빌드
  2. 발신자 서명 → v, r, s 생성
  3. 수수료 지불자가 트랜잭션 확인 후 서명 → fv, fr, fs 생성
  4. 완전히 서명된 트랜잭션을 eth_sendRawTransaction으로 제출
노드는 멤풀에 수락하기 전에 두 서명을 모두 검증합니다. 하나라도 누락되거나 유효하지 않으면 트랜잭션이 거부됩니다.

개발자 이점

  • 기존 컨트랙트 로직 변경 불필요
  • 유연성 — 수수료 지불자는 백엔드 지갑, 스마트 컨트랙트, 또는 어떤 주소든 가능
  • 잔액 격리 — 수수료 지불자 자금은 가스만 커버하며 전송 가치에 사용 불가

관련 문서