ELI5

ELI5 · Часть 4 из 7

Запечатать файл «до востребования»

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

В Label 309 это называется запечатанным подтверждением существования, и оно позволяет сделать именно это. Вы можете выложить зашифрованный файл в открытый доступ, адресовав его одному или нескольким конкретным людям, и проставить на нём публичную дату. Все видят, что нечто запечатано, и видят, когда именно. Но содержимое остаётся под замком, пока нужный человек не откроет его своим ключом.

Запертый ящик на городской площади

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

Вот что такое запечатанное подтверждение существования по Label 309. Зашифрованное содержимое — это ящик. Публичная отметка времени — момент, когда его поставили на площади. А ключ есть лишь у того, для кого вы его запечатали.

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

Дата публична, содержимое — нет

Две части запечатанного подтверждения существования живут в совершенно разных местах, и в этом весь смысл.

  • Дата — для всех. Она лежит в блокчейне Cardano под меткой 309 — той же записи с защитой от подмены, что и в любом обычном подтверждении существования. Никто не сдвинет её, не изменит задним числом и не сотрёт втихую.
  • Содержимое — для узкого круга. Сам зашифрованный файл хранится отдельно, в постоянном хранилище с адресацией по содержимому — например, Arweave или IPFS, — и для любого, у кого нет подходящего ключа, это бессмысленный набор символов. Блокчейн держит лишь маленькую запертую копию ключа, по одной на каждого получателя: ни самого файла, ни имён получателей там нет.

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

Хранится «до востребования»

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

А как этот человек узнаёт, что сообщение ждёт именно его? Он просто примеряет свой ключ к каждой запертой копии. Если один из замков поддался — значит, сообщение с самого начала было адресовано ему. Если не подошёл ни один — он не узнаёт ничего, даже того, что когда-либо был среди возможных адресатов. Обнаруживает сообщение лишь тот, для кого оно и было, — просто примерив ключ. (Одна важная оговорка: при классическом замке даже посторонний, у которого уже есть точный адрес предполагаемого получателя, всё равно не сможет подтвердить, что какая-то из копий адресована ему; постквантовый замок по умолчанию скрывает от обычного наблюдателя ровно то же самое, но этого, более сильного обещания не даёт. Подробнее — в разделе Кто может это прочитать.)

Несколько человек, несколько ключей

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

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

Что публично, а что нет

Запечатанное подтверждение существования по Label 309 показывает миру, что сообщение существовало в определённое время, — плюс цифровой отпечаток содержимого и примерное число получателей, — и ничего сверх того. Содержимое остаётся нечитаемым, а адрес получателя в записи не фигурирует — пока нужный ключ не откроет ящик. А поскольку запись всегда привязана к отпечатку открытого текста, тот, кто её открыл, может доказать, какое именно содержимое получило отметку времени. О том, кто может и кто не может читать эти файлы — включая ту единственную гарантию приватности, которая различается у классического и постквантового замков, — см. Кто может это прочитать; полная конструкция описана в техническом разделе.