Lossy STEAL keeps Z80 replicators cooperative without memory or assortment

Tapes Together Strong: The Co-evolution of Computation and Cooperation

Kunal Jha, Francesco Cicala, Blaise Agüera y Arcas, Blake Aaron Richards, Natasha Jaques, Max Kleiman-Weiner, Eyvind Niklasson

cs.MA, cs.AI

2026-09-10

Random Z80 programs evolve self-replication while suppressing lossy energy theft, even well-mixed and memoryless. Space then raises complexity and joint-task solve rates.

What problem this solves

Evolutionary game theory splits a social round from the population update. Payoffs arrive as numbers, then a Moran-style rule copies strategies. Replication is free, and it does not rewrite anyone's body. Under that split, well-mixed memoryless agents almost never hold cooperation unless the model adds reciprocity, punishment, or kin clustering.

Artificial life takes the opposite starting point. In Tierra and Avida, random instruction streams invent self-replication and compete for CPU cycles in shared memory. Those worlds usually treat the fight as zero-sum resource capture. They do not write "steal a neighbor's energy" and "keep both sides able to compute" into the same instruction-level dilemma.

Multi-agent systems now stack both problems: compute, interaction, and reproduction debit one budget. The paper asks whether cooperation can still hold when both strategy and the replication machinery have to grow out of random bytes.

Method

The framework is Autopoietic Game Theory. Autopoiesis, from biology, means a system that continually remakes its own parts. Here every instruction has an energy cost, execution speed tracks remaining energy, and interaction and replication spend the same budget.

The substrate is 16,384 programs, each a 32-byte random Z80 machine-code tape. Each epoch injects a baseline ε=24 energy, then pairs two tapes into a 64-byte cyclic shared memory. Each side gets its own CPU and registers and starts at the first byte of its own code. Every opcode costs 1 energy; illegal opcodes still pay and skip. Who runs the next instruction is drawn with probability Ei/(Ei+Ej). Energy is clipped to [0, 255].

There is no built-in replicate opcode. A tape reproduces by writing its own bytes over the partner. A hand-written efficient replicator is 11 bytes, so ε=24 is enough for a non-stealing tape to copy and bank surplus. Before each epoch, each byte mutates with probability μ=1/128.

The social move is STEAL: drain δ energy from the partner and absorb a fraction α=0.8. Each success destroys 0.2δ from the system. Tapes that never fire STEAL are labeled cooperators. That is not kindness. Replication still overwrites the partner's memory. Cooperation here only means skipping lossy energy theft.

Two topologies: uniform random pairing, or a 2D grid with four neighbors.

Results

With uniform energy, well-mixed pairing, and ongoing mutation, STEAL drops to low volume across fixed δ values and across a register-controlled steal amount. The account is metabolic. Mutual theft drains the shared pool, the pair slows down, and defectors take more lethal mutations. Cooperators bank energy, run faster next round, and can overwrite a defector mid-copy.

Mutation is not the whole story. With μ=0, a random soup seeded with 1% working replicators and 1% STEAL opcodes still keeps defectors in the minority. Raising steal size from δ=16 to δ=32 cuts defector success (p<0.001, Cohen's d=4.17): steal too much and the pool starves before L writes finish.

Inefficient stealing is not the whole story either. A 10-seed sweep over α ∈ {0.25, 0.5, 0.75, 0.95} and δ ∈ {4, 8, 16, 24, 32, 64}, with STEAL recoded as a single-byte opcode, leaves defector share almost flat in α:

αmean defector shareSE
0.250.2100.038
0.500.1690.034
0.750.2130.035
0.950.2040.036

At α=0.95 the share is still about one fifth. α×δ correlates only weakly with defector share (Pearson r=0.14, p=0.03). What holds cooperation is the joint evolution of social moves and replication code.

Under uniform energy, spatial structure is not required for cooperation: both topologies suppress theft. Space does make programs more structured and more kin-like: higher-order entropy Cohen's d=2.81, edit distance d=7.32, both p<0.001. When baseline energy is badly unequal by location, well-mixed populations collapse in energy and structure. Local neighborhoods keep terminal energy (d=8.98) and complexity (d=3.54).

External math tasks change the energy source. Each grid cell owns a constant b. Each epoch draws a private x, and reading the partner's y costs extra ops. Solo is x+b; Joint is x+y. Free baseline energy arrives only below a reserve threshold, for example 25% of capacity. Higher thresholds (more free energy) cut solve rates: individual r=-0.267 (p=0.017), joint r=-0.427 (p=7.7e-5).

The same math is then scored as a sequential social dilemma. First Joint pays 2ε to both. If the partner then solves Solo, that partner gets +5ε (7ε vs 2ε). If the partner also solves Joint, both get +4ε (6ε each). Dual Solo pays 5ε each. Tapes still suppress Solo, chase Joint, and keep STEAL down. Local pairing raises joint solve rates (p≤0.01, d=1.63).

A stripped-down model isolates replication timing. Interact, then pick the replicator from post-interaction energy: defection takes over. Freeze replication priority before the interaction: cooperation takes over. Energy loss on its own is not enough. Loss has to sit on a replication mechanism that can evolve.

Why it matters

For people building multi-agent systems and open-ended self-improvement, the hard claim is this: tie compute capacity to a shared energy budget, and cooperation can grow out of the physics. Memory, punishment, and identity are not prerequisites. Spatial structure is a complexity catalyst when resources are even, and a survival scaffold when they are not and when the task is joint.

This remains an artificial-life experiment, not a production agent protocol. Z80 tapes have unrestricted read/write of partner memory, closer to agents that share a harness than to models with private weights. The mechanism is sharper than adding a cooperation bonus. The distance to deployed systems is the same size as the sharpness.

Limitations

The authors say the simulations sit on a simplified Prisoner's Dilemma and a Z80 instruction set. Different opcode densities would move replication cost and the starvation threshold, and may change whether cooperative loops are reachable. Unrestricted partner memory is a strong assumption; many real systems hide internal state. The appendix theory freezes relative execution speeds and replaces moving total energy with its average. Sufficient conditions under asymmetric energy, ongoing mutation, and external tasks are still open.

The operational definition of cooperation is coarse: no STEAL during replication counts as C. Programs can loop STEAL, change δ, or overwrite only part of the partner. That gradient lives in the appendix; the main text keeps a binary label. In the α-δ sweep, defector share hits 0.313 at δ=16 and drops to 0.075 at δ=24, so the curve is not monotone, while the write-up stresses insensitivity to α. Most "heavily suppressed" plots do not report an absolute terminal steal rate.

Terms

Source

What people are saying

Related papers

All paper explainers