서클이 Nanopayments 기능을 공개했다.
$0.000001과 같은 작은 규모도 전송할 수 있고, zero gas를 지불한다고 한다. 이것이 어떻게 가능한 것일까?
비밀은 바로 배치 정산(Batched Settlement)에 있다.
개별 결제마다 온체인 트랜잭션을 발생시키면 가스비가 많이 들기 때문에, Nanopayments에선 Circle Gateway가 사용자들의 오프체인 결제 서명을 수집하고, 순 잔액(net balance)를 계산하다가, 일정 주기마다 오프체인 결제가 모이면 한 번에 정산한다.
과정을 간단히 살펴보면 아래와 같다:
Deposit: 구매자(buyer)는 자신의 지갑에서 Circle Gateway Wallet으로 USDC를 전송한다. 이는 온체인 트랜잭션이며 처음 한 번만 가스비가 소모된다.
Request and negotiate: 구매자가 판매자(seller)에게 유료 리소스를 요청하며, 판매자는 x402 프로토콜을 통해 구매자에게 응답할 수 있다.
Sign authorization: 구매자는 EIP-3009 메시지를 서명한다. 이는 구매자가 판매자에게 지불을 승인한다는 오프체인 서명이며, 가스가 소모되지 않는다.
Settle and serve: Circle Gateway는 서명을 검증하고, 구매자의 잔액을 확인한 후 그만큼의 비용을 잠금한다. 판매자는 그 즉시 구매자에게 유료 리소스를 제공한다.
Batch settlement: Gateway는 일정 주기마다 펜딩된 오프체인 서명을 모으고, 순 잔액을 계산한 후 이를 한 번에 모아 온체인에 정산한다.
즉, 수 많은 오프체인 결제 트랜잭션을 단 하나의 온체인 트랜잭션으로 정산하기 때문에 가스비가 거의 0에 수렴할 수 있는 것이다.
여기서 눈 여겨보아야할 것은, 오프체인 서명을 통해 지불 승인을 하는 과정이 마치 커스터디(custodial) 처럼 보일 수 있는데, Circle Gateway는 논커스터디(non-custodial)이다.
Circle Gateway는 AWS Nitro Enclave TEE를 사용하며, 여기서 EIP-3009 서명 검증, 배치 정산 계산, 배치 결과 서명을 진행한다. 서명에 사용되는 TEE 키는 AWS KMS를 사용하여 안전하게 보호되며, Circle 직원 조차도 TEE와 키에 접근이 불가능하다.
기존에 마이크로페이먼트를 구현하는 방식은 많았으나, 단순히 가스비가 굉장히 저렴한 네트워크에서 트랜잭션을 보내는 정도에 그쳤다. Nanopayments는 오프체인 거래를 모아 배치로 처리하면서 가스비를 획기적으로 줄일 수 있는 방법을 고안했다.
(참고로 USDT 체인인 @Stable은 네트워크 레벨에서 Nanopayments와 비슷한 USDT Transfer Aggregator라는 기능을 구현하기도 했다)
이는 추후에 에이전틱 이코노미가 더 발달했을 때 AI 에이전트들이 결제를 스트리밍 방식으로할 수 있는 여건을 만들어주기에 그 의미가 크다고 할 수 있다.