Proovik
Публичный верификатор · PVK-PROOF/1

Как проверить доказательство Proovik, не доверяя Proovik

Вам понадобятся файл доказательства (или PDF сертификата) и ваша копия исходного документа. Ничего не загружается: хеш вычисляется в вашем браузере. Ниже — полная спецификация, шаг за шагом и с реальными значениями.

Версия 1 Сеть: Kaspa mainnet Эталонный верификатор: 248 строк на Python, без зависимостей
Инструмент

Проверить доказательство онлайн

Проверьте здесь сертификат тем же движком, который описан ниже. Документ не покидает ваше устройство: его SHA-256 вычисляется в браузере, и передаётся только хеш. Хеш предоставляете вы, он никогда не берётся из файла доказательства. Если перетащить PDF сертификата, вложенный пакет доказательств извлекается в вашем браузере, и сам PDF тоже никуда не отправляется.

1 · Файл доказательства

2 · Исходный документ

Верификатор никогда не берёт хеш из файла доказательства: его предоставляете вы.

Пакет и хеш отправляются на POST /api/verify/proof. Без учётной записи. Ограничение: 120 проверок в час на один IP.

Он напечатан в PDF-сертификате и виден в обозревателе Kaspa.

Его можно вычислить, перетащив документ на другой вкладке: значение общее.

Этот режим восстанавливает пакет, обращаясь к api.kaspa.org. Kaspa отдаёт полный заголовок лишь около 40 часов после закрепления: по истечении этого срока звенья 3 и 4 пересчитать невозможно, и вердикт будет Неопределённый, но никогда — «Подтверждает». Для полной проверки используйте файл доказательства, сохранённый в своё время.

GET /api/verify/proof/{txid}?hash=…. Ограничение: 30 в час на один IP (обращается к сети).

Вердикт ·

Подтверждено Неопределённый Не подтверждено

Все четыре звена сходятся: документ с этим SHA-256 существовал, когда был намайнен указанный блок. Помните, чего доказательство не подтверждает: ни авторства, ни правдивости содержимого.

То, что удалось пересчитать, сходится, но не хватает каких-то данных (обычно полного заголовка блока, оказавшегося за окном отсечения), чтобы замкнуть цепочку. Это не сбой доказательства: это частичная проверка. С файлом доказательства, сохранённым в своё время, или с полным пакетом доказательств её можно довести до конца.

Как минимум одно звено не сходится с предоставленным хешем. Чаще всего: документ не в точности тот, который был зафиксирован (один иной байт меняет SHA-256), либо файл доказательства относится не к этому документу. Посмотрите детали по каждому звену.

Посмотреть транзакцию в сети
документ
txid
block_hash
сеть
режим
заголовок
проверено

Звенья, одно за другим

Предупреждения

Что означает каждое звено

Область действия доказательства

Что именно утверждается

Точность здесь важнее красноречия, потому что от неё зависит, выдержит ли доказательство состязательный процесс.

Что доказательство подтверждает

Что последовательность байтов, чей SHA-256 равен определённому значению, была помещена в транзакцию сети Kaspa; что эта транзакция была зафиксирована внутри заголовка блока; и что над этим заголовком — включающим метку времени — было выполнено действительное доказательство работы. Поскольку метка времени находится внутри данных, над которыми выполнялась работа, её изменение делает работу недействительной. Дата — это не чьё-то заявление: это уже израсходованная физическая величина.

Что доказательство НЕ подтверждает

Кто создал документ, правдиво ли его содержимое, имел ли его автор право его создавать и не существовал ли документ раньше. Оно подтверждает приоритет по отношению к определённому моменту, а не авторство или правдивость. Proovik ни в какой момент не видит документ: он получает только его хеш.

О хеше

SHA-256 — это хеш-функция длиной 256 бит. Найти два разных документа с одинаковым хешем не удавалось никогда, а оценка необходимых усилий превосходит то, что человечество способно вычислить. Поэтому, если хеш предоставленного документа совпадает с тем, что записан в цепочке, документ тот же самый, без практического места для сомнений.

Реальный пример · 20.09.2026

Четыре звена

Проверка — это цепочка. Каждое звено связано со следующим, и достаточно, чтобы отказало одно, и доказательство ничего не стоит. Приведённые ниже значения реальны: они относятся к сертификату, выданному 20 сентября 2026 года.

1 2 3 4
Дата

Почему дата — это физическая величина, а не заявление

Это та часть, которую обычно требует состязательный процесс, поэтому её лучше показать, чем доказывать словами. Метка времени находится внутри заголовка, а заголовок — это вход доказательства работы. Изменить время значит изменить вход, и работа перестаёт быть действительной. Это проверяется экспериментально: меняем заголовок, проверенный на шаге 4, и повторяем вычисление:

Влияние изменения заголовка на результат доказательства работы
Заголовок Результат работы Вердикт
Оригинал, нетронутый0x15222b53caabb3b049ec…Действителен
nonce + 10x6775abc19ba960657f66…Недействителен
timestamp сдвинут на секунду вперёд0xaee1e8274b1d268866ed…Недействителен
Следствие

Чтобы представить документ с другой датой, пришлось бы заново выполнить доказательство работы для этого заголовка против реальной сложности сети. Это не барьер стоимости: это вычислительный барьер порядка совокупной мощности всей сети за тот промежуток, который хотят подделать. Дату никто не объявляет. За дату платят.

Долговечность

Будет ли это работать после будущих хардфорков?

Честный ответ — да, и стоит понять почему. Сохранённое доказательство — это не живой запрос к сети: это исторический факт, проверяемый по правилам, действовавшим в момент закрепления. Kaspa со временем меняется — переход Crescendo/Toccata, например, изменил ритм DAA и подсчёт сложности, — но это не стирает прошлое: это лишь означает, что блок января 2026 года проверяется по правилам января 2026 года, а блок, созданный через три года, — по правилам, которые будут действовать через три года.

Эталонный верификатор построен именно для этого: он различает эпохи. Он знает точку активации каждого изменения консенсуса (например, константу CRESCENDO_DAA_MAINNET) и применяет к каждому блоку правила его эпохи, а не сегодняшние. Более поздний хардфорк добавляет новую эпоху; предыдущие он не отменяет.

Долговечность доказательства опирается тогда на три условия, и все они в руках того, кто им владеет:

1

Сохранить в пределах окна

Сохранить полный заголовок в момент закрепления, пока сеть не отбросила полные данные (примерно 30-40 часов).

2

Хранить доказательство

Файл доказательства (или PDF, в который он встроен) самодостаточен: он не отсылает ни к какому серверу и не делает запросов в сеть.

3

Сохранить эталонный верификатор

248 строк открытого кода, без зависимостей, заново выводимых из публичного исходного кода Kaspa. Даже если он потеряется, его можно переписать.

Проверьте сами

Сделайте это без Proovik

Эталонный верификатор — это 248 строк на Python без внешних зависимостей: он реализует blake2b с ключом, перестановку Keccak-f[1600], генератор xoshiro256++ и арифметику матрицы. Прочитать его можно за вечер, а провести аудит — за два.

Терминал
$ python3 verificador_kaspa.py prueba.json 0f7383b381366cc3a75dadd7e4a1e8998c492f7c5c5610f4384d7320f484aad8

  OK    1. El payload on-chain es el hash del documento
  OK    2. La transaccion esta en el arbol Merkle del bloque
  OK    3. La cabecera produce el hash de bloque declarado
  OK    4. La prueba de trabajo de esa cabecera es valida

RESULTADO: PRUEBA VALIDA

Скачать эталонный верификатор

Два файла. Положите их в одну папку и запустите первый. Они ничего не устанавливают и не выходят в сеть.

Тот, кто предпочитает не запускать чужой код, может реализовать его заново: все четыре алгоритма описаны выше без двусмысленностей, а все параметры взяты из публичного исходного кода rusty-kaspa. Не менее правомерно свериться с транзакцией в любом публичном обозревателе Kaspa, но разницу стоит понимать: обозреватель — это свидетельство; вычисление — это доказательство. Эта спецификация существует для того, чтобы не зависеть от первого.

Правовая основа

Юридическое значение

Proovik оказывает услугу неквалифицированной электронной метки времени в смысле статьи 3.16.i) Регламента (ЕС) № 910/2014. Стоит прямо сказать, что это означает.

  • Согласно статье 41.1 названного Регламента электронной метке времени нельзя отказать в юридической силе и в допустимости в качестве доказательства в суде только на том основании, что она представлена в электронной форме или не отвечает требованиям квалифицированной метки.
  • Неквалифицированная метка не пользуется презумпцией точности даты и времени по статье 41.2, закреплённой за квалифицированными. В случае оспаривания бремя обоснования доказательства лежит на том, кто его представляет.
  • Именно поэтому существует эта спецификация: чтобы это бремя снималось арифметической проверкой, воспроизводимой кем угодно, а не заявлением поставщика услуг.

Proovik не проверяет содержимое, авторство или правомерность документов и ни в какой момент не получает к ним доступ: он получает только их криптографический хеш. Подтверждается доказательство существования и приоритета по дате по отношению к определённому моменту.

Источники

Сериализация заголовка и транзакции, построение дерева Merkle и доказательство работы — согласно исходному коду эталонной реализации Kaspa (rusty-kaspa): consensus/core/src/hashing/header.rs, consensus/core/src/hashing/tx.rs, consensus/core/src/merkle.rs, crypto/hashes/src/pow_hashers.rs, consensus/pow/.

Значения, использованные в примерах, относятся к реальным сертификатам, и проверить их может кто угодно. Эта спецификация версионируется: доказательства содержат внутри себя указание на версию, с которой они были выпущены.