Integrità
Verifica tu stesso questo archivio.
Ogni file distribuito con questo archivio ha un hash SHA-256 pubblicato. Questa pagina ricalcola tali hash nel tuo browser — usando la Web Crypto API che il browser include già — e li confronta con il manifest. Nessun endpoint del server kakao.io è considerato attendibile nel processo. Se qualcosa è stato manomesso tra il repository sorgente e il tuo schermo, il controllo fallisce in modo visibile.
Verifica cacao-origins.json
Verifica tutti i file sorgente
Verifica un record di origine specifico
Verifica l'hash del dataset da riga di comando
Se preferisci non affidarti affatto al codice del browser, lo stesso controllo è banale con i comuni strumenti Unix.
# Verify the dataset hash matches:
curl -s https://kakao.io/data/cacao-origins.json | shasum -a 256
# Compare against the hash in:
curl -s https://kakao.io/.well-known/source-manifest.json \
| jq '.files["data/cacao-origins.json"]'
Verifica localmente le prove OpenTimestamps
Ogni record di origine è anche marcato temporalmente con OpenTimestamps — un protocollo di timestamping gratuito ancorato a Bitcoin. La prova incorpora lo SHA-256 del record nell'header di un blocco Bitcoin pubblicato, rendendo l'esistenza del record al timestamp di quel blocco attestabile crittograficamente senza dover dare fiducia a noi o ad alcuna autorità di timestamping.
# Install the OpenTimestamps client:
pip3 install opentimestamps-client
# Download an origin record and its proof:
curl -O https://kakao.io/data/ots/records/ve-chuao.json
curl -O https://kakao.io/data/ots/records/ve-chuao.json.ots
# Verify — folds the Bitcoin block hash into a verification chain:
ots verify ve-chuao.json.ots
Come funziona
Lo SHA-256 viene calcolato nel tuo browser tramite window.crypto.subtle.digest — la stessa primitiva utilizzata da TLS e HTTPS, disponibile in ogni browser moderno senza bisogno di polyfill. Il manifest è un piccolo file JSON che elenca l'hash atteso per ogni file distribuito. Le prove OpenTimestamps vengono inviate ai server calendario pubblici e aggregate nella blockchain di Bitcoin — non c'è account, né tariffa, né autorità centrale di cui fidarsi. Tutti e tre i controlli qui sopra sono pura computazione lato client.