---
# System prepended metadata

title: Trust Metrics – Internal Notes

---

---
robots: noindex, nofollow
---

# Trust Metrics – Internal Notes

## Purpose

This document captures key notes, lessons, and reflections on trust metrics in online systems — especially small, intentional, pseudonymous communities. It pulls from historical examples (e.g., Advogato, PGP), newer thinking (e.g., Progressive Trust, XIDs), and practical questions for implementation. Not intended as a musing draft or a spec, but possibly inspiring one.

---

## 🧩 Key Motivations

- Trust metrics are *not* about central authority but about **computationally modeling subjective trust** in ways that:
  - Scale across communities
  - Respect privacy (including pseudonymity)
  - Resist sybil attacks
  - Reflect gradual, contextual trust-building

- **XIDs** (Extensible Identifiers) and **Gordian Envelopes** provide new tools for encoding, disclosing, and verifying trust data without needing real-world identities.

- Central question: Can we build **reputation and role escalation** in a system where users are pseudonymous and trust is progressive?

---

## 🧱 Foundational Ideas

### What is a Trust Metric?
A trust metric is an algorithm that computes trustworthiness scores from a web of trust-like data:
- Edges (endorsements, attestations, observations)
- Edge weights (strength, confidence, recency)
- Topological constraints (max hops, decay functions, exclusion rules)

**Types:**
- Global (everyone shares same view; e.g., Advogato, PageRank)
- Local/subjective (trust from one person’s POV; e.g., MoleTrust, TidalTrust)

---

## 🧭 Lessons from Past Systems

### PGP Web of Trust (Flaw: Binary Trust)
- Users signed each other's public keys.
- Transitive trust was binary: you either fully trusted someone as an introducer or not.
- Problem: too coarse. Easy to over-extend trust or create false assurance.
- Key learning: **transitivity needs to be *limited* and *graded***.

### Advogato (Flow-Based Trust Metric)
- Used max-flow from trusted seed nodes to determine who was certified at each level (Observer, Apprentice, etc.)
- Based on reputation propagation from a trusted core using a **capacity-constrained graph**.
- Protected against sybil spam reasonably well.
- Failed socially: couldn’t handle disagreements or misuse (e.g., “cranks” endorsed as Masters).
- **No downvoting** or penalties for careless endorsements.

🔗 Archive: https://web.archive.org/web/20120516004623/http://www.advogato.org/trust-metric.html  
🧵 Postmortem: https://web.archive.org/web/20170628190710/http://www.advogato.org/article/928.html

### MoleTrust & TidalTrust (Jennifer Golbeck)
- Developed for social rating and recommender systems (Epinions).
- Built trust scores from your local social graph.
- Introduced **trust horizon** (depth limit) and **trust decay** over distance.
- Trust is personal: *my* score for *you* depends on how far you are in *my* network.
- Great model for small, subjective systems.

🔗 https://drum.lib.umd.edu/handle/1903/3293

### BrightID
- Modern sybil resistance network
- Connects real humans in a trust graph to prove uniqueness.
- Trust isn’t about character but about **not being a fake**.
- Relevance: strong example of transitive trust with attack resistance.

🔗 https://www.brightid.org

---

## 🧠 What Went Wrong or Missing?

- **No contextual trust**: Early systems had only one trust score for all use cases.
- **No progressive model**: Binary “you’re in or out” failed to mirror real trust growth.
- **No support for pseudonymity**: Trust was linked to real identity or persistent profiles without privacy layers.
- **No selective disclosure**: Couldn’t prove just enough trust for a situation.

---

## ⚙️ Modern Approaches & Concepts

### Progressive Trust (Blockchain Commons)
- A ten-phase trust life cycle: from initial introduction to escalation/dispute.
- Maps directly onto real-world interactions.
- Trust grows over time, optionally across multiple contexts.
- Supports **selective disclosure**: only reveal what’s appropriate for the interaction stage.

🔗 overview https://www.blockchaincommons.com/musings/musings-progressive-trust/  
🔗 more detai: https://developer.blockchaincommons.com/progressive-trust/

### XIDs + Gordian Envelope
- Pseudonymous identity (32-byte public key–based ID)
- Envelopes store credentials, endorsements, interactions
- Supports cryptographic **elision** and selective proof
- Trust can be **expressed, aggregated, verified, and revealed** as needed

🔗 https://github.com/BlockchainCommons/XID-Quickstart

---

## 🧪 Implementation Notes / Ideas

### Trust Input Sources
- Endorsements from trusted users (weighted?)
- Self-attestations with verifiable proofs
- Participation artifacts (e.g., signed proposals, commits)
- Community feedback (e.g., moderation, review)

### Metrics We Might Use
- **Endorsement Count**
- **Max-flow from known good XIDs**
- **Reputation composite**
- **Local personalized trust**

### Design Constraints
- Privacy-preserving (no need to deanonymize)
- Verifiable (must be cryptographically provable)
- Transitive but capped (no infinite chains)
- Transparent but selectively disclosable

### CLI Prototypes (Sketches)

```sh
# From CLI tools:
xid trust list --xid ur:xid/abc...
xid trust score --xid ur:xid/abc... --from ur:xid/seed... --depth 2

# Sample envelope assertion
envelope assertion add pred-obj string "trustScore" string "0.87" <ENVELOPE>
````

### Elision Example

* You may choose to reveal: “I’m trusted by two Masters in domain X”
* But *not* reveal: who exactly they are, or trust in other contexts

---

## 🤔 Open Questions

* How do we incorporate **negative feedback** (or retract trust)?
* Can we derive a trust decay model that works offline?
* Should trust be domain-specific by default? (e.g., code review ≠ treasury signing)
* What does a **healthy trust graph** look like? Any metrics? Visualization?

---

## 🧰 Future Directions

* Merge with VC-based approaches (e.g., issue credentials for trust levels)
* Build visualization tools for endorsement graphs
* Support community-configurable thresholds and trust roots
* Run multiple trust metrics in parallel and compare behavior

---

## 🧷 References & Anchors

* **Advogato Trust Metric**
  [https://web.archive.org/web/20120516004623/http://www.advogato.org/trust-metric.html](https://web.archive.org/web/20120516004623/http://www.advogato.org/trust-metric.html)
* **Advogato Fail Discussion**
  [https://web.archive.org/web/20170628190710/http://www.advogato.org/article/928.html](https://web.archive.org/web/20170628190710/http://www.advogato.org/article/928.html)
* **MoleTrust / Golbeck Dissertation**
  [https://drum.lib.umd.edu/handle/1903/3293](https://drum.lib.umd.edu/handle/1903/3293)
* **BrightID**
  [https://www.brightid.org](https://www.brightid.org)
* **Progressive Trust**
  [https://www.blockchaincommons.com/musings/musings-progressive-trust/](https://www.blockchaincommons.com/musings/musings-progressive-trust/)
* **XID Concepts**
  [https://github.com/BlockchainCommons/XID-Quickstart](https://github.com/BlockchainCommons/XID-Quickstart)

---

## ✅ Possible Next Steps

* Prototype minimal trust scoring with endorsements + CLI
* Define 2–3 “context” trust types (e.g., onboarding, governance, review)
* Survey existing endorsement graphs (e.g., in a Git-based project)
* Bring in community voices: what would *they* trust?

---
