📢 Gate.io Пост Тег Вызов: #MyFavoriteToken# Опубликуйте и ВЫИГРАЙТЕ $100!
Есть любимый токен, о котором вы волнуетесь? Будь то технические инновации, поддержка сообщества, или рыночный потенциал, присоединяйтесь к событию #MyFavoriteToken# и поделитесь с нами своими идеями!
💡 Как принять участие:
Bitcoin Magazine: В чем сложности Rollup?
Источник: Bitcoin Magazine; Подборка: Пять Бат, Золотые Финансы
Роллапы в последнее время стали фокусом масштабирования Биткойна и стали первым действительно 'отбирающим шоу' у Сети Lighting, привлекая более широкое внимание. Роллапы предназначены стать вторым уровнем вне блокчейна, который не ограничен или ограничен ограничениями ликвидности Сети Lighting, то есть конечному пользователю нужно заранее выделить (или 'одолжить') средства, чтобы получить деньги, или промежуточный узел-маршрутизатору нужен баланс канала, чтобы обеспечить непрерывный поток средств от отправителя к получателю.
Эти системы изначально работали на платформе Ethereum и других завершенных системах Тьюринга, но в последнее время акцент сместился на их адаптацию к блокчейну на основе UTXO (например, BTC). В этой статье не будет обсуждаться текущая реализация на BTC, а будет обсуждаться функциональность идеализированного Rollup, которую люди давно преследуют, и которая зависит от возможности прямой верификации доказательства с нулевым разглашением (ZKP) на BTC, что в настоящее время не поддерживается.
Основная архитектура Roll следующая: отдельный счет (в BTC - UTXO) хранит балансы всех пользователей в Rollup. Этот UTXO содержит обязательство, представленное в виде корня Merkle-дерева, обязательство о текущих балансах всех имеющихся счетов в Rollup. Все эти счета авторизованы с помощью открытых и закрытых ключей, поэтому для осуществления вне блокчейна пользователи все равно должны подписывать секретным ключом некоторый контент. Эта часть структуры позволяет пользователям в любое время выйти без разрешения, просто предоставив доказательство того, что их счет является частью Merkle-дерева, они могут односторонне выйти из Rollup, без разрешения оператора.
Оператор Rollup должен включать ZKP в транзакцию, чтобы обновить корень merkle баланса счета в блокчейне в процессе завершения вне блокчейна транзакции. Если нет этого ZKP, транзакция будет недействительной и не может быть включена в Блокчейн. Это доказательство позволяет людям проверить, были ли все изменения на счете вне блокчейна правомерно авторизованы владельцем счета, а также, не было ли злонамеренного обновления баланса оператором для кражи средств пользователей или недобросовестного перераспределения их другим пользователям.
Проблема заключается в том, что если в блокчейне публикуется только корень дерева Меркля, который пользователи могут просматривать и получать к нему доступ, то как они могут разместить свои ветви в дереве, чтобы иметь возможность выйти без разрешения, когда им это нужно?
Подходящий Rollup
В подходящем 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 и действительно реализуем односторонние снятия пользователей, какой это будет?