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.

Approccio zero trust — il verificatore è semplice JavaScript incorporato in questa pagina. Puoi leggerlo con Visualizza sorgente. Recupera il dataset, ne calcola l'hash localmente, recupera il manifest e confronta. Il risultato è calcolato sulla tua macchina.

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.