피드로 돌아가기
Dev.toBackend
원문 읽기
InsumerAPI가 블록체인 상태를 ES256 JWT로 변환해 표준 API 게이트웨이에서 온체인 조건 기반 접근 제어 실현
Wallet Auth: Gate Any API on What a Wallet Holds
AI 요약
Context
기존 인증 시스템(OAuth, API 키, JWT)은 사용자 신원이나 로그인 세션을 증명하지만, 지갑이 보유한 토큰·스테이킹·자격증명 같은 온체인 상태를 기반으로 접근을 제어할 방법이 없었다. 이로 인해 블록체인 기반 권한 검증이 필요한 API는 자체 블록체인 연결을 관리하거나 중앙화된 검증 인프라에 의존해야 했다.
Technical Solution
- 블록체인 읽기를 서버 측에서 처리: POST /v1/attest 요청에 format: "jwt" 파라미터 추가로 32개 지원 체인의 지갑 상태 조회
- 조건 기반 평가 후 JWT 발급: 토큰 잔액, 스테이킹 여부, EAS 증명 같은 온체인 조건을 평가해 pass/fail 결과를 ES256 서명된 JWT로 반환
- 표준 JWKS 엔드포인트 제공: https://insumermodel.com/.well-known/jwks.json 에서 공개 키 배포해 Kong, Nginx, Cloudflare Access, AWS API Gateway, Azure API Management, Traefik, Envoy 등 모든 표준 JWT 미들웨어와 호환
- JWT 내 조건 해시 포함: 검증자가 conditionHash(SHA-256)로 정확히 어떤 조건이 체크됐는지 확인 가능하게 payload에 평가된 조건 상세 기록
- 30분 TTL과 블록 높이 기록: 발급 시점의 블록번호(blockNumber)를 JWT에 포함해 체인 상태의 시점을 보장하고, 만료시간을 30분으로 설정해 최신 상태 유지
Impact
요청당 비용 1크레딧($0.04)으로 표준 증명과 동일하며, 추가 블록체인 인프라 구축 불필요. Merkle 증명 사용 시에도 2크레딧($0.08)으로 변하지 않음.
Key Takeaway
JWT를 검증 매개체로 사용하면 블록체인 쿼리 로직을 한 곳(InsumerAPI)에 집중시키고, 다운스트림 서비스는 표준 JWT 검증만으로 온체인 상태 기반 접근 제어를 구현할 수 있다. 이는 블록체인 데이터를 인터넷 표준 자격증명으로 변환하는 아키텍처 패턴을 보여준다.
실천 포인트
API 게이트웨이를 관리하는 팀에서 토큰 보유량·NFT 소유권·거버넌스 토큰 보유 같은 온체인 조건으로 접근을 제어해야 할 때, InsumerAPI의 Wallet Auth를 사용해 format: "jwt" 파라미터만 추가하면 기존 JWKS 검증 파이프라인으로 블록체인 조건 기반 인가를 구현할 수 있다. 별도의 블록체인 RPC 연결이나 SDK 통합 없이도 Kong·Nginx·AWS API Gateway 같은 표준 미들웨어에서 즉시 활용 가능하다.