markovianprotocol.com/witness This is a C2SP transparency-log witness (https://c2sp.org/tlog-witness). It cosigns checkpoints of the logs listed below after verifying the log's signature against a pinned key and verifying that the new tree is a consistent, append-only extension of every checkpoint it has already cosigned for that log. Verifier key: markovianprotocol.com/witness+41b8827f+BJKLl8rBYM0oUxSaWh9rjTldTprEpYj/SWVIGgacA9XC What a cosignature from this witness attests: at the signed timestamp, this witness saw this checkpoint, the log's signature verified against the pinned key, and the tree was consistent with everything this witness previously cosigned for that log. It attests log consistency only. It says nothing about whether the log's contents are true. Refusal rules: unknown origin -> 404. Signature that does not verify against the pinned key -> 403. Stale 'old' size -> 409 (body carries our stored size). Inconsistent tree, a different root at a size we already cosigned, a size-0 checkpoint whose root is not the empty-tree root SHA-256(""), a root that is not the canonical base64 of its own bytes, or a tree smaller than one we already cosigned -> 422. State updates are atomic; this witness never cosigns two conflicting views of the same log. When a log offers a second root for a size we already cosigned, both signed notes are kept and published at /equivocations: refusing is what the protocol asks for, but the pair is the only evidence of it that outlives the request. Endpoints: POST https://witness.markovianprotocol.com/add-checkpoint GET https://witness.markovianprotocol.com/checkpoints GET https://witness.markovianprotocol.com/equivocations GET https://witness.markovianprotocol.com//history GET https://witness.markovianprotocol.com//checkpoint The same endpoints are reachable under https://markovianprotocol.com/witness/... Witness Network: this witness follows three witness-network.org log lists, refreshed hourly -- testing/log-list.1 and both staging lists (log-list-10qps-4klogs.1 and log-list-100qps-40klogs.1) from transparency-dev/witness-network. New logs on those lists are configured automatically; a log already configured is never removed or re-keyed from a list change. Configuring a log means this witness will accept and cosign checkpoints it pushes; it does not mean this witness polls it. How often a polled log is cosigned: the poller is scheduled every 15 minutes, but a cycle walks every log in turn and a large one takes longer than the gap, so the real interval is wider than the schedule and widest for the busiest logs. Measured over the 30 hours to 2026-09-17 on the fastest-growing log here (the Android google1p APK log, 29 cosignatures): 15 minutes at best, 38 median, 225 at worst. Do not take that from this page -- every cosignature is served with its timestamp at the /history endpoint below, so the interval for any log here is measurable rather than claimed. Logs this witness accepts, with pinned keys: android.transparency.goog/google1p/apk/2026/1+fc654374+ATr9NQE0gvOtVfj5cCStUzdlflEp3oZoNHD8pImzPj5O polled from https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/02/ key pinned from transparency-dev/witness-network lists/staging/log-list-10qps-4klogs.1; monitor from android/android-binary-transparency verifier README android.transparency.goog/mainline/modules/2026/1+1a8e4064+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI polled from https://www.gstatic.com/android/binary_transparency/mainline/2026/02/ key pinned from transparency-dev/witness-network lists/staging/log-list-10qps-4klogs.1; monitor from android/android-binary-transparency verifier README apertrue.photo/witness/production+03cfa386+AVHItNDu7TwYuYl5pxDxmCKbwaz+zwxcOBk+YRbn6fuD submits to us over the tlog-witness protocol arche2025h1.staging.ct.transparency.dev+ba2f06c0+AU0vHmlGCS/PdN8b2OaGmKprLI8HKM+dJ472xgFYh15f polled from https://storage.googleapis.com/static-ct-staging-arche2025h1-bucket/ key pinned from transparency-dev/witness-network lists/testing/log-list.1; monitor from gstatic all_logs_list v3 arche2025h2.staging.ct.transparency.dev+9fcb9171+AaSfJnU/wl/0HR4cTkeJgQ5lk26N43sChTQMeFV14VOj polled from https://storage.googleapis.com/static-ct-staging-arche2025h2-bucket/ key pinned from transparency-dev/witness-network lists/testing/log-list.1; monitor from gstatic all_logs_list v3 arche2026h1.staging.ct.transparency.dev+706e1366+AVK//LIrBodyJVW1ZUUDud5pN8iUm8+li//WcrInnF4D polled from https://storage.googleapis.com/static-ct-staging-arche2026h1-bucket/ key pinned from transparency-dev/witness-network lists/testing/log-list.1; monitor from gstatic all_logs_list v3 coachandhorses2026h1.staging.certificate.transparency.goog+3295e0b0+AY2+QOFlhz9eatgixbbGBrt5xgL3gmbYXxRaEGJ9fvm1 submits to us over the tlog-witness protocol coachandhorses2026h2.staging.certificate.transparency.goog+37fa92e9+Aa7pqTEYIhJ1Y8DKUA9Ql+vHM3jwSgqQg57LzXNRcDtA submits to us over the tlog-witness protocol coachandhorses2027h1.staging.certificate.transparency.goog+e0aaadf5+AU4J5dVe/5rDp3pslxcB6dQCo9SOcFskvSVKREYTpGj8 submits to us over the tlog-witness protocol coachandhorses2027h2.staging.certificate.transparency.goog+ccc1c2f8+AeYGXB5TSNt8MslhSaA9KKe88VoLtdh2a3til3ww2dGL submits to us over the tlog-witness protocol edge.bluefox.ai/transparency/reliance/v1+dde62350+ATjbXC50KK3XMDTkI4H79Q+TshwWsnwhJ3wDuw3ZvFzO submits to us over the tlog-witness protocol fulcrumlayer.io/witnessed-log/v1/m5CJYf0Ts4ywjJXeFPtlukIvrl3NqTahAdzKZ4cSkvI+22c43aca+AbFl8/zTg5IVBAyHqDASCJyHL5nAiagBMs6SZ1rNW3Lo submits to us over the tlog-witness protocol gblin.digital/receipts-log+00c6e18c+AY8/YnCHXTnsECT2EGv0M5RTqlVvFobctLv3WSihYkoG submits to us over the tlog-witness protocol keys.enigm.dev/v1+06c61fb2+AcBPl120wgVJe9QWPfa8Pazv3kG99wFcZvr316Msrab6 submits to us over the tlog-witness protocol keyserver.geomys.org+16b31509+ARLJ+pmTj78HzTeBj04V+LVfB+GFAQyrg54CRIju7Nn8 polled from https://keyserver.geomys.org/tlog/ key pinned from transparency-dev/witness-network lists/testing/log-list.1 log.frem.sh+4e9c5de6+AcfzmSNWSmxIklo06ELrJzqR8VNCsdV3Sz9pFqL+5lH+ polled from https://log.frem.sh/ key pinned from transparency-dev/witness-network lists/staging/log-list-10qps-4klogs.1; pinned manually 2026-09-16 log.traceseal.io+bcbcecc8+AR4pimAaGABPMPkqgxneIOqI7qSXBGtEJnXFr1Wevm1B polled from https://log.traceseal.io/ key pinned from https://log.traceseal.io/ (operator's own page) log2025-1.rekor.sigstore.dev+cf119915+AbfK5adZJxsI323FwGD2AJJ9F4i89cfDuLdGJBIYntuO submits to us over the tlog-witness protocol log2025-alpha3.rekor.sigstage.dev+d3d3a70c+AZQ93VXPMmj9uZj7U/7CefQ9yy8RgYFv6mKzOseipjqp polled from https://log2025-alpha3.rekor.sigstage.dev/ key pinned from transparency-dev/witness-network lists/testing/log-list.1 log2026-1.us-east4.rekor.sigstage.dev+3a727147+AbgD80fRkVDJLei3IO3XKcuwuGLPvoMUNhRUz1QVIRnz submits to us over the tlog-witness protocol markovianprotocol.com/log+0302c6c8+ATkpOWo95UuEiW2EhNZAol4f0CS8hMluJfPcTSzrr03v our own log. DEMO: self-witnessing has no independence value; this cosignature is excluded from the independent-witness count the log publishes. notbefore.net/log+8b627e7f+AfPQekreiy4JUcf8TEcJs4Mj00EHL7JvHUSSLXeyZVLs polled from https://notbefore.net/ key pinned from transparency-dev/witness-network lists/staging/log-list-10qps-4klogs.1; pinned manually 2026-09-16 nous-lang.org/envelope/5fe20ff38bf251d0d1d21865cced8d9e60cb808546dc27d608bee9c88701d4ff+0d1ddb5d+AYWf42KPdJuChdrjpOVssCNl82NNcT7LsOkdMAgcT/xz submits to us over the tlog-witness protocol parcelyard2026h2.prod.certificate.transparency.goog+f4630bfe+AWouhTkWdiXEtTKSFnEEhHDPEbXcbqlU9jBHy0WRUmuu submits to us over the tlog-witness protocol parcelyard2027h1.prod.certificate.transparency.goog+4e1a7d41+AWEIHJCHYZujgUTOSAGS2v4kV1k8VbFJ2J81M7TS9rEB submits to us over the tlog-witness protocol parcelyard2027h2.prod.certificate.transparency.goog+9cf6be9f+Ae7FBxZ9jT49G7JOWEbVokl2DYCFmrupN+NyZX/0rhHS submits to us over the tlog-witness protocol plumbersarms2026h2.prod.certificate.transparency.goog+6c1aa0ce+ASYjyZkW6msIfpIZ3qK7n07ShttUNpbw4EbaKCtHwIS2 submits to us over the tlog-witness protocol plumbersarms2027h1.prod.certificate.transparency.goog+ecc62866+AYye1MubK7uroero+2RwN6M+I0KQ4f3fRRtF3Qo6ZlsI submits to us over the tlog-witness protocol plumbersarms2027h2.prod.certificate.transparency.goog+dcbf16c3+AVTRjsgf05nepf0R0D7B8i03lNChQFwmZW6toYsSmrxr submits to us over the tlog-witness protocol sigsum.org/v1/tree/1643169b32bef33a3f54f8a353b87c475d19b6223cbb106390d10a29978e1cba+57f71a6a+AUfkgWBtisunR6awU9bC0ZFgX7EiF11BChICqRQwq845 polled from https://serviceberry.tlog.stagemole.eu/ key pinned from https://serviceberry.tlog.stagemole.eu/about sigsum.org/v1/tree/4e89cc51651f0d95f3c6127c15e1a42e3ddf7046c5b17b752689c402e773bb4d+778629b1+AUZEryq9QPSJWgA7yjUPnVkSqzAaScd/E+W22QXCCl/m polled from https://test.sigsum.org/barreleye/ key pinned from transparency-dev/witness-network lists/testing/log-list.1; instance doc git.glasklar.is sigsum-logs barreleye.md sigsum.org/v1/tree/e93cb678c04cc52e4da380c4b19cfa14062032a722da254c65cbd95e7e76321d+c6279f6d+Ae3din1x8uLDUC6N8XgsRfxj5BmBw23kv3Aq2y6nVHHd polled from https://driftwood.tlog.devmole.eu/ key pinned from https://driftwood.tlog.devmole.eu/about thelemail.com/keys+76ead63c+ASduViYkPgYHzuTuDnuTdEkjR/DIprnavuFA3vom4YZT submits to us over the tlog-witness protocol vindex.gopherwatch.org+af4f4f3a+AYlEp21ErzmKZa+aqhjC8BQteyEtsVwmLzblkzHxn8et polled from https://vindex.gopherwatch.org/outputlog/ key pinned from https://vindex.gopherwatch.org/ and transparency-dev/witness-network lists/testing/log-list.1 whisper.online/ledger+8a3a5df0+AackwSi920iTu5AW3cOBaibI0RFtt4zT9Ox8mygciGm4 submits to us over the tlog-witness protocol whisper.online/ledger/g2+d40e573a+Ae6UmGCJyl5tkzI8AKhLKCqJ/3dxPEg6t+FdVVK4EwJt submits to us over the tlog-witness protocol Rollback protection: Once an hour this witness publishes (origin, size, root) for every log it has cosigned as a signed leaf in markovianprotocol.com/log, whose checkpoints are cosigned by seven independent witnesses and anchored in Bitcoin. On startup it reads the newest such leaf back, proves it into a checkpoint that meets that quorum, and takes the higher of published and stored for each origin. Recovery only ever raises a mark, so restoring an older witness.db cannot lower one. An empty database is refused rather than trusted on first use. A published root that contradicts stored state at the same size holds that origin at 503 for an operator to resolve. Because the marks are hourly, recovery from them alone would reopen up to an hour of advance. So recovery also asks each log it can poll for its own current checkpoint, and raises the mark to that tree only if the checkpoint verifies under the pinned key and the log proves the mark consistent with it. That is safe in the same one direction: a mark is a floor, it is stored with no cosignature attached, and a log that overstates its own size here can only make this witness refuse that log until it serves the tree it signed for. Logs that only push to us cannot be asked, and keep the hourly bound. An origin already held for self-contradiction is never raised. State of that check: confirmed (re-checked hourly; last 2026-09-21T02:58:49Z) leaf 8524, published 2026-09-21T02:20:01Z, checkpoint size 8525; 19 origins at or above the mark Contact: hello@markovianprotocol.com