카테고리 없음

HCLM — 인덱스 기반 보상 토큰 & 단일 담보 렌딩 미니 프로토콜

blockchoin 2025. 9. 25. 10:56

1. 핵심 요약

  • HCLM 토큰: 인덱스(rewardIndex) 기반 배당. 오너/봇이 addRewards(amount)를 호출할 때만 인덱스가 증가 → 의도적·투명한 분배 타이밍.
  • LendingPool: 단일 담보(ETH)로 HCLM 차입. 이자는 자동 누적되지만, 누적분은 바로 홀더에게 가지 않고 HCLM 컨트랙트로 **워터폴(이동)**만 됨.
  • Vault: HCLM 보관금고. 풀과 토큰 사이 입·출금 통로.
  • Sale: 테스트넷 고정가 판매(1 ETH = 1000 HCLM). 운영/테스트용 물량 분배.

2. 왜 이렇게 설계했나? 

  • 많은 프로토콜이 “시간에 따라 자동 분배”를 하면서 가스/정산 타이밍 불확실성 문제가 생김.
  • HCLM은 **부채 이자 누적(자동)**과 **홀더 보상 분배(수동)**를 분리:
    • 사용자가 대출/상환할수록 이자 토큰이 HCLM 컨트랙트로 워터폴됨(실토큰 이동).
    • 분배는 오퍼레이터가 한 번에 addRewards(total)로 실행 → 가스 효율, 분배 타이밍 통제, 명확한 감사 가능성.

3. 차별점 & 장점 

  • 명시적 분배 타이밍: 인덱스는 오직 addRewards로만 증가 → 언제, 얼마를 분배했는지 이벤트로 명확.
  • 가스 효율: 자잘한 트랜잭션마다 배당하지 않고 배치 분배.
  • 정책 유연성: rewarder 화이트리스트(옵션)로 풀에 권한을 위임하거나, 운영봇이 일괄 처리.
  • 투명한 수수료: 클레임 시 claimFeeBps(기본 1%) 부과, 트레저리/리저브 분배(0.75%/0.25%).
  • 제외 대상 관리: 팀/컨트랙트 주소 등은 excludeFromRewards로 배당에서 제외(유통량 왜곡 방지).

4. 아키텍처 (Architecture)

  • HCLM (ERC20 + 배당 인덱스)
    • rewardIndex, userIndex, unclaimed
    • addRewards(amount) : Δindex = amount * 1e27 / (totalSupply - excludedSupply)
    • claim() / claimTo() : 수수료 차감 후 전송
  • LendingPool
    • 담보 depositETH() / withdrawCollateral()
    • borrowHCLM(amount) / repay(amount) / liquidate(...)
    • 이자: 시간 경과 시 자동 누적(정산 시점에 반영), 상환 시 워터폴로 HCLM 컨트랙트에 이동
  • Vault
    • depositFrom(user, amount) / withdrawTo(dest, amount)
    • 풀 ↔ HCLM/사용자 간 HCLM 이동 담당
  • Sale
    • buy() (payable): 1 ETH ↔ 1000 HCLM (테스트 파라미터)
    • 잔고는 Sale 컨트랙트가 보유한 HCLM에서 즉시 전송

5. 돈의 흐름 (Typical Flows)

  1. 구매(Sale):
    사용자가 ETH 송금 → Treasury로 ETH 이체, 동일 금액 환산 HCLM을 사용자에게 전송.
  2. 대출(Lending):
    (a) 담보 예치 ETH → 풀 잔고 기록
    (b) 차입 시 Vault→사용자에게 HCLM 출고, 부채(원금) 증가
  3. 이자 누적 & 워터폴:
    시간 경과로 부채 이자 증가 → 사용자가 상환하거나 이자납부 시, 납부 이자 만큼 HCLM이 Vault→HCLM 컨트랙트로 이동(Waterfalled)
  4. 보상 분배(수동):
    운영자가 최근 Waterfalled 합계를 모아 HCLM.addRewards(total) 호출 → rewardIndex 증가 → 모든 홀더의 pendingRewards 증가
  5. 클레임:
    사용자가 claim() → HCLM 컨트랙트 보유분에서 지급(클레임 수수료 적용)

6. UX 포인트 (현재 dApp)

  • 지갑 연결(MetaMask), Sale 구매, 차입/상환/청산, 보상 클레임, 워터폴→인덱스 반영(오너용)
  • “이자 깨우기(1 wei repay)”: 정산 트리거용. 실사용에선 운영봇이 주기적으로 poke/분배 권장.
  • 잔여 먼지(dust) 처리: 프론트에서 극소량 부채는 추가 상환 유도 또는 UX적으로 무시(설정값).

7. 운영/거버넌스 제작 예정

  • 운영봇:
    • (1) 주기적으로 Waterfalled 로그 집계
    • (2) HCLM.addRewards(total) 호출
    • (3) 상태 대시보드에 분배 내역 기록
  • 화이트리스트 모드:
    • setRewarder(pool, true)로 풀에서 직접 addRewards 가능하게 할 수 있음(현재는 운영봇 수동 분배 A안 사용 중).

8. 디앱 사용법 

  1. 메타마스크 연결 → Sepolia 스위치
  2. Sale 구매로 HCLM 확보(컨트랙트에 물량이 있어야 활성화됨)
  3. 담보 예치 → HCLM 차입
  4. 시간이 지나면 이자 발생 → 이자 상환 시 워터폴 → (오너가) 인덱스 반영클레임
  5. 청산(전액 상환 + 담보 인출)