AI 에이전트 결제 시스템을 직접 만들다가 겪은 두 가지 버그

가 물건을 구매할 수 있게 하는 결제 인프라를 처음부터 직접 만든 사례다. 지금의 결제 시스템은 요청자가 사람이라는 전제로 만들어져 있어서, 와 봇 탐지, 사기 방지 모델이 정상적인 를 막거나 반대로 악성 봇을 그냥 통과시키는 문제가 있다. 이 문제를 제대로 이해하기 위해 암호화 기반 에이전트 , 소유자가 설정하는 , 방지, 결제 정산, 환불까지 결제 시스템 전체를 직접 구현했다.

이후 가짜 정산 계층을 걷어내고 실제 x402 네트워크( 테스트넷)에 연결해, 계층을 실제 온체인 결제 앞단에 붙였다. 구현 과정에서 드러난 버그가 핵심인데, 첫째는 방지 로직이 본인의 정상 결제를 거부한 것이다. x402 은 요청 두 번으로 이뤄지는데(첫 요청에서 결제 필요 응답을 받고, 결제 정보를 붙여 재요청), 검증기가 요청마다 일회용 값(논스)을 소모하다 보니 재요청이 자기 자신의 결제를 복제한 공격처럼 보였다.

각각은 틀리지 않았지만, 서로 다른 두 컴포넌트를 조합한 이음매 부분에서 문제가 생겼다. 둘째는 부동소수점 연산이 금액 계산에 부적합하다는 것으로, 검사 코드가 '147.20000000000002 + 7.8 > 150' 같은 값을 출력했다. 이는 사람이 직접 입력한 숫자가 아니라 부동소수점 연산의 오차에서 비롯된 값이다.

핵심 포인트

  • 의 구매 요청을 봇으로 오인해 막거나, 반대로 악성 봇을 통과시키는 기존 결제 시스템의 구조적 문제를 다룸
  • 암호화 , , 재전송 방지, 정산, 환불을 포함한 에이전트 결제 인프라를 처음부터 직접 구현
  • x402 프로토콜을 이용해 테스트넷의 실제 온체인 결제와 연동
  • 재전송 방지 로직이 결제 재시도 요청을 복제 공격으로 오판한 버그 발견 — 개별 컴포넌트가 아니라 조합 지점(이음매)의 문제
  • 금액 계산에 부동소수점을 쓰면 반올림 오차로 검사가 틀어질 수 있음을 실증
원문 보기