Pubki Work
| Feature | Traditional PKI (X.509) | Pubki | Blockchain PKI (e.g., Namecoin) | |---------|------------------------|-------|----------------------------------| | Trust model | Hierarchical CAs | Decentralized, gossip | Decentralized, consensus | | Removal | Revocation lists | Append-only (no delete) | Immutable | | Lookup speed | Fast (DNS+CRL/OCSP) | Moderate (Merkle proof) | Slow (block confirmations) | | Sybil resistance | Weak (any CA can issue) | None (relies on external trust) | Strong (proof-of-work/stake) | | Anonymity | Low (identities in certs) | Pseudonymous (user_id can be hash) | Pseudonymous |
Pubki (short for Public Key Infrastructure but with a decentralized twist) is an experimental, lightweight, non-blockchain public key directory. It allows anyone to publish their public keys and associated metadata in a globally readable, append-only log, without requiring a central Certificate Authority (CA).
Core idea: Replace hierarchical PKI (like TLS/SSL CAs) with a transparent, gossip-audited key registry.
Pubki is most famously associated with Adam Langley (of Google/Let's Encrypt/QUIC fame) and his "PKI with no name" — though the term "Pubki" appears in various academic and hobbyist implementations. pubki work
Using a single wildcard certificate (*.example.com) simplifies management but greatly increases the blast radius of a key compromise. Pubki work often involves balancing security against operational complexity.
In the real world, you trust a passport because you trust the government that issued it. PKI works on the same principle.
To solve the impersonation problem, the internet relies on Certificate Authorities (CAs). These are trusted organizations (like DigiCert, Let's Encrypt, or GlobalSign) that act as digital notaries. | Feature | Traditional PKI (X
When a website wants to prove it is legitimate, it doesn't just hand you a key. It hands you a Digital Certificate. This certificate says, "I am Google.com, and here is my public key." But critically, this certificate is stamped (digitally signed) by a CA.
Your computer comes pre-installed with a list of CAs it inherently trusts (the "Root Store"). When you visit a site:
No production-ready software exists. However, academic code (circa 2015-2018) can be run: Pubki (short for Public Key Infrastructure but with
git clone https://github.com/xxx/pubki-experimental
cd pubki-experimental
make
./pubki-server --listen :8080 --log-dir /var/pubki
./pubki-client put alice@example.com ./alice_pub.pem
./pubki-client get alice@example.com
Note: Most repos are unmaintained. Use for learning, not production.
# Pseudo-code for Pubki log entry verification class PubkiEntry: user_id: bytes key: bytes timestamp: int prev_sig: bytes # signature of previous entry's hash
def verify_chain(entries): prev_hash = b'\x00' * 32 for entry in entries: if not verify_sig(entry.prev_sig, prev_hash, entry.user_id): return False prev_hash = hash(entry) return True
Log node returns:
"user_id": "alice@example.com",
"key": "-----BEGIN PUBLIC KEY-----\n...",
"timestamp": 1700000000,
"prev_sig": "MEUCIQD...",
"merkle_proof": ["hash1", "hash2", ...]
Client verifies Merkle proof against a trusted root hash obtained from 3+ random gossip peers.






















