Old Iron Earns More: A Technical Look at RustChain's Proof-of-Antiquity
Why I'm Writing This
I came across RustChain while looking at experimental consensus mechanisms. The pitch is unusual: a blockchain where a 2003 PowerBook G4 earns 2.5x more mining rewards than a modern AMD Threadripper. Not because it's faster — because it's older and provably real. I dug into the source code to understand whether this is a genuine novelty or another crypto gimmick. This is what I found.
The Core Idea: 1 CPU = 1 Vote
RustChain's consensus, called Proof-of-Antiquity (PoA), replaces hash-rate competition with hardware identity. Instead of "more compute = more reward," the system rewards hardware diversity and longevity. The principle is simple: a machine that has survived 20 years is rarer and more interesting than a rack of cloud VMs you spun up five minutes ago.
The project's CPU_ANTIQUITY_SYSTEM.md lays out the full multiplier tiers. Here's a sample:
| Era | Multiplier | Example Hardware |
|---|---|---|
| Mythic (pre-1985) | 3.5–4.0x | DEC VAX, Inmos Transputer |
| Legendary (1979–1994) | 2.5–3.5x | Motorola 68000, SPARC v7 |
| PowerPC G4 (2001–2006) | 2.5x | PowerBook G4 |
| Vintage x86 (2000–2008) | 1.3–1.5x | Pentium 4, Core 2 Duo |
| Modern x86 (2020+) | 0.8–1.0x | Ryzen 9, Alder Lake |
| ARM SBCs | 0.0005x | Raspberry Pi 4/5 |
The 0.0005x penalty for ARM single-board computers is deliberate — the docs note that "anyone could spin up thousands" of $35 Raspberry Pis, so the system aggressively de-incentivizes ARM farms.
How It Detects Real Hardware
This is where it gets technically interesting. The system can't just take your word for what CPU you have — you'd lie. So it uses six hardware fingerprinting checks that are hard to spoof:
1. Oscillator Drift (hardware_spoof_lib.py)
The ClockVarianceSimulator class models clock drift — real crystals have minute frequency variations that differ per-unit. VMs typically have perfect virtual clocks. The code simulates this for testing, but the actual attestation measures your real clock's drift pattern.
2. Cache Timing
CacheTimingSpoofing in the same file shows the testing framework: L1 cache hits at ~10ns, L2 at ~40ns, L3 at ~90ns, with miss penalties at 10x. Real CPUs have specific cache hierarchy timings; VMs pass through hypervisor layers that introduce detectable jitter patterns.
3. SIMD Identity
Different CPU architectures support different instruction sets (SSE, AVX, AVX2, AVX-512, NEON, AltiVec). The instruction set itself is a fingerprint of the hardware generation.
4. Thermal Entropy
Real silicon has thermal noise that affects timing measurements. The simulate_thermal_drift() function in the spoofing library shows what the system is looking for — tiny, physics-based variations that don't exist in software emulators.
5. Instruction Jitter
The timing of specific instruction sequences varies slightly between physical CPU implementations. This is hard to fake without actual silicon.
6. Anti-Emulation
The combination of the above five signals creates a composite fingerprint. The proof_of_antiquity.json example shows what a submission looks like:
{
"wallet": "example-wallet-123",
"bios_timestamp": "1998-12-01T00:00:00Z",
"cpu_model": "Pentium III",
"entropy_score": 3.47,
"bios_fingerprint": "1234abcd5678efgh9012ijkl3456mnop",
"score_composite": 9.14,
"rarity_bonus": 1.02
}
The entropy_score and score_composite are derived from the hardware measurements, not self-reported.
Replay Attack Defense
One thing I found impressive: the project has dedicated replay attack protection. The replay_defense.py module checks three conditions:
- Replayed fingerprint (exact duplicate) → rejected
- Fresh fingerprint (new measurement) → accepted
- Modified replay (changed nonce but old data) → rejected
This matters because without it, someone could capture a legitimate fingerprint from a real machine and replay it. The defense computes a hash of both the fingerprint data and its entropy profile, so even modified replays with tweaked nonces get caught. There's also rate limiting (MAX_FINGERPRINT_SUBMISSIONS_PER_HOUR) to prevent spam.
The Time Decay Formula
The multiplier isn't static — it decays over time to reward early adopters. From the docs:
# For vintage hardware (>5 years old)
decay_factor = 1.0 - (0.15 * (age - 5) / 5.0)
final_multiplier = 1.0 + (vintage_bonus * decay_factor)
Example for a PowerPC G4 (base 2.5x, age 24 years):
- Vintage bonus: 1.5x (2.5 - 1.0)
- Age beyond 5 years: 19 years
- Decay: 1.0 - (0.15 × 19/5) = 0.43
- Final multiplier: 1.0 + (1.5 × 0.43) = 1.645x
Modern hardware gets a different deal — a loyalty bonus that increases with uptime:
# For modern hardware (≤5 years old)
loyalty_bonus = min(0.5, uptime_years * 0.15) # Capped at +50%
final_multiplier = base + loyalty_bonus # Max 1.5x total
So your Ryzen 9 starts at 1.0x but after 3 years of continuous uptime earns 1.45x. It's a clever design: vintage hardware gets an upfront bonus that slowly decays, while modern hardware earns its bonus through commitment.
CPU Detection in Practice
The cpu_architecture_detection.py file is a massive regex-based CPU identifier. It pattern-matches the /proc/cpuinfo brand string against hundreds of patterns. For example, Intel Sandy Bridge is detected with:
r"Core\(TM\) i[3579]-2\d{3}" # i7-2600K, i5-2500
r"Xeon(?:\(R\))?.*E3-12\d{2}(?!\s*v)" # E3-1230 (no v-suffix)
The code handles Intel, AMD, PowerPC, Apple Silicon, RISC-V, Sun SPARC, SGI MIPS, Motorola 68K, Hitachi SuperH, and even game console CPUs (PS2 Emotion Engine, PS3 Cell, Dreamcast SH-4, GameCube Gekko). It's a thorough piece of work, though regex-based CPU identification is inherently fragile — a CPU string the patterns don't recognize falls through to a default.
Honest Assessment
What's genuinely interesting:
- The "1 CPU = 1 vote" model is a real departure from PoW/PoS. It rewards hardware preservation — a 386 from 1986 earning 3.0x is objectively cool.
- The six-factor hardware fingerprinting is non-trivial. VMs can fake individual signals, but faking all six simultaneously (clock drift + cache timing + SIMD + thermal + instruction jitter + anti-emulation) is genuinely hard.
- The replay defense code is well-structured and addresses real attack vectors.
What's questionable:
- RustChain is a small-cap experimental project. RTC is not a major token. The README itself says "5 Active Nodes." This is early-stage.
- Regex-based CPU detection is only as good as the patterns. Unknown or spoofed
/proc/cpuinfostrings could fool it. - The "AI agent economy" aspect — where autonomous agents are first-class participants with signing keys as wallets — is interesting but unproven at scale.
- The project has an enormous number of bounty issues, many seemingly designed to drive GitHub engagement (stars, forks, content). The bounty rewards are in RTC, whose real-world value is unclear.
- The
hardware_spoof_lib.pyfile is literally a spoofing library — it's for testing the system, but its existence shows the cat-and-mouse nature of hardware attestation.
The honest take: Proof-of-Antiquity is a creative consensus mechanism that does something genuinely different — it values hardware for surviving, not for computing fast. The anti-emulation fingerprinting is real engineering. But this is an experimental project with minimal adoption, and the token economics are unproven. Don't mine on it expecting to get rich. Mine on it if you have a PowerPC G4 in your closet and want to put it back to work.
Getting Started
If you want to try it (on real hardware, not a VM):
pip install clawrtc
Repo: github.com/Scottcjn/Rustchain
The project supports 15+ CPU architectures including PowerPC, SPARC, MIPS, RISC-V, and vintage x86. If you have a 20-year-old machine that still boots, it might actually earn more than your current one.
This article is an independent technical analysis. I am not affiliated with RustChain. The bounty that motivated this article explicitly asked for honest, no-hype content — factual errors should be corrected, not glossed over.
Top comments (0)