Basic Example Graph
A tiny five-participant graph that builds intuition for snapshot-relative diffusion (PageRank / PPR) and how claims reference it.
This page builds intuition for snapshot-relative diffusion (PageRank / PPR) and how it can be referenced by claims.
A tiny transaction graph
Consider five participants:
- producers:
P1,P2 - buyers:
B1,B2,B3
Model interactions as a directed graph, where an edge buyer → producer has weight equal to completed transaction value (after any quality/proof factors).
Personalized PageRank (PPR) intuition
In PPR, influence originates from a teleport distribution and diffuses through the graph. In Local Protocol, teleport is market-relative: for market marketId = m, influence originates from B1 and B2, a toy teleport distribution might be:
The diffusion fixed point is:
So nodes that are reachable via high-weight paths from the verified seed set accumulate more influence.
Offchain computation demo (NetworkX)
This is not a protocol algorithm; it’s just a quick way to visualize the fixed point on a small graph.
import networkx as nx
# Directed graph with edge weights (buyer -> producer)
G = nx.DiGraph()
G.add_edge("B1", "P1", weight=2.0)
G.add_edge("B2", "P2", weight=3.0)
G.add_edge("B3", "P2", weight=1.0)
# Teleport distribution (protocol-defined in production)
personalization = {"B1": 0.5, "B2": 0.5, "B3": 0.0, "P1": 0.0, "P2": 0.0}
# alpha here is the restart probability (teleport rate)
r = nx.pagerank(G, alpha=0.85, personalization=personalization, weight="weight")
print(r)
How this maps to the protocol
- Diffusion
is defined on a committed snapshot and a market-relative seed commitment: is a root-of-roots that binds per-market seed tables. - The protocol does not store
as a global vector. - Instead, diffusion enters the system through bounded, challengeable claims with transcripts and slashing.