В большинстве случаев разные основы блокчейна накладывают ограничения на то, какие методы доступны инженерам, создающим эти новые системы. Например, Lightning Network стала возможной благодаря использованию функции временной и хэш-блокировки сценария Биткойн. Блокчейны с меньшими ограничениями на время выполнения имеют доступ к многоуровневым протоколам, которые зависят от расширенных механизмов проверки доказательств, которые обеспечивают функциональность вне сети, помимо простой передачи прав собственности (например, оптимистичный и zk-rollups).

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

Один из таких протоколов, statechains, был первоначально предложен Рубеном Сомсоном в 2018 году. Описанная им конструкция позволяет передавать закрытые ключи вне сети. После внесения биткойнов в цепочку состояний ключевой материал может быть передан между пользователями мгновенно и без дополнительных сборов внутри цепочки.

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

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

Для передачи этой «монеты состояния» инициируется интерактивный протокол между объектом Statechain, отправителем и получателем. Ни одна из сторон никогда не имеет полного ключа, и ключи криптографически обновляются (настраиваются) при каждой передаче. При каждой передаче для получателя создается новая транзакция резервного копирования. Как именно это работает в реализации цепочки состояний Mercury, мы вскоре рассмотрим, поскольку она заметно отличается от первоначального предложения Рубена.

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

В цепочке состояний каждая транзакция резервного копирования предварительно подписывается и передается вне цепочки. Это похоже на сеть Lightning, поскольку текущий держатель ключа должен отслеживать сеть для широковещательной передачи этих старых транзакций резервного копирования. Также существует объект Statechain, который содержит часть ключа. Основное отличие состоит в том, что в одиночку Statechain Entity не может украсть средства. Чтобы украсть средства, им придется либо вступить в сговор со старым держателем государственной монеты, либо ранее владеть этой государственной монетой.

На самом высоком уровне наше понимание цепочек состояний со временем эволюционировало. Первая и пока единственная реализация, Mercury, отклонилась от предложения Рубена по двум причинам: она была создана до активации taproot-schnorr, а обновление протокола биткойнов ANYPREVOUT еще не было предложено для активации.

В качестве замены сигнатур Шнорра реализация Mercury использует библиотеку ECDSA для многосторонних вычислений 2 из 2. Если бы ANYPREVOUT был активен, каждая новая транзакция резервного копирования обновляла бы свой порядковый номер, что позволило бы новым держателям транзакций резервного копирования перезаписывать любые старые транзакции резервного копирования, которые злонамеренно или случайно транслируются. Поскольку эта функция недоступна, Mercury использует функцию синхронизации биткойнов в уменьшающемся порядке: каждая новая транзакция резервного копирования имеет более позднюю временную блокировку, чем предыдущая. Это дает текущему держателю ключа закрепленное по времени преимущество в гонке за подтверждением своей транзакции резервного копирования в случае широковещательной передачи любых старых транзакций резервного копирования.

Statechain использует

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

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

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

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

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

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

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

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

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

Реклама: до 20-кратной маржи на FTX.

Подписаться

Источник