가스 후원(계정 추상화)
CloudBank은 ERC-4337 계정 추상화를 통해 사용자의 가스 수수료를 후원하여 사용자가 거래 수수료로 BNB을 보유해야 하는 요구 사항을 제거합니다. 이는 기본 토큰이 없는 Web2 사용자를 온보딩하는 데 중요합니다.
아키텍처 개요
가스 후원 시스템은 일련의 전문 계약을 통해 거래 검증과 실행을 분리하는 ERC-4337 표준을 기반으로 구축되었습니다.
핵심 계약
EntryPoint v0.6
정식 ERC-4337 EntryPoint 계약은 다음 위치에 배포되었습니다.
0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789이는 체인의 모든 UserOperations에 대한 싱글톤 진입점입니다. 모든 번들 작업에 대한 검증, 실행 및 가스 계산을 처리합니다.
CloudBankVerifyingPaymaster
Paymaster 계약은 후원할 UserOperations을 결정하는 CloudBank의 사용자 정의 구현입니다. 후원을 승인하기 위해 오프체인 ECDSA 서명 확인을 사용합니다.
확인 흐름
- 사용자는 UserOperation(목표, 호출 데이터, 가스 한도)을 구성합니다.
- 프런트엔드는 UserOp을 CloudBank의 페이마스터 API에게 보냅니다.
- API은 후원 자격을 평가하고 승인되면 paymaster의 개인 키로 UserOp 해시에 서명합니다.
- 서명된
paymasterAndData필드는 UserOp에 첨부됩니다. - 번들러는 UserOp을 EntryPoint에 제출합니다.
- EntryPoint은 paymaster 계약에서 EntryPoint을 호출하여 서명자를 복구하고 승인된 키와 일치하는지 확인합니다.
Features
| Feature | Description |
|---|---|
| 발신자 허용 목록 | 후원을 받을 수 있는 지갑 주소의 선택적 화이트리스트입니다. 활성화되면 나열된 주소만 가스 후원을 받습니다. |
| 일일 후원자 한도 | 후원 가스에 대한 발신자별 일일 한도를 통해 단일 계정의 남용을 방지합니다. UTC 자정에 재설정됩니다. |
| 스테이크 관리 | 페이마스터는 ERC-4337 사양에서 요구하는 대로 EntryPoint과 함께 ETH/BNB 지분을 유지합니다. 관리 기능은 지분 입금 및 출금을 처리합니다. |
서명 방식
Paymaster 서명에는 다음이 포함됩니다.
- 보낸 사람 주소
- Nonce
- 유효 시간 종료 타임스탬프
- 유효 시간 이후 타임스탬프
- Paymaster별 데이터(스폰서 잔여 한도 등)
이를 통해 각 스폰서십 승인은 시간 제한이 있고 재생이 불가능합니다.
BEP-414 대체
ERC-4337이 최적이 아닌 시나리오의 경우 CloudBank는 BSC의 기본 가스 후원 제안인 BEP-414도 지원합니다. BEP-414을 사용하면 지정된 스폰서가 UserOperation 추상화 계층을 요구하지 않고 프로토콜 수준에서 가스 요금을 지불할 수 있습니다.
BEP-414을 사용하는 경우
- 일괄 작업이 필요하지 않은 간단한 토큰 전송입니다.
- 아직 스마트 계약 지갑과 호환되지 않는 계약과의 상호 작용.
- ERC-4337 번들러를 일시적으로 사용할 수 없을 때 대체합니다.
BEP-414은 UserOperation 수준이 아닌 트랜잭션 수준에서 작동하므로 전체 AA 파이프라인보다 더 간단하지만 유연성이 떨어집니다.
UserOperation 수명주기
운영 고려 사항
- 스테이크 모니터링 — 페이마스터의 EntryPoint 예치금은 최소 스테이크 임계값 이상으로 유지되어야 합니다. 잔액이 구성된 경고 수준 아래로 떨어지면 자동 경고가 트리거됩니다.
- 키 순환 — Paymaster 서명 키는 승인된 서명자 주소를 업데이트하여 계약을 재배포하지 않고도 순환할 수 있습니다.
- 비율 제한 — 백엔드 페이마스터 API은 온체인 일일 스폰서 한도와 별개로 자체 비율 제한을 적용하여 남용에 대한 심층적인 방어를 제공합니다.