Two NeuroChain networks exchange tokens without trusting a middleman
Until now, an incoming IBC transfer was credited on the signature of an operator: the chain trusted a person. Now the chain checks it on its own, the way Cosmos IBC does.
A light client
The chain follows the other network's block headers. It accepts a header only if more than 2/3 of that network's validators signed it, and more than 1/3 of the validators it already trusts are among them (the ICS-07 rules). The client follows changes of the validator set, honours a trusting period, and freezes if the network ever signs two different blocks for one height.
A block knows which chain it belongs to
Every block now carries the network's identifier and the hash of the validator set that decided it. Signatures of one network cannot pass for signatures of another, even when validators use the same key on both.
Packets with proofs
A transfer, its acknowledgement and its timeout go through only if a Merkle proof matches the other network's trusted state root. Signatures are post-quantum (ML-DSA-65), hashes are SHA3-256.
A relayer that needs no trust
Anyone can deliver packets. The relayer only carries headers and proofs from one network to the other; the chain decides.
Result
Six scenarios run two chains in one process. A network test runs two networks of four validators each in mainnet mode: a transfer is delivered in 4 seconds and acknowledged in 6, a forged packet is refused, a timed-out packet is refunded by proof, and both networks' state is identical on every node. 418 node tests pass.
Next: the same client for Cosmos networks.