Timestamp GIT Secure your prior art without exposing code

← All posts

2026-09-11

Что такое криптографическая отметка времени и как она защищает ваш код?

Что такое криптографическая отметка времени и как она защищает ваш код?
timestamp git blockchain proof

Что такое криптографическая отметка времени и как она защищает ваш код?

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

В этой статье объясняется, что такое криптографическая отметка времени для кода, как её компоненты сочетаются друг с другом и почему управляемое GitHub-приложение — это практичный способ её использования.

Что на самом деле означает «криптографическая отметка времени для кода»?

Криптографическая отметка времени — это процесс математического доказательства того, что определённый фрагмент данных существовал в определённый момент времени. Для кода таким «фрагментом данных» обычно является хеш Git-коммита: односторонний отпечаток фиксированной длины, который представляет точное состояние репозитория в момент коммита.

Обычная отметка времени — это всего лишь утверждение. Ваша файловая система записывает время изменения. Git записывает дату автора и дату коммита. Эти значения полезны для повседневной работы, но они не являются доказательством. Их можно изменить локально, переписать с помощью force push или установить в любое значение тем, кто контролирует машину.

Криптографическая отметка времени — это другое. Она привязывает хеш коммита к публичному, только дополняемому реестру: блокчейну Bitcoin. Как только эта привязка подтверждена, утверждение «этот хеш существовал до этого блока» становится математически проверяемым кем угодно и где угодно, без необходимости доверять тому, кто создал отметку времени.

На практике криптографическая отметка времени для кода отвечает на один узкий вопрос с высокой уверенностью:

Существовал ли этот точный коммит на эту дату или ранее?

Этот вопрос имеет большее значение, чем ожидают многие разработчики.

Простая аналогия: нотариус и газета

Представьте нотариуса с необычной процедурой.

Вы приносите документ, но нотариус не читает его и не копирует. Вместо этого она пропускает документ через криптографическую хеш-функцию и получает короткий отпечаток. Затем она публикует этот отпечаток в широко распространяемой газете. Газета печатается, архивируется, и её невозможно незаметно изменить после публикации.

Позже, если кто-то заявит, что вы написали документ после определённой даты, вы можете указать на газету. Отпечаток был публичным в тот день, и только документ, дающий точно такой же отпечаток, мог быть источником. Вам не нужно было раскрывать документ, чтобы доказать его существование.

Теперь перенесите эту аналогию на код:

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

Важно то, что нотариус работает только с отпечатком. Ваш код остаётся приватным.

Как криптографическая отметка времени работает под капотом

Идея проста, но механика точна.

Шаг 1: Отпечаток

Когда вы делаете коммит, Git генерирует уникальный хеш, представляющий всё состояние репозитория в этот момент. В зависимости от конфигурации репозитория этот хеш обычно SHA-1 или SHA-256.

Вы можете увидеть хеш последнего коммита локально с помощью:

git rev-parse HEAD

Этот однострочный вывод — не просто идентификатор. Это криптографически защищённый отпечаток вашей работы в этот момент. Если что-либо в истории репозитория изменится позже — даже один байт — хеш изменится.

Шаг 2: Привязка

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

Timestamp GIT собирает хеши коммитов из отслеживаемых репозиториев, группирует их в ежедневные пакеты и строит из этих хешей дерево Меркла. Корень Меркла затем привязывается к блокчейну Bitcoin с помощью протокола OpenTimestamps.

Эта привязка замораживает существование пакета во времени. Доказательство теперь является частью публичного реестра Bitcoin, записанного в конкретном блоке.

Шаг 3: Доказательство

После подтверждения транзакции Bitcoin вы получаете неизменяемый файл-квитанцию .ots. Эта квитанция — криптографическое доказательство, которое вы можете показать юристу, аудитору или суду.

Ключевое свойство — независимость. Проверка опирается только на SHA-256 и данные блоков Bitcoin. Вам не нужно доверять Timestamp GIT, частной базе данных или какой-либо проприетарной системе. Даже если компания исчезнет, доказательство останется проверяемым по блокчейну Bitcoin.

Этот процесс полностью автоматизирован Timestamp GIT:

  • Каждый коммит обнаруживается автоматически.
  • Хеши ставятся в очередь в течение дня.
  • Ночной воркер группирует их, строит дерево Меркла и привязывает корень к Bitcoin.
  • Манифест и .ots-квитанции отправляются обратно в выделенную ветку timestamps или теневой репозиторий.

Подтверждение Bitcoin обычно занимает несколько часов, поэтому доставка доказательства не мгновенна. Но результат — это неизменяемая привязка, а не изменяемая запись в журнале.

Часть с нулевым разглашением является центральной: обрабатываются только хеши коммитов. Ваш исходный код никогда не читается, не копируется и не хранится.

Почему это важно для разработчиков и комплаенса

Криптографическая отметка времени для кода — это не тщеславная метрика. Она меняет то, что вы можете доказать в реальных спорах.

Защита от патентных троллей

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

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

Разрешение споров об авторстве и сроках поставки

Когда сотрудник уходит или подрядчик заявляет, что ему не заплатили за работу, выполненную к определённой дате, часто возникает вопрос: когда эта функция на самом деле появилась?

Неизменяемая отметка времени даёт математически проверяемый ответ. Это не спор «он сказал — она сказала». Хеш коммита либо существовал до конкретного блока Bitcoin, либо нет.

Защита от заявлений о «чистой комнате»

Конкурент может заявить, что он независимо разработал похожую функцию. Если ваша реализация была привязана на 18 месяцев раньше, с этой хронологией становится трудно спорить. Доказательство создаёт фактическую границу, которую одни только внутренние журналы обеспечить не могут.

Комплаенс и готовность к аудиту

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

Распространённые заблуждения

  • Это не регистрация авторских прав. Это доказывает существование в определённый момент времени, но не право собственности само по себе.
  • Это не раскрывает ваш код. Привязывается только хеш коммита.
  • Это не замена патентам. Это дополнительный инструмент, который усиливает защиту предшествующего уровня техники и коммерческой тайны.
  • Это не то же самое, что даты Git-коммитов. Даты Git можно изменить; привязанные хеши — нет.

Как Timestamp GIT делает это простым

Выполнять криптографическую отметку времени вручную возможно, но это означает ручную координацию OpenTimestamps, транзакций Bitcoin, файлов доказательств и проверки. Timestamp GIT полностью убирает эту работу.

Timestamp GIT — это управляемый SaaS и GitHub App. Вы устанавливаете приложение один раз, выбираете репозитории, которые хотите отслеживать, и система делает всё остальное. Каждый коммит обнаруживается автоматически, а хеши привязываются к Bitcoin каждую ночь.

Никаких CLI-инструментов. Никаких ручных шагов.

После подключения репозитория вы получаете:

  • Автоматическую ночную привязку хешей коммитов к Bitcoin.
  • Бейджи верификации для вашего README, которые публично показывают статус.
  • Публичные панели статуса с самой ранней датой привязки, ежедневной регулярностью, данными блоков Bitcoin и календарной тепловой картой.
  • Загрузку CSV для аудита для полного просмотра реестра.
  • PDF-сертификаты для конкретной даты.

Для публичных репозиториев информация о статусе доступна через API-эндпоинты, например:

curl https://timestampgit.dev/api/statusLast/acme/widget-service

Для приватных репозиториев Timestamp GIT добавляет зашифрованный HMAC к URL-адресам верификации, чтобы только авторизованные пользователи могли видеть статус.

Существует два основных режима развёртывания:

  • Стандартный режим (GitHub App): GitHub App читает только хеш HEAD-коммита из отслеживаемых репозиториев и записывает файлы доказательств в выделенную ветку или теневой репозиторий.
  • Режим Enterprise ZK: GitHub Action из 12 строк работает в вашей инфраструктуре и отправляет в API Timestamp GIT только хеш коммита. Ваш исходный код никогда не покидает вашу среду.

Для изолированных или self-hosted сред Timestamp GIT также доступен в виде 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

При первом запуске мастер настройки проведёт вас через подключение вашего GitHub App и конфигурацию экземпляра.

Ценообразование простое: Open Source бесплатен для публичных репозиториев, Pro Agency стоит $49/месяц для приватных репозиториев, а Enterprise ZK — $199/месяц с поддержкой GitHub Actions. Подробности смотрите на странице цен.

Если вы пытаетесь выбрать между управляемым сервисом и чистым OpenTimestamps, ознакомьтесь со статьёй Timestamp GIT vs OpenTimestamps: Managed vs DIY.

FAQ

В: Раскрывает ли криптографическая отметка времени мой исходный код?

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

В: Имеет ли отметка времени юридическую силу?

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

В: Что если Timestamp GIT прекратит работу? Смогу ли я по-прежнему проверять свои отметки времени?

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

В: Чем это отличается от простого использования даты коммита Git?

О: Даты коммитов Git можно легко изменить или подделать, потому что они зависят от локальных системных часов и могут быть переписаны в истории. Криптографическая отметка времени привязывает хеш коммита к неизменяемому публичному блокчейну, что делает невозможным датирование задним числом или подделку.

Заключение

Криптографическая отметка времени для кода — это способ превратить Git-коммит в проверяемое доказательство существования. Хеш коммита — это отпечаток; Bitcoin — это публичный реестр; .ots-квитанция — это доказательство.

Вам не нужно изучать OpenTimestamps, управлять транзакциями Bitcoin или строить собственный конвейер доказательств. Timestamp GIT автоматизирует весь процесс через GitHub App, добавляет бейджи верификации и панели, и сохраняет ваш исходный код приватным.

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

Похожие статьи

EU label: AI-generated content