Timestamp GIT Secure your prior art without exposing code

← All posts

2026-09-17

Как доказать существование кода на определённый момент времени (не раскрывая его)

Как доказать существование кода на определённый момент времени (не раскрывая его)
timestamp git blockchain proof

Как доказать, что код существовал в определённый момент времени (не раскрывая его)

Если вам нужно доказать, что конкретный фрагмент кода существовал до определённой даты — для патентного спора, разногласий с сотрудником или опровержения заявления конкурента о «независимой разработке», — стандартной истории Git недостаточно. Внутренние журналы живут на серверах, которые вам не принадлежат, их можно редактировать, и при юридической проверке их часто отклоняют как заинтересованные доказательства. В этой статье разбирается конкретная задача: доказать, что код существовал в определённый момент времени, не раскрывая сам код.

Вы сделаете это, закрепив хеши Git-коммитов — а не исходный код — в блокчейне Bitcoin с помощью управляемого GitHub-приложения Timestamp GIT. В итоге вы получите неизменяемое доказательство, готовое для суда, которое любой сможет проверить независимо, без ручной криптографии и без того, чтобы исходный код когда-либо покидал ваш репозиторий.

Если вы не знакомы с базовой концепцией, см. Что такое криптографическое доказательство авторства кода?.

Предварительные требования

  • Учётная запись GitHub и репозиторий, который вы хотите заверить временной меткой. Публичные репозитории работают на бесплатном тарифе Open Source. Для приватных репозиториев требуется платный тариф Pro Agency или Enterprise ZK.
  • Доступ к GitHub-приложению Timestamp GIT и учётная запись Timestamp GIT. Приложение устанавливается один раз со страницы продукта Timestamp GIT.
  • Базовое знакомство с Git-коммитами и структурой репозитория. Глубоких знаний криптографии не требуется.
  • Для приватных репозиториев убедитесь, что ваш тарифный план включает приватные репозитории.

Пошаговая инструкция: настройка автоматического проставления временных меток

Шаг 1: Установите GitHub-приложение Timestamp GIT

Перейдите в панель управления Timestamp GIT и начните установку GitHub-приложения. Выберите личную учётную запись или организацию, затем предоставьте запрошенные разрешения:

  • Доступ на чтение к исходному репозиторию. Система разрешений GitHub требует как минимум доступ только для чтения, поскольку без него хеши коммитов недоступны.
  • Доступ на чтение и запись к целевому репозиторию, куда будут записываться файлы доказательств.

Важная гарантия: Timestamp GIT никогда не читает, не копирует и не хранит ваш исходный код. Приложение извлекает только хеши коммитов.

Шаг 2: Подключите репозиторий

После установки приложения откройте панель управления Timestamp GIT и выберите репозиторий, который хотите отслеживать. Выберите, куда будут доставляться доказательства:

  • Отдельная ветка timestamps в том же репозитории, или
  • Отдельный теневой репозиторий.

В это целевое расположение позже будут отправлены файлы манифеста и .ots-квитанции.

Шаг 3: Настройте параметры проставления временных меток

По умолчанию используется автоматическая ночная пакетная обработка. Ожидающие хеши коммитов группируются ежедневно, строится дерево Меркла, создаются доказательства OpenTimestamps, и корень Меркла закрепляется в Bitcoin. В большинстве случаев менять ничего не нужно.

Если вы используете режим Enterprise ZK, вместо предоставления доступа на чтение к исходному репозиторию вы запускаете короткий GitHub Action на собственной инфраструктуре. Это действие отправляет в API Timestamp GIT только хеши коммитов, поэтому ваш исходный код никогда не покидает вашу среду.

Шаг 4: Создайте новый коммит

Делайте коммиты в репозиторий как обычно. GitHub-приложение автоматически обнаруживает новый коммит через вебхуки.

git add .
git commit -m "Add new feature logic"
git push origin main

Дополнительная команда для проставления временной метки не нужна. Хеш коммита автоматически попадает в очередь Timestamp GIT.

Шаг 5: Дождитесь ночного задания cron

Каждую ночь Timestamp GIT обрабатывает ожидающие хеши:

  1. Группирует все ожидающие хеши коммитов за день.
  2. Создаёт текстовые файлы манифеста для каждого репозитория.
  3. Нативно строит дерево Меркла.
  4. Создаёт доказательства OpenTimestamps с использованием публичных календарей OTS.
  5. Закрепляет корень Меркла в блокчейне Bitcoin.

Подтверждение в Bitcoin обычно занимает несколько часов после ночной пакетной обработки.

Шаг 6: Получите доказательство

После подтверждения транзакции в Bitcoin Timestamp GIT отправляет файлы доказательств в назначенную ветку. Вы увидите:

  • Файл манифеста со списком хешей коммитов.
  • Файлы .ots-квитанций для дневного пакета.

Эти файлы доказательств не зависят от поставщика. Вы сможете проверить их позже, даже если сервис Timestamp GIT прекратит существование.

Шаг 7: Добавьте значок верификации в README

На странице статуса репозитория скопируйте предоставленный markdown-код значка Shields.io и вставьте его в README.md. Для публичных репозиториев значок ссылается на публичную страницу верификации. Для приватных репозиториев URL значка содержит зашифрованный HMAC, чтобы только авторизованные пользователи могли просматривать статус.

Панель управления предоставляет точный markdown-фрагмент, который будет выглядеть примерно так:

[![Timestamped](https://timestampgit.dev/api/badgeLink/your-user/your-repo/shields)](https://timestampgit.dev/status/your-user/your-repo)

Замените your-user и your-repo на фактические значения, показанные в панели управления.

Как убедиться, что всё сработало (верификация)

Проверьте панель статуса репозитория

Откройте публичную страницу статуса вашего репозитория. На ней отображается:

  • Срок действия доказательства и самая ранняя дата закрепления.
  • Регулярность ежедневного закрепления и календарная тепловая карта.
  • Высота блока Bitcoin и данные транзакции.
  • Скачиваемый CSV-аудит и PDF-сертификат для конкретной даты.

Запустите верификацию в браузере

Используйте страницу верификации для конкретного репозитория и даты. Она пошагово проводит через проверку цепочки Меркла, и все вычисления выполняются локально в вашем браузере. Никто не видит, что именно вы проверяете.

Скачайте PDF-сертификат

Для документа, готового к суду, скачайте PDF-сертификат на нужную дату. Это даёт чистое доказательство, которым можно поделиться, не раскрывая код.

Проверьте API программно

Вы можете запрашивать публичные конечные точки статуса с помощью curl:

curl https://timestampgit.dev/api/statusLast/your-user/your-repo
curl https://timestampgit.dev/api/statusCount/your-user/your-repo
curl https://timestampgit.dev/api/statusSummary/your-user/your-repo

Последняя конечная точка возвращает сводный результат, подходящий для значков Shields.io.

Независимая верификация для продвинутых пользователей

Поскольку доказательство опирается только на SHA-256 и данные блоков Bitcoin, вы можете скачать .ots-квитанцию и проверить её стандартными инструментами верификации OpenTimestamps по блокчейну Bitcoin. Для этого не требуется доверие к Timestamp GIT или какому-либо поставщику. Управляемое приложение просто автоматизирует процесс, который в противном случае потребовал бы ручной работы с протоколом.

Устранение распространённых проблем

Временная метка не появляется после коммита

Проверьте, что GitHub-приложение установлено на учётную запись или организацию и что репозиторий подключён в панели управления Timestamp GIT. Временные метки проставляются только для коммитов, сделанных после настройки.

Доказательство не доставлено через 24 часа

Подтверждение в Bitcoin может занять несколько часов после ночной пакетной обработки. Проверьте панель статуса репозитория на наличие состояния ожидания. Если вы используете приватный репозиторий, убедитесь, что ваш тарифный план включает приватные репозитории.

Значок показывает «unverified» или неработающую ссылку

Проверьте URL значка из панели управления и убедитесь, что репозиторий публичный или что для приватного репозитория включён зашифрованный HMAC. Неработающая ссылка часто означает опечатку в имени репозитория или пользователя.

Вам нужно доказать существование кода, который не размещён на GitHub

Используйте режим Enterprise ZK. GitHub Action запускается на вашей инфраструктуре и отправляет в API только хеши коммитов. Это работает с любым Git-репозиторием, и Timestamp GIT не нужен доступ на чтение к исходному репозиторию.

Вы хотите развернуть решение самостоятельно в изолированной среде

Timestamp GIT доступен как Docker-образ с лицензией на самостоятельное размещение. Вы можете запустить тот же управляемый рабочий процесс на собственной инфраструктуре с помощью предоставленной конфигурации Docker Compose:

services:
  timestampgit:
    image: rue1401/timestampgit:prod
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    restart: unless-stopped
  valkey:
    image: valkey/valkey:8
    restart: unless-stopped

Затем запустите его командой:

docker compose pull
docker compose up -d
docker compose logs -f timestampgit

После запуска приложение доступно по адресу http://localhost:8080. Для оценки доступна демонстрационная лицензия с ограниченным сроком действия.

FAQ

Раскрывает ли проставление временной метки содержимое моего кода?

Нет. Timestamp GIT извлекает только хеш Git-коммита — криптографический отпечаток — и закрепляет этот хеш в блокчейне Bitcoin. Ваш фактический исходный код никогда не читается, не копируется и не хранится сервисом.

Сколько времени занимает получение доказательства с временной меткой?

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

Могу ли я проверить временную метку, не полагаясь на Timestamp GIT?

Да. Доказательство основано на протоколе OpenTimestamps и данных блокчейна Bitcoin. Вы можете скачать .ots-квитанцию и проверить её независимо с помощью стандартных инструментов OpenTimestamps, даже если Timestamp GIT прекратит существование.

Что делать, если мне нужно доказать существование кода, который не размещён на GitHub?

Timestamp GIT предлагает режим Enterprise ZK, в котором GitHub Action запускается на вашей инфраструктуре и отправляет в API только хеши коммитов. Это работает с любым Git-репозиторием, и ваш код никогда не покидает вашу среду.

Заключение

Теперь вы знаете, как доказать, что код существовал в определённый момент времени, не раскрывая его: установите GitHub-приложение Timestamp GIT один раз, подключите репозиторий и позвольте сервису автоматически закреплять каждый хеш коммита в Bitcoin. Ваш исходный код никогда не покидает репозиторий — временные метки проставляются только для криптографических отпечатков.

Доказательства не зависят от какого-либо отдельного поставщика, опираются на математику Bitcoin и могут быть проверены в браузере, через API или с помощью стандартных инструментов OpenTimestamps. Для публичных репозиториев бесплатный тариф Open Source — практичная отправная точка. Для приватных репозиториев или изолированных сред остальные сценарии покрывают тарифы Pro Agency, Enterprise ZK и лицензия на самостоятельное размещение через Docker.

Если вы хотите разобраться в базовых концепциях или сравнить управляемый подход с «сырым» протоколом, см. статьи ниже.

Связанные статьи

EU label: AI-generated content