Integralność

Zweryfikuj to archiwum samodzielnie.

Każdy plik dostarczany z tym archiwum ma opublikowany skrót SHA-256. Ta strona ponownie oblicza te skróty w Twojej przeglądarce — korzystając z Web Crypto API, które Twoja przeglądarka już udostępnia — i porównuje je z manifestem. Żaden punkt końcowy serwera kakao.io nie jest zaufany w tym łańcuchu. Jeśli cokolwiek zostało zmienione między repozytorium źródłowym a Twoim ekranem, kontrola kończy się widocznym niepowodzeniem.

Postawa zero zaufania — weryfikator to zwykły JavaScript osadzony na tej stronie. Możesz go odczytać za pomocą funkcji Pokaż źródło strony. Pobiera zbiór danych, oblicza skróty lokalnie, pobiera manifest i porównuje. Wynik jest obliczany na Twoim komputerze.

Sprawdź cacao-origins.json

Sprawdź wszystkie pliki źródłowe

Sprawdź konkretny rekord pochodzenia

Zweryfikuj skrót zbioru danych z wiersza poleceń

Jeśli wolisz w ogóle nie polegać na kodzie przeglądarki, tę samą kontrolę można w prosty sposób przeprowadzić za pomocą standardowych narzędzi 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"]'

Zweryfikuj dowody OpenTimestamps lokalnie

Każdy rekord pochodzenia jest również ostemplowany za pomocą OpenTimestamps — bezpłatnego protokołu znakowania czasem zakotwiczonego w Bitcoinie. Dowód włącza skrót SHA-256 rekordu do opublikowanego nagłówka bloku Bitcoin, dzięki czemu istnienie rekordu w czasie tego bloku jest kryptograficznie potwierdzalne bez konieczności zaufania nam ani żadnemu organowi znakowania czasem.

# 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

Jak to działa

SHA-256 jest obliczany w Twojej przeglądarce za pomocą window.crypto.subtle.digest — tej samej prymitywnej operacji używanej przez TLS i HTTPS, dostępnej w każdej nowoczesnej przeglądarce bez polyfilla. Manifest to mały plik JSON zawierający listę oczekiwanego skrótu dla każdego dostarczonego pliku. Dowody OpenTimestamps są przesyłane do publicznych serwerów kalendarzowych i agregowane w łańcuchu bloków Bitcoin — nie ma konta, nie ma opłaty, nie ma centralnego organu, któremu trzeba ufać. Wszystkie trzy powyższe kontrole to czyste obliczenia po stronie klienta.