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

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

📥 Scarica PDF 📝 Vedi Sorgente LaTeX 🔗 Vedi Repository

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