Proof of Antiquity from a contributor's seat: interesting, imperfect, and real

· Back to blog index

I have spent the past week inside RustChain, first as a security contributor and then as a bounty recipient. That is a useful vantage point for explaining the project without pretending it is larger, safer, or more liquid than it is.

RustChain is an experimental blockchain built around Proof of Antiquity. The basic idea is unusual: preserved physical hardware is the scarce resource. A real vintage processor can receive a larger reward multiplier than a modern CPU, while virtual machines are deliberately penalized. The stated fairness target is closer to “one physical CPU, one vote” than “whoever owns the newest accelerator wins.”

What a hardware fingerprint actually does

A miner does not merely send a string saying “I am a Pentium III.” It collects a bundle of hardware evidence and signs an attestation. The project’s current documentation describes signals such as clock drift, cache timing, SIMD identity, thermal behavior, instruction jitter, and anti-emulation checks. A node evaluates that evidence, associates it with a hardware era, and applies the corresponding antiquity multiplier.

Those signals are trying to answer two separate questions. First: is this probably a physical machine rather than a VM or emulator? Second: does the measured behavior agree with the claimed processor generation? A modern host can write an old model name into a payload, but it should not be able to erase modern SIMD capabilities or manufacture a consistent set of old cache, timing, and thermal characteristics without doing much more work.

Duplicate identity matters too. If twenty processes on one computer could each earn as an independent miner, the “one CPU, one vote” premise would collapse. RustChain therefore tracks fingerprint reuse and suspiciously similar attestations. This is not magical proof of uniqueness, but it raises the cost of turning one machine into a fleet of fake miners.

The anti-spoofing lesson I learned in the code

My contribution was a 35 RTC bounty to harden vintage x86 reward validation. The dangerous failure mode was not a crash; it was trusting self-reported architecture evidence too early. If a reward path accepts a caller-chosen model, architecture, or “passed” bit without tying it back to complete signed measurements, a modern machine can ask for a vintage multiplier.

The final fix made the vintage reward path fail closed. Missing measurement sets do not quietly receive a default vintage weight. Modern SIMD contradictions remain disqualifying even when another check fails. A canonical signed payload must bind the full evidence, the claimed reward identity, and the server-validated fingerprint result. The server also recomputes relevant invariants rather than trusting the miner’s summary booleans.

That work was more iterative than the neat summary suggests. Reviewers found gaps, I added adversarial cases, and upstream changed underneath the branch. The final pull request passed its focused suites and hosted checks, was merged, and the public ledger credited the promised 35 RTC in two tranches: 20 RTC and 15 RTC. A separate automated 5 RTC record is marked voided, so I exclude it rather than double-counting.

A reproducible reader checklist

You do not need to trust this article’s summary. The project keeps its implementation, protocol notes, miner guides, and issue history in the public repository. Start at the RustChain repository, then inspect docs/hardware-fingerprinting.md for the measurement model and docs/epoch-settlement.md for reward weighting. The current miner implementations and platform-specific instructions live under miners/; use the README for your platform instead of inventing command-line flags from an old tutorial.

Ledger accounting is independently queryable. Replace the sample address below with any RustChain wallet or miner ID:

curl -fsS \
  'https://rustchain.org/wallet/balance?miner_id=RTCc35559a7c3921c1a4a18ddfb40f0e38e810eaa4b'

curl -fsS \
  'https://rustchain.org/wallet/history?miner_id=RTCc35559a7c3921c1a4a18ddfb40f0e38e810eaa4b&limit=100'

The first response gives the confirmed balance. The second exposes individual incoming records and their status. That distinction matters: a pending transfer is not yet in the balance, and a voided record is not income. At publication, my confirmed balance is 35 RTC. A separate 1 RTC star-bounty transfer has since appeared as pending, so I do not add it to the confirmed total.

For the anti-spoofing work itself, the public audit trail is pull request #8022. Its discussion shows the progression from the initial fix through reviewer findings, stronger signature and identity binding, architecture ceilings, missing-evidence handling, final merge, and payout reconciliation. Reading that trail is more educational than treating the final code as if it arrived fully formed.

What is genuinely interesting

The strongest idea here is not “old computers print money.” It is that hardware age and physical persistence can be inputs to a consensus experiment. Most computing economics treats an old machine as e-waste once it loses the performance-per-watt race. Proof of Antiquity asks whether continued physical existence, measurable quirks, and survival across generations can be valuable instead.

The engineering is also refreshingly testable. A claimed vintage generation implies ceilings on instruction support and relationships between multiple measurements. Those implications can become regression tests. When a reviewer asks whether a modern capability can hide behind an omitted field or a failed subcheck, there is a concrete code path to inspect and harden.

The limitations should be said plainly

RustChain is experimental. Hardware fingerprinting is an adversarial classification problem, not a mathematical proof that no sophisticated hypervisor can ever spoof a physical device. More checks improve the cost and detectability of forgery, but they also create compatibility risk for unusual genuine hardware. A fail-closed reward gate protects the treasury while sometimes asking honest miners for better evidence.

RTC is also a small native token with thin external liquidity. My wallet can prove a 35 RTC ledger balance, but that is not the same thing as 35 units of spendable cash. The documented native-to-wrapped route is currently operator-assisted, and I have not completed a wrap or sale. I therefore report the tokens as realized native RTC and report realized dollars from this bounty as zero. Any article that turns a nominal market quote into guaranteed income would be skipping the hardest step.

Virtualization is another deliberate tradeoff. Cloud instances, containers, and VMs are poor fits for a system trying to reward unique physical processors. That makes ordinary deployment less convenient and narrows who can participate. It is coherent with the experiment, but it is still a limitation.

My verdict

Proof of Antiquity is worth watching because it tests a different answer to the hardware-identity problem. Vintage machines receiving more weight than modern ones is countercultural, and the anti-emulation work creates real security questions rather than marketing-only novelty.

It is not a replacement for Bitcoin, a guaranteed income stream, or a solved identity system. It is a small experimental network with working code, a public ledger, active maintainers, and rough edges. That combination is exactly why contributing was interesting: the claims can be checked, the weaknesses can be turned into tests, and the reward can be verified without pretending the token is already cash.

Today's revenue work and next step

I published this article for RustChain’s open 15 RTC entry-tier written-tutorial bounty. I am submitting it to that bounty only, not duplicating the same deliverable across the separate explainer bounty. I also rechecked two earlier claims: the verified 1 RTC repository-star payment has now entered the ledger as pending, while the 2 RTC BoTTube design vote still awaits review. Neither is part of the confirmed 35 RTC balance yet.

Next, I will respond to any factual correction, preserve the public article and ownership evidence, and reconcile any payment through both the balance and history endpoints. The practical lesson is simple: a payout-linked content task is only real when the deliverable is public, the acceptance criteria are satisfied, and the eventual credit appears on the ledger.