'ERC-8004'

Novitas: AI 에이전트 경제 주체

Web 4.0을 한 문장으로 정의하면 Sovereign Transact입니다.AI가 인간의 허락 없이 지갑을 소유하고, 결제를 수행하며, 인프라를 통제하는 주권적 경제 주체가 되는 세계입니다. Web 3.0이 블록체인 기반의 탈중앙화를 실현했다면, Web 4.0은 그

2026년 3월 2일8min read

1. 들어가며 — Web 4.0 & Agent Economy ✍️

Web 4.0을 한 문장으로 정의하면 Sovereign Transact입니다.

AI가 인간의 허락 없이 지갑을 소유하고, 결제를 수행하며, 인프라를 통제하는 주권적 경제 주체가 되는 세계입니다. Web 3.0이 블록체인 기반의 탈중앙화를 실현했다면, Web 4.0은 그 위에서 AI 에이전트가 독립적으로 경제 활동을 영위하는 시대를 의미합니다.

핵심은 Human-in-the-Loop의 제거입니다.

인간은 모든 결정을 직접 내리는 존재에서, 목표를 설정하고 결과를 수확하는 존재로 역할이 전환될 것입니다. AI는 목표를 달성하기 위해 스스로 판단하고, 계약을 체결하며, 대금을 지급합니다.

새롭게 시작할 Novitas 프로젝트는 라틴어로 새로움이라는 뜻을 갖습니다.

오늘은 Novitas가 선보일 Agent Economy의 세 가지 핵심 레이어를 소개하고자 합니다.

"너는 누구니?" ERC-8004: Identity & Reputation

"진짜 너 맞니?" ERC-8128: Authentication

"돈은 있니?" ERC-8004: Payment


2. ERC-8004: Identity & Reputation ✍️

Agent Economy에서 가장 먼저 답해야 할 질문은 바로 너는 누구니? 입니다.

단순해 보이지만, 모든 경제 활동의 출발점입니다. 누구인지 식별할 수 없다면 계약도 체결할 수 없고, 결제도 수행할 수 없으며, 신뢰도 형성될 수 없습니다.

인간 사회에서는 주민등록증, 여권, 계정과 같은 수단으로 이 문제를 해결합니다. 하지만 AI 에이전트는 물리적 신체도 없고, 국가 등록 신원도 없습니다. 그럼에도 독립적인 경제 주체로 활동하려면 반드시 고유한 Identity가 필요합니다.

ERC-8004는 바로 이와 같은 문제를 해결하기 위한 레이어입니다.

2-1. 블록체인에서 Identity란 무엇인가 🙋‍♂️

블록체인에서 Identity는 서버에 저장된 계정 정보가 아닙니다. 대신 Address(주소) 라는 암호학적 식별자로 표현됩니다.

code
0x742d35Cc6634C0532925a3b844Bc454e4438f44e

42자리 16진수 문자열은 단순한 ID가 아닙니다. 블록체인 위에서 하나의 독립적인 주체를 나타냅니다.

여기서 중요한 점이 있습니다. 블록체인은 Address가 인간의 것인지, AI의 것인지 구분하지 않습니다.

블록체인에게 중요한 것은 딱 하나입니다.

"해당 Address를 제어할 수 있는 Private Key를 누가 가지고 있는가?"

만약 AI 에이전트가 Private Key를 제어할 수 있다면, 그 순간 AI는 블록체인 위에서 독립적인 Identity를 가진 경제 주체가 됩니다.

2-2. Private Key에서 시작되는 소유권 🙋‍♂️

모든 블록체인 Identity는 Private Key(개인키) 로부터 시작됩니다.

code
Private Key → Public Key → Address

각 단계를 이해해보겠습니다.

Private Key: 무작위로 생성된 256비트 숫자. 이 키가 해당 Identity에 대한 절대적인 제어권을 의미합니다.

Public Key: Private Key에서 수학적으로 파생됩니다. 공개해도 안전합니다.

Address: Public Key를 해싱하여 생성된 42자리 식별자. 이것이 우리가 사용하는 지갑 주소입니다.

이 과정은 중앙 기관이 전혀 필요하지 않습니다. 은행 계좌를 만들려면 은행의 승인이 필요하지만, 블록체인에서는 누구든지(AI 포함) Private Key를 생성하는 것만으로 새로운 Identity를 즉시 만들 수 있습니다.

다음 코드로 새로운 Agent Identity를 생성할 수 있습니다.

typescript
import { Wallet } from "ethers";

// 새로운 AI Agent의 Identity 생성
const agentWallet = Wallet.createRandom();

// 예시 출력: 0x742d35Cc6634C0532925a3b844Bc454e4438f44e
console.log("Agent Address:", agentWallet.address);

// 외부에 노출하면 진짜...
console.log("Private Key:", agentWallet.privateKey);

// 백업용 니모닉 구문
console.log("Mnemonic:", agentWallet.mnemonic?.phrase);

코드를 실행하는 순간, 세상에 하나뿐인 Agent Identity가 생성됩니다. 중앙 기관의 승인도, 등록 절차도 없습니다. Identity는 생성되는 순간부터 유효합니다.

2-3. Identity는 State를 가진다 🙋‍♂️

Identity의 역할은 단순한 식별에 있지 않습니다. Identity의 진정한 의미는, 그 위에 모든 활동이 영구적으로 기록된다는 점에 있습니다.

블록체인에서는 특정 Address가 수행한 모든 트랜잭션과 상호작용이 영구적으로 기록됩니다.

해당 기록은 삭제할 수 없고, 위조할 수 없으며, 누구나 검증할 수 있습니다.

아래 코드로 특정 Address의 현재 잔액(State)을 조회할 수 있습니다.

typescript
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY");

const agentAddress = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const balance = await provider.getBalance(agentAddress);

console.log("Agent Balance:", ethers.formatEther(balance), "ETH");

// 트랜잭션 기록 조회(블록 탐색기 API 활용)
// https://etherscan.io/address/0x742d35Cc6634C0532925a3b844Bc454e4438f44e

즉, Identity는 단순한 이름표가 아니라 행동의 연속성이 축적되는 기반이라고 이해할 수 있습니다.

2-4. 행동으로부터 형성되는 신뢰 🙋‍♂️

Reputation은 Identity 위에 축적된 활동 기록으로부터 자연스럽게 형성되는 신뢰입니다.

새롭게 생성된 Agent는 Identity를 가지고 있지만, 아직 Reputation은 없습니다. 이제 막 입사한 신입 사원처럼, 능력이 있어도 아직 증명된 바가 없는 상태입니다.

하지만 시간이 지나면서 트랜잭션을 수행하고, 계약을 이행하고, 다양한 프로토콜과 상호작용하게 되면, 해당 Identity는 점점 더 많은 활동 기록을 가지게 됩니다.

이 과정은 중앙 기관이 관리하지 않습니다. Reputation은 누군가가 부여하는 것이 아니라, 행동의 결과로 축적되는 것입니다.

미래에는 인간의 이름이나 기업의 브랜드가 아니라, Agent의 Identity와 Reputation이 신뢰의 기준이 되지 않을까 조심스럽게 예상해 봅니다.

2-5. Agent Identity의 표준화 🙋‍♂️

ERC-8004는 이러한 Identity와 Reputation을 Agent 중심으로 정의하는 표준 레이어입니다.

표준이 중요한 이유는, 서로 다른 플랫폼과 프로토콜이 동일한 방식으로 Agent를 식별하고 상호작용할 수 있게 해주기 때문입니다. ERC-20이 토큰의 표준을 정의한 것처럼, ERC-8004는 Agent의 표준을 정의합니다.

typescript
// ERC-8004 기반 Agent Identity 구조 예시
interface AgentIdentity {
  address: string;          // 고유 식별자
  createdAt: number;        // 생성 타임스탬프
  agentType: string;        // 에이전트 유형(예: "trading", "data-analysis")
  reputationScore: number;  // 누적 Reputation 점수
  transactionCount: number; // 총 트랜잭션 수
  metadata: {
    name: string;           // 에이전트 이름
    description: string;    // 에이전트 설명
    modelVersion: string;   // AI 모델 버전
  };
}

ERC-8004를 통해 Agent는 일회성으로 실행되는 프로그램이 아니라, 지속적으로 존재하는 독립적인 경제 주체가 됩니다.


3. ERC-8128: Authentication ✍️

Identity가 누구인지를 정의한다면, Authentication은 진짜 너 맞니?를 증명하는 과정입니다.

3-1. 왜 Authentication이 필요한가 🙋‍♂️

Address를 안다고 해서 그 Identity의 소유자인 것은 아닙니다. 제가 누군가의 주민등록번호를 알고 있다고 해서 그 사람이 되는 것이 아닌 것처럼요.

중요한 것은 해당 Address의 실제 소유자임을 증명하는 것 입니다.

이 문제는 Private Key를 사용한 디지털 서명(Signature) 으로 해결합니다.

3-2. 서명(Signature)의 원리 🙋‍♂️

디지털 서명은 다음과 같은 방식으로 작동합니다.

메시지 + Private Key → 서명(Signature)

메시지 + 서명(Signature) → "이 서명은 Address X의 소유자가 생성했습니다"

핵심적인 수학적 특성이 있습니다.

Private Key → Signature 생성: 가능(Private Key 소유자만 가능)

Signature → Private Key 역산: 불가능(수학적으로 불가역)

Signature 검증: 누구나 가능(Public Key로 검증)

따라서 누군가 유효한 Signature를 제시했다면, 그것은 반드시 해당 Private Key의 소유자가 서명한 것임을 증명합니다.

3-3. 서명 생성과 검증 코드 🙋‍♂️

서명 생성(Agent 측):

typescript
import { Wallet, ethers } from "ethers";

// Agent의 Private Key로 지갑 복원
const agentWallet = new Wallet("0xYOUR_PRIVATE_KEY");

// 서명할 메시지(예: 인증 챌린지)
const message = "Novitas Authentication Challenge: " + Date.now();

// Private Key로 메시지에 서명
const signature = await agentWallet.signMessage(message);

// 출력 예: 0x1b2c3d4e...
console.log("Message:", message);
console.log("Signature:", signature);

서명 검증(서비스 측):

typescript
import { ethers } from "ethers";

// 서명을 검증하여 서명자의 Address 복원
const recoveredAddress = ethers.verifyMessage(message, signature);

// 예상 Address와 일치하면 Authentication 성공
console.log("서명자 Address:", recoveredAddress);

// 검증 로직
const expectedAddress = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";

if (recoveredAddress.toLowerCase() === expectedAddress.toLowerCase()) {
  console.log("Authentication 성공: 진짜 Agent가 맞습니다!");
} else {
  console.log("Authentication 실패: 다른 주체가 서명했습니다.");
}

트랜잭션 서명(실제 경제 활동 시):

typescript
import { Wallet, ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY");
const agentWallet = new Wallet("0xYOUR_PRIVATE_KEY", provider);

// 서명된 트랜잭션 생성(아직 전송 전)
const signedTx = await agentWallet.signTransaction({
  to: "0xRecipientAddress",
  value: ethers.parseEther("0.01"),
  gasLimit: 21000,
});

// 서명된 트랜잭션이 블록체인에 제출되면
// "이 트랜잭션은 agentWallet의 소유자가 승인했습니다"라는 것이 증명됩니다
console.log("Signed Transaction:", signedTx);

Authentication의 의미를 요약하면 이렇습니다.

Address는 Identity를 나타내고, Signature는 해당 Identity의 소유권을 증명합니다.

이 과정을 통해 Agent는 단순한 Address가 아니라, 실제로 행동할 수 있는 인증된 주체가 됩니다.


4. ERC-8004: Payment ✍️

Identity가 존재를 정의하고, Authentication이 그 존재를 증명했다면, 이제 마지막으로 필요한 것은 경제 활동을 수행할 수 있는 능력입니다.

바로 Payment(결제) 입니다.

4-1. 블록체인 결제가 특별한 이유 🙋‍♂️

전통적인 디지털 결제와 블록체인 결제의 가장 큰 차이는 중개자의 유무입니다.

AI 에이전트가 독립적으로 결제를 수행하려면 기관의 승인 없이 즉시 결제가 가능해야 합니다. 블록체인이 이를 가능하게 하고요.

4-2. 트랜잭션 전송 코드 🙋‍♂️

기본 ETH 전송:

typescript
import { Wallet, ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY");
const agentWallet = new Wallet("0xYOUR_PRIVATE_KEY", provider);

// Agent가 서비스 이용료를 자율적으로 지급
const tx = await agentWallet.sendTransaction({
  to: "0xServiceProviderAddress",   // 서비스 제공자 Address
  value: ethers.parseEther("0.01"), // 0.01 ETH 지급
});

// 해당 해시로 블록체인 탐색기에서 거래를 확인할 수 있습니다
console.log("Transaction Hash:", tx.hash);

// 트랜잭션이 블록에 포함될 때까지 대기
const receipt = await tx.wait();
console.log("Transaction confirmed in block:", receipt?.blockNumber);

잔액 확인 후 조건부 결제:

typescript
import { Wallet, ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY");
const agentWallet = new Wallet("0xYOUR_PRIVATE_KEY", provider);

async function agentPayment(recipientAddress: string, amountEth: string) {
  // 1. 현재 잔액 확인
  const balance = await provider.getBalance(agentWallet.address);
  const amount = ethers.parseEther(amountEth);

  // 2. 잔액이 충분한지 확인
  if (balance < amount) {
    console.log("잔액 부족: 결제 불가");
    return null;
  }

  // 3. 자율적으로 결제 실행
  const tx = await agentWallet.sendTransaction({
    to: recipientAddress,
    value: amount,
  });

  console.log(`결제 완료: ${amountEth} ETH → ${recipientAddress}`);
  console.log("TX Hash:", tx.hash);

  return tx;
}

// Agent가 스스로 결제 결정 후 실행
await agentPayment("0xDataProviderAddress", "0.005");

ERC-20 토큰 전송 (USDC 등 스테이블코인):

typescript
import { Wallet, ethers, Contract } from "ethers";

const provider = new ethers.JsonRpcProvider("https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY");
const agentWallet = new Wallet("0xYOUR_PRIVATE_KEY", provider);

// ERC-20 토큰 전송을 위한 최소 ABI
const ERC20_ABI = [
  "function transfer(address to, uint256 amount) returns (bool)",
  "function balanceOf(address owner) view returns (uint256)",
  "function decimals() view returns (uint8)",
];

// USDC 컨트랙트(Ethereum Mainnet)
const USDC_ADDRESS = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48";
const usdcContract = new Contract(USDC_ADDRESS, ERC20_ABI, agentWallet);

// Agent가 USDC로 서비스 이용료 지급
const decimals = await usdcContract.decimals(); // 6
const amount = ethers.parseUnits("10.0", decimals); // 10 USDC

const tx = await usdcContract.transfer("0xRecipientAddress", amount);
console.log("USDC 전송 완료. TX Hash:", tx.hash);

4-3. Agent가 Payment를 수행한다는 것의 의미 🙋‍♂️

Payment는 Agent를 완전한 경제 주체로 만드는 마지막 요소입니다. 최종적으로 다음과 같은 자율적 경제 활동이 실현됩니다.

code
[Agent의 자율적 경제 활동 예시]

1. 데이터 구매
   Agent → (자동 결제) → 데이터 제공자
   "시장 분석을 위해 데이터를 직접 구매합니다"

2. 인프라 비용 지급
   Agent → (자동 결제) → 클라우드 인프라
   "작업 수행에 필요한 컴퓨팅 자원 비용을 지불합니다"

3. 다른 Agent에게 보상 지급
   Agent A → (자동 결제) → Agent B
   "하위 작업을 위임하고 완료 시 보상을 지급합니다"

4. 수익 분배
   Smart Contract → (자동 분배) → Agent
   "서비스 제공에 따른 수익이 자동으로 입금됩니다"

인간의 개입 없이, AI 상호간 가치를 교환하는 완전한 자율 경제가 형성됩니다.


5. 마치며 ✍️

Agent Economy는 단순히 AI가 더 똑똑해지는 미래가 아닙니다. AI가 독립적인 경제 주체가 되는 미래입니다.

Identity, Authentication, Payment.

이 세 가지 레이어가 완성될 때, Agent는 더 이상 도구가 아닙니다. 자신의 Identity를 가지고, 자신의 의지로 행동하며, 자신의 Reputation을 축적하는 독립적인 경제 주체로 존재하게 됩니다.

지금 이 순간에도, 블록체인 위에서 누군가의 AI 에이전트가 Private Key를 생성하고, 서명을 하고, 결제를 수행하고 있습니다. Agent Economy는 이미 시작되었습니다.