
FriendTech를 예로 들어 블록체인 상의 로봇 기본 원리를 간단히 분석해 본다
서론
Friend.Tech는 스마트 계약 기반의 소셜 플랫폼으로, 사용자는 자신의 트위터 계정을 연결해 등록한 후 자신의 key를 "발행"할 수 있습니다. 해당 key를 보유한 사용자는 키 소유자와 대화할 수 있는 일종의 그룹 채팅방(room)에 입장할 수 있습니다. 이는 여전히 중심화된 소셜 플랫폼이지만, key의 구매 및 판매 로직은 블록체인 상의 스마트 계약을 통해 이루어지며 주요 기능은 웹 기반 IM 애플리케이션으로 구현됩니다. 또한 key를 구매하거나 판매하는 과정에서 발생하는 가치의 10%가 두 부분으로 나뉘어, 일부는 Friend.Tech 개발자에게, 나머지는 해당 room의 owner에게 분배됩니다.
따라서 프론트엔드를 우회하여 체인 상에서 직접 key의 구매 및 판매가 가능하다면, 자연스럽게 체인 상의 봇들이 신규 아이템 공모(打新), 매매, 수수료 사기 등의 작업을 수행하게 됩니다. 그렇다면 이러한 봇들은 어떻게 작동하는 것일까요?
신규 공모 봇에 대해 알아보기
신규 공모 봇은 Friend.Tech 운영 초기에 상당한 수익을 올릴 수 있었습니다. 이 시기에는 체인 상의 스나이퍼 봇들이 아직 충분히 진화하지 못했기 때문에, 간단한 정보 판단만으로도 구매를 진행해 높은 수익을 기대할 수 있었던 것입니다. 이제 가장 단순한 봇 구현 로직부터 시작해 점차 복잡한 봇 로직을 완성해보겠습니다.
그 전에 먼저 Event(이벤트)에 대해 설명하겠습니다. 이벤트란 Solidity 언어에서 EVM의 로그(logs)를 추상화한 개념입니다. 일반적으로 emit 문과 함께 사용되어이벤트를 발생시키며, 블록체인 탐색기에서는 거래 내역의 logs로 확인할 수 있습니다. 예를 들어 아래의 key 구매 거래는 Trade 이벤트를 발생시키며, 이 이벤트는 다양한 정보를 포함하고 있습니다.

Event는 DApp에서 매우 중요한 요소이며, 이를 통해 스마트 계약의 상태 변화를 감지할 수 있습니다. 실제로 Friend.Tech도 이러한 이벤트를 감시하며 데이터베이스 내 정보를 조정하고 있으며, 프론트엔드의 표시 가격이나 holding 수량 등을 업데이트합니다.
가장 간단한 접근 방식
가장 기본적인 신규 공모 봇의 로직은 다음과 같습니다. Friend.Tech 스마트 계약의 이벤트를 감시하다가, 다음 조건을 모두 만족하는 거래가 발생하면 즉시 Friend.Tech 계약을 호출해 구매를 수행합니다.
-
이벤트가 구매인지 확인 (
isBuy값이 참) -
거래자와 owner가 동일한 주소인지 확인 (
trader==subject) -
거래가 새로운 room 생성인지 확인 (
supply가 1인지)
아래는 이 과정을 나타낸 흐름도입니다.

스마트 계약? 원자성이다!
하지만 위와 같은 봇은 다음과 같은 문제점이 있습니다:
-
신규 공모 구매가 성공할 것이라는 보장이 없으며, 정확한 ETH 금액을 산정하기 어렵다;
-
최대 구매 가격을 설정할 수 없어, 특정 key 수량 또는 가격에 도달하면 더 이상 구매하지 않도록 제어할 수 없다;
-
다른 사용자가 새 주소를 만들어 구매를 실행함으로써 이러한 봇을 유인해 수수료를 착취하거나 이득을 실현하는 '스나이핑'에 쉽게 노출된다.
우선 문제 1과 2를 해결해보겠습니다. EVM의 장점 중 하나는 하나의 스마트 계약 내에서 다른 계약을 원자적으로 호출할 수 있다는 점입니다. 따라서 구매용 스마트 계약을 배포하고, 최대 구매 가격 및 수량 등의 조건을 설정해주기만 하면 됩니다. 예를 들어 GitHub에서 공개된 friendrekt 계약 코드처럼 말입니다.
문제 3의 경우 가장 간단한 방법은 공식 API를 이용해 해당 주소의 트위터 정보를 조회한 후, 팔로워 수 등의 지표를 기준으로 필터링하는 것입니다. 이후 필터링 결과에 따라 구매 여부, 수량, 최대 가격 등을 결정합니다. 이렇게 되면 봇의 처리 흐름은 아래와 같이 변경됩니다.

기술적 폭발
이 과정에서는 정보 요청과 스마트 계약 호출이 추가되어, 봇은 계약 이벤트를 감지한 후 간단한 논리 판단을 통해 새로운 계정 활성화를 식별하고, API를 통해 관련 정보를 조회해 필터링한 후, 배포된 스마트 계약을 활용해 구매를 완료합니다. 하지만 이러한 봇에도 여전히 결함이 존재합니다:
-
낚시 트위터 계정을 식별할 수 없습니다. 일부 계정은 팔로워 수가 많지만 모두 봇 계정이며 실제 가치가 없어, 구매 시 큰 리스크를 안게 됩니다;
-
팔로워 수만으로는 트위터 사용자의 가치를 판단하기 어렵습니다. 소수의 팔로워를 가진 KOL이라도 활발히 운영한다면 오히려 좋은 기회일 수 있으나, 이런 계정은 필터링 과정에서 쉽게 제외될 수 있습니다;
-
API의 지연(latency) 문제가 있습니다. 해당 인터페이스는 사용자가 활성화된 후 약 60초 정도 지나야 정보를 조회할 수 있어, 많은 주소를 놓치거나 상당한 지연이 발생할 수 있습니다;
각각의 문제를 해결해봅시다. 우선 문제 3의 경우, 0xleo의 인사이트 "내가 friend.tech에서 1만 달러를 잃은 방법" 덕분에 다음과 같은 사실을 알게 되었습니다.

사용자가 등록하자마자 정보를 조회할 수 있는 또 다른 인터페이스 조회를 발견했습니다. 따라서 ID를 지속적으로 증가시키며 이 인터페이스를 모니터링하고 최신 사용자 정보를 확보할 수 있습니다. 가치 있는 등록자로 판단되면 해당 주소를 캐시에 저장합니다(재시작 시에도 유지되도록 데이터베이스를 사용). 이후 체인 상 이벤트 감지 시 캐시를 조회하고, 일치하면 즉시 구매를 실행합니다.
다음으로 문제 1과 2를 해결해야 합니다. 사용자의 가치를 어떻게 판단할 수 있을까요? 여기서는 Twiiterscan과 같은 제3자 트위터 KOL 평가 사이트의 도움을 받을 수 있습니다.笔者在探索的过程中使用的是 Twiiterscan 来进行查询,由于可以预先得到注册信息,所以在激活前查询 Twiiterscan 所耗费的时间是没有太多的影响的。除此之外,还可以手动设置白名单以及买入价格来完成购买配置。
마지막으로, 우리가 구현한 봇의 전체 흐름은 다음과 같습니다. 별도의 ‘봇’이 API로부터 최신 정보를 가져와 판단한 후 데이터베이스와 캐시에 저장하고, 전담 구매 봇은 이벤트를 수신한 후 캐시를 조회하여 매칭되면 구매를 수행합니다. 이 캐시에는 백리스트 정보도 저장할 수 있으며, 특정 가치 있는 KOL들을 선정해 가격과 수량을 설정한 후 자동 구매하도록 구성할 수 있습니다.

필자는 이 봇을 비교적 늦게 구현했기 때문에 수익도 크지 않았습니다. 9월 말부터 구현과 최적화를 시작해 10월 3일경 최고 수익 1.2E를 기록했으나, 이후 적절한 시기에 매도하지 못해 수익이 반납되었고, 각종 수수료를 고려하면 수익도 손실도 없는 상태였습니다. 이러한 아키텍처의 봇은 등록자가 구매한 직후 첫 번째 블록에서 바로 구매를 수행할 수 있습니다. Base 네트워크에는 메모리풀(mempool) 스캔과 같은 고급 기술이 없기 때문에, 대부분 같은 블록 내에서 구매를 시도하는 봇들은 극단적인 전략을 사용합니다. 예를 들어, 구매 이벤트를 감지한 후 구매가 성공할 때까지 계속해서 구매 트랜잭션을 보내는 방식입니다. 실제로 아래와 같은 봇도 관찰할 수 있었습니다.
https://basescan.org/address/0x88e6aeb90795f586542b4062cb9f853a5582966c
이 봇의 전략은 간단합니다. 앞서 설명한 아키텍처 기반으로 데이터베이스 저장 없이 즉시 구매를 시작해 구매가 성공할 때까지 반복하는 것입니다. 이 정도로 최적화된 후에는 자금 규모의 경쟁이 되며, 가스 비용을 감당할 수 있다면 이러한 전략이 가능하고, 전략이 올바르다면 상당한 수익을 얻을 수 있습니다.
결론
서론에서 언급했던 매매 및 수수료 사기 전략에 대해서도 간단히 소개하겠습니다:
-
매매 전략은 일명 '팔로잉 트레이딩 봇'으로, 수익이 좋은 주소를 추적해 그들의 행동을 따라하는 방식입니다. 원리는 간단하며, 특정 대상 주소의 거래를 감지하면 동일한 작업을 수행하는 것입니다;
-
수수료 사기 전략은 두 가지로 나뉩니다(개발 중 관찰됨). 하나는 팔로워 수가 많은 트위터 계정을 이용해 구매 후 즉시 매도하며 수익을 실현하는 방식이고, 다른 하나는 지속적으로 새 주소를 생성해 자금을 이체한 후 구매를 실행하고 곧바로 매도하는 방식입니다. 후자는 특히 초창기의 단순한 로직의 봇을 대상으로 하며, 초기에는 꽤 높은 수익을 올렸을 것으로 추정됩니다.
이상으로 블록체인 상의 봇 작동 원리에 대한 설명을 마칩니다. 구체적인 구현 코드는 본 문서에서 다루지 않으며, 관심 있는 독자는 friendrekt의 구현을 참고하시기 바랍니다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














