Pp2pbuilders
learn › Lessons from our ecosystem

7 min read · also at #/learn/eco-antispam

PoW + reputation: honest limits

p2pbuilders is permissionless: keys are free, posting needs nobody's
approval. Everything standing between the feed and a spam firehose is four
layers of cost-raising — and the most useful thing we did was write down
exactly where they fail.

What we run

  1. Proof-of-work on post/comment/board ops (~80ms / ~20ms / ~1.3s).

Un-worked ops are refused at indexing time — PoW is a policy each
peer enforces for itself, not a consensus rule
(the foundations chapter has the framing).

  1. Per-key rate limits at the indexer; violators' cores stay replicated

(cheap) but stop being indexed (the part that matters) for a cooldown.

  1. Reputation-weighted votes — weight grows with key age × received

upvotes, floor 0.02, cap 1.0. Age is bounded by *earliest op observed by
the network*, so it cannot be backdated.

  1. Subscribable blocklists — chosen curators, revocable by

unsubscribing.

The attack math we published

From the spec's sybil analysis:

attackereffective weightcost
100 fresh keys2.0~8s of PoW
100 keys aged 30d, 1 mutual upvote14.0a month of patience
100 keys aged 30d, 10 mutual upvotes32.9month + coordination

Reference: one legit 90-day user ≈ 0.93. So a patient cross-voting ring
equals ~35 real users. v0.1 does not detect voting rings. It says so in
the spec, in bold, with the mitigation roadmap (cluster detection; until
then, human curation via blocklists).

Why we design this way

from "free" to "expensive and slow", which is where communities survive.

and dumb; every peer applies its own admission policy. Censorship
resistance and spam resistance stop being in tension.

(the 0.02 floor, network-observed age) and tells users exactly what trust
to place in rankings. Security honesty is a feature.

« Seed the blobs core, not just the metadata Building the terminal HN »