Don't trust, verify
summary
Built a Drupal-based issuer with custom PHP libraries that imports student lists from the LMS, generates JSON-LD certificate templates, issues unsigned JSON batches and appends a signature containing a Merkle proof, then anchors the Merkle root into Bitcoin via OP_RETURN. Transactions cost about $5 per batch, tested up to ~100 certificates, and a Drupal verification site normalizes the JSON, rehashes the Merkle path and checks the on-chain root. Private company key lives on a USB in a locked office, so issuance is still centralized.
AI-written summary · about
chapters (30)
- 0:00Dont trust verify
- 0:26Why we developed
- 1:59Certificate
- 5:01Standard PDF
- 5:58Fake certificates
- 7:40Digital solution
- 8:42Raw procedure
- 8:55How we ask
- 9:54Certificate schema
- 11:48Certificate data
- 12:18Certificate template
- 13:52Unassigned certificate
- 14:45Cache of certificates
- 18:37Create signature
- 19:30Transactions
- 19:54Verification
- 22:00Proof
- 22:25Python
- 23:03Comment line
- 23:14Docker
- 23:25Certificate Manager
- 24:38Security
- 29:06Certification
- 30:21Verification Site
- 33:57Tracking Expiration Date
- 35:28Verify Institution
- 36:13Record Transaction
- 36:51JSON File
- 40:50Simple Schema
- 41:26The tip
related talks
15mDemystifying Digital Signatures
55mMaking PQ Signatures work in the WebPKI
42mSecuring PHP APIs with Decentralised Identity Tokens
24mFrom Trust Assumptions To Trust Evidence: Why PKI and Confidential Computing
43mSelf Sovereign Identity
45mZero Knowledge; Meeting the Growing Demand for Security and Privacy
16mPKI problem: who we actually trust
30mCoping with post-quantum signatures in the WebPKI
