The trustless-bridge end-state runs on an Ergo L1 that can verify a STARK in
consensus. That L1 now exists as a private, isolated Ergo devnet built
from the Rust node's feat/eip-0045-stark branch (--features stark-verify,
so opcode 0xB9 verifyStark does real RISC0 verification). Deployment:
~/apps/ergo-devnet-stark/ (API 127.0.0.1:19099, key hello). This note
records what it takes to run Aegis against it — scouted, not yet wired.
- Live and advancing under a difficulty-1 external miner: height passed
37k on first check,
mining: True,peersCount: 0(isolated — unique P2P magic[7,7,7,7]+ empty seeds; can't even handshake a public peer). - Funding is already available. 37k blocks ≫ the 720-block
miner_reward_delay, so mature spendable coinbase exists — the verifyStark-box funding tax is effectively paid.
Aegis's follower/anchor already takes an ergo_url ("Ergo node REST base URL
for the follower + anchor watcher") and consumes exactly one Ergo endpoint,
/blocks, which the devnet serves on the standard API. So pointing Aegis at
the STARK L1 is:
ergo_url = "http://127.0.0.1:19099"+ anergo_start_height;- Aegis's pegmint anchor set to the devnet's genesis (it reuses testnet
genesis, so the testnet
ErgoAnchorapplies). No follower rework.
The M4 trustless authority is the STARK analogue of S1c: a SideChainState
whose tip-update authority is verifyStark(...) == true instead of
atLeast(k, …). That cannot be written in ErgoScript today — the
ergo-compiler frontend has no verifyStark, so the guard would need a
hand-built raw ErgoTree, OR verifyStark added to the compiler. Adding it to
the compiler frontend is the highest-leverage unblock and is ergo branch-
session territory, not an Aegis-USE build.
- Point Aegis's follower at the devnet (config, above).
- Deploy the peg contracts on the devnet (real constants; the mature
coinbase funds the vault + a
verifyStark-guarded test box). - Build the verifyStark tx (chunked ~218 KiB proof in the input's context
extension) and
POST /transactions— mempool admission runs full script reduction, so accept-valid / reject-tampered needs no mined block. Prove BOTH directions on the feature-on binary (a wrong chunk split silently yieldsfalse, so tampered→reject alone is not sufficient). - Express the trustless
SideChainState(blocked on the compiler gap above) and advance the tip with a real proof = M4, end to end.
Everything through step 3 is unblocked now; step 4 waits on the compiler. Real trustless settlement (vs the trivial-statement mechanism demo) still needs the deferred Aegis-validity STARK AIR — the real settlement statement.