블로그 목록
온체인 분석클러스터링고래 추적Python

고래 지갑 클러스터링: 온체인 데이터로 스마트 머니를 추적하는 방법

LangQuant가 온체인 트랜잭션 데이터를 분석하여 고래 지갑을 클러스터링하고, 스마트 머니의 움직임을 실시간으로 추적하는 기술적 접근 방식을 소개합니다.

LangQuant2026년 4월 4일6 분

들어가며

암호화폐 시장에서 고래(Whale) 의 움직임은 가격에 직접적인 영향을 미칩니다. 하지만 수백만 개의 지갑 주소 중에서 어떤 지갑이 실제로 의미 있는 "스마트 머니"인지 판별하는 것은 쉽지 않습니다.

이 글에서는 LangQuant가 온체인 데이터를 활용하여 고래 지갑을 자동으로 클러스터링하고, 그들의 행동 패턴을 실시간으로 분석하는 파이프라인을 소개합니다.

문제 정의

단순히 잔고가 큰 지갑을 고래로 분류하는 것은 한계가 있습니다:

  • 거래소 콜드 월렛: 잔고는 크지만 개인 투자자가 아님
  • 스마트 컨트랙트: DeFi 프로토콜의 TVL이 포함됨
  • 더스트 지갑: 에어드롭 등으로 소량 보유한 수백만 개의 비활성 지갑

우리가 찾고자 하는 것은 의도적인 매매 패턴을 보이는 지갑입니다.

접근 방식

1단계: 피처 엔지니어링

각 지갑에 대해 다음 피처를 추출합니다:

def extract_wallet_features(address: str, txns: list[Transaction]) -> WalletFeature:
    return WalletFeature(
        address=address,
        avg_tx_size=np.mean([tx.value for tx in txns]),
        tx_frequency=len(txns) / time_span_days(txns),
        unique_counterparties=len(set(tx.to_addr for tx in txns)),
        avg_hold_duration=calculate_avg_hold(txns),
        profit_ratio=calculate_realized_pnl(txns),
        dex_interaction_count=count_dex_txns(txns),
    )

2단계: HDBSCAN 클러스터링

전통적인 K-Means 대신 HDBSCAN을 사용합니다. 클러스터 수를 미리 정하지 않아도 되고, 노이즈 포인트(거래소, 컨트랙트 등)를 자연스럽게 분리할 수 있기 때문입니다.

mutual reachability distance: dmreach-k(a,b)=max{corek(a),corek(b),d(a,b)}\text{mutual reachability distance: } d_{\text{mreach-}k}(a, b) = \max\{\text{core}_k(a),\, \text{core}_k(b),\, d(a, b)\}
import hdbscan
 
clusterer = hdbscan.HDBSCAN(
    min_cluster_size=50,
    min_samples=10,
    metric='euclidean',
    cluster_selection_method='eom',
)
labels = clusterer.fit_predict(scaled_features)

3단계: 클러스터 프로파일링

클러스터링 결과에서 각 그룹의 특성을 분석합니다:

클러스터특성행동 패턴
A고빈도 대량 거래마켓 메이커
B저빈도 장기 보유장기 축적형 고래
CDeFi 상호작용 多DeFi 고래
D거래소 입출금 위주단기 트레이더

실시간 모니터링 파이프라인

클러스터링된 고래 지갑들의 움직임을 실시간으로 추적합니다:

async def monitor_whale_activity(wallet_cluster: list[str]):
    """ARQ worker에서 실행되는 실시간 모니터링 태스크"""
    async for tx in stream_transactions(wallet_cluster):
        signal = analyze_transaction(tx)
        if signal.strength > THRESHOLD:
            await notify_telegram(signal)
            await store_signal(signal)

이 파이프라인은 ARQ 워커에서 비동기로 실행되며, 유의미한 시그널이 감지되면 텔레그램으로 즉시 알림을 발송합니다.

결과 및 한계

성과: 클러스터 B(장기 축적형)의 매수 시그널은 이후 30일 수익률과 0.67의 상관관계를 보였습니다. 이는 단순 잔고 기반 추적(0.23) 대비 유의미한 개선입니다.

하지만 한계도 존재합니다:

  • 프라이버시 기술의 발전: Tornado Cash 등을 통한 자금 세탁은 추적을 어렵게 만듦
  • 멀티 월렛 전략: 하나의 주체가 수백 개의 지갑을 운영하는 경우 클러스터링 정확도 저하
  • 레이블 데이터 부족: 비지도학습 특성상 정확한 검증이 어려움

다음 단계

현재 그래프 뉴럴 네트워크(GNN) 를 활용하여 지갑 간 트랜잭션 그래프에서 더 정교한 패턴을 학습하는 연구를 진행 중입니다. 이 내용은 다음 글에서 다루겠습니다.


이 글에서 소개된 기술은 LangQuant 플랫폼의 고래 추적 기능에 적용되어 있습니다.