📢 Gate.io Пост Тег Вызов: #MyFavoriteToken# Опубликуйте и ВЫИГРАЙТЕ $100!
Есть любимый токен, о котором вы волнуетесь? Будь то технические инновации, поддержка сообщества, или рыночный потенциал, присоединяйтесь к событию #MyFavoriteToken# и поделитесь с нами своими идеями!
💡 Как принять участие:
Bitcoin Magazine: с чем сталкиваются роллапы?
Источник: Bitcoin Magazine; Компиляция: Wu Zhu, Golden Finance
Rollups в последнее время стали фокусом увеличения масштаба BTC и стали первым по-настоящему укравшим шоу у Сеть Lighting, привлекая более широкое внимание. Rollups призваны стать вторым слоем вне блокчейна, не ограниченным ядерной Ликвидностью Сеть Lighting, то есть конечный пользователь должен заранее выделить (или "занять") средства, чтобы получить деньги, или промежуточный Узел должен иметь баланс канала, чтобы обеспечить полную передачу средств от отправителя к получателю.
Эти системы изначально работали на платформе Ethereum и других завершенных системах Тьюринга, но в последнее время акцент сместился на их адаптацию на основе UTXO блокчейна (например, BTC). В этой статье не рассматривается текущая реализация на BTC, а обсуждаются функциональные возможности идеализированного Rollup, которые зависят от возможностей, которые BTC в настоящее время не поддерживает, такие как прямая проверка Доказательства с нулевым разглашением (ZKP) на BTC.
Основная структура Roll следующая: отдельный счет (в BTC - UTXO) содержит балансы всех пользователей в Rollup. Этот UTXO содержит обязательство, которое существует в виде корня Merkle-дерева, обязательство о текущих балансах всех существующих счетов в Rollup. Все эти счета авторизованы с помощью открытого/закрытого ключей, поэтому для осуществления расходов вне блокчейна пользователи все равно должны подписать некоторые данные с помощью секретного ключа. Эта часть структуры позволяет пользователям выходить в любое время без разрешения, просто предоставив доказательство того, что их счет является частью Merkle-дерева, они могут односторонне выйти из Rollup без разрешения оператора.
Операторы Rollup должны включать ZKP в транзакцию, чтобы обновить баланс счета в блокчейне в процессе завершения вне блокчейна транзакции с корнем Merkle; без этого ZKP транзакция будет недействительной и не может быть включена в блокчейн. Это доказательство позволяет людям проверить, получено ли правильное согласие владельца счета на все изменения счета вне блокчейна, а также, не является ли оператор злонамеренным при обновлении баланса для кражи средств пользователей или нечестным распределением их другим пользователям.
Проблема заключается в том, что если только корень дерева Merkle опубликован в блокчейне, и пользователи могут просматривать и получать к нему доступ, то как они могут разместить свои ветви в дереве, чтобы иметь возможность свободно выходить в любое время без разрешения?
Подходящий Rollup
В подходящей реализации каждый раз, когда подтверждается новая вне блокчейна транзакция и изменяется состояние счета Rollup, информация непосредственно помещается в блокчейн. Это не вся дерево, это было бы слишком абсурдно, а только информация, необходимая для восстановления дерева. В простой реализации все счета Rollup будут содержать баланс в сводке и счета будут добавляться только в обновленных транзакциях Rollup.
В более продвинутой реализации используется разница в балансе. Это, по сути, краткое изложение финансовых изменений, которые произошли с счетами в процессе обновления. Это позволяет каждому обновлению Rollup содержать только изменения баланса счетов, которые произошли. Затем пользователь может просто просканировать цепочку и «вычислить» текущее состояние баланса счета с начала Rollup, что позволяет восстановить текущее состояние баланса счета для дерева Меркля.
Таким образом, это позволяет сэкономить значительные расходы и пространство Блок (тем самым сэкономив средства), при этом по-прежнему позволяет пользователям гарантировать доступ к информации, необходимой для одностороннего выхода. Правила rollup требуют включения этих данных в официальный rollup, предоставляемый пользователям с использованием Блокчейна, то есть транзакции, не содержащие суммарных счетов или разницу счетов, считаются недействительными.
Срок действия
Еще один способ решения проблемы доступности данных пользовательского вывода - размещение данных в другом месте, отличном от Блокчейна. Это вводит тонкие вопросы, поскольку rollup все равно должен гарантировать доступность данных в другом месте. Традиционно для этой цели используются другие блокчейны, специально разработанные в качестве слоя доступности данных для таких систем, как rollup.
Это создает трудности в обеспечении такой же надежной безопасности. Когда данные напрямую публикуются в BTCБлокчейн, правила Соглашение могут гарантировать их абсолютную правильность. Однако, когда они публикуются во внешнюю систему, лучшее, что они могут сделать, это проверить SPV доказательство, т.е. данные уже опубликованы в другой системе.
Для этого требуется доказательство того, что данные существуют в другой в блокчейне, что в конечном итоге является вопросом Машины Oracle. Блокчейн BTC не может полностью проверить что-либо, кроме того, что происходит в его собственном блокчейне, лучшее, что он может сделать - это проверить ZKP. Однако ZKP не может проверить, были ли данные Блока с rollup действительно переданы публично после их создания. Оно не может проверить, действительно ли внешняя информация доступна всем.
Это открыло дверь для атаки задержки данных, то есть создание обязательств по публикации данных и их использование для продвижения rollup, но фактически данные недоступны. Это приводит к тому, что пользователи не могут извлечь средства. Единственным истинным решением является полная зависимость от ценности и структуры стимулов системы вне BTC.
Дилемма
Это создает дилемму для rollup. Когда речь идет о проблеме доступности данных, существует практически двухэтапный выбор между публикацией данных на блокчейне BTC или в другом месте. Этот выбор имеет серьезное влияние на безопасность и суверенитет rollup, а также на его масштабируемость.
С одной стороны, использование BTC в качестве уровня доступности данных для rollup устанавливает жесткий предел масштабируемости. Блоки ограничены, что устанавливает предел для количества rollup, которые могут существовать одновременно, и общего количества транзакций, которые могут быть обработаны вне блокчейна. Каждое обновление rollup требует блока в соотношении с количеством счетов, у которых изменился баланс с момента последнего обновления. Информационная теория позволяет только сжатие данных до определенной степени, так что здесь нет больше потенциала для расширения.
С другой стороны, использование различных слоев для обеспечения доступности данных устраняет жесткий предел масштабируемости, но также вносит новые вопросы безопасности и суверенитета. В случае Rollup, использующего BTC для обеспечения доступности данных, если данные, которые пользователь хочет извлечь, не были автоматически опубликованы в блокчейне, состояние Rollup не может измениться. При использовании Validiums это обеспечение полностью зависит от способности использованных внешних систем сопротивляться обману и скрытию данных.
Теперь любой производитель Блоков на системе доступности внешних данных может захватить средства пользователей BTCRollup, производя Блок, а не фактически транслируя его, чтобы данные были доступны.
Итак, если мы действительно реализуем идеальную реализацию Rollup на BTC, действительно реализуем односторонний вывод пользователей, каково это будет?