정지용
프로젝트 목록
학습

온체인 경매 레이싱 게임 봇 전략 기술 노트

VRGDA 방식 동적 가격 경매 위에서 동작하는 온체인 레이싱 봇의 아키텍처와 전략 패턴을 정리한 학습 문서

0xmonaco-docs최근 업데이트 2026년 5월 13일

개요

Paradigm CTF 2022의 0xMonaco 챌린지를 소재로, 경매 기반 가격 결정과 상태 없는 턴제 의사결정이 결합된 온체인 레이싱 게임용 AI 봇의 구조를 관찰자 시점에서 정리한 기술 노트 레포지토리다. 게임 컨트랙트가 정본 상태를 들고 있고 각 봇은 매 턴 `takeYourTurn` 한 함수로만 반응하는 무상태 설계, ACCELERATE/SHELL 두 액션이 VRGDA 스타일 연속 감쇠 곡선으로 가격이 매겨지는 구조, 3자 적대 환경에서의 상대 모델링 필요성을 다룬다. 코드 자체보다는 이런 도메인(연속 가격 경매 + 가스 제한 + 다자 적대 온체인 에이전트)에서 반복적으로 관찰되는 함정과 권장 작업 방식을 ARCHITECTURE/LESSONS/STACK 세 문서로 구조화했다. Solidity, Foundry, Solmate, SignedWadMath 등 실제 사용 스택과 fixed-point 연산의 함정, 가스 예산 안에서의 얕은 추론 패턴 등을 구체적으로 서술한다.

담당 역할

온체인 경매 레이싱 게임 도메인을 분석해 아키텍처, 전략 패턴, 함정과 트레이드오프를 기술 문서로 정리

아키텍처 다이어그램

레포지토리 분석 결과를 바탕으로 자동 생성된 구조도입니다.

아키텍처

게임-봇 상호작용 아키텍처

게임 컨트랙트(Monaco)가 정본 상태를 관리하고 각 봇 컨트랙트가 무상태로 매 턴 반응하는 구조를 보여준다.

다이어그램을 그리는 중…
흐름도

봇 턴별 의사결정 흐름

매 턴 봇이 순위, 격차, 가격을 보고 어떤 액션을 선택하는지에 대한 전략 골격을 나타낸다.

다이어그램을 그리는 중…

기술스택

각 기술을 이 프로젝트에서 어떤 용도로 썼는지 정리했습니다.

언어

  • Solidity게임 컨트랙트 및 봇(Car) 컨트랙트 구현 언어

테스트

  • Foundry빌드, 테스트, 가스 프로파일링 및 배포 스크립트 실행

블록체인

  • Solmate가스 효율적인 유틸 라이브러리(SafeCastLib 등) 활용

데이터

  • SignedWadMath18자리 고정소수점 산술로 연속 지수 감쇠 가격 계산

핵심 포인트

  • ACCELERATE/SHELL 가격이 VRGDA 스타일 연속 감쇠 곡선으로 결정되는 구조를 온체인에서 정확히 계산 가능함을 정리
  • 봇 로직 전체가 영구 저장소 없이 매 턴 순수 함수처럼 동작하는 무상태 설계 패턴을 분석
  • 3자 적대 환경에서 단순 가격 최적화보다 상대 모델링이 더 큰 보상을 낸다는 도메인 통념을 문서화
  • fixed-point 연산 오버플로, revert 시 벌점 등 코드 레벨 함정을 구체적으로 정리
  • 충실한 오프체인 시뮬레이터로 self-play 반복하는 방식이 온체인 테스트보다 권장됨을 명시

문제와 해결

문제가격 수식은 완전히 결정적이라 계산 자체는 쉽지만, 같은 턴에 다른 두 봇이 무엇을 할지는 예측 불가능

해결컴퓨트 자원을 가격 최적화보다 상대 행동 휴리스틱 모델링에 투입하는 전략을 권장

문제가스 예산 한도로 인해 남은 라운드에 대한 깊은 트리 탐색이나 다회 시뮬레이션이 불가능

해결매 턴 얕은 추론을 반복하는 Monte-Carlo lite 방식과 버킷화된 정책 테이블 사용을 채택

문제18자리 wad 고정소수점 곱셈 시 36자리로 확장되며 한 곳이라도 나눗셈을 빠뜨리면 가격이 조용히 어긋남

해결wadMul/wadDiv/wadExp 등 SignedWadMath 헬퍼를 일관되게 사용하고 saturate 동작을 숙지

레포지토리 정보

생성
2026년 5월 13일
최근 커밋
2026년 5월 13일
크기
16 KB
라이선스
없음

이 문서는 2026년 7월 26일 에 자동 분석으로 생성되었습니다.