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.

“Why does Proton VPN disconnect on its own on my device?”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
0d140e0c2d11f106755812ec80dcbddc72980da0f9145e0e24b6a4c141077c8a
Signature (Ed25519, base64)
HxYh/0MYgCX3CYYKO8n3vhMvZvQRrJKkbJeu9f0zf4/gJTDnsz02pLeTOiWo35pYxHOk7zSQxPV26oxh3Rf+AA==
Merkle root
0cb6814e51c7eb056a01f84349e58060bb6087dd0cf96aef0f27729d4d4fb276
Merkle path
["0d107a234e91cc36609031e38be1689bc98f7946ed7200556344e0d8810b4ba3","8c7034d3ea9d129e52a3b64c9c6d71dddfaa47da7b9c6770d25b7868abdcc0ad","6325f0e406c1d03f0ee67c326f746bf27e60dc4f9b27a9ec921680147ad5787a","25b8246c5005954300187e41efd36bd9c9d16dfd00ef712142a9cefdc1692cbe","5c547b569884a43377b7108d605089b85c725087c1ddb8fe786ef500f645f09b","e51864c3dc24dcdc6c5492fe9b00a9f0544dadb933f33edd61b7bbfcaf45b9fc","99f664f5f03722fdd93050bf6d0677480734726171b8c420a5f9dc713241ee7d","ffa8da93c157a570d2ba2b3117900059a3022a3623c1f62cee47f77eb99c3da7","89f6e7d6b76e4881116b36d62b22471321498f398182d42d8483c6a5855314ff","989940d4a4c7cd46a2c07fca68db228fb36bfdfeadee8cf49e7a5a6e7e5ab1e6","466a75483a9b08434ad5efa0daedf09d35415351009f0f7eaaedd9760cde6026","0e7b34ee57018ab949f6230ec302cfa9f723792d5fdbb493da70978b6389c9e3","be1dd0e45f7494393f0e1b32c70d3c985a66f040e38a68aca73948a6803cfeda","2518affc97ecf822332e259f6b71ff1d6b20920b0b5c6f8e1080f3c11eb6b936","af2962fc61736883c7077a83c82f90f0eaef6320643194fac99217c4f69a9d04"]
Anchored
2026-08-31
Public log entry
search.sigstore.dev, log index 2656977863 · entry 108e9186e8c5677ad8e2…
Expected log hash
50611b695debae6fb0a9929f4c3d2c8dd8c51d8e8342a15fa077624a80d81709 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":"v1788142253421","kind":"published-quote","locale":"en","page":"subtheme:proton/quality/vpn-speed-servers/en","quote":"Why does Proton VPN disconnect on its own on my device?","rating":1,"review_date":"2026-08-13","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 (0cb6814e51c7…), 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.