Использование Taproot и FROST для улучшения конфиденциальности Биткоина

Использование Taproot и FROST для улучшения конфиденциальности Биткоина

Группа разработчиков в Малайзии работает над объединением FROST и Taproot для создания федеративных монетных дворов с протоколом Fedimint.

«Эй, я только что получил приглашение на хакатон в Малайзии», — сказал Эван Лин, отрывая меня от моего ноутбука в рабочем пространстве Taipei Hackerspace. «Звучит волшебно, ответил я. «Могу ли я присоединиться?"

Я неделями не мог найти себе место. Лин разрушал мое представление о том, что такое конфиденциальность биткоинов. «Это частное мероприятие, а не типичный хакатон. Я могу по крайней мере спросить».

Спустя один рейс, две недели, а также шесть минут решения логистических вопросов с помощью голосовых сообщений, мы гуляли по улицам Куала-Лумпура, Малайзия, усыпанными дурианом, с Ллойдом Фурнье, размышляя об общей страсти к сохранению конфиденциальности биткоинов. Теперь мы были командой. Мы решили обновить Fedimint, используя неполную криптографию, несколько набросанных заметок, а затем продемонстрировать его на первой встрече BitDevs в Малайзии пятью днями позже.

За несколько месяцев до этого Фурнье присоединился к Нику Фэрроу для разработки FROST, новой передовой криптосистемы, использующей преимущества Taproot. Будучи источником кадровых ресурсов для Биткоина, Фурнье также тесно сотрудничал с Лином, который является участником Bitcoin Dev Kit (BDK). Мы с ним провели последние несколько недель, улучшая конфиденциальность PayJoin при флуоресцентном освещении в предрассветные часы в Тайбэе, Тайвань, поэтому у нас установились доверительные отношения, чтобы вместе наобум вступить в проект. Приглашение Фурнье было шагом к краю. Чтобы продемонстрировать миру передовую криптографию, нам пришлось поместить FROST в приложение. Fedimint привлек внимание всех своей новой моделью хранения. Он оказался вполне подходящим.

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

Любой может отправить биткоины на Fedimint в обмен на токены E-cash. Попечители совместно хранят биткоины сообщества в кошельке с мультиподписью. Токены E-cash — это всего лишь некоторые данные: слепые подписи, которые позже можно обменять на некоторое количество биткоинов. Это сверхмощные банкноты. Отправьте инвойс Lightning и свои токены E-cash для «привязки». Вы можете получить E-cash в текстовом сообщении, и чтобы никто другой не смог их взять, федерация перевыпустит подписи. Подписи затемненные, поэтому их можно использовать в условиях полной анонимности. Любой может отправить E-cash на Fedimint, чтобы получить биткоины.

Чтобы разделить ответственное хранение между попечителями, Fedimint использует существующие биткоин-адреса с мультиподписью Script. Пороговое количество попечителей входит в систему для перевода средств. Эти средства легко найти в блокчейне, поскольку мультиподпись Script записывает количество подписантов и общее количество попечителей в блокчейн, чтобы все могли их увидеть. Несмотря на то, что E-cash являются анонимными, компании, занимающиеся отслеживанием, могут идентифицировать входные и выходные привязки и кластерные фонды сообщества. Используя последнее обновление Биткоина, Taproot, наша команда решила эту проблему конфиденциальности, переключив мультиподпись Script на FROST.

FROST

FROST (Flexible Round Optimized Schnorr Threshold) — это новый мощный тип мультиподписи, который объединяет части ключа, имеющиеся в членов федерации, в общий ключ FROST. Чтобы потратить средства, находящиеся под этим ключом, каждый из порогового количества членов должен создать долю подписи. Затем доли объединяются для формирования единой подписи, которая действительна для общего ключа FROST. Члены координируют действия вне сети. Транзакции FROST неотличимы от обычных односторонних транзакций Taproot, поэтому прекращают мерзкую слежку. Кроме того, FROST позволяет создавать гибкие федерации, позволяя новым попечителям присоединяться без координирования каждого члена федерации для повторного создания новых ключей.

Нашим первым шагом было понять, как федерация достигала консенсуса в каждом раунде подписания. Алгоритм консенсуса Fedimint может терпеть ненадлежащее поведение до трети федерации и при этом достигать консенсуса. Целый день у классной доски понадобился, чтобы расшифровать алгоритм консенсуса, а еще один – на настройку начальной генерации ключа FROST.

Подходим к консенсусу Fedimint (изображение предоставлено авторами)
Подходим к консенсусу Fedimint (изображение предоставлено авторами)

Мы обманули генерацию ключей, сделав все это в памяти одного доверенного устройства. В соответствии с передовой практикой процедура, состоящая из двух раундов, сохраняет секретные доли общего ключа FROST, которые когда-либо существовали только на устройстве этого человека. Полностью секретный ключ никогда не реконструируется.

Подходим к консенсусу (подписи)

Мы протестировали транзакцию с привязкой до того, как изменили код кошелька Fedimint, и были озадачены. Из-за ограничения слепых подписей токены Fedimint E-cash (похожие на выходы CoinJoin) ограничены предустановленными номиналами, поэтому каждый перевод токена E-cash имеет установленную анонимность. Ожидание, ожидание и еще ожидание, Лин рассмеялся, что мы, должно быть, что-то напутали.

Оказывается, стандартные номиналы банкнот, которые мы установили, требовали, чтобы монетный двор сгенерировал около 300 000 подписей, чтобы выпустить достаточно E-cash, чтобы покрыть сумму привязки. Есть предложения исправить это, используя вместо этого анонимные учетные данные. Мы перезагрузили монетный двор, чтобы использовать гораздо более высокие номиналы по умолчанию, так как мы просто проводили тестирование. В конце концов, хакатоны для хакеров.

К счастью, Bitcoiner Malaysia только что сформировалась и была готова к своему первому событию. Мы – четыре хакера, ведущий крупнейшего китайского биткоин-подкаста о и ученый на пути к получению первой в Малайзии степени доктора наук в области Биткоина – планировали показать в конце недели наше доказательство работы на BitDevs.

Перед нами оставалась самая трудная задача: федеративные подписи. Чтобы создать общий доступ в FROST, подписанты должны согласиться на общую случайность, так называемые одноразовые номера. В случае Fedimint подписывающие стороны используют консенсус, чтобы договориться об уникальном одноразовом номере для каждого члена федерации, присоединяющегося к сеансу подписания. Затем подписывающие участники объединяют доли в полную подпись.

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

Нереальный опыт

Со стаканами воды наготове и включенным во весь звук Unreal Tournament, Фурнье сел за клавиатуру, а мы, устроившись позади, швырялись исправлениями ошибок, названиями переменных и командами. Наступило 1:30 ночи, и наши веки отяжелели. Еще несколько ударов по клавиатуре и, как по волшебству, привязка сработала. Каждый подписант будет получать доли подписи от других и выкупать E-cash анонимных пользователей в обмен на биткоины. Раздалось «Безупречная победа». Мы недоверчиво обрадовались.

Но это еще не конец. На следующий день мы запустили код и сразу увидели проблемы. Нам повезло только накануне. Сработало только один раз из трех-четырех попыток. Мы часами прочесывали код. После обеда мы все еще беспокоились, что нам придется еще раз засидеться до поздней ночи. К нашему счастью, мы обнаружили проблему: классическую погрешность индексации. В 17:00 FROSTimint был готов к презентации.

После того как мы собрались на BitDevs, участники выбрали для знакомства формат, который они называют «группой поддержки». Фурнье вернул нас к реальности упомянув технические нюансы. На первом митапе обсуждались вопросы будущего и слабые стороны попечителей. Как выбрать попечителей? Могут ли они иметь частичные резервы? Самое главное, как мой любимый магазин супа с лапшой может выйти за рамки фиата с помощью Fedimint?

Это гостевой пост Дэна Гулда и Ника Фэрроу. Гулд – разработчик, работавший над приложениями TumbleBit, PayJoin и Chaincase, спонсируемый Human Rights Foundation и Geyser Grants. Фэрроу – австралийский Биткоин-инженер, наиболее известный своим платежным процессором SatSale с открытым исходным кодом. Высказанные мнения являются их собственными и не обязательно отражают точку зрения BTC Inc. или Bitcoin Magazine.

Foundation Devices хочет создать iPhone в сфере Биткоин-оборудования Foundation Devices хочет создать iPhone в сфере Биткоин-оборудования Соучредитель и генеральный директор Foundation Devices Зак Герберт ставит перед собой задачу создать Биткоин-продукты, которые будут такими же элегантными и удобными в использовании, как устройства Apple, но при этом будут защищать конфиденциальность пользователей и будут созданы с использованием открытого исходного кода. Фрэнк Корва 16 июля 2024
Биткоин как уровень нотариального заверения политических соглашений Биткоин как уровень нотариального заверения политических соглашений Оценка потенциальной роли Биткоина в геополитике и международной дипломатии в гипербиткоинизированном мире. Микеле Уберти 14 июля 2024
Биткоин-узел для каждого Биткоин-узел для каждого Почему самостоятельная обработка вашего биткоина вместо делегирования этой третьей стороне имеет решающее значение для безопасности самой системы Биткоина. Оуэн Кемейс 13 июля 2024