AI Initiative logoAI Initiative
Reading room / Manthan

R-216 — Patina anti-farming reference formula

Specifies an inspectable reputation formula using age, activity, diversity and other signals, with explicit anti-farming and inheritance constraints.

Research report / proposal; not independently verified publication
This is the retained source text, not a new validation of its claims. Numerical results and comparative claims require the accompanying source review before public reuse.

Read the connected case study or article →

Not explicitly stated in source · Date not established

Provenance, authorship and editorial notes

R-216 — Patina anti-farming reference formula

Id

manthan-herald-protocol-research-patina-formula

Project

Manthan

Source path

manthan/herald-protocol/research/patina-formula.md

Source sha256

38a97b19879b17f5bd78b3ad4459ef56062b90a609ddb73726dde1fe6cd66764

Local copy sha256

38a97b19879b17f5bd78b3ad4459ef56062b90a609ddb73726dde1fe6cd66764

Repo head

3a94084024a3434cef331fecac91c2c3b43f0313

Date
Not recorded
Date basis

Original publication date not established; Git revision date retained separately.

Author

Not explicitly stated in source

Author basis

Unknown; Git committer not substituted for document author.

Last source commit

8b75d1b0157c20a0a463f0e31008ef9f73099beb

Last source commit date

2026-06-08T07:40:14Z

Document status

Research report / proposal; not independently verified publication

Summary

Specifies an inspectable reputation formula using age, activity, diversity and other signals, with explicit anti-farming and inheritance constraints.

Topics
  • Trust and collective intelligence research
  • 1. Notation and observable signals
  • 2. Reference formula
  • 3. Components
Theme

Trust and collective intelligence research

Priority

core

Related ids
  • manthan-herald-protocol-research-confession-alignment
  • manthan-herald-protocol-research-dkim-analogy
Evidence concerns
  • Recovered source text is preserved verbatim. Assertions, comparisons, commands and results belong to its original context; they were not re-executed or externally re-verified during this corpus review.
  • Research/design document, not proof of deployed capability, peer review, novelty or improved outcomes. External citations and dated maturity claims need independent verification before public reuse.
Word count

2597

Bytes

17112

Source relative

herald-protocol/research/patina-formula.md

Remote mirror

manthan/herald-protocol/research/patina-formula.md

Full text preserved

True

R-216 — Patina anti-farming reference formula

Status: research-grade reference formula. Non-normative — application-layer reputation systems MAY adopt it directly, modify the constants, or use a different design. Provides a starting point for ecosystem convergence.

Motivation:

This document specifies a reference formula that:
1. Computes patina from observable, signed-envelope-derived signals.
2. Is hardened against the canonical farming patterns: sybil rings, self-talk, gratitude inflation, tier-jumping, confession farming, inheritance laundering, bestiary clearing.
3. Respects EXT §9.4 inheritance constraints.
4. Maps to the four CHARTER patina tiers via published thresholds.


1. Notation and observable signals

For sigil s at time t, the inputs are derived from envelopes the reputation system has observed:

All signals are derived from public data (CT-log inclusion proofs); the formula is recomputable by any party with ecosystem-wide log access.

2. Reference formula

Patina score:

P(s, t) = α · V'(s, t) · D(s, t)
        + β · G'(s, t)
        + γ · log₂(1 + days_age(s, t))
        − δ · B(s, t)
        + I(s, t)

with the components defined below.

Reference weights (illustrative; deployments tune):

WeightValueRole
α1.0volume × diversity term
β0.3gratitude term
γ2.0age term
δ5.0bestiary penalty term

Tier thresholds (illustrative):

TierRangeAdditional condition
fledglingP < 5none
journeyman5 ≤ P < 25age ≥ 30 days
elder25 ≤ P < 100age ≥ 1 year, no active bestiary entries
ancestorP ≥ 100age ≥ 3 years, consistent journeyman+ status for ≥ 2 years

The dual condition (P-threshold AND auxiliary) is anti-tier-jumping: heavy short-burst envelope volume cannot push a sigil into elder.


3. Components

3.1 Volume term V'(s, t)

V'(s, t) = log₂(1 + |cross_cluster_envelopes(s, t)|)

where:

cross_cluster_envelopes(s, t) =
  { e ∈ E(s, t) :
      ∃ r ∈ recipients(e) such that cluster(r) ≠ cluster(s) }

Anti-farming property: envelopes whose recipients are entirely within the sender's own cluster (self-talk, sybil ring) do not count. The cluster graph is recomputed periodically; an attacker who creates a sybil ring of N sigils sees them clustered together within a few days and gets no volume credit.

Saturation: log₂ ensures linear growth in score requires exponential growth in observed volume. Discourages volume-mining bots.

Cap: V'(s, t) ≤ V_max where V_max = 16 (i.e. ~64K cross-cluster envelopes saturates the term). Prevents heavy industrial-volume sigils from dwarfing the rest of the formula.

3.2 Diversity term D(s, t)

D(s, t) = H(recipients(E(s, t))) / log₂(N)

where H is Shannon entropy in bits over the empirical distribution of recipients, and N is the number of distinct recipients. This normalises D to [0, 1]:

Anti-farming property: the volume term and diversity term multiply. A sigil with high V' but D ≈ 0 (always talking to the same correspondent) gets a low score.

3.3 Gratitude term G'(s, t)

G'(s, t) = Σ_{g ∈ gratitude_in(s, t)} w(g) · σ(g)

where:

Anti-farming property: mutual gratitude rings (sigils citing each other to inflate scores) are nullified by the cluster discount. Industrial gratitude farming (one sender repeatedly citing one receiver) is capped at one per day per sender.

Why log not raw count: raw gratitude count favours volume-mining; the per-sender-per-day cap is the anti-farming discipline. We do not need additional log-saturation here because the cap already saturates aggressive farming.

3.4 Age term

γ · log₂(1 + days_age(s, t))

Smooth and saturating. A 30-day-old sigil contributes 2 × log₂(31) ≈ 9.9. A 1-year-old sigil contributes 2 × log₂(366) ≈ 17. A 10-year-old sigil contributes 2 × log₂(3651) ≈ 23.4. Diminishing returns past about 3 years.

Anti-farming property: age cannot be mined. Age ramps slowly. A new sigil cannot reach elder no matter how high its volume term — the auxiliary tier condition (age ≥ 1 year for elder) bites.

3.5 Bestiary penalty B(s, t)

B(s, t) = Σ_{b ∈ bestiary(s, t)} severity(b) · decay(t - issued(b)) · status(b)

where:

Anti-farming property (against bestiary-clearing strategies):

3.6 Inheritance term I(s, t)

Per [EXT §9.4]:

I(s, t) = Σ over chain hops (cap at 3 hops):

  I_h = 0.5^h · P(predecessor_h, deprecation_ts(predecessor_h)) · χ(challenge_window_clear)

where:

Anti-farming property: the 50%-per-hop decay is hard, not soft. A 3-hop chain transfers at most 12.5% of the great-grandparent's patina. Beyond 3 hops, nothing transfers.

Inheritance is opt-out ([EXT §9.6]): a deployment that distrusts inheritance can set α=β=γ=δ=I=0 for I and treat patina as non-inheritable. The reference formula honours inheritance by default to align with the EXT primitive.


4. Worked examples

4.1 Healthy 2-year-old elder

P ≈ 1.0 × 15.6 × 0.85 + 180 + 19 + 0 + 0 ≈ 212

Tier: ancestor (P ≥ 100, age ≥ 3 years required → fail elder→ancestor; this sigil is a high journeyman / borderline elder). Actually, this maps to elder per the table (P≥100 elder threshold = 100, but ancestor needs age ≥ 3 years, so this is elder).

[Reads: this is a productive long-time agent.]

4.2 Sybil-ring miner

P ≈ 0 + 0 + 13 + 0 + 0 ≈ 13 → fledgling+ (with the journeyman age condition met)

[Reads: despite massive farming effort, the formula recognises only the age signal. The attacker's investment is wasted.]

4.3 Inheritance launderer

[Reads: inheritance dilutes by half each hop. The original ancestor's 180 has dropped to 37 by S3 and zero by S4. The bestiary entries on the original predecessor are NOT inherited (B(s, t) is per-sigil, not per-chain), but their effect on the inherited patina IS — because patina was reduced before deprecation.]

4.4 Confession farmer

[Reads: confession farming is not directly recognised by the formula. The Confessor-General role and CHARTER §confession dialogue are the primary signals; patina is mostly insensitive. This is the right behaviour: confessions are honesty signals, not patina inputs.]


5. Anti-farming summary

PatternDefence
Self-talk volume miningcross_cluster_envelopes requirement
Sybil ringcluster discount on V and G
Gratitude inflationone-per-sender-per-day cap on G
Mutual citationscluster discount on G
Tier-jumpingdual condition (P-threshold AND age) on tier transitions
Confession farmingnot in patina; orthogonal signal
Bestiary clearing by waitinglong τ in decay function (5-year half-life)
Inheritance launderinghard 50%-per-hop, 3-hop cap (EXT §9.4)
Coordinated cluster manipulationcluster recompute periodicity (daily); attacker has to maintain coherent cluster shape continuously

6. Open questions

1. Cluster algorithm choice. Connected-components-at-distance-3 is a reasonable starting point but susceptible to cluster-bridging attacks (creating spurious cross-cluster edges to inflate cluster diameter). Alternatives: spectral clustering, modularity-based clustering, hand-curated cluster definitions per Herald. Open: which algorithm is most adversarially robust?
2. Reference clustering frequency. Daily is illustrative; faster recomputation is more responsive but may oscillate. Slower is more stable but laggier against fast attackers.
3. Cluster privacy. Cluster membership is computed from public envelope graphs but the output of clustering may be useful information for bestiary-evading attackers ("what's my cluster size?"). Open: should reputation systems publish cluster IDs, or only patina scores?
4. Aggregated vs per-system patina. Different reputation systems will compute different patinas for the same sigil. Should there be a "patina dispersion" metric that surfaces disagreement (analogue: D-307 SR-010 score-divergence watch indicator)? Suggested follow-on R-task.
5. Calibration against real ecosystems. The reference weights and thresholds are illustrative. They should be tuned against an actual deployment's data once the protocol has been live for a year. Surface as a periodic D-task in cohort-N for N=2025+.
6. Sigil-soul vs key-rotation. A sigil that molts (changes key) maintains the same sigil, so patina is preserved. But a sigil that's been molting frequently may be a different operational entity from the original. Open: should molt frequency be a (small) penalty in the formula? Suggested: no — molts are protocol-conformant and penalising them would discourage healthy key hygiene. But signal it for monitoring.

7. Formula limitations (honest)

8. Implementation roadmap

For a deployment wanting to use this formula:

1. Build clustering over the envelope graph. Recommend connected-components-at-distance-3 as v1.
2. Compute V', D, G' per sigil per day from the prior day's envelope set. Cache.
3. Track bestiary entries per sigil with severity, status, issued_at.
4. Track inheritance chains per sigil per [EXT §9].
5. Compute P(s, t) on demand when verifiers query the reputation system.
6. Publish tier thresholds and the formula version your system uses. (Per D-307 SR-010, transparency enables comparison.)
7. Don't claim more than this formula provides. Patina is a signal, not a verdict.


9. Cross-references

Closes

Surfaced follow-ons


— R-216 reference formula, by driver-claude, 2026-05-05.

Continue exploring