Use Case: Verification Trust Model

Overview

This use case explains the fundamental trust relationships in the Plings ecosystem and demonstrates how verification authority works in practice. It clarifies who can verify what, why external clients cannot independently verify authenticity, and how the hardened key architecture creates a controlled verification network.

Business Value

  • Brand Control: Manufacturers maintain authority over their product authentication
  • Trust Infrastructure: Creates reliable ecosystem of verification authorities
  • Anti-Counterfeiting: Prevents unauthorized verification claims and forged results
  • Business Model: Enables Plings to provide valuable verification-as-a-service

User Stories

Primary Story

As a consumer, I want to understand who I’m trusting when I verify a product so that I can make informed decisions about authenticity claims.

Supporting Stories

  • As a developer, I want to understand verification limitations so that I integrate with the correct APIs
  • As a manufacturer, I want to control my brand verification so that I prevent unauthorized authentication claims
  • As an app user, I want to know verification sources so that I can trust the results

Actors

Primary Actors

  • Consumer/User: Person wanting to verify product authenticity
  • App Developer: Building applications that verify identifiers
  • Plings System: Master verification authority
  • Manufacturer: Brand verification authority for their products

Secondary Actors

  • Service Providers: Third-party verification services
  • Marketplace Platforms: E-commerce sites using verification
  • Retailers: Physical stores implementing verification

The Fundamental Verification Question

Critical Understanding: Who Can Verify What?

The Question: When I scan a Coca-Cola can with path 3.1255.C2.5847.90000, who can cryptographically prove this is genuine?

The Answer: Only Plings or Coca-Cola themselves - because verification requires private keys that only they possess.

Why External Clients Cannot Verify Independently

Hardened Key Architecture:

Path: 3.1255.C2.5847.90000
HD Derivation: m/44'/501'/1'/3'/1255'/2'/5847'/90000'
               └──────────────────────────────────────┘
                ALL HARDENED - requires private keys

What External Clients Lack:

  • Plings master private key
  • Coca-Cola manufacturer private key
  • Atlanta plant private key
  • Batch-level private keys

Therefore: Cannot derive or verify the cryptographic chain independently.


⚠️ CRITICAL: Private Key Operations and Trust Implications

Beyond Verification: The Private Key Authority Problem

While verification requires trusted authorities, the HD wallet architecture creates an additional trust dimension: private key operations that extend beyond simple verification.

Private Key Access Hierarchy

Master Key Authority (Plings)
├── Can derive ANY identifier's private key
├── Can perform operations on behalf of ANY object
└── Can delegate authority to manufacturers

Manufacturer Authority (e.g., Coca-Cola)
├── Can derive private keys for their objects only
├── Can perform operations on behalf of their objects
└── Can delegate to plants/facilities

Plant Authority (e.g., Atlanta Facility)
├── Can derive private keys for objects they produce
├── Authority intended for production period only
└── Retains technical ability post-sale (TRUST ISSUE)

Post-Sale Security Concerns

The Problem: Even after a consumer purchases an object, supply chain participants retain the technical ability to derive private keys and perform cryptographic operations.

Trust Violation Examples:

  1. Unauthorized Object Control:
    Consumer buys Coca-Cola bottle → 3 years later → 
    Atlanta plant uses private key to mark bottle as "expired" → 
    Consumer's bottle now appears invalid in apps
    
  2. False Data Attestation:
    Consumer owns IoT sensor → Manufacturer uses private key to sign false data → 
    Market manipulation or insurance fraud using "official" signatures
    
  3. Unwanted Autonomous Operations:
    Consumer's smart device → Manufacturer triggers autonomous payment → 
    Consumer charged for services they didn't authorize
    

Safe vs. Dangerous Private Key Operations

✅ Safe Operations (Maintain trust boundaries):

  • Payment Recovery: When PDA fails, recover stuck funds for redistribution
  • Warranty Claims: Manufacturer validates claims during warranty period
  • Supply Chain Verification: Pre-sale manufacturing proof and quality control

❌ Dangerous Operations (Violate trust boundaries):

  • Object Retirement: Marking objects as “destroyed” after sale
  • Ownership Transfer: Using private keys to “transfer” ownership
  • Autonomous Operations: Indefinite post-sale control over user devices

Trust Boundary Violations in Verification Context

Traditional Verification (Safe):

// Consumer asks: "Is this authentic?"
// Authority responds: "Yes, we verify it's genuine"
// Trust requirement: Consumer trusts verification authority

Private Key Operations (Potential violation):

// Authority declares: "This object is now retired"
// Consumer objects: "But I own it and it works fine!"
// Trust violation: Authority acts without owner consent

Mitigation Strategies

For Verification Systems:

  1. Clear Authority Disclosure: Show user who is performing verification
  2. Multiple Authority Support: Allow cross-verification between Plings and manufacturer
  3. Trust Transparency: Explain what authorities can and cannot do

For Private Key Operations:

  1. Temporal Limits: Restrict manufacturer authority to pre-sale and warranty periods
  2. Owner Consent: Require explicit permission for post-sale operations
  3. Trust-Aware Implementation: Only implement operations that respect ownership boundaries

Required Reading for Developers


Scenarios

Scenario 1: Designer Handbag Authentication

Setup: Sarah is considering purchasing a Louis Vuitton handbag on an online marketplace for $3,200.

Without Understanding Trust Model:

  • Sarah assumes her app can verify independently
  • Expects cryptographic proof without external dependencies
  • Doesn’t understand verification limitations
  • May trust unverified sources

With Understanding Trust Model:

  1. Recognition: Sarah understands verification requires trusted authorities
  2. Source Awareness: Knows her verification comes from Plings or Louis Vuitton
  3. App Flow:
    Sarah scans QR → App shows "Verifying with authorities..." 
    → Plings API validates → Returns "✅ Authentic Louis Vuitton"
    → Sarah understands she's trusting Plings verification
    
  4. Informed Decision: Purchases based on trusted authority verification
  5. Additional Verification: Could contact Louis Vuitton directly for confirmation

Scenario 2: Developer Building Verification App

Setup: Mike is building an app for a luxury consignment store and wants to verify designer items.

Initial Misunderstanding:

// What Mike initially thinks he can do:
function verifyAuthenticity(path, instanceKey) {
    // "I'll just verify this cryptographically myself"
    const isValid = cryptoVerify(path, instanceKey);
    return isValid; // ❌ This cannot work
}

Correct Implementation After Understanding Trust Model:

// What Mike actually implements:
async function verifyAuthenticity(path, instanceKey) {
    // Option 1: Use Plings verification API
    const plingsResult = await fetch('/api/plings/verify', {
        method: 'POST',
        body: JSON.stringify({ path, instanceKey })
    });
    
    // Option 2: Cross-check with manufacturer if available
    const manufacturerId = parseInt(path.split('.')[0]);
    const manufacturerAPI = getManufacturerAPI(manufacturerId);
    
    if (manufacturerAPI) {
        const mfgResult = await fetch(manufacturerAPI + '/verify', {
            method: 'POST',
            body: JSON.stringify({ path, instanceKey })
        });
        
        // Compare results for additional confidence
        return { 
            plings: plingsResult,
            manufacturer: mfgResult,
            trusted: true 
        };
    }
    
    return { plings: plingsResult, trusted: true };
}

Scenario 3: Manufacturer Decision on Verification Authority

Setup: Rolex is deciding whether to provide their own verification API alongside Plings.

Decision Process:

Option A: Plings-Only Verification

  • Pros: Single point of verification, consistent results
  • Cons: Dependency on Plings availability, less brand control

Option B: Dual Verification Authority

  • Pros: Brand control, backup verification, enhanced trust
  • Cons: More infrastructure, potential inconsistency

Rolex Decision: Dual Authority

Consumer verifies Rolex watch:
1. Primary: Plings API verification
2. Secondary: Rolex direct verification  
3. Cross-check: Both results match
4. Confidence: Maximum trust through dual confirmation

Scenario 4: Network Outage Reality Check

Setup: Emma is at a flea market trying to verify an item, but cellular service is poor.

Verification Limitations:

  1. No Independent Verification: Cannot verify cryptographically offline
  2. Basic Path Parsing: Can extract manufacturer ID from path
  3. Cached Results: May have previous verification in local storage
  4. Limited Confidence: Must defer full verification until connectivity

User Experience:

App Display:
⚠️ Limited Connectivity
📶 Cannot verify authenticity right now
🏷️ Path shows: Manufacturer appears to be "Apple"
💾 Cached: No previous verification for this item
⏳ Will verify when connection restored

Technical Implementation

Verification API Integration

Correct Client Implementation:

class VerificationService {
    constructor() {
        this.plingsAPI = 'https://api.plings.io';
        this.manufacturerAPIs = {
            3: 'https://verify.coca-cola.com',
            15: 'https://verify.rolex.com',
            8: 'https://verify.nike.com'
        };
    }
    
    async verifyIdentifier(path, instanceKey) {
        try {
            // Always start with Plings verification
            const plingsVerification = await this.verifyWithPlings(path, instanceKey);
            
            // Optionally cross-check with manufacturer
            const manufacturerId = parseInt(path.split('.')[0]);
            const manufacturerVerification = await this.verifyWithManufacturer(
                manufacturerId, path, instanceKey
            );
            
            return {
                verified: plingsVerification.verified,
                source: 'multi-authority',
                plings: plingsVerification,
                manufacturer: manufacturerVerification,
                confidence: this.calculateConfidence(plingsVerification, manufacturerVerification)
            };
        } catch (error) {
            return {
                verified: false,
                error: 'Verification service unavailable',
                recommendation: 'Try again later or contact manufacturer directly'
            };
        }
    }
    
    async verifyWithPlings(path, instanceKey) {
        const response = await fetch(`${this.plingsAPI}/verify`, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ path, instanceKey })
        });
        
        return response.json();
    }
    
    async verifyWithManufacturer(manufacturerId, path, instanceKey) {
        const manufacturerAPI = this.manufacturerAPIs[manufacturerId];
        if (!manufacturerAPI) {
            return { available: false, reason: 'No manufacturer API' };
        }
        
        try {
            const response = await fetch(`${manufacturerAPI}/verify`, {
                method: 'POST',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify({ path, instanceKey })
            });
            
            return { available: true, result: await response.json() };
        } catch (error) {
            return { available: false, reason: 'Manufacturer API unavailable' };
        }
    }
    
    calculateConfidence(plingsResult, manufacturerResult) {
        if (plingsResult.verified && manufacturerResult.available && manufacturerResult.result.verified) {
            return 'highest'; // Dual confirmation
        } else if (plingsResult.verified) {
            return 'high'; // Plings confirmed
        } else {
            return 'low'; // No confirmation
        }
    }
}

User Interface Guidelines

Verification Status Display:

┌─────────────────────────────┐
│   🔍 VERIFICATION STATUS    │
│                             │
│   ✅ Verified by Plings     │
│   ✅ Confirmed by Nike      │
│                             │
│   Confidence: Highest       │
│   Sources: 2 authorities    │
│                             │
│   Nike Air Jordan 1         │
│   Path: 8.1.15.2020.8934    │
│                             │
│   [View Details]            │
│   [Verification Sources]    │
└─────────────────────────────┘

Verification Sources Detail:

┌─────────────────────────────┐
│   VERIFICATION SOURCES      │
│                             │
│   🏢 Plings (Master)        │
│   • Authority: Ecosystem    │
│   • Verified: ✅ Yes        │
│   • Time: 2 seconds ago     │
│                             │
│   👟 Nike (Brand)           │
│   • Authority: Brand only   │
│   • Verified: ✅ Yes        │
│   • Time: 3 seconds ago     │
│                             │
│   Trust Level: Maximum      │
│   Recommendation: Proceed   │
└─────────────────────────────┘

Business Rules

Verification Authority Hierarchy

  1. Plings: Can verify any identifier in ecosystem
  2. Manufacturers: Can verify only their own products
  3. Service Providers: Must use authorized APIs
  4. External Clients: Cannot verify independently

Trust Relationships

  • Users trust Plings as neutral ecosystem authority
  • Users trust manufacturers for their own products
  • Cross-verification increases confidence
  • No verification from unauthorized sources

Error Handling

  • Network failures: Cache results, defer verification
  • API unavailability: Graceful degradation
  • Conflicting results: Flag for manual review
  • Unknown manufacturers: Basic path parsing only

Success Metrics

Developer Understanding

  • API integration success rate
  • Correct implementation patterns
  • Reduced support tickets about verification
  • Proper error handling implementation

User Trust

  • Verification source awareness
  • Confidence in results
  • Appropriate skepticism of unverified claims
  • Understanding of limitations

System Reliability

  • Verification API uptime
  • Cross-verification consistency
  • Response time performance
  • Error rate minimization

Implementation Guidelines

For App Developers

  1. Never attempt independent verification - use authorized APIs
  2. Always show verification sources to users
  3. Handle network failures gracefully with appropriate messaging
  4. Cache verification results for performance and offline scenarios
  5. Implement timeout and retry logic for API calls

For Manufacturers

  1. Decide on verification strategy - Plings-only or dual authority
  2. Maintain API consistency with Plings results if providing own API
  3. Secure private key management rigorously
  4. Consider verification as brand service to customers

For End Users

  1. Understand verification comes from trusted authorities
  2. Look for multiple verification sources when available
  3. Be aware of network dependencies for verification
  4. Report suspicious verification failures to appropriate authorities

Key Takeaway: Understanding the verification trust model is essential for anyone building applications or services that rely on Plings identifier verification. The hardened key architecture intentionally creates verification authorities to ensure brand control and prevent unauthorized authentication claims.