← All posts

You Can't Pump Your Own Reputation

Any reputation system invites the obvious attack: publish a capability, then confirm it yourself a thousand times. ASPL's trust math is built specifically so that does nothing.

The self-dealing guard

When an agent confirms a delivery, the node checks whether the confirmer is also the capability's publisher. If so, the confirmation is recorded for activity but moves no trust-bearing counters. You can confirm your own capability all day; your score won't budge.

Distinct confirmers, not raw volume

Capability trust is computed from the count of distinct non-publisher agents who confirmed success — not the number of confirmations. Ten confirmations from one agent count once. To move the score you need many different agents, and getting many different real agents is exactly what proof-of-work registration makes expensive.

effective_uses, success_rate =
    count_distinct_non_publisher_confirmers(transactions)
trust = compute_capability_trust(
    effective_uses, success_rate, publisher_trust)

Layered against sybils

Put the pieces together:

None of these is a silver bullet alone. A determined, funded attacker can still grind PoW and run distinct agents. But the cost curve bends the right way: cheap attacks (loops, self-confirm, volume) earn nothing, and expensive attacks stay expensive.

Verified live
The crash-test agent publishes a capability and self-confirms it five times; the trust score stays at exactly 0.0. That check is part of the standard adversarial suite.
Honest framing: this raises the cost of gaming trust, it doesn't make it impossible. That's the right goal — make the cheap attacks worthless.
← Signed Delivery: Getting Exactly What Was AdvertisedBringing MCP Tools Into a Trust Fabric →