2 stable releases
Uses new Rust 2024
| 1.3.3 | Jan 14, 2026 |
|---|
#1 in #spake2
48KB
918 lines
Deon Protocol v1.3.3
Repository: https://github.com/brzb0/Deon-Protocol
A secure, high-performance file transfer and offline value protocol in Rust.
Features
- Secure Authentication: SPAKE2 (Password-Authenticated Key Exchange) prevents MITM.
- Strong Encryption: XChaCha20-Poly1305 with 24-byte random nonces (Replay Protection).
- Offline Economy: Built-in support for token state management and offline transactions.
- Smart Handover: Auto-switch BLE -> Wi-Fi for large files.
- Resilience: Token bucket rate limiting, exponential backoff, and session resumption.
Architecture
1. Token State Management (Offline)
Deon maintains an offline ledger (economy::Ledger) to track "Who has how much". Transactions are signed (Ed25519) and verified locally without internet access.
2. Replay & Double-Spend Protection
- Transport Layer: XChaCha20-Poly1305 uses 24-byte random nonces to prevent replay of encrypted frames.
- Economic Layer: Transactions include a monotonic
noncechecked against the local ledger state to prevent double-spending.
3. Settlement Layer
When connectivity is restored, the SettlementLayer trait facilitates syncing offline transactions to a blockchain (e.g., Solana, Ethereum) for final validation.
Installation
From Crates.io:
cargo install deon_protocol
Add as dependency:
cargo add deon_protocol
Or build from source:
git clone https://github.com/brzb0/Deon-Protocol
cd Deon-Protocol/deon_protocol
cargo build --release
Usage
CLI
Receive Mode:
deon_protocol receive --port 8080 --password "123456"
Send Mode:
deon_protocol send --file "docs.pdf" --address "127.0.0.1:8080" --password "123456"
Library (Rust)
use deon_protocol::economy::{Transaction, Ledger};
// Offline Transaction
let mut ledger = Ledger::new();
// ... process transactions ...
Changelog
v1.3.3
- Fix: Moved Session Resumption Ticket creation to immediately after shared secret derivation (server-side).
v1.3.2
- Security: Replaced ChaCha20Poly1305 with XChaCha20Poly1305 (24-byte nonce) to eliminate nonce reuse risks.
- Protocol: Fixed Session ID desynchronization; implemented deterministic session ID derivation.
- Economy: Added
economymodule withTransaction,Ledger, andSettlementLayerstructures. - Docs: Added CONTRIBUTING.md and improved architecture documentation.
v1.3.1
- Initial release with SPAKE2 and basic file transfer.
Dependencies
~12–16MB
~273K SLoC