Целостность
Проверьте этот архив самостоятельно.
Каждый файл, поставляемый с этим архивом, имеет опубликованный хеш SHA-256. Эта страница повторно вычисляет эти хеши в вашем браузере — используя Web Crypto API, который уже встроен в ваш браузер, — и сравнивает их с манифестом. Ни одна серверная конечная точка kakao.io не участвует в этой цепочке доверия. Если что-либо было подменено между исходным репозиторием и вашим экраном, проверка наглядно завершится неудачей.
Проверить 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, доступный в каждом современном браузере без полифилла. Манифест представляет собой небольшой JSON-файл со списком ожидаемых хешей для каждого поставляемого файла. Доказательства OpenTimestamps отправляются на публичные календарные серверы и агрегируются в блокчейне Bitcoin — нет ни учётной записи, ни платы, ни центрального органа, которому нужно доверять. Все три проверки выше — это чисто клиентские вычисления.