Новости · 技术生态

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

Размер текста

Биткойн Журнал

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

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

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

Его дизайн во многом повторяет дизайн Биткойна; существует эквивалент UTXO (заметка), транзакции используют заметки в качестве входных данных, как обычная биткойн-транзакция, свидетель доказывает, что использованные входные данные правильно авторизованы, узлы (индексаторы в случае метапротокола) анализируют историю транзакций и строят текущее состояние того, какие монеты потрачены и неизрасходованы, и т. д. 

Однако все детали совершенно разные. 

Экранированная биткойн-транзакция — это просто блок данных с префиксом (что-то вроде «shbtc:»), включенный в биткойн-транзакцию с использованием OP_RETURN, поля-свидетеля или другого метода передачи данных. Это не имеет никакого значения для Биткойна, сеть Биткойн не делает ничего для его проверки или соблюдения каких-либо правил против него. Вполне возможно, что недействительные транзакции защищенных биткойнов попадут в цепочку, и это работа индексатора защищенных биткойнов, который пассивно наблюдает за блокчейном (читай: узлом), чтобы игнорировать эти транзакции, когда они не проходят проверку, и отказываться применять их для обновления состояния сетевых балансов. 

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

Чтобы использовать этот протокол, все, что вам нужно, — это узел Биткойн и защищенный индексатор Биткойн. Для возврата средств нет необходимости в поставщике услуг, координаторе или каком-либо другом государстве вне сети. Он работает так же, как биткойн в цепочке: все, что вам нужно, это ваш узел/индексатор и ваши ключи. 

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

Подумайте об этом очень похоже на HD-кошелек в Биткойне. С помощью этой связи можно создать множество наборов адресов. 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, и положение заметки в дереве выходных заметок Меркла. Доказательство с нулевым разглашением гарантирует все это, поэтому вы можете просто подсчитывать нулификаторы для повторов вместо удаления потраченных заметок. Несмотря на то, что вы никогда не знаете, какому выводу ноты соответствует обнулитель, доказательства с нулевым разглашением в каждой транзакции гарантируют, что каждый обнулитель, добавленный в набор, получен из действительного вывода ноты. Пока у вас нет повторов, это обеспечивает ту же гарантию двойного расходования. 

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

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

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

Это не требует никаких софтфорков или изменений протокола Биткойна и происходит полностью вне сети. 

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

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

Читать источник

Похожие новости

Ledger заявляет, что организованная преступная группа потратила миллионы на атаки на пользователей аппаратных кошельков

Журнал Bitcoin Magazine Ledger сообщает, что организованная преступная группа потратила миллионы на атаки на пользователей аппаратных кошельков. Производитель а...

Bitcoin Magazine

Ledger предупреждает покупателей не создавать кошельки через реселлера после сообщений пользователей о потерях

Журнал Bitcoin Magazine предупреждает покупателей не настраивать кошельки от реселлера после сообщений пользователей о потерях. Производитель аппаратных кошельк...

Bitcoin Magazine
Продолжить изучениеКаталог данныхПоиск