MasterInvestИнвестиции & Заработок · masterinvest.info

[[alloc] init] представила предложение Shielded Bitcoin для конфиденциальных транзакций в сети Bitcoin

24-09-2026, 17:36
[[alloc] init] представила предложение Shielded Bitcoin для конфиденциальных транзакций в сети Bitcoin

Bitcoin Magazine

[[alloc] init] представила предложение Shielded Bitcoin для приватных биткоин-транзакций

Shielded Bitcoin — это предложение исследователей [[alloc] init] Клары Шихельман, Миши Комарова и Алексея Москвина создать новый метапротокол конфиденциальности на базовом уровне Bitcoin, который позволит совершать защищённые биткоин-транзакции без операторов, софтфорков и других изменений консенсуса Bitcoin. Белую книгу можно найти здесь, а анонс в блоге — здесь. 

Протокол определяет структуру транзакций и протокол индексирования для транзакций с высокой степенью защиты конфиденциальности, используя при этом Bitcoin PIPEs для ввода средств в систему и вывода из неё. Подробнее о механизме PIPEs — в конце статьи. 

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

Однако все детали существенно отличаются. 

Транзакция Shielded Bitcoin — это просто блок данных с префиксом (например, «shbtc:»), включённый в транзакцию Bitcoin с помощью OP_RETURN, поля witness или другого способа передачи данных. Для Bitcoin она ничего не значит: сеть Bitcoin никак её не проверяет и не применяет к ней никаких правил. Недействительные транзакции Shielded Bitcoin вполне могут попасть в блокчейн. Задача индексатора Shielded Bitcoin, который пассивно отслеживает блокчейн (то есть узла), — игнорировать такие транзакции, если они не проходят проверку, и не учитывать их при обновлении балансов сети.

Индексатор не удаляет ноты из набора неизрасходованных нот, как Bitcoin удаляет UTXO. Вместо этого он использует набор нуллификаторов. Благодаря ему пользователь может публично опубликовать зашифрованное доказательство и нуллификатор того, что нота была потрачена, не раскрывая, какая именно нота была потрачена. Идея в том, что вместо проверки наличия ноты в «наборе неизрасходованных нот» проверяется, использовался ли уже нуллификатор. Индексаторы строят дерево Меркла, которое растёт бесконечно и в которое можно только добавлять элементы: в нём содержатся все созданные выходные ноты, а также набор нуллификаторов.

Чтобы использовать этот протокол, вам нужны только узел Bitcoin и индексатор Shielded Bitcoin. Для возврата средств не требуется ни поставщик услуг, ни координатор, ни какое-либо состояние вне блокчейна. Протокол работает так же, как Bitcoin в блокчейне: нужны только ваш узел, индексатор и ключи.

Кошелёк каждого пользователя выводит главный секретный ключ, из которого создаются все остальные наборы ключей.

Это очень похоже на HD-кошелёк в Bitcoin. Связь между ними позволяет генерировать множество наборов адресов. Sk_spend — ваш приватный ключ, sk_nf используется для аннулирования выходных данных заметок, vk_in используется для расшифровки и просмотра входящих заметок, vk_out — для просмотра исходящих транзакций, а также sk_view используется для генерации адреса получения средств. 

Когда пользователь хочет предоставить кому-то адрес, чтобы тот отправил ему средства, он генерирует значение диверсификатора d аналогичное значению деривации, а затем умножает это значение на свой sk_viewПолученный открытый ключ, pk_d и d являются адресом пользователя. 

Затем отправитель генерирует случайное значение — r_seed, необходимое для шифрования выходной записи, а также для создания нуллификатора (к этому мы ещё вернёмся). Выходы транзакции содержат только три зашифрованных элемента: значение выхода, d значение, которое получатель передал отправителю, и значение r_seed. Отправитель использует секретную эфемерную пару ключей и открытый ключ получателя, чтобы создать общий секрет. Обе стороны могут получить один и тот же секрет, умножив свой закрытый ключ на открытый ключ другой стороны. Выходная запись шифруется с помощью этого общего секрета, а эфемерный ключ sk_eph включается в незашифрованном виде, чтобы получатель мог создать общий секрет. 

Для входных данных на схеме необходимы две вещи, чтобы транзакция была действительной: публичный нуллификатор для потребляемых выходных записей и доказательство с нулевым разглашением, подтверждающее, что 1) выходная запись включена в дерево Меркла записей, 2) транзакция авторизована соответствующим sk_spend ключ, 3) нуллификатор корректно вычислен и 4) инфляции не произошло.

Если вы обратите внимание на изображение выше, нуллификатор использует sk_nf ключ, значение ρ, полученное из r_seed, и позицию ноты в дереве Меркла выходов нот. Доказательство с нулевым разглашением подтверждает всё это, поэтому вместо удаления потраченных нот можно просто подсчитывать повторяющиеся нуллификаторы. Хотя вы никогда не знаете, какому выходу ноты соответствует нуллификатор, доказательства с нулевым разглашением в каждой транзакции гарантируют, что каждый добавленный в набор нуллификатор получен из действительного выхода ноты. Пока повторов нет, это обеспечивает такую же защиту от двойного расходования.

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

С точки зрения конфиденциальности это действительно очень хорошо спроектированная система, сопоставимая, например, с защищёнными пулами Zcash. При входе в метапротокол и выходе из него следует учитывать некоторые аспекты конфиденциальности; они будут подробно рассмотрены в готовящейся к публикации статье. Здесь нет необходимости оценивать уровень конфиденциальности или периодически выполнять ремикширование, как в случае с CoinJoin.

Итак, привязка. Цель — создать механизм привязки с помощью PIPEs v2 — схемы шифрования со свидетельством. PIPEs позволяют зашифровать приватный ключ с помощью программы/механизма, который не раскроет ключ, пока вы не предоставите ZK-доказательство выполнения определённого условия (например, состояния какого-либо UTXO, подтверждения транзакции и т. д.). Это позволит механизму привязки работать без оператора, федерации или третьей стороны, хранящей средства.

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

План Shielded Bitcoin и следующий этап их работы — механизм привязки, позволяющий пользователям вносить средства в Shielded Bitcoin с помощью криптографически контролируемых ключей на основе PIPEs. Затем эти средства можно будет «разблокировать», создав ZK-доказательство легитимности транзакций вывода из привязки, подтверждённых в блокчейне.

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

Эта публикация [[alloc] init] представляет предложение Shielded Bitcoin для приватных транзакций в Bitcoin. Впервые она появилась в Bitcoin Magazine; автор — Shinobi.

Источник: BitcoinMagazine