Documentation · Learn
Limitations explained
A plain-language walk through every known limitation of the RC4 candidate, section by section, with a link to the verbatim text.
This page walks through each known limitation of the RC4 candidate in plain language, section by section. The full text is published verbatim at known limitations, and that text is the reference.
RC4 is built on one rule: the protocol buys only at or below the lowest price that actually traded. That rule keeps every protocol placement defensible against manipulation, and it sets where protocol support sits. The sections below describe the consequences.
#0. The all-time-low ratchet
Every protocol buy is anchored at the all-time-low block-start price (GeneHook.sol:35-38). The anchor moves only where the pool has active liquidity, so parking the price in empty ticks cannot move it, and an oversized placement is skipped instead of reverting (GeneHook.sol:771-774, :610-627). This closes the free permanent disable of the earlier design.
A paid ratchet remains. A trader can sell through every protocol position to one tick inside the deepest one, hold a block start there, and repeat. Each round moves the anchor down, and every later protocol buy is placed below it. Each round costs real ETH in fees on both legs and in price impact, and the tests assert that the attacker never profits. In the tested ratchet, metabolize(), harvest and asks continue, and the protocol ends with more Permanent Mass than an un-ratcheted control. Audit scope note: metabolize() reverting InvariantBroken when spot sits at or beyond the bid band (GeneHook.sol:655-660) (see Security).
Cost depends on depth. In a thin, falling market of about 30 ETH per epoch, the measured cumulative cost was 0.23 ETH to move the anchor price down 40%, 1.35 ETH for 80% and 2.8 ETH for 90%. In a thin, young market, a determined trader can therefore move all future protocol buying to a small fraction of the price for a few ETH. The effect is on usefulness: no value moves to the attacker, Mass keeps accumulating, and nothing is withdrawable.
RC4 accepts this as a known economic limitation. Nothing in RC4 bounds how far below spot future protocol support can sit. Persistent or lagging anchors and a separate deployment reference were tested and rejected, because each reopened a profitable placement sandwich; a deployment gate that holds ETH was rejected because it does not restore support and adds a rentable suppression path.
#1. No near-spot support in falling markets
Protocol bids sit at or below the all-time low, so in a falling market they sit well below spot. In every falling regime measured, the protocol ETH a seller could reach within 5%, 10% and 25% below spot was zero, with the all-time low between 44.6% and 86.2% below spot. Total ETH committed and Permanent Mass match RC3 in every organic regime; only where the ETH sits changes. Rising and sideways markets behave as in RC3.
#2. IMMUNITY is weak in genuine sell-offs
See immunity. IMMUNITY is funded only by net selling, valued at the epoch's cheapest price, and placed at or below the all-time low. In measured genuine sell-offs it placed 0.3 to 0.8 ETH by the study's S+7 checkpoint, none within 25% of spot. Near launch its per-epoch budget is far below its 1.5 ETH epoch cap. Manufactured stress buys nothing: price-restoring round trips create no IMMUNITY budget.
#3. REGENERATION is near-inert on the genesis curve
REGENERATION buys only while the price is no more than about 1% above the all-time-low price (GeneHook.sol:574-577). Near that price the genesis curve holds about 0.05 to 0.1 ETH of book per call, so the price limit binds before the 0.5 ETH call cap, and the 1 ETH epoch cap cannot bind until Mass deepens the book. The cooldown starts only when a call spends its whole allotment, so a call that buys nothing leaves it untouched. Audit scope note: reachability of the 1% window (see Security).
#4. Small budgets in young markets
Budgets are valued at an epoch's cheapest price, so a budget never exceeds the fee its own flow paid. Near launch, with large price impact, 150 ETH of buys funds about 0.23 ETH of bids. The part of the revenue metric that net buying did not fund sizes the churn tier, placed at the all-time low within the shared epoch cap, so it still becomes Permanent Mass (GeneHook.sol:526-539).
#5. Positive "assisted" cells
Across 53,929 matched attack-matrix rows there are 0 self-funded and 0 transfer cells. Positive "assisted" cells remain: up to +1.03 ETH, and +116 / +14.45 ETH in two intra-block wick families. In each, the protocol ends above its counterfactual, and the attacker's extra is paid by the simulated third-party traders. This result rests on the harness's third-party trader model, which is naive; real traders may behave differently.
#6. Coverage limits
228 study cells cannot execute, because they buy the pool's entire remaining GENE; they are excluded and are not counted as passes. The dense pump sweep, which targets an RC3 mechanism, was not run on this design. The grid maxima are observed bounds: the largest values found across the strategies tested.
#7. Other limitations
An epoch with no flow places no ETH in the next epoch. With more pending epochs than metabolize() folds (auto_evolve_max), ETH placement waits for evolve(), and the first metabolize() needs a prior evolve(). Epoch views show the last touched epoch until the new epoch's first touch. The chain accepts a launcher that has code, so confirm before deployment that the launcher has none. Aggregator route discovery needs a live pool. External audit status is on Security.
Sources (6)
- src/GeneHook.sol:35-38
- src/GeneHook.sol:771-774
- src/GeneHook.sol:610-627
- src/GeneHook.sol:526-539
- src/GeneHook.sol:574-577
- src/GeneHook.sol:655-660
Paths are relative to the GENE repository at tag rc4-audit-candidate (aca5fcd).