First functional commit!

This commit is contained in:
Your Name
2025-09-17 15:47:17 -04:00
parent f86e0ce7dd
commit 1b28f78f44
11 changed files with 17787 additions and 33 deletions

View File

@@ -14,7 +14,7 @@ User creates and signs their normal Nostr event:
"pubkey": "user_pubkey",
"content": "Message content",
"tags": [],
"created_at": 1703000000,
"created_at": 1702222200,
"id": "event_id",
"sig": "user_signature"
}
@@ -30,7 +30,7 @@ User creates routing instructions:
"wss://target-relay3.com"
],
"delay": 30,
"pad": "+150",
"padding": "+150",
"p": "superball_b_pubkey", // Next superball (optional - if missing, final posting)
"audit": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456", // Audit pubkey (always required)
"payment": "eCash_token_here" // Optional payment for processing
@@ -41,7 +41,7 @@ User creates routing instructions:
User creates a routing event with NIP-44 encryption:
```json
{
"kind": 30000, // Superball routing event
"kind": 22222, // Superball routing event
"pubkey": "ephemeral_key",
"content": "<nip44_encrypted_payload>",
"tags": [
@@ -61,14 +61,14 @@ The encrypted payload contains:
"pubkey": "user_pubkey",
"content": "Message content",
"tags": [],
"created_at": 1703000000,
"created_at": 1702222200,
"id": "event_id",
"sig": "user_signature"
},
"routing": {
"relays": ["wss://target-relay1.com", "wss://target-relay2.com"],
"delay": 30,
"pad": "+150",
"padding": "+150",
"p": "next_superball_pubkey", // Optional - if missing, final posting
"audit": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456", // Required audit pubkey
"payment": "eCash_token" // Optional payment
@@ -78,7 +78,7 @@ The encrypted payload contains:
## Superball Processing
1. **Receive**: Monitor for kind 30000 events with p tag = own pubkey
1. **Receive**: Monitor for kind 22222 events with p tag = own pubkey
2. **Decrypt**: Use NIP-44 to decrypt the content
3. **Parse**: Extract the event and routing instructions
4. **Apply Padding**: Modify padding according to instructions
@@ -96,10 +96,10 @@ Superballs **ALWAYS** create a new routing wrapper to prevent analysis of paddin
- **Metadata mixing**: Padding levels change unpredictably at each hop
### Routing Event Structure
Every forward creates a new kind 30000 event:
Every forward creates a new kind 22222 event:
```json
{
"kind": 30000,
"kind": 22222,
"pubkey": "<fresh_ephemeral_key>",
"content": "<newly_encrypted_payload>",
"tags": [
@@ -133,14 +133,14 @@ The audit mechanism allows users to detect malicious Superballs that drop events
{
"relays": ["wss://relay2.com"],
"delay": 45,
"pad": "+200",
"padding": "+200",
"p": "sball_b_real_pubkey",
"audit": "a1b2c3...fake_pubkey_for_audit"
}
// Superball A should post this after 45s with +200 bytes:
{
"kind": 30000,
"kind": 22222,
"tags": [
["p", "sball_b_real_pubkey"], // Real next hop
["p", "a1b2c3...fake_pubkey"], // Audit tag (looks identical)