서명 팝업 없는 AI 에이전트 결제: ERC-7715와 ERC-7579로 세션 키 구현하기

삼코딩

@samcoding

서명 팝업 없는 AI 에이전트 결제: ERC-7715와 ERC-7579로 세션 키 구현하기

서명 팝업 없는 AI 에이전트 결제: ERC-7715와 ERC-7579로 세션 키 구현하기

AI 에이전트가 블록체인에서 자율적으로 결제하거나 온체인 트랜잭션을 실행할 때 가장 큰 걸림돌은 매번 사용자의 수동 서명을 요구하는 팝업창입니다. 이를 해결하려면 자산을 안전하게 보호하는 소유자 키와 거래를 직접 실행하는 에이전트용 임시 키를 분리하는 이중 키 아키텍처가 필요합니다.

오프체인에서 세션 권한을 위임받는 ERC-7715 표준과 이를 온체인에서 검증하는 ERC-7579 모듈러 스마트 계정을 결합하면, 보안을 타협하지 않으면서도 서명 없는 자율 결제를 구현할 수 있습니다. 이번 가이드에서는 개발자가 이 두 표준을 활용해 실제 자율 커머스를 어떻게 빌드할 수 있는지 아키텍처와 흐름을 짚어보겠습니다.

오프체인 권한 위임 표준, ERC-7715와 viem 구현

AI 에이전트가 매번 화면에 서명 팝업창을 띄우지 않고 자율적으로 트랜잭션을 수행하려면 오프체인 단계에서 일회성 권한을 안전하게 넘겨받아야 합니다. 이 오프체인 권한 위임 소통 방식을 표준화한 규격이 바로 ERC-7715입니다.

디앱이나 에이전트가 사용자 지갑에 wallet_grantPermissions라는 JSON-RPC 메서드를 호출하면, 지갑은 사용자에게 딱 한 번 승인을 요청합니다. 사용자가 승인하면 지갑은 에이전트의 로컬 임시 공개키, 지출 한도, 유효 기간 등이 포함된 permissionsContext라는 인증용 식별값 문자열을 반환합니다.

개발자는 viem의 실험적 기능인 erc7715Actions 확장을 사용해 몇 줄의 TypeScript 코드로 이 위임 과정을 처리할 수 있습니다.

typescript
import { createWalletClient, custom } from 'viem';
import { mainnet } from 'viem/chains';
import { erc7715Actions } from 'viem/experimental';

const client = createWalletClient({
  chain: mainnet,
  transport: custom(window.ethereum),
}).extend(erc7715Actions());

const { permissionsContext } = await client.grantPermissions({
  expiry: Math.floor(Date.now() / 1000) + 86400, // 24시간
  signer: {
    type: 'key',
    data: { id: '0x...' }, // 에이전트의 로컬 공개키
  },
  permissions: [
    { 
      type: 'contract-call',
      data: {
        address: '0x...', // 허용할 컨트랙트 주소
      },
    },
  ],
});

획득한 permissionsContext는 에이전트가 자율적으로 트랜잭션을 실행할 때 서명의 신뢰성을 온체인에 증명하는 핵심 열쇠가 됩니다. 에이전트는 앞으로 가스비를 지불하며 트랜잭션을 보낼 때마다 자신의 로컬 개인키로 서명한 값 뒤에 이 컨텍스트 데이터를 덧붙여 UserOperation의 서명 필드에 실어 전송하게 됩니다.

온체인 규약 검증, ERC-7579와 SmartSession 모듈

오프체인에서 합의된 권한 규약이 온체인에서 안전하게 실행되도록 최종 관문을 지키는 것은 ERC-7579 규격을 따르는 모듈러 스마트 계정의 역할입니다. 에이전트가 오프체인에서 위임받은 임시 키로 트랜잭션을 전송하더라도, 온체인 스마트 계정에 설치된 검증 모듈이 허용된 범위만 실행되도록 통제하기 때문에 보안 사고를 원천 방지할 수 있습니다.

가장 대표적인 온체인 검증 모듈은 라인스톤과 바이코노미가 협력하여 구축한 SmartSession.sol입니다. 이 모듈은 ERC-7579 모듈러 계정에 밸리데이터로 설치되어 에이전트가 전송한 UserOperation 내 서명과 오프체인에서 넘어온 permissionsContext를 대조하여 검증합니다.

이 검증 프로세스에서 모듈은 허용된 대상 컨트랙트 주소, 호출 가능한 함수 셀렉터, 최대 지출 한도, 유효 기간 등의 세부 정책을 실시간으로 확인합니다. 덕분에 개발자는 에이전트가 오직 특정 토큰의 스왑이나 정해진 결제 처리에만 자산을 쓰도록 정밀하게 제어할 수 있으며, 혹여나 에이전트의 로컬 키가 유출되더라도 피해 규모를 사전 승인된 예산 범위 안으로 제한할 수 있습니다.

가스 없는 자율 실행과 ERC-8211 스마트 배칭 결합

에이전트가 사용자의 개입 없이 오프체인에서 독립적으로 동작하려면 가스비 허들을 먼저 제거해야 합니다. ERC-7579 기반 모듈러 계정에 ERC-4337 페이마스터를 연동하면, 핌리코(Pimlico) 같은 인프라 서비스를 통해 가스비를 후원받거나 스마트 계정에 보관 중인 USDC로 가스비를 직접 정산할 수 있습니다. 에이전트는 로컬 임시 키로 서명한 사용자 작업(UserOperation)에 ERC-7715 권한 콘텍스트를 첨부하여 전송하는 방식으로 번거로운 수동 서명과 가스비 준비 과정 없이 자율 실행을 마칩니다.

하지만 가스비가 해결되더라도 AI 에이전트 특유의 확률론적 판단 오류는 여전한 보안 위협입니다. 오프체인 에이전트가 실시간 온체인 유동성이나 가격 변동을 완벽히 예측할 수 없기 때문에, 비정상적으로 슬리피지가 크거나 유해한 트랜잭션에 자산을 노출할 위험이 있습니다.

이 문제를 해결하는 최종 안전장치가 바로 바이코노미와 이더리움 재단이 공동 제안한 ERC-8211 스마트 배칭(Smart Batching) 규격과의 결합입니다. ERC-8211은 에이전트가 수행하는 다단계 트랜잭션들의 가장 마지막 단계에 온체인 사후 검증 조건을 하나의 단위로 묶어 처리합니다. 에이전트가 토큰 교환과 수수료 지불을 자율적으로 수행하더라도, 최종 슬리피지가 사용자가 설정한 한도를 초과하면 전체 트랜잭션을 온체인에서 원자적으로 되돌립니다. 결과적으로 오프체인의 유연성과 온체인의 강력한 보증을 동시에 달성할 수 있습니다.

개발자가 지금 준비해야 할 에이전트 지갑 아키텍처

코인베이스 에이전트킷과 트래발라의 자율 여행 예약 프로토콜 사례처럼 세션 키 기반의 AI 에이전트 결제는 이미 실제 서비스에 활발하게 적용되기 시작했습니다. 이를 안전하게 구현하려면 에이전트의 로컬 임시 키를 TEE 같은 보안 실행 환경에서 관리하고, 온체인 스마트 계정의 화이트리스트 정책과 지출 한도를 철저하게 통제해야 합니다. 이번 가이드에서 다룬 ERC-7715 권한 위임과 ERC-7579 검증 아키텍처를 활용해 사용자 서명 없이도 안전하게 작동하는 자율 온체인 서비스 빌드를 지금 바로 시작해 보시기 바랍니다.


참고 링크