SettleLab
전체 코스
Stablecoin · LESSON 03

인텐트와 솔버 정산 모델

스테이블코인Cross-chain settlement심화55분근거 3
AreaStablecoin
TopicCross-chain settlement
Evidence layerCONTRACT / BACKEND
Connected areasDeFi

학습 결과

  • intent를 사용자가 원하는 결과와 제약 조건을 서명한 주문으로 설명한다.
  • solver, filler, escrow, deadline, replay protection이 settlement risk를 어떻게 나누는지 이해한다.
  • ERC-7683을 확정 표준이 아니라 draft mechanism으로 보수적으로 다룬다.

선행 조건

  • risk-security-review

완료 기준

  • intent order의 maker, input, output, deadline, nonce, settlement proof 필드를 정의했다.
  • solver가 destination에서 먼저 지급하고 origin에서 나중에 정산받는 실패 상태를 작성했다.

인텐트와 솔버 정산 모델

도입

Intent는 사용자가 실행 방법이 아니라 원하는 결과를 서명하는 방식이다. "Base에서 merchant에게 100 USDC를 지급하고 싶다"는 결과와 제약 조건을 표현하면 solver가 route, bridge, swap, gas를 선택할 수 있다. UX는 단순해지지만 위험이 사라지는 것은 아니다. 위험은 solver 선택, deadline, refund, settlement proof로 이동한다.

ERC-7683 같은 cross-chain intent 표준화 논의는 중요한 학습 재료지만, 강의에서는 status를 항상 확인해야 한다. 표준이 draft라면 "이미 확정된 표준"이라고 쓰지 않는다. 대신 mechanism을 배우고, adoption이나 volume은 날짜와 출처를 붙이는 대상으로 둔다.

학습 목표

  • intent를 사용자가 원하는 결과와 제약 조건을 서명한 주문으로 설명한다.
  • solver, filler, escrow, deadline, replay protection이 settlement risk를 어떻게 나누는지 이해한다.
  • ERC-7683을 확정 표준이 아니라 draft mechanism으로 보수적으로 다룬다.

개념 설명

상태머신가로 스크롤 · 크게 보기 지원
Intent settlement 상태머신사용자 서명 주문이 solver fill, proof, origin settlement, timeout/refund로 바뀌는 과정을 분리한다.
State 1

SignedIntent

전이 조건을 확인한다.

완료 조건
State 2

Filled

전이 조건을 확인한다.

완료 조건
State 3

ProofSubmitted

전이 조건을 확인한다.

완료 조건
State 4

Settled

전이 조건을 확인한다.

완료 조건
State 5

Refunded

전이 조건을 확인한다.

완료 조건
크게 보기
State 1

SignedIntent

전이 조건을 확인한다.

완료 조건
State 2

Filled

전이 조건을 확인한다.

완료 조건
State 3

ProofSubmitted

전이 조건을 확인한다.

완료 조건
State 4

Settled

전이 조건을 확인한다.

완료 조건
State 5

Refunded

전이 조건을 확인한다.

완료 조건
표 자료가로 스크롤 · 크게 보기 지원
Actor역할실패 상태
User결과와 제약 조건 서명deadline, replay, wrong output
Solver실행 route 선택underfill, delayed fill
Escroworigin funds 보관proof validation failure
Resolversettlement 증거 확인dispute or stale proof
크게 보기
Actor역할실패 상태
User결과와 제약 조건 서명deadline, replay, wrong output
Solver실행 route 선택underfill, delayed fill
Escroworigin funds 보관proof validation failure
Resolversettlement 증거 확인dispute or stale proof

코드로 확인하기

CODE SURFACEtypescript
export type IntentOrder = {  maker: `0x${string}`;  inputToken: `0x${string}`;  outputToken: `0x${string}`;  amountIn: bigint;  minAmountOut: bigint;  destinationChainId: number;  receiver: `0x${string}`;  deadline: number;  nonce: `0x${string}`;};
CODE SURFACEtypescript
export function validateIntent(order: IntentOrder, now: number) {  if (now > order.deadline) throw new Error("intent expired");  if (order.minAmountOut <= 0n) throw new Error("missing output constraint");  if (order.destinationChainId <= 0) throw new Error("invalid destination");  return { ok: true, settlementKey: `${order.maker}:${order.nonce}` };}

코드는 intent를 swap instruction이 아니라 settlement contract가 검증할 수 있는 typed data로 본다. 실제 구현에서는 EIP-712 domain, chain binding, permit, escrow, proof verification이 추가된다.

강의 포인트

표 자료가로 스크롤 · 크게 보기 지원
관점확인할 질문증거로 남길 것
Constraint사용자가 최소 결과와 deadline을 정했는가order fields
Solver누가 execution risk를 맡는가solver registry and quote
Settlementfill proof가 어떻게 검증되는가receipt and proof
Refund실패 시 사용자가 빠져나오는가timeout path
크게 보기
관점확인할 질문증거로 남길 것
Constraint사용자가 최소 결과와 deadline을 정했는가order fields
Solver누가 execution risk를 맡는가solver registry and quote
Settlementfill proof가 어떻게 검증되는가receipt and proof
Refund실패 시 사용자가 빠져나오는가timeout path

실무 예시

백엔드[CONTRACT] cross-chain checkout에서 사용자는 "어느 bridge를 쓸지"를 모를 수 있다. intent model은 이 복잡성을 solver에게 넘긴다. 그러나 solver가 destination에서 merchant에게 먼저 지급하고 origin settlement가 실패하면 누가 손실을 부담하는지 정해야 한다.

좋은 product state는 "결제 중" 하나가 아니다. Signed, Filled, ProofSubmitted, Settled, Refunded가 분리되어야 support와 reconciliation이 같은 증거를 볼 수 있다.

흔한 오해와 실패 시나리오

표 자료가로 스크롤 · 크게 보기 지원
오해실패 시나리오교정 방식
intent는 UX 기능이다settlement와 refund risk가 숨어 있다상태머신을 명시한다
solver가 알아서 최적 route를 찾는다solver trust와 competition이 필요하다registry와 quote evidence를 둔다
deadline만 있으면 안전하다replay와 chain binding이 남는다nonce와 domain separation을 넣는다
draft EIP는 확정 표준이다adoption status를 과장한다status와 날짜를 표시한다
크게 보기
오해실패 시나리오교정 방식
intent는 UX 기능이다settlement와 refund risk가 숨어 있다상태머신을 명시한다
solver가 알아서 최적 route를 찾는다solver trust와 competition이 필요하다registry와 quote evidence를 둔다
deadline만 있으면 안전하다replay와 chain binding이 남는다nonce와 domain separation을 넣는다
draft EIP는 확정 표준이다adoption status를 과장한다status와 날짜를 표시한다

실습 과제

  1. Intent order 타입 정의하기: maker, inputToken, outputToken, minAmountOut, destination, deadline, nonce를 가진 typed order를 정의한다.
  2. Solver 실패 상태표 만들기: fill, timeout, refund, dispute, settlement failure 상태와 사용자 문구를 작성한다.

완료 기준

  1. intent order의 maker, input, output, deadline, nonce, settlement proof 필드를 정의했다.
  2. solver가 destination에서 먼저 지급하고 origin에서 나중에 정산받는 실패 상태를 작성했다.

근거 자료

  • 08 Trends 2026
  • ERC-7683
  • UniswapX Overview
Final checkpoint

읽기를 마쳤다면 여기서 기록한다

아래 버튼은 읽기 진도를 저장한다. 체크리스트, 과제, 랩 산출물은 위 Workbook에서 따로 관리한다.

  • intent order의 maker, input, output, deadline, nonce, settlement proof 필드를 정의했다.
  • solver가 destination에서 먼저 지급하고 origin에서 나중에 정산받는 실패 상태를 작성했다.

학습 자료 근거

08 Trends 2026
intent, solver, ERC-7683 설명 재구성
내부 참고 문서
ERC-7683
https://eips.ethereum.org/EIPS/eip-7683
UniswapX Overview
https://docs.uniswap.org/contracts/uniswapx/overview