Quote verification

This proves the quote below is recorded by Citatio exactly as displayed and has not been altered since it was committed and anchored. It documents Citatio's crawl observation; it does not imply endorsement by the source platform. The quote links to the original review.

“Intuitive and easy”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
075bc281e4094974b8543e4fbbbde231acb54870f9fa62dcf982862b6ede319a
Signature (Ed25519, base64)
MuFnCleSaX0Len9QBjRQq4CHbKgZbZKaXz6x6lNP14UMqEAVUXX0PNivfalTFZidyamYYIMMuF6bSgXIl+YODQ==
Merkle root
249a627257bd2a9dbd9bc74ec65dce63e29c9ccd8f402432a46bbf1cfa12c86d
Merkle path
["075d86ab398ab1da3c82d01812c314b92cf37a33f2e60d3939bad5748da835d8","04f5ea31abcc163afb42ae5fecf92debe6f1c2f59723ee6db98bac1b0ba62412","683138470aaa99fbffe751f95d339f807ada40b2de225a0079a267f7b4c283d3","8eece7169c50df3049408c0e2c1e62ecec8a8309a2dfadad06688610437fc5ef","ff2cf1a943a03901c0af057f3b5d4f112d5fefc57d61128811c259485435bea7","084b85172e2798cf530aa691c1aa6c2cd887ce2b9cf89bbc75dfdcc63f2f2c1a","fb73a6aea9e41c2f7d00095c2bafde8fb98fb72f38dc79f516408a2dc5d524f5","e519102770ae70504dfe3de88e6a9f7dcc36fed74ebb99cc7c77463ec32fc590","71c9fbd5a06bcdd884b112067e48dd02e9361ea55a9ca9fbff7acf2b2c224615","2081369099f01193640d456ea432b9d187e33dc3549ceaba6b6bbd7768380568","727ae059abbe02eee013267a83677529c0c038561c22020d9913582d43a800fe","93da08a32a88984f43cb8cf77dc9f15f59275e83068c84de6557b04be928f845","eb7727f04a590b9f55c190f90839cbf73f485e828dfdac586db4b55a34076c29","c94857f058a09552518db3b6411014dc84d9bd9a71b10e488f83e40faa66dd70","98481510f61448eaf55101f28c348e05af213e498327b1646c7ec76c471de7a8"]
Anchored
2026-08-26
Public log entry
search.sigstore.dev, log index 2595205423 · entry 108e9186e8c5677a9f26…
Expected log hash
fbc678ced8e0822086692e4ab6d232b628f26b1a50cd2c52eadc2f6910e32e8a The log entry's spec.data.hash.value must equal this value: the SHA-256 of the Merkle root string above. Recompute it yourself from the root to confirm.
Canonical record
{"dataset_version":"v1787717877847","kind":"published-quote","locale":"en","page":"theme:proton/ordering/en","quote":"Intuitive and easy","rating":5,"review_date":"2026-08-12","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=ch.protonvpn.android","v":1}

Verify in the public log

  1. Open the Rekor entry (pre-filled with this proof's log index).
  2. In the entry, compare spec.data.hash.value with the "Expected log hash" above: it is the SHA-256 of the Merkle root string (249a627257bd…), which ties this proof's root to the log entry.
  3. Decode spec.signature.publicKey.content from base64: it must equal Citatio's published key at /.well-known/citatio-signing.json.
  4. The entry's integratedTime is the independent timestamp: the root, and with it this quote, existed no later than that moment.
  5. Locally, without any Citatio infrastructure: SHA-256 the canonical record (must equal the record hash), verify the Ed25519 signature against the public key, and fold the hash through the Merkle path (sorted-pair SHA-256) to reach the anchored root.