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.

“it gets stuck at 35% and won't load any further”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
31cd7921a79966032251b4b38f1e4cdc712df8791aa04003ab7cb3a830e9bcc6
Signature (Ed25519, base64)
sUsBbsO6QaVh5tr7qanYTIbL+VpJwV2W+PIU3sD4l2ofam31ia04EFbIuhh0FAla9O14MSFuXYgc/vIOAxXmDw==
Merkle root
8e481f891fa4a8f9e77c0279ca152fab4383b65a50decc840d9fd7569bdfbaa3
Merkle path
["31d13236b925ecf21ded8e70ef117f64e4269e9a059ac107ff126a4025e04bd6","d9d2bb3e6317c965921ee178210eecc1fe35ad59f2260fa948c4ebb2065d9a05","db9645c74692d3b114b6810eba6a89b0d1cb34f7542cdbf1e38b4f9f495d720d","fbfca1ecc16132de35e381929ed60f2751c116a5ae5be95b52ae19f3b8605fad","4254d6a8d1c43128320693be899834e57ed3a74f358965d77c08d81cd399bd85","bf49a7fc9c1862ed3017dce5aec6129672376b4497796169e8e09d2c67c35a45","84340ada48f90deb3fb4a1b72ab1fa51b200bc7478bea05b454b77092cbb8213","712d1c505185946a6b9b9191e0e275f45d16a6b1ff18beb32e22c14dd25a6d4a","05332a25f4eb056a4158d21d82dfa11035dbb6da2aedd88a982e34c251b1a536","93a5bf30da5c3d7728a4ac8e2eb8aee052ce4c540659d9397dd679935c4e5eae","df585a3f11b338f1ce34579b95fa100361dc550eac6e7364ca145aaa87cd18b8","a7aabdc256e01976bf56aedd2750701f155d95355e126564b57f87590d7c57d7","f12c6d940ab3feb9a920f8708be9c7f52b5aa4637463f6ea0927f2330e210f4f","391099ea13ca712ab4d3c0ebed9ae37f021122ce33d031a4f3442fcba2038ec0"]
Anchored
2026-10-12
Public log entry
search.sigstore.dev, log index 3220367991 · entry 108e9186e8c5677a60ce…
Expected log hash
9a2b3ddad9c3b29dc171a15554fc81f3d4710c01a7565bd2f28b92e7b639f6dd 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":"v1791776812348","kind":"published-quote","locale":"en","page":"brand:surfshark","quote":"it gets stuck at 35% and won't load any further","rating":1,"review_date":"2026-09-02","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.surfshark.vpnclient.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 (8e481f891fa4…), 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.