AP2

에이전트가 사용자를 대신해 결제할 때, 사용자가 서명한 권한 위임장(Mandate)으로 그 에이전트가 할 수 있는 거래 범위를 암호학적으로 한정하는 프로토콜이다. 기준 시점: 2026-11

왜 필요한가

AP2 공식 문서는 기존 결제 프로토콜이 "사람이 신뢰된 인터페이스를 통해 직접 행동한다"고 전제한다고 짚는다. 에이전트가 대신 거래하는 상황에서는 이 전제가 깨지는데, 기존 프로토콜에는 "에이전트의 신원과 거래 권한을 안전하게 검증할 메커니즘이 없다"는 것이다. 공통 표준이 없으면 가맹점마다 제각각인 해법이 생겨 가맹점 부담이 커지고 사기 위험을 평가하기도 어려운 "분절되고 불안전한 생태계"가 된다고 설명한다. AP2는 이런 상황에서 에이전트가 거래할 권한이 실제로 있는지, 사용자가 의도한 범위를 넘지 않았는지, 문제가 생겼을 때 책임을 누가 지는지를 프로토콜 수준에서 증명할 수 있게 만드는 걸 목표로 한다.

핵심 개념 — Mandate

AP2의 권한 위임 단위는 Mandate(위임장)다. 사용자나 신뢰된 주체가 서명한, 검증 가능한 디지털 자격증명(Verifiable Digital Credential)의 한 형태로, 두 단계로 나뉜다.

거래가 실제로 진행되는 단계에서는 두 가지 구체적인 Mandate가 쓰인다.

역할

AP2는 다섯 가지 역할을 정의하고, 한 주체가 여러 역할을 겸할 수 있다고 본다.

사용자 ──(동의)──▶ Trusted Surface ──(서명된 Mandate)──▶ Shopping Agent
                                                              │
                                      ┌───────────────────────┼───────────────────────┐
                                      ▼                        ▼                       ▼
                               Credential Provider          Merchant            Merchant Payment
                               (결제 자격증명 보관)      (Checkout 제공)         Processor(결제 처리)

동작 과정 — Human Present vs Human Not Present

[Human Present(직접 승인)]
사용자 → (닫힌 Checkout·결제 내역을 직접 보고 승인) → Trusted Surface가 Mandate에 서명
       → Shopping Agent는 그 Mandate를 그대로 전달만 한다

[Human Not Present(자율 결제)]
사용자 → (지출 범위·조건을 담은 Open Mandate에 서명, 1회) → Shopping Agent 보관
       → 이후 거래마다: Shopping Agent가 자기 키로 Closed Mandate를 만들어 서명
       → 거부 영수증을 받기 전에는 같은 Open Mandate로 새 요청을 또 보낼 수 없다

Human Present 모드에서는 사용자가 매 거래마다 닫힌 Checkout과 결제 내역을 직접 보고 명시적으로 승인한다. Human Not Present(자율 결제) 모드에서는 사용자가 제약조건이 담긴 Open Mandate에 한 번 서명해두면, 에이전트가 그 범위 안에서 스스로 거래마다 Closed Mandate를 만들어 서명한다. 이때 Open Mandate는 에이전트의 공개키를 cnf 클레임으로 반드시 포함해야 하고, 만료 시각(exp)은 작업에 필요한 만큼 짧게 잡아야 한다고 명시한다.

트레이드오프

주의사항

핵심 정리

참고

CSLOG에서 보기