Изображение
Сайдчейн

Федеративные сайдчейны - это оригинальная реализация сайдчейна Биткоина

Федеративные сайдчейны используют управление ключами для обеспечения безопасности и обеспечения функциональности за пределами основной сети Биткоина.
29 июля 2022

Федеративные сайдчейны в настоящее время являются единственным приведенным в действие типом сайдчейна Биткоина. Идея использования системы федеративной привязки и консенсуса фактически была приложением к оригинальному техническому документу по сайдчейнам. Не было конкретного проекта для любого типа двусторонней привязки с участием майнеров, поэтому федеративная привязка была описана, как способ привести в действие сайдчейн прямо сейчас и перейти на двустороннюю подтвержденную привязку с использованием доказательств простой проверки платежей (SPV), аналогично как у софтчейнов, когда было конкретно спроектировано что-то, что есть безопасным и развертываемым.

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

Общая идея состоит в том, чтобы эффективно использовать цепочку блоков, в которой выбранная группа доверенных сторон хранит биткоины, привязанные к системе с использованием мультиподписи, и создает блоки в сайдчейне, подписывая их криптографическими ключами вместо использования доказательства работы (Proof-of-Work). Вся модель безопасности основана на наличии достаточно большого набора отдельных участников в группе или федерации, которые очень географически распределены и широко известны.

Федерации используют пороговое количество участников как для хранения биткоинов в основной сети, так и для подписи блоков, т. е. мультиподпись «5 из 7». Это делается вместо того, чтобы требовать подписи всех семи участников, чтобы сбалансировать два основных риска такой системы: кражу и потерю. Федерация совместно может украсть все средства, заблокированные в федеративном сайдчейне, если все решат сотрудничать для этого; именно поэтому вся модель безопасности основана на множестве различных субъектов в различных правовых юрисдикциях. 

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

Это делает модель безопасности системы двунаправленной с точки зрения пороговых величин безопасности. Как указывалось ранее, для того, чтобы средства были украдены, пять из семи участников этой гипотетической ситуации должны вступить в сговор или быть принуждены к сговору, чтобы украсть средства сайдчейна. Однако только трое из семи участников должны потерять, уничтожить или быть принуждены к деактивации своих ключей, чтобы средства сайдчейна были заморожены и не могли быть перемещены – возможно, навсегда. Пороговые величины представляют собой баланс между этими двумя рисками.

Оба они одновременно должны быть достаточно высокими, чтобы сделать оба наихудших случая маловероятными.

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

Liquid 

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

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

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

Пороговое большинство (в нашей гипотетической федерации «5 из 7», описанной выше) может согласиться на цензуру определенных транзакций или UTXO, если у них у всех есть для этого основания, например подозрение или подтверждение незаконной деятельности. В таком случае у них был бы даже рациональный стимул для этого, чтобы не давать правительствам повода преследовать всю систему. Confidential Transactions/Assets могут обеспечить достаточно высокий уровень конфиденциальности и поэтому даже если у федерации есть причина подвергать цензуре определенные типы транзакций, им будет очень трудно выбрать их для этого.

Транзакция привязки на Liquid – это относительно простой двухэтапный процесс. Пользователь, желающий подключиться, берет мультиподписной адрес федерации, а затем «настраивает» каждый участвующий в нем открытый ключ, используя «оплату за контракт» с адресом Liquid, который он контролирует, для создания новых открытых ключей. Члены федерации могут получить соответствующие закрытые ключи, как только узнают используемый адрес Liquid. 

Пока эта информация не будет раскрыта, никто, даже федерация, не узнает, что транзакция на этот настроенный адрес является привязкой Liquid. Затем пользователь транслирует транзакцию в основную сеть и ждет 100 подтверждений. После того как количество подтверждений будет получено, пользователь может отправить транзакцию в сети Liquid, чтобы переслать свои монеты себе. Эта транзакция использует специальный вход, который содержит адрес Liquid, с помощью которого они настроили ключи федерации, подпись, доказывающую, что они контролируют ее, и доказательство Merkle, показывающее, что транзакция привязки к основной сети имеет не менее 100 подтверждений.

Процесс вывода намного проще. Пользователь создает транзакцию, которая сжигает биткоины на Liquid, используя OP_RETURN, содержит адрес для отправки в основной сети и специальное доказательство с нулевым разглашением от одного из членов федерации (какого именно, скрыто). Когда члены федерации увидят такую ​​транзакцию с действительным доказательством членства, они подпишут отзыв в основной сети. 

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

Что касается управления ключами и безопасности обработки, Blockstream разработал аппаратные модули безопасности (HSM) для обработки ключей и выполнения операций подписи. Эти устройства защищают ключи, используемые для подписи блоков и входов/выходов, защищая их от несанкционированного доступа или извлечения ключей. Чтобы обеспечить некоторые средства восстановления в случае потери ключей неисправными устройствами, а также для защиты от извлечения ключа в злонамеренных целях, резервные копии каждого членского ключа хранятся в зашифрованном виде, требующем, чтобы этот член и Blockstream сотрудничали с целью расшифровки ключа для загрузки в новый HSM. Ни одна из сторон не может расшифровать резервную копию самостоятельно. 

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

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

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

Если в течение одного месяца четыре пятых блоков сигнализируют об изменении федерации, сеть «разветвляется», чтобы признать новую федерацию в качестве подписанта блоков. Затем сеть начинает использовать новые адреса привязки с новой федерацией, но по-прежнему распознает старые в течение дополнительного месяца, чтобы гарантировать, что никакие привязки не станут недействительными во время изменения федерации. 

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

Rootstock (RSK)

Rootstock – это федеративный сайдчейн со множеством конструктивных отличий от Liquid. Во-первых, это, по сути, копипастный клон Ethereum с точки зрения функциональности. Он полностью поддерживает Solidity, язык сценариев, используемый Ethereum, так что любой контракт, развернутый на Ethereum, легко переносим на Rootstock. Основанием для этого, очевидно, является то, что Ethereum имеет большой спрос и может предоставить функциональность, на которую Биткоин не способен. Очевидно, что в архитектуре Ethereum есть много недостатков и рисков, но нельзя отрицать, что на нее есть спрос.

Еще одно важное отличие с точки зрения архитектуры заключается в том, что делает федерация – она совместно управляют мультиподписью, которая хранит средства в основной цепочке, но федерация в обычных обстоятельствах не участвует в добыче блоков. Это делается биткоин-майнерами посредством объединенного майнинга, что позволяет им одновременно осуществлять майнинг Биткоин и Rootstock. 

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

Однако участие майнеров не является абсолютным. Пока большинство биткоин-майнеров также добывают Rootstock, они полностью контролируют организацию транзакций и их майнинг в блоки, но если этот процент майнеров упадет до половины (или немного ниже), существуют правила консенсуса, разрешающие Федерация подписывает контрольные точки, предотвращающие повторное возращение к контрольным точкам. Если скорость хэширования упадет более резко, они даже смогут взять на себя роль подписантов блоков, как члены федерации Liquid. Это очень динамичная система, которая для поддержания развития блокчейна может функционировать как без майнеров, так и без федерации.

Процесс привязки очень прост: отправьте биткоин на адрес привязки RSK, а затем дождитесь достаточного количества подтверждений. После того, как накопится достаточное количество подтверждений, смарт-контракт Solidity в сайдчейне распознает транзакцию и зачислит ее на счет в сайдчейне, контролируемый тем же ключом, к которому был привязан UTXO, к которому вы привязались. Вывод также контролируется смарт-контрактом, который будет связываться с HSM федерации, которые подпишут транзакцию снятия средств с основной сети в определенное время, указанное в контракте.

Когда Roostock впервые запустился, все, что требовалось для привязки, – это то, чтобы большинство HSM федерации подписали транзакцию после того, как об этом сказал смарт-контракт на сайдчейне. В 2020 году внедрили новый механизм привязки под названием POWPeg. Это обновление позволило HSM фактически проверять доказательства SPV от майнеров. HSM теперь отказываются подписывать транзакции вывода, если только большинство текущего набора майнеров RSK не основано на транзакции с момента инициации вывода. 

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

В завершение

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

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

Это гостевой пост Шиноби, ведущего Биткоин-подкастов. Высказанные мнения автора являются его собственными и не обязательно отражают точку зрения BTC Inc. или Bitcoin Magazine.