S18 — Soul Vector Identity
Status: Spec-only
Phase: 8 (P8.1–P8.3)
Concept: ξ Identity
Source: projects/peer-to-peer/src/domain/identity.py
1. Overview
Every participant has a non-transferable Digital Identity consisting of:
- An Ed25519 keypair (cryptographic binding)
- A Soul Vector (8-dimensional competence profile)
- Experience Tokens (L0–L3, from λ)
- Sovereign Credits (liquid social capital)
- L3 Namespace aggregations (epistemic/moral/systemic)
2. Data Model
interface PeerIdentity {
public_key: string; // Ed25519 hex-encoded
alias: string;
joined_at: number; // Unix epoch
soul: SoulVector;
tokens: ExperienceToken[];
sovereign_credits: number; // default: 1000
scars: string[];
epistemic_mastery: Record<string, number>;
moral_standing: Record<string, number>;
systemic_integrity: Record<string, number>;
}
interface SoulVector {
domains: Record<SoulDomain, number>; // 0.0–100.0 each
traits: Record<SoulTrait, number>; // 0.0–1.0 each
action_history: SoulAction[]; // last 1000
consistency_score: number;
growth_velocity: number; // -1.0 to 1.0
domain_diversity: number; // 0.0–1.0
scars: string[];
achievements: string[];
}
enum SoulDomain { BUILDER, JUDGE, INVESTOR, MENTOR, GUARDIAN, INNOVATOR, DIPLOMAT, STEWARD }
enum SoulTrait { RELIABLE, GENEROUS, COURAGEOUS, PATIENT, PRECISE, ADAPTIVE, COLLABORATIVE }
3. Domain Growth Formula
new_strength = min(100, current + intensity × 10 × (1 / (1 + log(1 + current/10))))
Logarithmic growth prevents domain inflation.
4. Soul → Reputation Sync
Soul domain strengths are the source of truth for λ reputation scores:
execution_rep = soul.domains[BUILDER or INNOVATOR] × 1000
arbitration_rep = soul.domains[JUDGE] × 1000
commissioning_rep= soul.domains[INVESTOR] × 1000
social_rep = soul.domains[MENTOR or DIPLOMAT] × 1000
governance_rep = soul.domains[GUARDIAN or STEWARD] × 1000
5. Semantic Event Translation
Protocol events (taxonomy codes) are translated into soul actions at intake:
| Code | Event | Soul Action | Domain | Intensity |
|---|---|---|---|---|
| EVT-A03 | CommitmentCompleted | fulfilled_promise | BUILDER | 0.7 |
| EVT-A04 | CommitmentVerified | created_value | BUILDER | 0.8 |
| EVT-A05 | CommitmentFailed | failed_commitment + scar | BUILDER | -0.5 |
| EVT-B04 | DisputeResolved | resolved_dispute_fairly | JUDGE | 0.6 |
| EVT-F02 | VoteCast | participated_governance | STEWARD | 0.3 |
6. L3 Namespace Aggregation
L3 tokens aggregate into jurisdictional namespaces on PeerIdentity:
- Requires L2b (causal, context_diversity ≥ 2) — NOT from L2a
discriminator = "epistemic"→epistemic_mastery[kind] += weightdiscriminator = "moral"→moral_standing[kind] += weightdiscriminator = "systemic"→systemic_integrity[kind] += weight
7. Identity Recovery (Shamir SSS)
- On identity creation: split signing key into N=5 shares, threshold M=3
- On recovery: provide M shares → reconstruct key → restore full identity
- Soul Vector and tokens are preserved (stored separately, linked by public_key hash)
RecoverIdentityevent: +2000 bps SOCIAL reputation
8. Implementation Status
| Feature | Status | Phase |
|---|---|---|
| PeerIdentity schema | Spec-only | P8.1 |
| SoulVector (8 domains) | Spec-only | P8.1 |
| Behavioral traits (7) | Spec-only | P8.1 |
| Event→soul translator | Spec-only | P8.2 |
| Soul↔reputation sync | Spec-only | P8.2 |
| Shamir SSS recovery | Spec-only | P8.3 |
| L3 namespace aggregation | Spec-only | P8.3 |