
AMM이란 무엇인가요?
어떤 제품, 기술 또는 혁신이 특정 산업에 혁명적인 영향을 미쳤을 때 우리는 이를 그 산업의 "아이폰 순간(iPhone moment)"이라고 부르는 것을 좋아한다. 이는 2007년 애플(Apple)이 아이폰을 출시한 이후 모바일 통신 및 모바일 컴퓨팅 산업 전반에 걸쳐 막대한 영향을 끼친 데서 유래된 표현이다.
디파이(DeFi) 산업에서는 이를 "AMM 순간"이라 부른다. AMM 모델은 디파이 분야에서 특히 시장 유동성 향상 측면에서 핵심적인 역할을 하였으며, 이는 곧 2021년의 강세장 도래를 직접적으로 촉발하였다. 그렇다면 풀체인 게임(Full-chain game)의 "AMM 순간"은 무엇인가? 본문에서 그 실마리를 찾아보자.
1. 디파이에서 AMM의 중요성
디파이는 블록체인 기술과 금융 분야의 융합이며, 금융 규칙을 스마트 계약으로 작성함으로써 탈중앙화, 개인정보 보호, 자동화를 실현하는 것이다. 금융 분야라면 어떤 프로젝트든 가장 중요한 것은 무엇일까? 바로 "유동성"이다. 예를 들어 대표적인 세 가지 비즈니스 모델인 대출, 거래, 결제(스테이블코인 비즈니스)는 유동성이 없다면 지속적으로 운영될 수 없다.
대출: 유동성은 대출 비즈니스의 핵심이다. 은행과 기타 금융기관은 단기 예금 및 다른 자금 조달원을 통해 장기 대출을 제공한다. 금융기관이 충분한 유동성을 확보하지 못하면 고객의 대출 요청을 충족시키지 못하거나 단기 채무 상환 시 어려움을 겪을 수 있다. 유동성 리스크는 금융 위기에서 중요한 요인이며, 은행이 대출 약속을 이행하기 위한 자금을 확보하지 못할 경우 파산할 수 있다.
거래: 자본시장에서 유동성은 거래의 핵심이다. 유동성이 높다는 것은 자산을 가치 손실 없이 신속하게 매매할 수 있음을 의미한다. 만약 시장이나 자산의 유동성이 부족하다면 투자자는 더 큰 매수-매도 스프레드를 감당해야 하거나 자산을 팔고자 할 때 매수자를 찾기 어려울 수 있다. 이는 가격의 급격한 변동과 시장 불안정을 초래할 수 있다.
결제(스테이블코인): 결제 시스템(스테이블코인)의 유동성은 매우 중요하다. 개인이나 기업이 자금을 이체해야 할 때, 효율적이고 신뢰할 수 있는 결제 시스템에 의존하게 된다. 결제 시스템(스테이블코인)이 유동성을 잃으면 지불 지연이나 실패가 발생하여 경제 전체의 작동에 영향을 줄 수 있다.
웹3 세계에서 거래는 금융 비즈니스의 중심이며, 대출과 결제는 모두 거래를 위한 서비스(레버리지 제공 및 거래 매개체 역할)로 존재한다. 그렇다면 왜 "AMM 순간"이 등장했는가? 그 이유는 블록체인 자체의 성능 제약 때문이다.
중심화된 금융기관은 금융 규칙을 자체 고성능 서버에 두기 때문에 매칭 효율이 극도로 높다. 반면 디파이는 금융 규칙을 스마트 계약에 두는 방식으로, 매칭 효율을 희생하더라도 탈중앙화와 개인정보 보호라는 이점을 얻는다.
스마트 계약은 일종의 "월드 컴퓨터(World Computer)" 계층에서의 시뮬레이션으로, 상대적으로 성능이 극히 낮다. 초기 디파이 프로젝트들—대출이든 거래소든—모두 전통 금융의 오더북(Orderbook) 방식을 따랐다. 이러한 구조 하에서 디파이는 Cefi(Centralized Finance) 앞에서 아무런 저항력도 없었으며, AMM이 등장하기 전까지는 이렇다 할 발전이 없었다.
극도로 낮은 성능의 "월드 컴퓨터"에서 어떻게 유동성 매칭 효율을 극대화할 수 있을까? AMM 모델의 해결책은 자금 풀과 알고리즘을 사용해 자동으로 매칭하는 것이다. 구체적인 작동 방식은 이미 많은 글에서 설명되었기에 여기서는 생략한다. 그러나 그 장점은 이미 잘 알려져 있다:
전통 마켓메이커 불필요: 전통 금융시장에서는 마켓메이커가 매수/매도 호가를 제공함으로써 유동성을 유지한다. 반면 AMM 모델은 유동성 공급자가 자금을 스마트 계약 내 풀에 예치하면, 사전에 정의된 알고리즘에 따라 자동으로 가격 조정과 거래 실행이 이루어지므로 전통 마켓메이커의 개입이 필요 없다.
유동성 풀: AMM 모델의 유동성 풀은 거래자에게 항상 이용 가능한 거래 상대방을 제공한다. 유동성 공급자는 이러한 풀에 자금을 예치하고 거래 수수료를 보상으로 받음으로써, 더 많은 참여를 유도하고 시장 유동성을 증진시킨다.
거래 마찰 감소: AMM의 자동화 특성 덕분에 거래자는 언제든지 거래할 수 있으며, 전통적인 주문 매칭을 기다릴 필요가 없어 거래 마찰이 줄어든다.
디파이 혁신 촉진: AMM 모델은 유동성 마이닝, 듀얼 토큰 풀 등 새로운 혁신들을 디파이 분야에 도입했으며, 이는 디파이의 발전과 보급을 더욱 가속화했다.
결국 AMM 메커니즘의 혁신은 디파이의 유동성 매칭 효율을 Cefi와 견줄 만큼 끌어올렸고, 마침내 DeFi Summer를 맞이하게 되었다.
2. 게임과 블록체인의 본질적 모순은 무엇인가?
현재 풀체인 게임은 디파이와 동일한 시점에 와 있다. 바로 극도로 낮은 성능의 "월드 컴퓨터" 위에서 어떻게 게임을 구동할 것인가? 이를 위해서는 게임과 블록체인의 본질적 모순을 깊이 있게 분석해야 한다.
나는 과거에 「풀체인 게임 엔진 아키텍처 ARC와 ECS의 차이는 무엇인가?」라는 글을 쓴 바 있는데, 그 안에서 게임 루프(Game Loop) 개념을 소개하며 전통적인 게임은 순환 기반(loop-based)임을 지적한 바 있다.
전통적인 게임은 기본 동작 메커니즘이 게임 루프이기 때문에 순환 기반(loop-based)이다. 게임 루프는 사용자 입력 처리, 게임 상태 업데이트, 게임 세계 렌더링 등의 단계를 지속적으로 반복하는 과정이다. 이 루프는 게임이 실행되는 동안 계속되며 일반적으로 초당 수십 번에서 수백 번 실행되어 게임 세계의 부드러운 진행을 유지한다. 이러한 아키텍처 하에서 물리 엔진, AI 시스템 등의 게임 시스템은 각 루프마다 관련 게임 개체와 컴포넌트를 점검하고 처리한다.
반면 블록체인 아키텍처는 푸시 기반(push-based)이다. 블록체인은 분산 데이터베이스로서 네트워크 내 노드들이 정보를 공유하고 저장한다. 노드가 새로운 트랜잭션(송금, 컨트랙트 호출 등)을 생성하면, 해당 트랜잭션이 네트워크에 푸시되고, 다른 노드들은 이를 수신하여 검증한 후 블록체인에 추가한다. 이는 수동적인 과정이며, 노드는 새로운 트랜잭션을 적극적으로 탐색하지 않고, 다른 노드로부터 새로운 트랜잭션이 전달되기를 기다린다. 따라서 블록체인 아키텍처는 푸시 기반이라 불린다.
사실 위 문단만으로도 질문에 대한 답은 이미 나온 셈이다. 게임 아키텍처는 일반적으로 loop-based이며, 블록체인 아키텍처는 push-based이다. 이것이 바로 게임과 블록체인의 본질적 모순이다. 그렇다면 이 모순을 어떻게 해결할 것인가? 이 모순을 해결하는 순간, 풀체인 게임의 "AMM 순간"이 도래한다고 말할 수 있다.
좀 더 심도 있게 논의하기 위해, 게임이 게임 루프를 어떻게 구현하는지 살펴보자.
모든 게임은 사용자 입력 획득, 게임 상태 업데이트, AI 처리, 음악 및 효과음 재생, 게임 화면 표시 등의 일련의 작업을 포함한다. 이러한 작업들은 게임 루프를 통해 처리된다. 여기서는 각 작업의 세부사항보다 게임 루프 자체에 집중하기 위해, 작업을 update_game()과 display_game()이라는 두 함수로 단순화할 수 있다. 다음은 게임 루프의 가장 간단한 형태의 코드 예시이다:
bool game_is_running = true;
while( game_is_running ) { update_game(); display_game(); }
여기서 세 가지 용어를 도입하자:
틱(Tick)
틱(Tick)은 게임 루프(game loop)와 같은 말이며(의성어), 1 틱 = 1 게임 루프이다.
FPS
FPS는 초당 프레임 수(Frames Per Second)의 약자이며, 위 구현 맥락에서 display_game() 함수가 초당 호출되는 횟수를 의미한다.
게임 속도
게임 속도란 게임 상태가 초당 업데이트되는 횟수, 즉 update_game() 함수가 초당 호출되는 횟수를 의미한다.
정리하면, 틱/게임 루프는 게임의 기본 주기로, 게임 로직이 어떻게 업데이트되는지를 결정한다. FPS는 초당 렌더링되는 프레임 수로, 게임의 시각적 부드러움을 결정한다. 게임 속도는 게임 로직이 어떻게 진행되는지를 나타내며 일반적으로 틱 주기와 같다. 이상적인 상황에서는 틱 주기, FPS, 게임 속도가 모두 동일해야 하며, 이는 매 로직 업데이트 후에 대응하는 렌더링이 이루어짐을 의미한다. 그러나 현실에서는 성능 제약이나 기타 기술적 한계로 인해 이 세 가지 값이 다를 수 있다.
3. 풀체인 게임의 핵심 과제
위 내용을 이해한 기반에서 이제 풀체인 게임의 핵심 과제를 논의할 수 있다.
-
게임 루프와 블록체인의 불일치: 전통적인 게임은 게임 루프(game loop) 기반으로, 매 틱 혹은 매 프레임마다 게임 상태가 업데이트된다. 그러나 블록체인은 이벤트 기반으로, 새로운 트랜잭션이나 작업이 있을 때만 상태 업데이트가 트리거된다. 이러한 근본적인 불일치로 인해 풀체인 게임에서 전통적인 게임 루프를 구현하는 것이 복잡해진다.
-
지연과 실시간성: 블록체인의 트랜잭션 확인 시간은 게임 반응 지연을 초래할 수 있으며, 이는 액션 게임이나 경쟁 게임처럼 빠른 반응이 필요한 게임에 문제를 일으킨다. 효과적인 틱킹(ticking) 메커니즘은 이러한 지연을 고려하여 게임 경험에 미치는 영향을 최소화해야 한다.
-
자원 제약과 계산 비용: 블록체인 상태를 업데이트할 때마다 계산 자원을 소모하며 수수료가 발생할 수 있다. 풀체인 게임에서는 빈번한 상태 업데이트로 인해 비용이 크게 증가할 수 있으므로, 게임의 원활함과 비용 사이를 균형 있게 조절할 수 있는 효율적인 틱킹 메커니즘이 필요하다.
블록체인의 특성에 맞는 새로운 틱킹 메커니즘 또는 게임 루프 모델을 개발한다면, 이는 진정한 의미의 "AMM 순간"이 될 것이다. 이를 위해서는 전통적인 게임 개발 기술과 블록체인의 특성을 접목하여 완전히 새로운 게임 프레임워크를 창조해야 할 수도 있다.
그렇다면 모든 게임 타입이 반드시 loop-based인가? 대부분의 게임 타입은 indeed 순환 기반(cycle-based)이지만, 일부 "푸시 기반(push-based)" 게임도 존재한다. 이러한 게임은 지속적이고 실시간적인 상태 업데이트를 필요로 하지 않는다. 예를 들어 턴제 전략 게임, 체스 또는 특정 카드 게임 등이 있다. 이런 게임에서는 플레이어가 행동을 취할 때만 상태가 업데이트되며, 이는 블록체인의 이벤트 기반 모델과 유사하다. 따라서 풀체인 게임의 관점에서 보면, 먼저 "푸시 기반" 모델에 더 부합하는 게임부터 개발하는 것을 고려할 수 있으며, 이를 통해 블록체인의 특성에 자연스럽게 적응할 수 있다.
4. 틱 체인(Ticking Chain)이 바로 풀체인 게임의 AMM 순간이다
Argus의 창립자 Scott 역시 비슷한 견해를 밝힌 바 있다:
게임은 순환 기반 런타임(loop-driven runtime)에서 동작한다. 사용자 입력이 없더라도 상태 전환은 계속 발생한다. 불은 계속 타오르고, 물은 계속 흐르며, 작물은 계속 자라고, 낮과 밤의 순환도 계속된다.
그렇다면 블록체인에 적합한 틱킹 메커니즘을 어떻게 설계할 수 있을까? @therealbytes가 그 해답을 제시했다. 나는 그의 고전적인 글 「OPStack을 사용하여 풀체인 게임의 클럭 사이클을 구성하는 방법」을 번역한 바 있는데, 여기서 스마트 계약과 프리컴파일된 계약을 활용해 틱킹 시스템을 구축하는 방법을 매우 상세히 설명하고 있다. 아쉽게도 기술적 내용이 많아 내 모든 글 중 조회수가 가장 낮았다. 이는 바이탈릭(Vitalik)의 DEX에 AMM을 처음 제안한 고전적인 글 「Let’s run on-chain decentralized exchanges the way we run prediction markets」과 유사한데, 이 글에서 유명한 상수곱 공식 "A * B = k"가 처음 등장했다.
(흥미로운 점: 당시에는 DeFi라는 용어가 없었고 'On-chain decentralized exchange'라고 불렀는데, 지금 우리가 On-chain game이라 부르는 것과 같다.)
이 글에서 therealbytes는 체인 자체의 프리컴파일(precompiled contract)을 이용해 틱킹을 구현하는 방법을 최초로 제안했다. Ticking-Optimism은 롤업 노드를 수정하여 "틱 트랜잭션(tick transaction)"을 만들며, 이는 "입금 거래(deposit transaction)"와 동일한 방식으로 작동하지만 L1 속성을 설정하는 대신 주소 0x42000000000000000000000000000000000000A0에 사전 배포된 컨트랙트 내 tick() 함수를 호출한다. 이 컨트랙트는 목표 변수를 설정함으로써 다른 컨트랙트를 호출할 수 있다.
틱킹 함수를 체인 노드 내부에 내장함으로써 루프 효율에서 큰 향상을 이뤘다. 이는 디파이 산업에서 AMM 모델이 오더북 모델보다 매칭 효율에서 획기적인 향상을 이룬 것과 직접 비교할 수 있다. 얼마나 큰 향상인지에 대해서는 내가 번역한 또 다른 글 「[‘디지털 신(Digital God)’을 위한 시계]()」의 데이터를 참고할 수 있다:
체인의 한계를 충분히 테스트하기 위해 그는 두 가지 방식으로 게임을 구현했다: 하나는 체인 상에서 실행되는 Solidity 스마트 계약으로, 다른 하나는 체인 자체의 프리컴파일 엔진으로. Solidity 구현은 70x70 그리드에서 매 블록당 두 번 업데이트할 때 CPU가 한계에 도달했으며(1블록/초, 약 1만 셀/초), 반면 맞춤형 프리컴파일 엔진은 약 6%의 CPU 사용률(약 13만 셀/초)로 동일한 속도에서 256x256 그리드를 처리했다.
5. 결론
AMM 모델이 낮은 성능의 블록체인에서도 금융 시스템이 높은 매칭 효율과 유동성을 유지할 수 있도록 보장했다면, 틱 체인(Ticking Chain)은 낮은 성능의 블록체인에서도 게임 시스템이 높은 루프(loop) 효율과 부드러운 흐름을 유지할 수 있도록 보장한다.
위에서 설명한 것은 therealbytes의 개념 검증에 불과하지만, 실제로 이미 풀체인 게임 엔진들이 이러한 틱 체인 방식을 적용하기 시작했다. 최초의 오픈소스 틱 체인 엔진은 @0xcurio이며, OPStack에 프리컴파일 틱 함수를 갖춘 레이어2를 구축하는 데 사용하고 있다. 두 번째 오픈소스 틱 체인 엔진은 @ArgusLabs_이며, Polaris를 사용해 프리컴파일 틱 함수를 갖춘 레이어2를 구축하고 있다. 앞으로 더 많은 틱 체인이 등장할 것이라 믿는다.

위 표는 블록체인을 활용한 금융과 게임 분야의 비교를 보여주며, 두 분야 사이에 매우 큰 유사성이 있음을 알 수 있다. 디파이 초기에는 오더북 모델을 사용했는데, 이는 능동적인 매칭 시스템(Matching system)이었다. AMM으로 전환된 이후에는 수동적인 자동 매칭 시스템으로 바뀌었다. 마찬가지로 풀체인 게임은 초기에 일반적인 "lazy update"와 "manual ticking"을 사용해 능동적인 게임 루프를 구현했으나, 프리컴파일된 틱 체인으로 전환된 이후에는 수동적인 자동 게임 루프로 바뀌었다. AMM은 금융의 유동성을 높였고, 틱 체인은 게임의 부드러움을 높였다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














