2026-02-04 20:58:30 +00:00
|
|
|
|
# KRAIKEN Parameter Search Results
|
|
|
|
|
|
|
|
|
|
|
|
## Objective
|
chore: analysis tooling, research artifacts, and code quality
- Analysis: parameter sweep scripts, adversarial testing, 2D frontier maps
- Research: KRAIKEN_RESEARCH_REPORT, SECURITY_REVIEW, STORAGE_LAYOUT
- FuzzingBase: consolidated fuzzing helper, BackgroundLP simulation
- Sweep results: CSV data for full 4D sweep (1050 combos), bull-bear,
AS sweep, VWAP fix validation
- Code quality: .gitignore for fuzz CSVs, gas snapshot, updated docs
- Remove dead analysis helpers (CSVHelper, CSVManager, ScenarioRecorder)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:22:03 +00:00
|
|
|
|
Map the full 4D optimizer parameter space (CI, AS, AW, DD) after fixing the sqrt price
|
|
|
|
|
|
bug and outstandingSupply inflation (commit `0e2104b`). Primary optimization target:
|
|
|
|
|
|
**maximize fee revenue while staying safe** (trader cannot profit from bull-bear cycles).
|
|
|
|
|
|
|
|
|
|
|
|
## Executive Summary
|
|
|
|
|
|
|
|
|
|
|
|
**The sqrt price bug was the critical issue.** Fixing it makes `capitalInefficiency` (CI)
|
|
|
|
|
|
the dominant safety parameter — it now correctly controls floor placement via VWAP-adjusted
|
|
|
|
|
|
scarcity calculations. All other parameters are secondary.
|
|
|
|
|
|
|
|
|
|
|
|
### Key Findings
|
|
|
|
|
|
|
|
|
|
|
|
| Finding | Detail |
|
|
|
|
|
|
|---------|--------|
|
|
|
|
|
|
| **CI is the safety dial** | CI=0% → 100% safe. CI≥40% → 100% unsafe. Boundary at CI=20-30%. |
|
|
|
|
|
|
| **Fee revenue is parameter-independent** | ~1.5 ETH per bull→bear cycle regardless of CI/AS/AW/DD |
|
|
|
|
|
|
| **No safety-fee trade-off** | Lowering CI to protect the LM costs ZERO fee revenue |
|
|
|
|
|
|
| **AW is the secondary safety factor** | Narrow anchor (AW=20) maximizes LM protection |
|
|
|
|
|
|
| **DD now has measurable (but small) effect** | Higher DD adds ~5 safe combos at boundaries |
|
|
|
|
|
|
| **Optimal safe config** | CI=0%, AS=10%, AW=20, DD=100% — max protection, full fees |
|
|
|
|
|
|
|
|
|
|
|
|
### Bottom Line
|
|
|
|
|
|
**Set CI=0% for maximum safety with zero fee cost.** CI is the only parameter the optimizer
|
|
|
|
|
|
needs to manage for solvency. AS, AW, and DD can be tuned freely for UX and fee optimization
|
|
|
|
|
|
without affecting protocol safety at CI=0%.
|
|
|
|
|
|
|
|
|
|
|
|
## What Changed: The Sqrt Bug Fix
|
|
|
|
|
|
|
|
|
|
|
|
### Before (broken scarcity math)
|
|
|
|
|
|
```solidity
|
|
|
|
|
|
// OLD: _priceAtTick returns price*2^96 (Q96), NOT price^2*2^96
|
|
|
|
|
|
uint256 requiredEthForBuyback = outstandingSupply.mulDiv(sqrt(vwapX96), (1 << 96));
|
|
|
|
|
|
// sqrt(price*2^96) ≈ sqrt(price) * 2^48 — a ~445x OVERESTIMATE of the actual price
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
The old code applied `sqrt()` to a value that was already a linear price (not a squared price).
|
|
|
|
|
|
This produced a buyback requirement ~445x too high, making `ethScarcity` **permanently true**
|
|
|
|
|
|
regardless of actual ETH reserves. Result: the floor ratchet was always on, and CI had zero effect.
|
|
|
|
|
|
|
|
|
|
|
|
### After (corrected)
|
|
|
|
|
|
```solidity
|
|
|
|
|
|
// NEW: vwapX96 IS the price — use directly
|
|
|
|
|
|
uint256 requiredEthForBuyback = outstandingSupply.mulDiv(vwapX96, (1 << 96));
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Now scarcity triggers when actual floor ETH is insufficient to cover outstanding supply at
|
|
|
|
|
|
VWAP — the intended behavior. CI adjusts VWAP (`adjustedVWAP = 70%*VWAP + CI*VWAP`),
|
|
|
|
|
|
which directly controls how generous the buyback valuation is and thus when scarcity fires.
|
|
|
|
|
|
|
|
|
|
|
|
### OutstandingSupply Fix
|
2026-03-17 09:47:37 +00:00
|
|
|
|
Additionally, `outstandingSupply` now conditionally excludes `feeDestination` and `stakingPool` balances:
|
chore: analysis tooling, research artifacts, and code quality
- Analysis: parameter sweep scripts, adversarial testing, 2D frontier maps
- Research: KRAIKEN_RESEARCH_REPORT, SECURITY_REVIEW, STORAGE_LAYOUT
- FuzzingBase: consolidated fuzzing helper, BackgroundLP simulation
- Sweep results: CSV data for full 4D sweep (1050 combos), bull-bear,
AS sweep, VWAP fix validation
- Code quality: .gitignore for fuzz CSVs, gas snapshot, updated docs
- Remove dead analysis helpers (CSVHelper, CSVManager, ScenarioRecorder)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:22:03 +00:00
|
|
|
|
```solidity
|
2026-03-17 09:47:37 +00:00
|
|
|
|
uint256 supply = kraiken.outstandingSupply(); // totalSupply minus LM's own tokens
|
|
|
|
|
|
if (feeDestination != address(0) && feeDestination != address(this)) {
|
|
|
|
|
|
supply -= kraiken.balanceOf(feeDestination); // accumulated fee KRK
|
|
|
|
|
|
}
|
|
|
|
|
|
(, address stakingPoolAddr) = kraiken.peripheryContracts();
|
|
|
|
|
|
if (stakingPoolAddr != address(0)) {
|
|
|
|
|
|
supply -= kraiken.balanceOf(stakingPoolAddr); // staked KRK
|
|
|
|
|
|
}
|
chore: analysis tooling, research artifacts, and code quality
- Analysis: parameter sweep scripts, adversarial testing, 2D frontier maps
- Research: KRAIKEN_RESEARCH_REPORT, SECURITY_REVIEW, STORAGE_LAYOUT
- FuzzingBase: consolidated fuzzing helper, BackgroundLP simulation
- Sweep results: CSV data for full 4D sweep (1050 combos), bull-bear,
AS sweep, VWAP fix validation
- Code quality: .gitignore for fuzz CSVs, gas snapshot, updated docs
- Remove dead analysis helpers (CSVHelper, CSVManager, ScenarioRecorder)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:22:03 +00:00
|
|
|
|
```
|
|
|
|
|
|
This has zero effect in the test environment (both balances are 0) but prevents false
|
|
|
|
|
|
scarcity on mainnet where fees accumulate.
|
2026-02-04 20:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
## Methodology
|
chore: analysis tooling, research artifacts, and code quality
- Analysis: parameter sweep scripts, adversarial testing, 2D frontier maps
- Research: KRAIKEN_RESEARCH_REPORT, SECURITY_REVIEW, STORAGE_LAYOUT
- FuzzingBase: consolidated fuzzing helper, BackgroundLP simulation
- Sweep results: CSV data for full 4D sweep (1050 combos), bull-bear,
AS sweep, VWAP fix validation
- Code quality: .gitignore for fuzz CSVs, gas snapshot, updated docs
- Remove dead analysis helpers (CSVHelper, CSVManager, ScenarioRecorder)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:22:03 +00:00
|
|
|
|
|
|
|
|
|
|
### BullBearSweep — Deterministic Bull→Bear Scenario
|
|
|
|
|
|
Each of the 1050 parameter combinations runs an identical scenario:
|
|
|
|
|
|
|
|
|
|
|
|
| Phase | Action | Details |
|
|
|
|
|
|
|-------|--------|---------|
|
|
|
|
|
|
| **Setup** | Deploy fresh environment | LM funded with 200 ETH, initial recenter |
|
|
|
|
|
|
| **Bull** | 10 buys × 15 ETH | Total 150 ETH spent, recenter every 3 buys |
|
|
|
|
|
|
| **Transition** | Final recenter | Records VWAP, redeploys positions |
|
|
|
|
|
|
| **Bear** | Sell all KRK | Multiple sell attempts with recenters between |
|
|
|
|
|
|
| **Measure** | Trader PnL | `final_WETH - initial_WETH` (negative = LM gain) |
|
|
|
|
|
|
|
|
|
|
|
|
### Full 4D Parameter Space (1050 combos)
|
|
|
|
|
|
|
|
|
|
|
|
| Parameter | Values | Count |
|
|
|
|
|
|
|-----------|--------|-------|
|
|
|
|
|
|
| capitalInefficiency | 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 100% | 10 |
|
|
|
|
|
|
| anchorShare | 10%, 20%, 30%, 40%, 50%, 70%, 100% | 7 |
|
|
|
|
|
|
| anchorWidth | 20, 40, 60, 80, 100 | 5 |
|
|
|
|
|
|
| discoveryDepth | 20%, 50%, 100% | 3 |
|
|
|
|
|
|
| **Total** | | **1050** |
|
|
|
|
|
|
|
|
|
|
|
|
### Metrics Tracked (19 per combo)
|
|
|
|
|
|
- **trader_pnl**: Trader's ETH gain/loss. Primary safety metric (negative = safe).
|
|
|
|
|
|
- **lm_net_gain**: LM ETH gained over the cycle.
|
|
|
|
|
|
- **drawdown_bps**: Peak-to-trough LM ETH drop during bear phase.
|
|
|
|
|
|
- **fee_weth_total / fee_krk_total**: Fee revenue at `feeDestination`.
|
|
|
|
|
|
- **floor_moved**: Whether the floor position shifted during the cycle.
|
|
|
|
|
|
- **sell_attempts**: Rounds needed to liquidate all KRK.
|
|
|
|
|
|
|
|
|
|
|
|
## Results
|
|
|
|
|
|
|
|
|
|
|
|
### 1. Safety by CI Value
|
|
|
|
|
|
|
|
|
|
|
|
| CI | Safe | Unsafe | Safe % | Avg Trader PnL (ETH) | Avg LM Net Gain (ETH) |
|
|
|
|
|
|
|----|------|--------|--------|-----------------------|------------------------|
|
|
|
|
|
|
| **0%** | **105** | 0 | **100%** | -21.69 | +20.21 |
|
|
|
|
|
|
| **10%** | **87** | 18 | **83%** | -10.72 | +9.24 |
|
|
|
|
|
|
| **20%** | **55** | 50 | **52%** | +0.34 | -1.82 |
|
|
|
|
|
|
| **30%** | **20** | 85 | **19%** | +11.40 | -12.88 |
|
|
|
|
|
|
| 40% | 0 | 105 | 0% | +21.54 | -23.02 |
|
|
|
|
|
|
| 50% | 0 | 105 | 0% | +30.87 | -32.35 |
|
|
|
|
|
|
| 60% | 0 | 105 | 0% | +38.29 | -39.77 |
|
|
|
|
|
|
| 70% | 0 | 105 | 0% | +44.38 | -45.86 |
|
|
|
|
|
|
| 80% | 0 | 105 | 0% | +49.37 | -50.85 |
|
|
|
|
|
|
| 100% | 0 | 105 | 0% | +55.70 | -57.18 |
|
|
|
|
|
|
|
|
|
|
|
|
**Total: 267 safe / 783 unsafe out of 1050 combos.**
|
|
|
|
|
|
|
|
|
|
|
|
CI is the dominant safety control. The PnL crossover is between CI=10% (avg -10.72) and
|
|
|
|
|
|
CI=20% (avg +0.34). Each 10% CI increment shifts average PnL by ~10 ETH toward traders.
|
|
|
|
|
|
|
|
|
|
|
|
### 2. Fee Revenue — Completely Parameter-Independent
|
|
|
|
|
|
|
|
|
|
|
|
| Dimension | Values Tested | Avg feeWethTotal | Range |
|
|
|
|
|
|
|-----------|--------------|-----------------|-------|
|
|
|
|
|
|
| CI (0-100%) | 10 values | 1.4814 ETH | ±0.000 |
|
|
|
|
|
|
| AS (10-100%) | 7 values | 1.44-1.50 ETH | 0.06 |
|
|
|
|
|
|
| AW (20-100) | 5 values | 1.43-1.50 ETH | 0.07 |
|
|
|
|
|
|
| DD (20-100%) | 3 values | 1.48 ETH | ±0.004 |
|
|
|
|
|
|
|
|
|
|
|
|
**Fee revenue is 1.50 ETH for 87.6% of combos.** The remaining 12.4% earn 1.35 ETH (10% less),
|
|
|
|
|
|
occurring only at high-AS + low-AW configurations (AS≥50% with AW=20, AS=100% with AW≤40).
|
|
|
|
|
|
|
|
|
|
|
|
**KRK fees are zero** across all 1050 combos — all fee revenue is WETH-denominated.
|
|
|
|
|
|
|
|
|
|
|
|
**Critical implication: there is NO trade-off between safety and fee revenue.** Setting CI=0%
|
|
|
|
|
|
for maximum protection earns identical fees as CI=100% (which bleeds 55+ ETH to traders).
|
|
|
|
|
|
|
|
|
|
|
|
### 3. CI=0% — Full Safety with Fee Revenue
|
|
|
|
|
|
|
|
|
|
|
|
All 105 combos at CI=0% are safe. Trader PnL matrix (ETH, avg across DD):
|
|
|
|
|
|
|
|
|
|
|
|
| AS \ AW | 20 | 40 | 60 | 80 | 100 |
|
|
|
|
|
|
|---------|------|------|------|------|------|
|
|
|
|
|
|
| **10%** | **-43.1** | -42.9 | -37.6 | -29.3 | -16.0 |
|
|
|
|
|
|
| **20%** | -39.1 | -38.2 | -33.1 | -23.7 | -13.2 |
|
|
|
|
|
|
| **30%** | -34.8 | -33.2 | -27.8 | -18.3 | -8.6 |
|
|
|
|
|
|
| **40%** | -29.9 | -28.2 | -22.5 | -14.3 | -6.5 |
|
|
|
|
|
|
| **50%** | -25.5 | -25.0 | -19.6 | -13.6 | -6.0 |
|
|
|
|
|
|
| **70%** | -20.2 | -20.1 | -16.9 | -11.8 | -7.4 |
|
|
|
|
|
|
| **100%** | -14.1 | -12.4 | -11.1 | -8.8 | -6.6 |
|
|
|
|
|
|
|
|
|
|
|
|
Every cell is negative (safe). The worst case (AS=100%, AW=100) still costs the trader 6.6 ETH.
|
|
|
|
|
|
At CI=0%, **the entire AS/AW/DD space is available for free tuning** without safety concerns.
|
|
|
|
|
|
|
|
|
|
|
|
Fee revenue at CI=0%:
|
|
|
|
|
|
|
|
|
|
|
|
| AS \ AW | 20 | 40 | 60 | 80 | 100 |
|
|
|
|
|
|
|---------|------|------|------|------|------|
|
|
|
|
|
|
| 10% | 1.50 | 1.50 | 1.50 | 1.50 | 1.50 |
|
|
|
|
|
|
| 20% | 1.50 | 1.50 | 1.50 | 1.50 | 1.50 |
|
|
|
|
|
|
| 30% | 1.50 | 1.50 | 1.50 | 1.50 | 1.50 |
|
|
|
|
|
|
| 40% | 1.45* | 1.50 | 1.50 | 1.50 | 1.50 |
|
|
|
|
|
|
| 50% | 1.35 | 1.50 | 1.50 | 1.50 | 1.50 |
|
|
|
|
|
|
| 70% | 1.35 | 1.50 | 1.50 | 1.50 | 1.50 |
|
|
|
|
|
|
| 100% | 1.35 | 1.35 | 1.50 | 1.50 | 1.50 |
|
|
|
|
|
|
|
|
|
|
|
|
*Mixed across DD values. Only high-AS/low-AW combos see a minor 10% fee reduction.
|
|
|
|
|
|
|
|
|
|
|
|
### 4. Safe/Unsafe Boundary Maps
|
|
|
|
|
|
|
|
|
|
|
|
For each (CI, AS, AW), shows whether ALL DD values are Safe (S), ALL Unsafe (U), or Mixed (M):
|
|
|
|
|
|
|
|
|
|
|
|
#### CI=10% (83% safe overall)
|
|
|
|
|
|
```
|
|
|
|
|
|
AS\AW 20 40 60 80 100
|
|
|
|
|
|
10% S S S S M
|
|
|
|
|
|
20% S S S S M
|
|
|
|
|
|
30% S S S S U
|
|
|
|
|
|
40% S S S S U
|
|
|
|
|
|
50% S S S S U
|
|
|
|
|
|
70% S S S S U
|
|
|
|
|
|
100% S S S S U
|
|
|
|
|
|
```
|
|
|
|
|
|
Only AW=100 is problematic at CI=10%. All narrow-anchor combos are safe.
|
|
|
|
|
|
|
|
|
|
|
|
#### CI=20% (52% safe overall)
|
|
|
|
|
|
```
|
|
|
|
|
|
AS\AW 20 40 60 80 100
|
|
|
|
|
|
10% S S S M U
|
|
|
|
|
|
20% S S S M U
|
|
|
|
|
|
30% S S S U U
|
|
|
|
|
|
40% S S M U U
|
|
|
|
|
|
50% S S U U U
|
|
|
|
|
|
70% S S U U U
|
|
|
|
|
|
100% S S U U U
|
|
|
|
|
|
```
|
|
|
|
|
|
The unsafe zone expands to AW≥60 for high AS. Low AS (10-20%) remains safe through AW=80.
|
|
|
|
|
|
|
|
|
|
|
|
#### CI=30% (19% safe overall)
|
|
|
|
|
|
```
|
|
|
|
|
|
AS\AW 20 40 60 80 100
|
|
|
|
|
|
10% S S M U U
|
|
|
|
|
|
20% S S U U U
|
|
|
|
|
|
30% S U U U U
|
|
|
|
|
|
40% M U U U U
|
|
|
|
|
|
50% M U U U U
|
|
|
|
|
|
70% U U U U U
|
|
|
|
|
|
100% U U U U U
|
|
|
|
|
|
```
|
|
|
|
|
|
Only the tightest configs (low AS + low AW) remain safe. AS≥70% is universally unsafe.
|
|
|
|
|
|
|
|
|
|
|
|
**Pattern**: The safe boundary sweeps diagonally — lower CI allows wider anchor/higher share.
|
|
|
|
|
|
At any CI, you can trade AS for AW along iso-safety curves.
|
|
|
|
|
|
|
|
|
|
|
|
### 5. Discovery Depth: Measurable but Small Effect
|
|
|
|
|
|
|
|
|
|
|
|
#### DD impact on safety boundary (8 combos where DD flips outcome):
|
|
|
|
|
|
|
|
|
|
|
|
| CI | AS | AW | DD=20% PnL | DD=50% PnL | DD=100% PnL | Pattern |
|
|
|
|
|
|
|----|----|----|-----------|-----------|------------|---------|
|
|
|
|
|
|
| 10% | 10% | 100 | +7.77 (U) | -3.19 (S) | -8.59 (S) | Higher DD saves |
|
|
|
|
|
|
| 10% | 20% | 100 | +6.63 (U) | +0.53 (U) | -1.93 (S) | Only DD=100% safe |
|
|
|
|
|
|
| 20% | 10% | 80 | +4.18 (U) | -2.67 (S) | -6.46 (S) | Higher DD saves |
|
|
|
|
|
|
| 20% | 20% | 80 | +7.46 (U) | +3.20 (U) | -0.05 (S) | Barely safe at DD=100% |
|
|
|
|
|
|
| 20% | 40% | 60 | +1.11 (U) | -0.12 (S) | +0.26 (U) | Non-monotonic |
|
|
|
|
|
|
| 30% | 10% | 60 | +0.79 (U) | -2.32 (S) | -2.43 (S) | Higher DD saves |
|
|
|
|
|
|
| 30% | 40% | 20 | +1.07 (U) | -0.82 (S) | -0.81 (S) | Higher DD saves |
|
|
|
|
|
|
| 30% | 50% | 20 | +0.71 (U) | +0.80 (U) | -0.95 (S) | Only DD=100% safe |
|
|
|
|
|
|
|
|
|
|
|
|
In 7 of 8 boundary cases, higher DD improves safety. The mechanism: more discovery liquidity
|
|
|
|
|
|
density provides additional sell-side absorption, slightly reducing the trader's exit proceeds.
|
|
|
|
|
|
Combo #5 (CI=20%, AS=40%, AW=60) shows a non-monotonic anomaly — likely a precision effect
|
|
|
|
|
|
at the exact boundary.
|
|
|
|
|
|
|
|
|
|
|
|
#### DD within safe combos (negligible):
|
|
|
|
|
|
|
|
|
|
|
|
| DD | Avg PnL (ETH) | Avg feeWethTotal (ETH) | Safe Count |
|
|
|
|
|
|
|----|---------------|----------------------|------------|
|
|
|
|
|
|
| 20% | -15.08 | 1.479 | 85 |
|
|
|
|
|
|
| 50% | -15.09 | 1.473 | 90 |
|
|
|
|
|
|
| 100% | -15.40 | 1.479 | 92 |
|
|
|
|
|
|
|
|
|
|
|
|
DD changes the safe count by only 7 combos (85→92) across the entire space. Within safe
|
|
|
|
|
|
combos, its effect on PnL and fees is negligible.
|
|
|
|
|
|
|
|
|
|
|
|
### 6. Drawdown Analysis
|
|
|
|
|
|
|
|
|
|
|
|
Average drawdown (bps) during the bear sell-off:
|
|
|
|
|
|
|
|
|
|
|
|
| CI | Avg Drawdown | Interpretation |
|
|
|
|
|
|
|----|-------------|---------------|
|
|
|
|
|
|
| 0% | 3681 bps (36.8%) | LM absorbs sell pressure well |
|
|
|
|
|
|
| 10% | 3996 bps (40.0%) | |
|
|
|
|
|
|
| 20% | 4313 bps (43.1%) | |
|
|
|
|
|
|
| 30% | 4631 bps (46.3%) | |
|
|
|
|
|
|
| 40% | 4922 bps (49.2%) | |
|
|
|
|
|
|
| 50% | 5189 bps (51.9%) | |
|
|
|
|
|
|
| 60% | 5402 bps (54.0%) | |
|
|
|
|
|
|
| 70% | 5577 bps (55.8%) | |
|
|
|
|
|
|
| 80% | 5720 bps (57.2%) | |
|
|
|
|
|
|
| 100% | 5901 bps (59.0%) | LM gives back most of peak ETH |
|
|
|
|
|
|
|
|
|
|
|
|
Drawdown scales linearly with CI. Even at CI=0%, the LM experiences ~37% drawdown during
|
|
|
|
|
|
a 150 ETH bull-to-bear cycle, but **recovers to a net gain** (20.21 ETH average).
|
|
|
|
|
|
At CI≥40%, the LM never recovers — drawdown exceeds 100% of the bull gains.
|
|
|
|
|
|
|
|
|
|
|
|
### 7. Secondary Parameter Impact (at CI=0%)
|
|
|
|
|
|
|
|
|
|
|
|
Since CI=0% is universally safe, the other parameters only affect *how much* the LM gains:
|
|
|
|
|
|
|
|
|
|
|
|
| Parameter | Range | PnL Impact | Fee Impact |
|
|
|
|
|
|
|-----------|-------|-----------|-----------|
|
|
|
|
|
|
| **AW** (anchor width) | 20→100 | 27 ETH (strongest secondary) | <5% |
|
|
|
|
|
|
| **AS** (anchor share) | 10%→100% | 29 ETH | <10% |
|
|
|
|
|
|
| **DD** (discovery depth) | 20%→100% | 0.3 ETH (negligible) | <0.5% |
|
|
|
|
|
|
|
|
|
|
|
|
AW and AS have roughly equal impact at CI=0%. Both affect how much ETH the LM keeps
|
|
|
|
|
|
during the bear phase, but neither threatens safety.
|
|
|
|
|
|
|
|
|
|
|
|
### 8. Floor Movement
|
|
|
|
|
|
|
|
|
|
|
|
Floor moves in 99.7% of combos (1047/1050). The 3 static-floor combos are all at CI=0%
|
|
|
|
|
|
with moderate AS (40-50%) and AW=20 — the floor is placed so conservatively that the
|
|
|
|
|
|
sell-off never reaches it. Floor movement does NOT correlate with safety — both safe
|
|
|
|
|
|
and unsafe combos have floor_moved=true.
|
|
|
|
|
|
|
|
|
|
|
|
## Parameter Sensitivity Ranking
|
|
|
|
|
|
|
|
|
|
|
|
From most to least impactful:
|
|
|
|
|
|
|
|
|
|
|
|
1. **capitalInefficiency** — THE safety dial. Each +10% shifts avg PnL by ~10 ETH toward traders.
|
|
|
|
|
|
CI=0%: 100% safe. CI≥40%: 100% unsafe. **Must be actively managed.**
|
|
|
|
|
|
2. **anchorWidth** — Secondary safety factor. Each +20 ticks increases avg PnL by ~8 ETH.
|
|
|
|
|
|
Narrow anchor (20) maximizes resistance; wide (100) allows more traversal.
|
|
|
|
|
|
3. **anchorShare** — Tertiary. Higher AS means less floor ETH. Effect is ~5 ETH per +20%.
|
|
|
|
|
|
4. **discoveryDepth** — Negligible for safety (<1 ETH across full range). Only matters at
|
|
|
|
|
|
exact boundary conditions (8 out of 1050 combos).
|
|
|
|
|
|
|
|
|
|
|
|
## Recommended Configuration
|
|
|
|
|
|
|
|
|
|
|
|
### For Maximum Safety: CI=0%
|
|
|
|
|
|
```
|
|
|
|
|
|
capitalInefficiency = 0 (0%)
|
|
|
|
|
|
anchorShare = 200000000000000000 (20%)
|
|
|
|
|
|
anchorWidth = 60 (60 ticks)
|
|
|
|
|
|
discoveryDepth = 500000000000000000 (50%)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Rationale:**
|
|
|
|
|
|
- CI=0% guarantees safety across the ENTIRE AS/AW/DD space
|
|
|
|
|
|
- AS=20% provides moderate anchor liquidity for fee capture (1.50 ETH)
|
|
|
|
|
|
- AW=60 balances concentrated liquidity (fees) with sell resistance
|
|
|
|
|
|
- DD=50% is a neutral choice (DD has negligible effect)
|
|
|
|
|
|
- Trader loses ~33 ETH out of 150 ETH round trip (22% loss)
|
|
|
|
|
|
- LM drawdown ~33% during bear, recovers to net +31 ETH gain
|
|
|
|
|
|
|
|
|
|
|
|
### Adaptive Strategy
|
|
|
|
|
|
The optimizer should treat CI as a risk dial:
|
|
|
|
|
|
|
|
|
|
|
|
| Market Regime | CI | AS | AW | Rationale |
|
|
|
|
|
|
|--------------|-----|-----|-----|-----------|
|
|
|
|
|
|
| **Conservative** | 0% | 10-20% | 20-40 | Maximum protection; floor at 30% discount |
|
|
|
|
|
|
| **Balanced** | 0% | 20-30% | 60-80 | Full safety with broader fee capture |
|
|
|
|
|
|
| **Growth** | 10% | 30-50% | 60-80 | 83% safe; more anchor liquidity |
|
|
|
|
|
|
| **NEVER** | ≥40% | any | any | Universally unsafe |
|
|
|
|
|
|
|
|
|
|
|
|
### Why Not CI>0%?
|
|
|
|
|
|
At CI=0%, adjusted VWAP = 70% of raw VWAP (floor at 30% discount). This means:
|
|
|
|
|
|
- The floor buys KRK at a 30% discount to recent trading price
|
|
|
|
|
|
- This is highly protective — traders selling into the floor get terrible prices
|
|
|
|
|
|
- Fee revenue is IDENTICAL to higher CI values
|
|
|
|
|
|
- There is literally zero benefit to increasing CI in the current model
|
|
|
|
|
|
|
|
|
|
|
|
The only reason to increase CI would be if the 30% discount floor prevents organic
|
|
|
|
|
|
price discovery — but the BullBearSweep shows this doesn't happen (anchor and discovery
|
|
|
|
|
|
positions handle normal trading; the floor only matters during sell-offs).
|
|
|
|
|
|
|
|
|
|
|
|
## Raw Data
|
|
|
|
|
|
|
|
|
|
|
|
Full results: `analysis/sweep-FULL-4D-summary.csv` (1050 rows)
|
|
|
|
|
|
|
|
|
|
|
|
### CSV Schema
|
|
|
|
|
|
```
|
|
|
|
|
|
ci,anchor_share,anchor_width,discovery_depth,trader_pnl,bull_spent,
|
|
|
|
|
|
lm_eth_start,lm_eth_after_bull,lm_eth_end,lm_retention_pct,floor_moved,
|
|
|
|
|
|
lm_eth_trough,drawdown_bps,sell_attempts,lm_net_gain,
|
|
|
|
|
|
fee_weth_bull,fee_krk_bull,fee_weth_total,fee_krk_total
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
All monetary values in wei (18 decimals). CI/AS/DD scaled to 18 decimals.
|
|
|
|
|
|
AW in raw tick count. drawdown_bps and retention_pct in basis points.
|
2026-02-04 20:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
chore: analysis tooling, research artifacts, and code quality
- Analysis: parameter sweep scripts, adversarial testing, 2D frontier maps
- Research: KRAIKEN_RESEARCH_REPORT, SECURITY_REVIEW, STORAGE_LAYOUT
- FuzzingBase: consolidated fuzzing helper, BackgroundLP simulation
- Sweep results: CSV data for full 4D sweep (1050 combos), bull-bear,
AS sweep, VWAP fix validation
- Code quality: .gitignore for fuzz CSVs, gas snapshot, updated docs
- Remove dead analysis helpers (CSVHelper, CSVManager, ScenarioRecorder)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:22:03 +00:00
|
|
|
|
*Generated: 2026-02-08*
|
|
|
|
|
|
*Sweep: 1050 combos (10 CI x 7 AS x 5 AW x 3 DD) via BullBearSweep.s.sol*
|
|
|
|
|
|
*Commit: 0e2104b (sqrt price bug + outstandingSupply fix)*
|
|
|
|
|
|
*Branch: fix/floor-ratchet*
|