Как сверить хеш медиафайла в метаданных NFT сети NEAR

После обновления CDN ссылка на медиа может вернуть другие байты. Если в метаданных NEP-177 есть media_hash, исходный хеш позволяет проверить полученный файл.

Получите исходные байты по ссылке media

Прочитайте метаданные токена и при необходимости base_uri коллекции. Разрешите ссылку media и сохраните исходный файл как downloaded-media.bin. Уменьшенное или повторно сжатое превью отличается от оригинала на уровне байтов.

import base64, hashlib

with open("downloaded-media.bin", "rb") as asset:
    digest = hashlib.sha256(asset.read()).digest()
print(base64.b64encode(digest).decode("ascii"))

Сопоставьте хеши в одной кодировке

Сравните выведенную строку base64 с media_hash. Скрипт вычисляет SHA-256 от байтов файла и кодирует в base64 полученные 32 байта. Если закодировать печатную строку шестнадцатеричного хеша, получится другое значение. Зафиксируйте token ID, блок наблюдения и URL.

При отсутствии хеша целостность остаётся непроверенной. Для внешнего документа метаданных применяется reference_hash. Это отдельная проверка другого содержимого.

Источники