Цілісність

Перевірте цей архів самостійно.

Кожен файл, що постачається з цим архівом, має опублікований хеш SHA-256. Ця сторінка перераховує ці хеші у вашому браузері — використовуючи Web Crypto API, який уже постачається з вашим браузером, — і порівнює їх із маніфестом. Жодна кінцева точка сервера kakao.io не задіяна як довірена у цьому ланцюзі. Якщо щось було підроблено між вихідним репозиторієм і вашим екраном, перевірка явно зазнає невдачі.

Підхід нульової довіри — верифікатор являє собою звичайний JavaScript, вбудований у цю сторінку. Ви можете прочитати його через «Переглянути джерело». Він завантажує набір даних, обчислює хеш локально, отримує маніфест і порівнює. Результат обчислюється на вашій машині.

Перевірити cacao-origins.json

Перевірити всі вихідні файли

Перевірити конкретний запис походження

Перевірте хеш набору даних з командного рядка

Якщо ви взагалі не хочете покладатися на код у браузері, ту саму перевірку легко виконати стандартними інструментами 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"]'

Перевірте докази OpenTimestamps локально

Кожен запис походження також штампується за допомогою OpenTimestamps — безкоштовного протоколу часових міток, прив'язаного до Bitcoin. Доказ згортає SHA-256 запису у заголовок опублікованого блоку Bitcoin, тож існування запису на момент часової мітки цього блоку є криптографічно засвідчуваним без довіри до нас чи будь-якого органу часових міток.

# 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

Як це працює

SHA-256 обчислюється у вашому браузері через window.crypto.subtle.digest — той самий примітив, який використовують TLS і HTTPS, доступний у кожному сучасному браузері без polyfill. Маніфест — це невеликий JSON-файл, що містить очікуваний хеш для кожного поставленого файлу. Докази OpenTimestamps надсилаються на публічні календарні сервери та агрегуються у блокчейн Bitcoin — немає ані облікового запису, ані комісії, ані центрального органу, якому потрібно довіряти. Усі три зазначені перевірки є чистим клієнтським обчисленням.