The "B-Side" Prototype: Deepfake-Proof Identity Verification
Note: This is the internal engineering MVP (Minimum Viable Product). It demonstrates the core Shared Memory Verification logic using a local Python server for embeddings, rather than the full production Firebase/ECIES infrastructure.
AI-generated deepfakes are making it impossible to trust digital identities. realxreal verifies identity through something AI can't fake: Shared Memories.
Instead of biometrics (which can be cloned), we ask: "What restaurant did we go to in Denver?" The AI compares the semantic meaning of the answers, allowing for natural variation ("The Italian spot" vs "Mario's Pasta") while rejecting impostors.
This demo consists of two parts that must run simultaneously:
- iOS Client (
realxreal-vibe-mvp):
- UI: UIKit (Programmatic).
- Pattern: MVVM-C (Coordinators).
- Data:
MockDataStore(In-memory, resets on launch). - Networking: Communicates with a local Python server.
- Verification Server (
realxreal-server):
- Framework: Python / Flask.
- AI Model:
sentence-transformers/all-MiniLM-L6-v2(HuggingFace). - Function: Handles semantic cosine similarity checks and manages "Live Challenge" state polling.
- Xcode 15+
- Python 3.9+
- CocoaPods (if applicable, though this demo appears to use embedded frameworks).
The iOS app needs this server running to verify answers.
cd realxreal-server
# Install dependencies
pip install flask sentence-transformers
# Run the server
python server.py
*You should see: Running on http://0.0.0.0:5001*
Open Services.swift in Xcode.
- If using iOS Simulator: Keep the URL as is:
private let pythonBaseURL = "http://127.0.0.1:5001"- If using a Physical Device:
Change
127.0.0.1to your computer's local IP address (e.g.,192.168.1.5).
Open realxreal-vibe-mvp.xcodeproj and run on your target.
Since this MVP uses a local mock database, here is how to simulate a full interaction:
- Login: Tap "Get Started" -> Sign up as User A (e.g., "Alice").
- Create Challenge: Tap
+-> Enter User B's details (e.g., "Bob"). - Set Question:
- Q: "Where did we meet?"
- A: "At the coffee shop" (This is hashed/embedded).
- Send: The app generates a deep link.
- Logout: Tap "Logout" (Top left).
- Login as User B: Sign in as "Bob".
- Simulate Link: (In a real app, you'd tap the link). In this MVP, the deep link handler logic in
AppCoordinatorsimulates receiving the challenge. - Answer: Bob types "The cafe downtown" (Semantic match!).
- Result: Success! Contact verified.
Used when you are on a suspicious call and need to verify someone instantly.
- Setup: Ensure Alice and Bob have "verified" each other via Scenario A (creates a Shared Memory link).
- Alice: Go to Bob's contact detail -> Type "Are you really on Zoom?" -> Tap Send Live Challenge.
- Alice's screen enters "Polling Mode" (spinner).
- Server: The Python server stores the challenge ID.
- Bob (Simulator 2 or Logout/Login):
- Bob receives the challenge (simulated via deep link or manual refresh in this MVP).
- Bob taps "Yes, it's me".
- Alice: Her screen automatically updates to "✅ Verified!" via long-polling.
.
├── realxreal-server/ # The Brains
│ └── server.py # Flask app + Vector Embeddings
├── realxreal-vibe-mvp/ # The Client
│ ├── App_Entry.swift # Entry point & Deep Link handling
│ ├── Coordinators.swift # Navigation Flow
│ ├── Services.swift # MockAPI + Calls to Python Server
│ ├── CactusEmbeddingManager # (Experimental) On-device inference
│ └── ViewControllers.swift # Programmatic UI
- MockDataStore: Data is not persistent. If you kill the app, users and contacts disappear.
- Python Dependency: The app will fail gracefully (fallback to exact string match) if
server.pyis not running, but semantic verification will be disabled. - Deep Links: The
SceneDelegatehandlesrealxreal://schemes to simulate incoming push notifications for the demo.
This MVP validates the UX and the Vector logic. The production roadmap (see main repo) moves:
- Python Server -> On-Device CoreML (Privacy preservation).
- MockDataStore -> Firebase Firestore.
- HTTP -> ECIES Encrypted Payloads.
Engineering: Trust-Worthy Repo: realxreal-demo-mvp