Proof-of-Hashing
Un Nuovo Puzzle Crittografico Basato su HMAC con Output Dual-Purpose
Un nuovo paradigma per sistemi di proof-of-work computazionale che produce una chiave crittografica che dimostra simultaneamente il lavoro computazionale e fornisce capacità di autenticazione dei messaggi.
Cos'è Proof-of-Hashing?
Proof-of-Hashing (PoH) estende i sistemi tradizionali di proof-of-work utilizzando HMAC con variazione della chiave invece dell'iterazione del nonce.
🔐 Output Dual-Purpose
A differenza dei sistemi PoW tradizionali dove il nonce viene scartato dopo la verifica, Proof-of-Hashing produce una chiave crittografica che:
- Dimostra che è stato eseguito lavoro computazionale
- Può essere riutilizzata per autenticare messaggi futuri
- È crittograficamente vincolata alla challenge originale
⚡ Efficiente e Scalabile
L'algoritmo mantiene caratteristiche computazionali comparabili ai metodi tradizionali offrendo funzionalità migliorate:
- Livelli di difficoltà configurabili
- Risoluzione asincrona per operazioni non bloccanti
- Verifica rapida con complessità O(1)
🛡️ Proprietà di Sicurezza
Costruito su primitive crittografiche provate con garanzie di sicurezza formali:
- Resistenza alla Pre-computazione (Teorema 1): Le chiavi non possono essere pre-calcolate
- Binding del Messaggio (Teorema 2): Le chiavi sono crittograficamente vincolate alle challenge
- Nessuna Scorciatoia (Teorema 3): Nessun algoritmo può trovare chiavi valide più velocemente del previsto
- Resistenza alle Collisioni (Teorema 4): Trovare più chiavi valide richiede lavoro indipendente
- Imprevedibilità (Teorema 5): Le chiavi valide sono imprevedibili prima del calcolo
L'Innovazione
Come Proof-of-Hashing differisce dai sistemi tradizionali di proof-of-work
Proof-of-Work Tradizionale
Nei sistemi come Bitcoin o Hashcash, un nonce viene variato fino a quando l'hash soddisfa il requisito di difficoltà:
SHA256(block_header || nonce) < target
// nonce is discarded after verification
Limitazioni:
- Il nonce non può autenticare il messaggio
- Il nonce non può essere riutilizzato per scopi crittografici
- Lo sforzo computazionale produce una prova monouso
Proof-of-Hashing
Invece di variare un nonce, Proof-of-Hashing cerca una chiave HMAC:
HMAC-SHA256(key, message)[0:D] = 0^D
// key can be reused for authentication!
Vantaggi:
- La chiave dimostra lavoro computazionale
- La chiave può autenticare il messaggio (HMAC)
- La chiave è crittograficamente vincolata al messaggio
- La chiave può rimanere privata (a differenza dei nonce pubblici)
Confronto
| Approccio | Variabile | Output | Riutilizzabile | Capace di Autenticare |
|---|---|---|---|---|
| Hashcash | Nonce | Hash | No | No |
| Bitcoin PoW | Nonce | Hash | No | No |
| Scrypt PoW | Nonce | Hash | No | No |
| Proof-of-Hashing | Key | Key + Hash | Sì | Sì |
Paper Accademico
Le basi teoriche, l'analisi di sicurezza e i risultati sperimentali sono documentati in un paper accademico formale.
Proof-of-Hashing: A Novel HMAC-Based Cryptographic Puzzle with Dual-Purpose Output
Questo paper introduce Proof-of-Hashing (PoH), un meccanismo di puzzle crittografico innovativo che estende i sistemi tradizionali di proof-of-work utilizzando HMAC (Hash-based Message Authentication Code) con variazione della chiave invece dell'iterazione del nonce. A differenza degli approcci convenzionali dove lo sforzo computazionale produce solo una prova di validità, il metodo proposto produce una chiave crittografica che può essere successivamente riutilizzata per l'autenticazione dei messaggi.
Autori
CHPL Research
Contatto
francesco@chpl.mt
Data
January 2026
Versione
1.0.0
Parole Chiave
Proof-of-Work, HMAC, Cryptographic Puzzles
Pagine
20 pagine
Contenuti del Paper
- Abstract: Panoramica del concetto Proof-of-Hashing e contributi
- Introduction: Contesto e motivazione della ricerca
- Related Work: Revisione completa dei meccanismi PoW esistenti (Hashcash, Bitcoin, Memory-Hard Functions, HMAC)
- Algorithm: Definizione formale, pseudocodice, complessità computazionale e varianti
- Security Analysis: Modello di minaccia formale, 5 teoremi di sicurezza con dimostrazioni, analisi della resistenza agli attacchi
- Implementation: Implementazione di riferimento in Node.js (sincrona e asincrona)
- Experimental Results: Benchmark delle prestazioni su Apple M4 e Intel i9-12900K, validazione statistica
- Applications: Protezione bot, anti-spam, mitigazione DDoS, consenso blockchain
- Discussion: Vantaggi, limitazioni e lavoro futuro
- Appendices: Definizioni formali, analisi probabilistica, implementazione di riferimento
Applicazioni
Casi d'uso pratici per la tecnologia Proof-of-Hashing
🤖 Protezione Bot
Proteggi le applicazioni web da attacchi automatizzati richiedendo ai client di risolvere puzzle crittografici prima di accedere alle risorse.
Disponibile Vedi Sistema CHPL →
📧 Anti-Spam
Richiedi ai mittenti di email di risolvere puzzle, rendendo economicamente non fattibile l'invio massivo mentre rimane trascurabile per gli utenti legittimi.
🛡️ Mitigazione DDoS
Usa puzzle computazionali per limitare la frequenza delle richieste e prevenire attacchi di denial-of-service distribuiti.
⛓️ Consenso Blockchain
Possibile applicazione nei sistemi blockchain dove la chiave scoperta potrebbe servire scopi duali nel consenso e nell'autenticazione.
Dettagli Tecnici
Specifica dell'algoritmo e implementazione
Definizione del Problema
Dato un messaggio M e un parametro di difficoltà D, trova una chiave K tale che:
HMAC-SHA256(K, M)[0:D] = 0^D
dove [0:D] denota i primi D caratteri esadecimali e 0^D rappresenta una stringa di D zeri.
Livelli di Difficoltà
| Livello | Zeri Iniziali | Tentativi Medi | Tempo Stimato | Caso d'Uso |
|---|---|---|---|---|
| Basso | 3 | 4,096 | ~50ms | Siti ad alto traffico |
| Medio | 4 | 65,536 | ~500ms | Uso generale |
| Alto | 5 | 1,048,576 | ~5s | Operazioni sensibili |
| Molto Alto | 6 | 16,777,216 | ~60s | Protezione critica |