Proof-of-Hashing
A Novel HMAC-Based Cryptographic Puzzle with Dual-Purpose Output
A new paradigm for computational proof-of-work systems that produces a cryptographic key that simultaneously demonstrates computational work and provides message authentication capability.
What is Proof-of-Hashing?
Proof-of-Hashing (PoH) extends traditional proof-of-work systems by leveraging HMAC with key variation instead of nonce iteration.
🔐 Dual-Purpose Output
Unlike traditional PoW systems where the nonce is discarded after verification, Proof-of-Hashing produces a cryptographic key that:
- Proves computational work was performed
- Can be reused to authenticate future messages
- Is cryptographically bound to the original challenge
⚡ Efficient & Scalable
The algorithm maintains comparable computational characteristics to traditional methods while offering enhanced functionality:
- Configurable difficulty levels
- Asynchronous solving for non-blocking operations
- Fast verification with O(1) complexity
🛡️ Security Properties
Built on proven cryptographic primitives with formal security guarantees:
- Pre-computation Resistance (Theorem 1): Keys cannot be pre-computed
- Message Binding (Theorem 2): Keys are cryptographically bound to challenges
- No Shortcuts (Theorem 3): No algorithm can find valid keys faster than expected
- Collision Resistance (Theorem 4): Finding multiple valid keys requires independent work
- Unpredictability (Theorem 5): Valid keys are unpredictable before computation
The Innovation
How Proof-of-Hashing differs from traditional proof-of-work systems
Traditional Proof-of-Work
In systems like Bitcoin or Hashcash, a nonce is varied until the hash meets the difficulty requirement:
SHA256(block_header || nonce) < target
// nonce is discarded after verification
Limitations:
- The nonce cannot authenticate the message
- The nonce cannot be reused for cryptographic purposes
- The computational effort produces a single-use proof
Proof-of-Hashing
Instead of varying a nonce, Proof-of-Hashing searches for an HMAC key:
HMAC-SHA256(key, message)[0:D] = 0^D
// key can be reused for authentication!
Advantages:
- The key demonstrates computational work
- The key can authenticate the message (HMAC)
- The key is cryptographically bound to the message
- The key can remain private (unlike public nonces)
Comparison
| Approach | Variable | Output | Reusable | Auth Capable |
|---|---|---|---|---|
| Hashcash | Nonce | Hash | No | No |
| Bitcoin PoW | Nonce | Hash | No | No |
| Scrypt PoW | Nonce | Hash | No | No |
| Proof-of-Hashing | Key | Key + Hash | Yes | Yes |
Academic Paper
The theoretical foundations, security analysis, and experimental results are documented in a formal academic paper.
Proof-of-Hashing: A Novel HMAC-Based Cryptographic Puzzle with Dual-Purpose Output
This paper introduces Proof-of-Hashing (PoH), a novel cryptographic puzzle mechanism that extends traditional proof-of-work systems by leveraging HMAC (Hash-based Message Authentication Code) with key variation instead of nonce iteration. Unlike conventional approaches where the computational effort produces only a validity proof, the proposed method yields a cryptographic key that can be subsequently reused for message authentication.
Authors
CHPL Research
Contact
francesco@chpl.it
Date
January 2026
Version
1.0.0
Keywords
Proof-of-Work, HMAC, Cryptographic Puzzles
Pages
20 pages
Paper Contents
- Abstract: Overview of the Proof-of-Hashing concept and contributions
- Introduction: Context and motivation for the research
- Related Work: Comprehensive review of existing PoW mechanisms (Hashcash, Bitcoin, Memory-Hard Functions, HMAC)
- Algorithm: Formal definition, pseudocode, computational complexity, and variants
- Security Analysis: Formal threat model, 5 security theorems with proofs, attack resistance analysis
- Implementation: Reference implementation in Node.js (synchronous and asynchronous)
- Experimental Results: Performance benchmarks on Apple M4 and Intel i9-12900K, statistical validation
- Applications: Bot protection, anti-spam, DDoS mitigation, blockchain consensus
- Discussion: Advantages, limitations, and future work
- Appendices: Formal definitions, probability analysis, reference implementation
Applications
Practical use cases for Proof-of-Hashing technology
🤖 Bot Protection
Protect web applications from automated attacks by requiring clients to solve cryptographic puzzles before accessing resources.
Available View CHPL System →
📧 Anti-Spam
Require email senders to solve puzzles, making mass mailing economically infeasible while remaining negligible for legitimate users.
🛡️ DDoS Mitigation
Use computational puzzles to rate-limit requests and prevent distributed denial-of-service attacks.
⛓️ Blockchain Consensus
Potential application in blockchain systems where the discovered key could serve dual purposes in consensus and authentication.
Technical Details
Algorithm specification and implementation
Problem Definition
Given a message M
and a difficulty parameter D,
find a key K such that:
HMAC-SHA256(K, M)[0:D] = 0^D
where [0:D]
denotes the first D
hexadecimal characters and 0^D
represents a string of D zeros.
Difficulty Levels
| Level | Leading Zeros | Avg. Attempts | Est. Time | Use Case |
|---|---|---|---|---|
| Low | 3 | 4,096 | ~50ms | High traffic sites |
| Medium | 4 | 65,536 | ~500ms | General purpose |
| High | 5 | 1,048,576 | ~5s | Sensitive operations |
| Very High | 6 | 16,777,216 | ~60s | Critical protection |