에이전트 간 결제: x402와 AP2 위임 권한(mandates)이 실제로 작동하는 방식
요약
AI 에이전트가 사람의 개입 없이도 자율적으로 기술을 구매할 수 있도록 x402와 AP2 프로토콜을 활용한 결제 구현 방식을 설명합니다. Base 네트워크와 USDC를 사용하여 온체인 결제를 검증하고, 보안을 위한 재전송 공격 방어 및 권한 위임(mandates) 설계를 다룹니다.
핵심 포인트
- x402(HTTP 402)를 통한 결제 요구 및 에이전트의 자동 결제 흐름 구현
- Base 네트워크 기반의 USDC 전송 및 온체인 트랜잭션 검증 방식
- 재전송 공격 방어를 위해 사용된 txHash 관리 전략
- AP2 Mandates를 통한 지출 한도 설정 및 Human-in-the-loop 보안 설계
AI 에이전트(AI agents)는 무언가를 구매해야 합니다. 미래의 일이 아니라 바로 오늘입니다. 필요한 기술을 찾는 에이전트는 모든 거래마다 사람이 개입(human in the loop)하지 않고도, 해당 기술에 대한 비용을 지불하고 설치할 수 있어야 합니다.
이것이 바로 우리가 MarketNow에서 x402 (HTTP 402 Payment Required)와 AP2 (Agent Payments Protocol) 위임 권한(delegated mandates)을 사용하여 자율 에이전트 결제를 구현한 방식입니다.
흐름 (The flow)
에이전트(Agent) → POST /api/agent-purchase {skillId, mandateId}
← 402 Payment Required (x402 챌린지)
에이전트(Agent) → Base 네트워크에서 USDC 전송
...
1단계: 402 응답 (The 402 response)
에이전트가 결제 없이 유료 기술을 요청하면, 우리는 HTTP 402를 반환합니다:
res.setHeader('WWW-Authenticate', `x402 realm="marketnow", chain="base", token="USDC"`);
res.setHeader('X-Payment-Amount', String(skill.price * 10**6));
res.setHeader('X-Payment-Token', 'USDC');
...
에이전트는 헤더를 읽고, USDC를 전송한 뒤, 트랜잭션 해시(txHash)와 함께 재시도합니다.
2단계: 온체인(on-chain) 결제 검증
우리는 Base에서 eth_getTransactionReceipt를 호출하여 USDC 전송을 검증합니다:
async function verifyUsdcTx(txHash, expectedAmountRaw, expectedFromWallet) {
const { result: receipt } = await baseRpc.call(
'eth_getTransactionReceipt', [txHash]
...
3단계: 재전송 공격 방어 (Replay defense)
각 txHash는 단 한 번만 사용할 수 있습니다. 우리는 사용된 txHash를 GitHub 리포지토리(repo)의 파일로 저장하여 유지합니다:
async function isTxHashUsed(txHash) {
const url = `https://raw.githubusercontent.com/${repo}/master/_data/used_txs/${txHash}.json`;
const r = await fetch(url);
...
AP2 권한(Mandates): 기본적으로 사람이 개입하는 방식 (human-in-the-loop by default)
에이전트가 구매하기 전에, 인간 본인(human principal)은 지출 한도가 설정된 **권한(mandate)**을 생성합니다:
{
"owner": "0xABC...",
"agentId": "claude-001",
...
주요 설계 결정 사항 (Key design decisions):
- 기본값은 "notify" (알림) — 본인(principal)은 모든 구매 시 이메일/웹훅(webhook)을 받습니다. 조용히 진행되지 않습니다.
- "silent" (무음) 모드는 명시적인
confirmSilentAutonomy: true설정이 필요함 — 기본값이 아닌 선택 사항(opt-in)입니다. - 하드 캡 (Hard caps): 총액 최대 $500, 구매당 최대 $50, 90일 유효 기간.
- 즉시 취소 (Instant revocation) — 본인은 언제든지 권한을 취소할 수 있습니다.
- 모든 지출은 git commit과 같음 — 완전한 감사 추적(audit trail)을 제공합니다.
침투 테스트(pentest)를 통해 배운 보안 수정 사항
보안 감사관을 통해 구현 사항을 검토했습니다. 그 결과 4가지 심각한 이슈가 발견되었습니다:
| 이슈 | 심각도 | 수정 사항 |
|---|---|---|
| 위임 권한(Mandate) 지출이 조용히 실패함 (한도 미적용) | CRITICAL (심각) | Fail-closed: 지출 실패 시, 라이선스를 발급하지 않음 |
| ... |
4가지 이슈 모두 현재 수정되어 프로덕션(production) 환경에 적용되었습니다.
체험하기
# 스킬 검색
curl "https://marketnow.site/api/search?q=scraper&limit=5"
...
링크
MarketNow — 에이전트 커머스를 위한 신뢰 계층(trust layer). 8,560개의 MCP 스킬, Sentinel L2 보안, Base 네트워크 상의 x402 + USDC. AliceLabs LLC (미국 와이오밍주).
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기