This is the FAQ for PulseProof Sentinel Protocol, abbreviated PPS.
PPS is experimental and not audited.
PulseProof Sentinel Protocol is an experimental authentication protocol that uses signed, time-bound, asymmetric proofs instead of shared-secret OTP codes.
A PPS authentication artifact is called a Pulse.
PPS can replace TOTP in many OTP-style flows, especially where stronger security or transaction binding is needed.
However, PPS is more complex than TOTP.
For very simple low-risk 2FA, TOTP may still be acceptable.
No.
PPS is not intended to replace WebAuthn/FIDO2.
WebAuthn is preferred for browser-based passkey authentication.
PPS is designed for operational gaps such as:
WebAuthn is excellent, but it is not always available or suitable.
PPS is useful when you need:
PPS can be strongly phishing-resistant when the full Pulse Token is transmitted through a bound channel, such as QR code, deep link, or authenticated API.
Manual Trust Code entry is weaker.
If only a short numeric Trust Code is typed, security depends heavily on rate limiting and code length.
No.
Short human-enterable codes have limited entropy.
Approximate entropy:
6 digits = about 19.9 bits
8 digits = about 26.6 bits
10 digits = about 33.2 bits
12 digits = about 39.9 bits
The full Pulse Token is strongly preferred.
Trust Code fallback should be protected by strict rate limiting.
PPS stores only public keys on the server.
A database breach does not reveal private keys or shared OTP secrets.
An attacker with only public keys cannot generate valid Pulses.
However, an attacker with write access may disrupt service or modify state, so server integrity remains important.
Yes.
PPS can generate Pulses offline.
Offline mode may omit the server nonce.
Offline security relies more on:
Online nonce-bound mode is preferred when possible.
AmountMark embeds a two-digit transaction checksum into the Trust Code.
Example:
Amount: 2,500,067 IRR
Trust Code: 49371867
The last two digits, 67, come from the amount.
This helps users detect transaction tampering.
A Honey-Pulse is a valid Pulse signed by a hidden duress key.
It indicates that the user may be under coercion.
The server returns an outwardly normal response but may internally restrict the account or trigger a silent alert.
PPS provides a mechanism for silent duress signaling.
It cannot guarantee user safety.
Duress flows must be designed carefully.
The server must not reveal duress detection to the attacker.
Threshold mode allows multiple devices to approve the same Pulse.
Example:
2-of-2: phone + watch
PPS version 1 uses n-of-m Ed25519 multisignature.
Future versions may define FROST or other threshold signature schemes.
No.
PPS version 1 threshold mode is multisignature:
multiple independent Ed25519 signatures
FROST is a true threshold signature scheme.
FROST may be added in a future PPS profile.
The mandatory profile uses Ed25519.
Ed25519 is not believed to be secure against large-scale quantum computers.
PPS defines algorithm identifiers to allow future post-quantum or hybrid profiles.
Yes.
PPS is designed to be technology-neutral.
You need:
Recommended libraries:
| Language | Libraries |
|---|---|
| PHP | ext-sodium, paragonie/sodium_compat, spomky-labs/cbor-php |
| JavaScript | @noble/ed25519, @noble/hashes, cbor-x |
| Python | cryptography, cbor2 |
| Go | crypto/ed25519, fxamacker/cbor |
| Rust | ed25519-dalek, ciborium |
PPS is currently an experimental individual Internet-Draft:
draft-hezami-pulseproof-sentinel
It is not yet an RFC.
Datatracker:
https://datatracker.ietf.org/doc/draft-hezami-pulseproof-sentinel/
No.
PPS is experimental.
It has not been independently audited.
Do not use it in production without proper review.
This project does not assert patentability.
Many underlying ideas have prior art, including:
PPS is a protocol profile combining known techniques.
Anyone considering patents should perform prior-art searches and obtain legal advice.
There may be existing products or projects using similar names.
This project is independent.
If naming conflicts become a problem, the protocol or project may be renamed in the future.
The protocol version was simplified to version 1 for the initial public specification.
The Internet-Draft revision is separate.
For example:
Protocol version: 1
Internet-Draft revision: 00
Protocol version appears inside the protocol fields:
version = 1
Internet-Draft revision appears in the draft name:
draft-hezami-pulseproof-sentinel-00
draft-hezami-pulseproof-sentinel-01
They are independent.
PPS may be suitable for transaction signing, but it is experimental.
For banking or crypto exchanges, use only after:
No.
PPS can be implemented in software.
However, secure hardware is strongly recommended for private key storage.
Examples:
No.
Biometrics are optional.
A policy may require biometric confirmation if supported by the authenticator.
You can contribute by:
See CONTRIBUTING.md.