- PVSM.RU - https://www.pvsm.ru -
Я написал фантастическую повесть о бессмертии, а потом решил провести над ней практический эксперимент. Можно ли зафиксировать полный текст так, чтобы через десять или пятьдесят лет любой человек мог независимо проверить, какая именно версия существовала на конкретную дату, не доверяя автору, издательству, облаку или сайту? В итоге весь русский текст «Бес’смертных» оказался в одной транзакции Bitcoin.
У эксперимента было три условия.
Первое: в Bitcoin должен попасть не адрес страницы и не контрольная сумма, а само произведение. Ссылка может умереть. Файл, с которым предлагается сравнить хеш, тоже ещё надо где-то найти.
Второе: текст должен читаться без специального приложения. Поэтому конечным объектом стал самодостаточный HTML в UTF-8 без внешних шрифтов, скриптов и изображений.
Третье: результат нужно проверить не через доверие к публичному эксплореру, а через собственную Bitcoin Core-ноду и фактические данные reveal-транзакции.
9 августа 2026 года транзакция вошла в блок 961730. В ней находится полный текст моей повести «Бес’смертные».
Сразу обозначу, чего я не сделал. Я не «зарегистрировал авторское право в блокчейне», не выпустил NFT и не создал средство запрета копирования. Цель была другой: получить независимую, публичную и неизменяемую фиксацию конкретной редакции текста.
В России авторское право на литературное произведение не возникает после регистрации. Оно возникает при создании произведения. Пункт 4 статьи 1259 ГК РФ [1] говорит, что для возникновения, осуществления и защиты авторских прав регистрация и иные формальности не требуются. Тот же принцип автоматической охраны лежит в основе Бернской конвенции [2] и отдельно разъясняется в FAQ WIPO об авторском праве [3].
Поэтому запись книги в Bitcoin не создаёт право и не превращает кошелёк в реестр авторов.
Что она действительно фиксирует?
Конкретный набор байтов существовал не позднее того момента, когда майнер включил reveal-транзакцию в блок. После подтверждения нельзя незаметно переписать абзац, заменить имя автора или подложить другую редакцию под прежний идентификатор. Любой желающий может извлечь те же байты и сравнить их хеш.
Чего такая запись не доказывает?
Она сама по себе не доказывает, кто написал текст. Не доказывает, что никто не создал его раньше. Не мешает плагиатору записать чужое произведение в следующий блок. Контроль над адресом тоже не равен авторству.
В моём случае on-chain-публикация дополняет уже существующую цепочку: исходный DOCX, более раннюю открытую публикацию текста на литературной платформе, имя автора внутри самого HTML и контроль кошелька, получившего инскрипцию. Насколько убедительной окажется подобная совокупность в реальном споре, может определить только суд. Именно поэтому я называю это не юридической технологией, а экспериментом с доказуемым временем и целостностью.
Для доказательства неизменности файла достаточно сохранить его SHA-256 в транзакции. Это дёшево и рационально. Но у схемы есть зависимость: через двадцать лет нужно сначала найти тот самый файл, а уже потом сравнить его с хешем.
Я хотел проверить более радикальную модель. Блокчейн хранит и свидетельство, и сам объект проверки. Если литературная платформа, мой компьютер и публичные Ordinals-эксплореры исчезнут, текст всё равно останется в истории Bitcoin и на архивных нодах — внутри witness-данных reveal-транзакции.
Цена этого решения очевидна: публичность навсегда и значительно более высокая комиссия. Исправить опечатку после подтверждения тоже нельзя. Можно только выпустить новую редакцию с новым идентификатором.
Исходником был финальный DOCX. Его SHA-256:
8cd5e2e8f3efd4a4dea62a36c751016d0cdbe6796d5d16dfaf7aabda7f3bc3d1
Из документа был собран самостоятельный HTML размером 248 539 байт. Обложку я намеренно не включал: она увеличивала бы комиссию, а для эксперимента был важен именно текст.
HTML сжался Brotli примерно до 57,8 КБ. В Ordinals-конверте указаны:
content_type = text/html;charset=utf-8
content_encoding = br
После публикации я извлёк Brotli-тело непосредственно из reveal-транзакции, распаковал его и сравнил с подготовленным HTML. SHA-256 обоих файлов совпал:
d741efb62db1693e5dd3f1cd46534c7bfa851a636d77becdc7f47c27502dba06
То есть публичный текст и локальный исходник HTML совпадают побайтово.
Публикация шла через мою полную Bitcoin Core-ноду и ord.
Перед mainnet я проверил четыре вещи:
HTML корректно отображает русский текст на настольном и мобильном экране.
После сжатия и обратной распаковки получается тот же набор байтов.
Инскрипция корректно декодируется из тестовой reveal-транзакции.
Dry-run показывает приемлемую комиссию и правильный адрес назначения.
Это важнее, чем кажется. В обычной веб-публикации ошибку можно исправить через минуту. В подтверждённой инскрипции ошибочная версия остаётся навсегда, а повторная публикация снова занимает место в блоке и требует комиссии.
Ordinals-инскрипция публикуется двумя связанными транзакциями.
Commit создаёт Taproot-выход, который заранее связывает будущий сценарий раскрытия с содержимым. Reveal тратит этот выход и раскрывает сценарий вместе с данными инскрипции в witness.
Для повести получилась такая цепочка:
|
Объект |
Значение |
|---|---|
|
Commit TXID |
|
|
Reveal TXID |
|
|
Inscription ID |
|
|
Блок |
|
|
Ставка |
|
|
Общая комиссия commit + reveal |
|
Reveal имеет вес 58 657 WU и virtual size 14 665 vB. Основная часть комиссии пришлась именно на него.
Самый простой путь — открыть содержимое инскрипции [4] или её карточку [5].
Важно: ordinals.com здесь только удобная витрина. Сайт не хранит единственный экземпляр и не является условием существования текста. Даже если этот домен и все публичные Ordinals-эксплореры исчезнут, данные останутся в witness reveal-транзакции внутри блока 961730. Их можно извлечь с любой архивной Bitcoin-ноды, сохранившей этот блок.
Смысл эксперимента как раз в том, что ordinals.com не является источником истины. На машине с архивной нодой и ord reveal можно декодировать локально:
ord decode --txid 35fe91433fa02ea03cf5e233fdf272eaf8e1cca43ae9fac0221328a68e86b0e9 > reveal.json
Тело inscriptions[0].payload.body содержит Brotli-байты. После их сохранения распаковка в Node.js выглядит так:
const fs = require("fs");
const zlib = require("zlib");
const decoded = JSON.parse(fs.readFileSync("reveal.json", "utf8"));
const compressed = Buffer.from(decoded.inscriptions[0].payload.body);
const html = zlib.brotliDecompressSync(compressed);
fs.writeFileSync("Бессмертные.html", html);
Ожидаемый SHA-256 итогового HTML:
d741efb62db1693e5dd3f1cd46534c7bfa851a636d77becdc7f47c27502dba06
Получился неизменяемый цифровой экземпляр произведения, который не зависит от моего домена или одного сервиса. У него есть точное место в истории Bitcoin: блок, транзакция, выход и контрольная сумма.
Не получился универсальный сертификат авторства. Между «эти байты уже существовали» и «эти байты создал именно этот человек» остаётся важный разрыв. Его нужно закрывать обычными доказательствами происхождения произведения или отдельной криптографической схемой идентификации автора.
Практический вывод для автора я бы сформулировал так: блокчейн полезен не как фабрика авторских прав, а как независимый свидетель конкретной редакции и времени её публичного существования.
Есть и менее технический итог. Я написал повесть о людях, победивших смерть. Теперь у самого текста появилась собственная, пусть и машинная, разновидность долгой жизни.
Отдельный вопрос, который этот опыт пока не закрывает: существовали ли раньше другие полностью записанные в Bitcoin русскоязычные книги. Мне не удалось найти документированные примеры, но отсутствие результата поиска само по себе не доказывает первенство.
Автор: DigitalGekko77
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/avtorskoe-pravo/456473
Ссылки в тексте:
[1] Пункт 4 статьи 1259 ГК РФ: https://www.consultant.ru/document/cons_doc_LAW_64629/be05678dc42ddc67aae5be9ba9beebd367fb9a3f/
[2] Бернской конвенции: https://www.wipo.int/en/web/treaties/ip/berne/summary_berne
[3] FAQ WIPO об авторском праве: https://www.wipo.int/en/web/copyright/faq-copyright
[4] содержимое инскрипции: https://ordinals.com/content/35fe91433fa02ea03cf5e233fdf272eaf8e1cca43ae9fac0221328a68e86b0e9i0
[5] карточку: https://ordinals.com/inscription/35fe91433fa02ea03cf5e233fdf272eaf8e1cca43ae9fac0221328a68e86b0e9i0
[6] Источник: https://habr.com/ru/articles/1069760/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1069760
Нажмите здесь для печати.