RFC 9104: FNP - Fork Node Protocol (Core Specification)
1. OVERVIEW
FNP (Fork Node Protocol) combines LSEQ CRDT position encoding with ChaCha20-Poly1305 encryption for conflict-free collaborative document editing with end-to-end encryption.2. PROTOCOL MODEL
2.1 LSEQ Position System
Each character position uses fractional indexing:2.2 Position Comparison
3. ENCRYPTION LAYER
3.1 ChaCha20-Poly1305 (AEAD)
Each operation encrypted separately:3.2 Optional Order-Preserving Encryption (OPE)
For searchable encryption:4. DETERMINISTIC MERGE ALGORITHM
4.1 Three-Way Merge
4.2 ConflictResolution Strategy
5. OPERATION TYPES
5.1 InsertOperation
5.2 DeleteOperation
5.3 MergeOperation
6. STATE MANAGEMENT
6.1 Document State
6.2 Undo/Redo Stack
7. DETERMINISM GUARANTEES
7.1 Operation Ordering
Invariant: Same operations applied in any order produce identical result Proof:- Operations on different positions commute (independent)
- Operations on same position ordered by LSEQ comparison
- LSEQ comparison is total order (reflexive, transitive, asymmetric)
- Therefore: operations form partial order with unique topological sort
7.2 State Hash Determinism
8. CONFLICT DETECTION
8.1 Concurrent Edits
8.2 Merge Conflict Example
9. INTEROPERABILITY MATRIX
| Language | LSEQ | ChaCha20-Poly1305 | Merge | Status |
|---|---|---|---|---|
| Rust | ✅ | ✅ | ✅ | Ref impl |
| Go | ⚠️ | ✅ | ⚠️ | Planned |
| Python | ⚠️ | ✅ | ⚠️ | Planned |
| JavaScript | ⚠️ | ✅ | ⚠️ | Planned |
10. CONFORMANCE REQUIREMENTS
All FNP implementations MUST:- ✅ Support LSEQ position encoding
- ✅ Implement deterministic three-way merge
- ✅ Use Blake3 for state hashing
- ✅ Support ChaCha20-Poly1305 encryption
- ✅ Verify operations before accepting
- ✅ Maintain operation ordering invariants
- ✅ Produce identical state for same operations regardless of order
11. EXAMPLES
Example 1: Collaborative Document
12. SECURITY PROPERTIES
12.1 Confidentiality
ChaCha20-Poly1305 encrypts all operations; metadata only.12.2 Integrity
Poly1305 MAC ensures operations unmodified in transit.12.3 Forward Secrecy
With key rotation: old encrypted operations remain secure if key compromised.REFERENCES
- RFC 7539: ChaCha20 and Poly1305
- “LSEQ: an adaptive structure for sequences in distributed collaborative editing” (Nédelec et al., 2013)
- RFC 9102: VEST Core
END OF RFC 9104