위험 경고: '가상화폐', '블록체인'이라는 이름으로 불법 자금 모집 위험에 주의하세요. — 은행보험감독관리위원회 등 5개 부처
검색
로그인
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
시장 동향 보기
Web3 초보자 시리즈: 새로운 온체인 결제 프로토콜 살펴보기 – x402
ZAN Team
特邀专栏作者
2025-11-09 03:00
이 기사는 약 3053자로, 전체를 읽는 데 약 5분이 소요됩니다
x402는 코인베이스가 제안하고 구현한 오픈소스 Web3 결제 프로토콜입니다. 이 글에서는 예시를 통해 실제 프로젝트에서 x402를 활용할 수 있는 가능성을 살펴보겠습니다.

코인베이스는 최근 새로운 결제 프로토콜인 x402를 발표했습니다. x402는 코인베이스가 개발한 프로토콜이기 때문에 Base Sepolia를 자연스럽게 지원하며 기본적으로 제공됩니다. 또한, 이미 솔라나 체인을 지원하고 있어 x402가 특정 체인에 종속되지 않음을 보여줍니다.

https://github.com/coinbase/x402

이 과정을 이해하기 위해 모든 서버, 클라이언트, 그리고 퍼실리테이터 구성 요소를 포함하는 새 저장소(https://github.com/gin-lsl/x402-solana-demo)를 만들었습니다. 여기서는 클라이언트가 Devnet의 USDC(커스텀 토큰)로 결제하여 서버에서 제공하는 특정 인터페이스에 접근할 수 있도록 Koa를 기본 프레임워크로 선택했습니다.

몇 가지 설명

먼저, spl-token 도구를 사용하여 해당 토큰을 생성했습니다. 해당 도구는 여기에서 확인할 수 있습니다: https://solscan.io/token/9gKBTRXgVTszU31A12oJKKSy6aje8LyoVvNfSimembHo?cluster=devnet

솔라나를 선택한 이유는 이 체인이 개발자 친화적이고, 누구나 개발하고 테스트할 수 있는 거의 무제한의 테스트 토큰을 제공하기 때문입니다. 솔라나는 어떠한 장벽도 없고, 로그인도 필요 없으며, 소셜 미디어 계정 연동도 필요 없고, 메인넷에 잔액이 있는 지갑도 필요하지 않습니다.

프로젝트를 실행해야 하는 경우 .env 파일을 만들고, 필요한 환경 변수를 입력한 다음, 서버를 시작하고 터미널에서 클라이언트 코드를 실행해야 합니다.

코드 설명

이 문서는 데모용이므로 한 곳에만 배치되어 있습니다. 다음은 몇 가지 주요 문서 설명입니다.

솔라나.ts

"/solana/get-balance"라는 인터페이스를 제공하는데, 이 인터페이스는 호출 시 소액의 수수료가 발생하는 유용한 인터페이스라고 가정합니다. 서버로서, 시퀀스 다이어그램의 (5)부터 (8)까지, 더 구체적으로는 (7)에 해당합니다.

일반적으로 서버는 비즈니스 로직만 처리하며 온체인 트랜잭션은 처리할 필요가 없습니다. 따라서 시스템 개발자가 Web3에 익숙하지 않더라도 비즈니스 로직을 최소한으로 변경하여 Web3 결제 수단을 통합할 수 있습니다.

촉진자.ts

Facilitator의 기능을 구현하며, 주로 /supported, /verify, /settle 인터페이스를 제공합니다. 이 인터페이스는 현재 지원되는 체인을 쿼리하고, 거래 데이터를 검증하고, 온체인 결제 기능을 제공하는 데 사용됩니다. 이 인터페이스에서 체인과 상호 작용하며, 온체인 거래 수수료 지불을 위해 개인 키가 필요합니다. 구조적으로 서버(즉, solana.ts)와 독립적이며, 이는 시퀀스 다이어그램의 (9)와 (10)에 해당합니다.

자체 Facilitator 서비스를 제공하기로 결정하더라도, 이 코드 부분은 실제로 표준화되어 있으며, 직접 구현하지 않고도 공식 패턴을 바로 사용할 수 있습니다. 하지만 현재 공식 지원은 base만 가능합니다. 다른 체인을 사용하려면 약간의 수정 작업이 필요합니다. 이는 주로 시뮬레이션된 트랜잭션을 체인에 전송하여 트랜잭션을 검증하는 과정("x402"가 이미 지원하는 체인인 경우, verify 함수를 직접 호출할 수 있음)과, 트랜잭션을 체인에 공식적으로 제출하고 최종 확인을 기다리는 과정("x402"가 이미 지원하는 체인인 경우, settle 함수를 직접 호출할 수 있음)을 포함합니다.

Solana 체인의 경우, 요청이 POST /settle에 도달하면 "x402/facilitator"의 settle 함수가 호출됩니다. 검증 후, RPC의 sendTransaction이 호출되어 트랜잭션을 전송하고, waitForRecentTransactionConfirmation이 트랜잭션 결과를 기다리고 확인합니다. 관련 코드는 @solana/kit에서 제공합니다. EVM 부분도 유사한 로직을 따릅니다.

x402-미들웨어.ts

서버와 퍼실리테이터를 연결하는 데 사용되며, Koa 미들웨어 역할을 하여 결제가 필요한 API를 보호합니다. 코드는 공식 "x402-express"를 참조합니다. 이 함수의 기능은 자동으로 402 상태를 반환하고 /verify 및 /settle 요청을 전달하는 것입니다.

이 섹션의 코드는 기본적으로 다양한 매개변수를 조합하여 퍼실리테이터에게 전달하거나 클라이언트에게 반환합니다. 테스트의 편의성과 너무 자세한 내용을 피하기 위해 대부분의 매개변수를 고정 값으로 작성했습니다. 여기에는 다음이 포함됩니다.

  • maxAmountRequired를 매우 큰 값으로 설정하면 실제로 클라이언트 측에서 유효성 검사를 거칩니다. 사용자가 지불해야 하는 금액이 이 값보다 높으면 예외가 직접 발생합니다.
  • 자산은 x402에 내장된 토큰 주소 대신, 저희가 직접 생성한 토큰인 9gKBTRXgVTszU31A12oJKKSy6aje8LyoVvNfSimembHo로 설정되었습니다. 메인넷에서는 이 주소가 공식 USDC 주소가 되어야 합니다.

흥미롭게도 x402-express는 Response 함수의 함수를 재작성하여 Koa와 유사한 양파 모델을 구현합니다. 따라서 Express용 미들웨어에서 실제 흐름은 검증 -> 비즈니스 로직 -> 결제입니다. 블록체인 제출은 비즈니스 로직 실행 후 이루어지며, 이는 위의 시퀀스 다이어그램과 일치합니다. Koa에서는 이 로직을 구현하는 것이 매우 간단하지만, Express에서는 추가 코드가 필요합니다. 이것이 아마도 Express 미들웨어 제공을 우선시한 이유일 것입니다.

결제-클라이언트-페치.ts

클라이언트 역할을 하는 이 지갑은 플로우차트의 1단계부터 4단계까지에 해당하는 서버로 요청을 보냅니다. "x402-fetch"에서 제공하는 도우미 함수를 활용하여 402 상태를 자동으로 처리하고, 클라이언트 지갑의 개인 키를 사용하여 서명을 생성하고, 데이터를 재전송합니다.

인터페이스에 직접 요청을 시도합니다. 402 오류가 발생하면 반환된 콘텐츠(서버에서 지원하는 x402 버전(현재 1로 고정됨)과 서버에 필요한 매개변수 포함)를 읽고, 개인 키를 사용하여 거래에 서명한 후, 거래 정보를 직렬화하여 X-PAYMENT 헤더를 통해 원래 URL로 다시 전송합니다.

프로젝트의 기본 구조를 이해한 후 다음 명령을 사용하여 서버와 클라이언트를 실행할 수 있습니다.

클라이언트 실행 결과 및 로그:

생각하다

제 생각에, 이전 Web3 개발자들의 노력이 일반 사용자가 Web3를 사용하는 데 대한 진입 장벽을 낮추고 최종 사용자가 Web3 생태계(결제, 투자 등)를 더 쉽게 활용할 수 있도록 하는 데 목적이 있었다면, 현재의 x402는 Web2 개발자가 Web3 결제 채널에 접근하는 데 대한 진입 장벽을 낮추기 위해 만들어졌습니다.

x402/클라이언트 섹션에 제공되는 도우미 기능들은 유용하지만, 정해진 기능만 수행합니다. 사용자는 이미 지갑을 통해 USDC 및 기타 통화로 쉽게 결제할 수 있습니다. 따라서 상대적으로 x402는 개발자와 서비스 제공업체에게 더 중요할 것입니다.

그러나 x402의 광범위한 도입은 여전히 많은 문제에 직면할 것입니다. 대기업들은 자체적인 내부 결제 시스템을 보유하고 있으며, 새로운 표준을 통합하는 방법에 대해서도 각자의 입장과 속도를 가지고 있습니다. 새로운 결제 수단을 기존 시스템에 통합하는 것은 불가피하게 길고 힘든 과정이 될 것입니다. 더욱이 대기업들은 결제 수단을 통합할 때 규제 관련 사항도 고려해야 하며, 이로 인해 더 편리한 결제 수단을 포기하고 기존의 복잡한 솔루션을 계속 사용하게 될 수도 있습니다.

아마도 Node RPC 제공업체들이 선호할 것입니다. RPC 제공업체는 기본 인터페이스 외에도 다양한 고급 API, 트랜잭션 가속 인터페이스 등을 제공합니다. 이러한 기능들이 x402를 통해 제공될 수 있다면 더 많은 사람들이 서비스를 경험할 수 있을 것입니다.

마지막으로, x420 자체는 기본적인 결제 프로토콜일 뿐이라는 점을 유의하시기 바랍니다. x420의 중요성은 표준화된 기술 사양을 제시한다는 데 있습니다. 공인된 표준을 통해 모든 규모의 개발자와 기업이 전체 생태계 개선을 위해 더욱 쉽게 협력할 수 있습니다. 우리는 새로운 표준 제안을 합리적으로 검토하고, 과대광고를 하는 사람들이 만든 허황된 이야기에 빠지지 않도록 주의해야 합니다.

이 글은 ZAN Team(X 계정 @zan_team )에서 작성했습니다.

개발자
Solana
x402
Odaily 공식 커뮤니티에 가입하세요