9 мин чтения
Что попадает в блокчейн, когда вы создаёте подтверждение?
CardanoWall публикует в Cardano небольшую запись-подтверждение, а не сам файл. Подтверждение только по хешу раскрывает лишь дайджест, а запечатанное подтверждение оставляет содержимое зашифрованным вне блокчейна — здесь подробно о том, что именно становится публичным.

Когда вы создаёте подтверждение в CardanoWall, в Cardano попадает небольшая запись-подтверждение, а не ваш файл. Для обычного Proof of Existence эта запись содержит хеш ровно тех байтов, существование которых вы подтверждаете. Для запечатанного подтверждения она может дополнительно нести конверт шифрования и контентно-адресуемые ссылки на зашифрованный шифротекст, который хранится в другом месте. Открытый файл вообще не обязан попадать в Cardano.
В этом и весь смысл: публичное подтверждение — это не то же самое, что публичное содержимое. Вы можете создать постоянное обязательство по документу с меткой времени и при этом сохранить сам документ в тайне.
Такова модель, лежащая в основе Label 309 — открытого стандарта, который реализует CardanoWall. Дальше в статье мы подробно разберём, что именно становится публичным для каждого вида подтверждения.
Что публично в подтверждении только по хешу?
В подтверждении только по хешу публична лишь сама запись и хеш — больше ничего.
По сути, запись говорит: кто-то взял на себя обязательство по этим конкретным байтам к такому-то блочному времени Cardano. Хеш — это криптографический отпечаток байтов. Позже верификатор может заново вычислить тот же хеш из исходного файла и убедиться, что он совпадает с хешем в блокчейне.
Любой, кто читает блокчейн, видит:
- транзакцию Cardano;
- метку метаданных
309; - байты записи Label 309;
- хеш (или хеши) содержимого;
- блочное время и контекст подтверждения.
Чего он не видит, так это сам файл — если только вы отдельно не опубликуете его где-то ещё.
Именно поэтому Proof of Existence хорошо подходит для частных документов, наборов данных, юридических материалов, журналов комплаенса и внутренних артефактов. Вы получаете публичное обязательство с меткой времени, не раскрывая содержимое. Если вы только знакомитесь с этой идеей, статья что такое Proof of Existence объясняет основы.
Хранит ли Cardano мой файл?
Нет — по крайней мере, в обычной модели подтверждений CardanoWall.
Cardano хранит транзакцию и её метаданные. В Label 309 эти метаданные несут запись-подтверждение, а сама запись может содержать хеши, необязательные ссылки на хранилище, необязательные подписи, необязательные корни Merkle и необязательные данные конверта шифрования. Сам файл никогда не загружается в метаданные Cardano как открытый текст.
Есть и жёсткая техническая причина: Cardano ограничивает каждую строку метаданных 64 байтами, поэтому тело записи разбивается на небольшие фрагменты — исключительно ради передачи — и заново собирается перед чтением. Целый файл туда попросту не поместился бы. Блокчейн — не место, куда сваливают частные файлы; это место, где закрепляют обязательства, которые другие потом смогут проверить. Полную механику смотрите в статье как работает Label 309.
Что происходит, когда я прикрепляю файл?
Это зависит от того, какой вид подтверждения вы создаёте. Есть три режима.
Только хеш. CardanoWall вычисляет хеш файла прямо в вашем браузере и публикует в записи только хеш. Исходный файл остаётся у вас и никогда не покидает ваше устройство.
Публичное содержимое со ссылкой на хранилище. Байты файла помещаются в контентно-адресуемое хранилище, а запись Label 309 ссылается на это расположение в хранилище. Содержимое публично, а ссылка связывает полученные байты с записью.
Запечатанное. Файл сначала шифруется. Зашифрованные данные хранятся в контентно-адресуемом хранилище — например, Arweave или IPFS, — а запись ссылается на шифротекст и несёт данные конверта, которые нужны держателю правильного ключа, чтобы его расшифровать.
В любом режиме подтверждением служит хеш. Хранилище лишь помогает получить байты; шифрование лишь определяет, кто может их прочитать. Это та же последовательность «хешировать, подписать, запечатать, поделиться», что описана в статье хешировать, подписать, запечатать, поделиться.
Что публично в запечатанном подтверждении?
Запечатанное подтверждение — это частное содержимое с публичным обязательством. Блокчейн подтверждает когда; шифрование определяет, кто может это прочитать.
Публичная запись раскрывает намеренно узкий набор фактов:
- что запись запечатана (присутствует конверт);
- хеш открытого текста;
- контентно-адресуемые ссылки на шифротекст, такие как
ar://...илиipfs://...; - заголовок конверта шифрования;
- семейство инкапсуляции ключа, использованное для слотов получателей — например, классическое или гибридное постквантовое;
- количество зашифрованных ключевых слотов;
- любые подписи, включённые в запись;
- время транзакции и метаданные в блокчейне.
Публичная запись не раскрывает:
- открытый текст файла;
- расшифрованное сообщение;
- читаемый список получателей;
- закрытый ключ кого-либо из получателей;
- закрытые ключи отправителя.
Шифротекст публичен в одном узком смысле — его может скачать из хранилища кто угодно, — но без подходящего ключа он остаётся нечитаемым. Это обычная схема для запечатанных записей: публичное подтверждение, зашифрованное содержимое и расшифровка, которая происходит локально, на устройстве получателя.
Записываются ли адреса получателей в блокчейн?
Нет. Нигде в записи нет читаемого справочника получателей.
В запечатанной записи Label 309 до получателей добираются через зашифрованные ключевые слоты. Клиент получателя сканирует публичные запечатанные записи и незаметно пробует открыть каждый слот своими закрытыми ключами. Когда слот открывается, клиент может расшифровать данные и показать запись во входящих. В блокчейне никогда не бывает поля вида «получатель: Алиса» и не указывается публичный профиль — отношение получателя обнаруживается через успешную локальную расшифровку, а не публикуется.
Чтобы ещё сильнее сократить эту утечку, отправитель перед публикацией перемешивает слоты криптостойким генератором случайных чисел, так что даже их порядок не несёт никакого сигнала о том, кто идёт первым. Единственный связанный с получателями факт, который блокчейн раскрывает, — это сколько слотов есть, но никогда — кому они принадлежат.
Именно это отличает такую конструкцию от большинства систем обмена сообщениями: серверу не нужно знать, кто получатель, чтобы получатель нашёл свои записи. Если вы принимаете запечатанные записи, статья как принимать запечатанные записи объясняет сторону входящих.
Означает ли «запечатанное» анонимность?
Нет. Запечатанное означает, что формат записи не публикует открытый текст или читаемый список получателей. Это действительно полезно, но это не то же самое, что полная анонимность.
Множество сопутствующих сигналов всё равно могут раскрыть информацию:
- время транзакции;
- платёжные потоки;
- активность аккаунта на шлюзе;
- сетевые метаданные;
- отпечатки браузера или устройства;
- повторяющиеся закономерности в количестве слотов;
- операционные ошибки отправителя или получателя.
Для чувствительной работы соблюдайте эту границу со всей внимательностью. Label 309 может удерживать открытый текст и получателей вне публичной записи. Он не может стереть все следы, оставленные окружающей сетью, платежами, устройством или человеческим процессом, — а получатель, расшифровавший запечатанный файл, всегда может потом решить раскрыть открытый текст. Конфиденциальность содержимого — это не то же самое, что анонимность участников.
Что становится публичным, когда запись подписана?
Если запись включает подписи, эти подписи публичны — и публичен ключ за каждой из них.
Подпись Label 309 позволяет ключу поручиться за тело записи. Это полезно, когда компания, автор, система или идентичность хочет публично поддержать подтверждение своим именем. Но подпись также раскрывает открытый ключ, а в зависимости от пути подписания может раскрыть и связанные с кошельком сведения. Для публичных подтверждений это, возможно, именно то, что вам нужно. Для чувствительных запечатанных записей — обычно нет.
Вот почему подписи необязательны и никогда не требуются. Запись только по хешу подтверждает существование сама по себе. Запечатанная неподписанная запись может избежать привязки какой-либо идентичности отправителя к записи. Подписанная запись добавляет подотчётность, когда подотчётность и есть цель. Правильный выбор полностью зависит от рабочего процесса.
Одна оговорка, которую стоит сказать прямо: проверенная подпись доказывает, что ключ подписал тело записи. Она не доказывает, что тот же ключ отправил транзакцию или выбрал её блочное время — кто угодно может заново опубликовать идентичное тело. Читайте проверенную подпись как «подписано этим ключом», а не «опубликовано этим ключом в это время».
Что публично в подтверждении на основе Merkle?
Подтверждение на основе Merkle публикует единственное корневое обязательство — и ничего больше о пакете.
Вместо того чтобы помещать тысячи хешей напрямую в метаданные Cardano, вы можете построить дерево Merkle из упорядоченного списка элементов и опубликовать всего один 32-байтовый корень. Корень публичен; полный список элементов остаётся вне блокчейна. Позже любой, у кого есть доказательство включения, может показать, что один конкретный элемент был в зафиксированном списке, и это доказательство сворачивается обратно к публичному корню.
Это правильный инструмент всякий раз, когда блокчейн должен зафиксировать большой пакет, не раскрывая каждый элемент в нём:
- артефакты непрерывной интеграции и релизов;
- ежедневные журналы аудита;
- результаты работы ИИ с содержимым и манифесты наборов данных;
- свидетельства для комплаенса;
- наборы юридических доказательств.
Корень доказывает обязательство по списку в целом; нераскрытые элементы не выдают ничего. Компромисс — организационный: ваша компания должна сохранять список листьев вне блокчейна и материал доказательств включения, потому что один корень их не воспроизведёт. Эта схема подробно разобрана в статье одна запись для тысяч файлов.
Может ли CardanoWall прочитать мои запечатанные файлы?
По замыслу — нет. Запечатывание и расшифровка происходят с ключами, которые остаются на вашем устройстве, а шлюз построен так, что никогда не получает закрытые ключи, нужные для расшифровки запечатанного содержимого.
Шлюз действительно видит публичные данные записи, шифротекст, метаданные расчёта стоимости и публикации, активность аккаунта и сведения о хранилище. Ему не нужен ваш Identity Seed или чей-либо закрытый ключ получателя, чтобы опубликовать подтверждение, и эти секреты ему никогда не отправляются.
При этом конфиденциальность — не только свойство протокола. Скомпрометированное устройство, вредоносное расширение браузера, фишинговый сайт, небрежная резервная копия или обычная операционная ошибка всё равно могут раскрыть секреты. Формат записи может удержать корректно запечатанный файл нечитаемым для шлюза; он не может защитить ключ, который пользователь отдал сам. Поэтому практический совет неизменен: оберегайте свой Identity Seed, проверяйте адреса получателей по отдельному каналу для чувствительных данных и используйте доверенное ПО. Статья что видит CardanoWall подробно разбирает эту границу.
Что если я хочу, чтобы хранился только хеш?
Тогда создайте подтверждение только по хешу. Label 309 не требует никакой ссылки на хранилище — запись только по хешу полностью действительна сама по себе. Вы храните исходный файл у себя в тайне и публикуете лишь запись-подтверждение.
Часто это правильная модель для:
- частных договоров;
- конфиденциальных наборов данных;
- внутренних отчётов;
- чувствительных юридических материалов;
- исходных артефактов, которые уже лежат в частном репозитории;
- всего, где публичное хранилище добавило бы риск и не дало бы выгоды.
Компромисс прост. Хеш будет существовать вечно, но если вы потеряете исходный файл, то, возможно, уже не сможете предъявить байты, которые ему соответствуют, — а хеш без подходящих байтов мало что подтверждает. Если этот риск важен для конкретного документа, запечатанное подтверждение — лучший выбор.
Что если я хочу сохранить зашифрованный файл?
Тогда создайте запечатанное подтверждение. Запечатанные подтверждения созданы для случаев, когда исходные байты важны и могут понадобиться позже. Файл шифруется, шифротекст сохраняется или на него ссылаются, а публичная запись фиксирует хеш открытого текста.
Позже любой, у кого есть подходящий ключ, может расшифровать шифротекст и показать, что открытый текст соответствует обязательству в блокчейне. Это подходит для долговременных доказательств, чувствительных записей и данных, которые должны оставаться конфиденциальными, но не должны исчезать. Если вам нужно поделиться конфиденциально с конкретными людьми, статья конфиденциальное раскрытие без публичных файлов — практическое руководство.
Если коротко
- Cardano хранит запись-подтверждение, а не ваш файл.
- Запись может нести хеши, подписи, корни Merkle, данные конверта шифрования и контентно-адресуемые ссылки.
- Открытым файлам никогда не нужно попадать в Cardano.
- Запечатанные файлы живут как шифротекст вне Cardano и проверяются позже относительно хеша открытого текста в блокчейне.
- Получатели обнаруживаются локально через расшифровку, а не через чтение поля получателя в блокчейне.
Вот модель приватности в одну строку: публичные обязательства, частное содержимое, локальная проверка.
Что почитать дальше
- Что такое Proof of Existence и как работает Label 309 — основы, на которых строится запись-подтверждение.
- Что видит CardanoWall и что подтверждение не доказывает — честные пределы.
- Открытый стандарт на label309.org, исходный код на github.com/cardanowall и предложение по метаданным Cardano, которое рассматривают редакторы CIP (PR #1205).