Extending PDF Data
Version 1.7 of the PDF Standard includes Appendix E, PDF Name Registry. This explains how the PDF data structures can be extended to support developer defined structures:
Private data may be added to PDF documents that enable conforming reader’s to change behaviour based on this data.
A conforming writer may also add keys to any PDF object that is implemented as a dictionary, except the file trailer dictionary
We can take advantage of this capability to add encryption algorithm identification, parameters, salts and other data to the PDF Dictionary data type. Thus we can add a ‘blockchain’ data structure to the document.
So what would the blockchain contain: hash values of evidence documents, assertion data for zero knowledge proofs, signatures of acceptance and verifiers of the data. The blockchain will verify that these are not altered by the document owner.
The Appendix also describes the expected behaviour of conforming readers when they encounter data structures they do not support. So although we will not require all readers to understand our data structures we must ensure the other PDF contents can still be read by normal readers. Our applications must of course be able to interpret the our data structures even if they do not provide for standard PDF reading capability.