EWMA 가스 가격 페널티
DeepBook은 네트워크 가스 가격에 따라 taker fee를 동적으로 조정하기 위해 exponentially weighted moving average (EWMA) system을 구현한다. 이 기능은 toxic taker가 높은 가스 가격을 사용해 자신의 트랜잭션을 우선 처리하고 stale maker 주문을 먼저 체결하는 것을 방지하는 데 도움이 된다.
개요
이 system은 시간에 따라 가스 가격을 추적하고 현재 가스 가격가 최근 이력에 비해 비정상적으로 높을 때 taker에 penalty fee를 적용한다. 이는 toxic taker가 frontrun하거나 stale 주문을 악용하려 할 수 있는 비정상적인 네트워크 활동 기간 동안 maker의 주문이 체결되는 것을 방지한다.
작동 방식
EWMA system은 최근 가스 가격의 smoothed average와 variance를 계산한 다음 현재 가스 가격을 이 historical baseline과 비교한다. 현재 가스 가격가 유의미하게 상승하면(standard deviation으로 측정한 threshold를 초과하면) 추가 taker fee penalty가 적용된다.
- Mean (μ): 최근 가스 가격의 smoothed average이다.
- Variance (σ²): 가스 가격 volatility의 측정치이다.
- Standard Deviation (σ): variance의 제곱근이며 z-score 계산에 사용된다.
- Z-Score: 현재 가스 가격가 mean에서 몇 standard deviation 떨어져 있는지를 나타낸다.
- Z-Score Threshold: penalty 적용을 트리거하는 지점이다.
formula
z_score = (current_gas_price - mean) / standard_deviation
if z_score > z_score_threshold:
apply additional_taker_fee
configuration 파라미터
다음 표는 EWMA system의 sample configuration 파라미터를 보여준다:
| Parameter | Value | Meaning |
|---|---|---|
| Alpha | 0.1 (100000000) | 10% weight on new data, 90% on history |
| Mean | 1,478 | Average 가스 가격 (smoothed) |
| Variance | 43,270,831 | Volatility measure |
| Std deviation | 6,578 | Calculated: √variance |
| Z-score threshold | 3.0 | Trigger: 3 standard deviations |
| Additional taker fee | 0.1% (1000000) | Penalty fee added |
penalty 적용 시점
penalty는 다음 조건이 모두 충 족될 때만 적용된다:
- 풀에 대해 EWMA가 활성화되어 있어야 한다.
- 현재 가스 가격 ≥ mean이어야 한다(평균보다 높아야 한다).
- Z-Score > threshold이어야 한다(3.0 standard deviation을 초과해야 한다).
penalty threshold 계산
Penalty Threshold = Mean + (Z-Score Threshold × Std Dev)
Penalty Threshold = 1,478 + (3.0 × 6,578)
Penalty Threshold = 1,478 + 19,734
Penalty Threshold ≈ 21,212