SettleLab
Assessment board
EXAM 03Cross-chain and L2

Cross-chain/L2 리스크 시험

CCTP, bridge, rollup finality, DA, intents, CCIP/CCT를 결제 설계 관점에서 평가한다.

출제 목적

cross-chain UX 뒤에 있는 trust assumption, finality, timeout/refund, solver risk를 구조화하는 능력을 평가한다.

난이도 정책

  • 핵심 문제는 CCTP와 bridge의 신뢰 모델 차이를 묻는다.
  • 심화 문제는 L2 finality와 intent 상태를 코드로 표현하게 한다.

채점 정책

  • 객관식은 완료 조건과 실패 귀속을 구분한다.
  • 코드형은 상태, timeout, proof, refund 신호를 채점한다.
Preview mode

로그인 후 제출 가능

문제, Starter code, 루브릭은 미리 볼 수 있다. 답안 작성과 점수 저장은 로그인 후 제공된다.

객관식핵심3

01CCTP와 bridge의 차이

USDC를 체인 간 이동할 때 CCTP와 일반 bridge를 구분해야 하는 가장 중요한 이유는?

객관식심화3

02Intent 결제 위험

cross-chain intent에서 destination 지급은 성공했지만 origin settlement가 실패했다. 가장 먼저 손실을 볼 가능성이 큰 actor는?

코드 작성심화9

03Cross-chain 결제 상태 타입 작성

source burn, attestation, destination mint, merchant ledger, timeout/refund를 포함한 cross-chain payment 상태 타입을 작성하라.

Starter code
type CrossChainPaymentState =
  | { status: 'source_submitted' }
  // add states
;

채점 루브릭

  • source와 destination 상태를 분리한다.
  • attestation 상태를 별도로 둔다.
  • merchant ledger reconciliation을 포함한다.
  • timeout/refund/dispute를 표현한다.

자동 채점 신호

  • source burn
  • attestation
  • destination mint
  • merchant ledger
  • timeout/refund
코드 작성핵심8

04Route health 결정 함수 작성

route status를 결정하는 decideRouteStatus 함수를 작성하라. finalityLagMinutes, attestationLagMinutes, liquidity, refundQueue를 입력으로 받아 'enable' | 'watch' | 'disable' 중 하나를 반환해야 한다. finality > 30분, attestation > 15분, refundQueue >= 10이면 disable, liquidity가 healthy가 아니거나 refundQueue가 1 이상이면 watch다.

Starter code
function decideRouteStatus(input) {
  // return 'enable' | 'watch' | 'disable'
}

채점 루브릭

  • finality lag와 attestation lag를 threshold로 비교한다.
  • liquidity health를 고려한다.
  • refund queue가 높으면 disable 또는 watch로 둔다.
  • enable/watch/disable을 명확히 반환한다.
  • 제공된 실행 테스트 케이스를 통과해야 한다.

자동 채점 신호

  • finality lag
  • attestation lag
  • liquidity
  • refund queue
  • 상태 반환
로그인하고 답안 제출