Tính toàn vẹn

Tự xác minh kho lưu trữ này.

Mỗi tệp đi kèm kho lưu trữ này đều có một mã băm SHA-256 được công bố. Trang này tính lại các mã băm đó ngay trong trình duyệt của bạn — dùng Web Crypto API vốn đã có sẵn trong trình duyệt — rồi đối chiếu với bản kê khai. Không có điểm cuối máy chủ kakao.io nào được tin cậy trong vòng kiểm tra. Nếu có bất kỳ thứ gì bị can thiệp giữa kho mã nguồn và màn hình của bạn, phép kiểm tra sẽ thất bại một cách rõ ràng.

Tư thế không tin cậy — trình xác minh chỉ là JavaScript thuần được nhúng trong trang này. Bạn có thể đọc nó bằng Xem nguồn. Nó lấy về tập dữ liệu, băm cục bộ, lấy về bản kê khai, rồi đối chiếu. Kết quả được tính ngay trên máy của bạn.

Kiểm tra cacao-origins.json

Kiểm tra tất cả các tệp nguồn

Kiểm tra một bản ghi xuất xứ cụ thể

Xác minh mã băm tập dữ liệu từ dòng lệnh

Nếu bạn không muốn phụ thuộc vào mã chạy trong trình duyệt, cùng phép kiểm tra đó có thể thực hiện dễ dàng bằng các công cụ Unix tiêu chuẩn.

# 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"]'

Xác minh cục bộ các chứng cứ OpenTimestamps

Mỗi bản ghi xuất xứ cũng được đóng dấu thời gian bằng OpenTimestamps — một giao thức đóng dấu thời gian miễn phí, neo vào Bitcoin. Chứng cứ này gói mã SHA-256 của bản ghi vào tiêu đề của một khối Bitcoin đã công bố, nhờ vậy sự tồn tại của bản ghi tại thời điểm của khối đó có thể được chứng thực bằng mật mã mà không cần tin tưởng chúng tôi hay bất kỳ cơ quan đóng dấu thời gian nào.

# 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

Cơ chế hoạt động

SHA-256 được tính trong trình duyệt của bạn qua window.crypto.subtle.digest — cùng một nguyên thuỷ mật mã được TLS và HTTPS sử dụng, có sẵn trên mọi trình duyệt hiện đại mà không cần polyfill. Bản kê khai là một tệp JSON nhỏ liệt kê mã băm dự kiến cho từng tệp đi kèm. Các chứng cứ OpenTimestamps được gửi tới các máy chủ lịch công cộng và được tổng hợp vào chuỗi khối Bitcoin — không có tài khoản, không có phí, không có cơ quan trung tâm nào phải tin cậy. Cả ba phép kiểm tra ở trên đều là tính toán thuần phía máy khách.