For the complete documentation index, see llms.txt. This page is also available as Markdown.

Trust Model

This table defines the trust assumptions and failure boundaries of RAVID. Each subsystem is anchored to a distinct trust primitive, with explicit conditions under which that assumption would fail.

Component
Trust Anchor
Failure Mode

Network Identity

X.509 Certificates

Requires CA compromise

Compute

BFT Consensus (80%)

Requires 80%+ collusion

Key Material

Shamir (2-of-3)

Requires 2+ share compromise

Economics

Ethereum

Requires 51% attack

Randomness

Blockhash

Requires miner collusion

Shamir Secret Sharing is a well-established cryptographic primitive. By defining a concrete reconstruction threshold, RAVID avoids reliance on implicit operator trust.

// SHAMIR SECRET SHARING (2-of-3)

// Problem: Store secret S so that:
//   - No single party holds complete secret
//   - k-of-n parties can reconstruct
//   - k-1 parties learn nothing

function splitSecret(secret, k=2, n=3):
    // Create random polynomial of degree k-1
    // f(x) = secret + a₁x + a₂x² + ... + a_(k-1)x^(k-1)

    coefficients = [secret]
    for i in range(1, k):
        coefficients.append(randomFieldElement())

    // Generate shares: points on the polynomial
    shares = []
    for i in range(1, n+1):
        y = evaluatePolynomial(coefficients, i)
        shares.append((i, y))

    return shares  // [(1, f(1)), (2, f(2)), (3, f(3))]

function reconstructSecret(shares):
    // Lagrange interpolation to find f(0) = secret
    secret = 0
    for (i, y_i) in shares:
        L_i = lagrangeBasis(shares, i, 0)  // Basis polynomial at x=0
        secret += y_i * L_i
    return secret mod p

// Visual: 2-of-3 example (a line)
//     y
//     │      •(3, f(3))
//     │    •(2, f(2))
//     │  •(1, f(1))
//   S─•────────────  ← Secret is y-intercept
//     └────────────x
//
// Any 2 points define the line → can find S
// 1 point alone → infinite lines possible → S unknown

Last updated