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, транзакция будет недействительной и не может быть включена в Блокчейн. Это доказательство позволяет людям проверять, была ли выполнена соответствующая авторизация владельца счета для всех изменений насчетвне блокчейнасчета, а также, не является ли оператор злонамеренным, обновляя баланс для кражи средств пользователя или нечестно перераспределяя их другим пользователям.
Вопрос в том, если только корень дерева Меркля опубликован в блокчейне, и пользователи могут его просматривать и получать доступ к нему, то как они могут добавить свои ветви в дерево, чтобы иметь возможность выйти без разрешения, когда им нужно?
Подходящий Rollup
В подходящей Rollup каждый раз, когда подтверждаются новые вне блокчейна транзакции и изменяется состояние Rollupсчета, информация непосредственно записывается в блокчейн. Не весь дерево, это слишком абсурдно, а только информация, необходимая для восстановления дерева. В простой реализации сводка всех существующих счетов в Rollup будет содержать баланс, а счета будут добавляться только в транзакциях обновления Rollup.
В более продвинутой реализации используется разница в балансе. Это в основном сводка того, какие счета увеличили или уменьшили свои средства в процессе обновления. Это позволяет каждому обновлению Rollup содержать только изменения в остатке счета, произошедшие в нем. Затем пользователь может просто просканировать цепочку и «вычислить» текущее состояние остатка счета с начала Rollup, что позволяет им восстановить текущее состояние остатка счета с помощью Merkle-дерева.
Это позволяет сэкономить много затрат и места в Блоке (тем самым экономя деньги), одновременно позволяя пользователям гарантировать доступ к информации, необходимой для одностороннего выхода. Правила rollup требуют включения этих данных в официальный rollup, предоставляемый пользователям через Блокчейн, при этом транзакции, не содержащие сводку счета или разницу счета, считаются недействительными.
Срок действия
Еще один способ решения проблемы доступности данных пользователей при их извлечении - размещение данных в другом месте, отличном от цепочки блоков. Это вносит тонкость, поскольку rollup все равно должен обеспечивать доступность данных в другом месте. Традиционно для этой цели использовались другие блокчейны, специально разработанные в качестве уровня доступности данных для систем rollup и т. д.
Это создает трудности в обеспечении безопасности на таком же высоком уровне. Когда данные напрямую публикуются на блокчейн BTC, правила соглашения могут гарантировать их абсолютную правильность. Однако, когда они публикуются во внешней системе, лучшее, что они могут сделать, это проверить SPV-доказательство, то есть, данные уже опубликованы в другой системе.
Это требует доказательства того, что данные существуют в других цепях, в конечном итоге это проблема Машина Oracle. Блокчейн BTC не может полностью подтвердить что-либо, кроме собственных событий в своей цепи, лучшее, что он может сделать, это подтвердить ZKP. Однако ZKP не может подтвердить, что данные rollup в Блоке после его генерации действительно были открыто опубликованы. Он не может подтвердить, что внешняя информация действительно доступна всем.
Это открыло дверь для атаки задержки данных, то есть создание обязательств по опубликованию данных и их использование для продвижения rollup, но данные фактически недоступны. Это приводит к тому, что пользователи не могут извлечь средства. Единственным истинным решением является полная зависимость от ценности и структуры стимулов систем, отличных от BTC.
В тупике
Это создает дилемму для rollup. Когда речь идет о проблемах доступности данных, фактически существует двоичный выбор между публикацией данных в блокчейне BTC или в другом месте. Этот выбор имеет серьезное влияние на безопасность, суверенитет и масштабируемость rollup.
С одной стороны, использование блокчейна Биткойн в качестве уровня доступности данных установит жесткий предел масштабируемости для rollup. Блоки ограничены по размеру, что означает, что существует ограничение на количество rollup-ов, которые могут существовать одновременно, а также на общее количество транзакций, которые могут быть обработаны вне блокчейна для всех rollup-ов вместе взятых. Каждое обновление rollup требует определенного количества блоков, пропорционального количеству счетов, у которых изменился баланс с момента последнего обновления. Теория информации позволяет сжимать данные только до определенной степени, и на этом этапе больше нет потенциала для расширения.
С другой стороны, использование разных уровней для обеспечения доступности данных устраняет жесткий верхний предел масштабируемости, но также возникают новые вопросы безопасности и суверенитета. В случае Rollup, использующего BTC для обеспечения доступности данных, если данные, которые пользователь хочет извлечь, не были автоматически опубликованы в блокчейн, состояние Rollup не может измениться. Использование Validiums полностью зависит от способности внешней системы сопротивляться мошенничеству и скрытию данных.
Теперь любой Блокпроизводитель на системе доступности внешних данных может захватить средства пользователей BTCRollup, производя Блок вместо фактического трансляции этого Блока, чтобы сделать данные доступными.
Итак, если мы действительно реализуем идеальную реализацию Rollup на BTC и действительно реализуем односторонний вывод пользователей, каково это будет?
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Bitcoin Magazine: В чем сложности Rollup?
Источник: Bitcoin Magazine; Перевод: 五铢, 金色财经
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, транзакция будет недействительной и не может быть включена в Блокчейн. Это доказательство позволяет людям проверять, была ли выполнена соответствующая авторизация владельца счета для всех изменений насчетвне блокчейнасчета, а также, не является ли оператор злонамеренным, обновляя баланс для кражи средств пользователя или нечестно перераспределяя их другим пользователям.
Вопрос в том, если только корень дерева Меркля опубликован в блокчейне, и пользователи могут его просматривать и получать доступ к нему, то как они могут добавить свои ветви в дерево, чтобы иметь возможность выйти без разрешения, когда им нужно?
Подходящий Rollup
В подходящей Rollup каждый раз, когда подтверждаются новые вне блокчейна транзакции и изменяется состояние Rollupсчета, информация непосредственно записывается в блокчейн. Не весь дерево, это слишком абсурдно, а только информация, необходимая для восстановления дерева. В простой реализации сводка всех существующих счетов в Rollup будет содержать баланс, а счета будут добавляться только в транзакциях обновления Rollup.
В более продвинутой реализации используется разница в балансе. Это в основном сводка того, какие счета увеличили или уменьшили свои средства в процессе обновления. Это позволяет каждому обновлению Rollup содержать только изменения в остатке счета, произошедшие в нем. Затем пользователь может просто просканировать цепочку и «вычислить» текущее состояние остатка счета с начала Rollup, что позволяет им восстановить текущее состояние остатка счета с помощью Merkle-дерева.
Это позволяет сэкономить много затрат и места в Блоке (тем самым экономя деньги), одновременно позволяя пользователям гарантировать доступ к информации, необходимой для одностороннего выхода. Правила rollup требуют включения этих данных в официальный rollup, предоставляемый пользователям через Блокчейн, при этом транзакции, не содержащие сводку счета или разницу счета, считаются недействительными.
Срок действия
Еще один способ решения проблемы доступности данных пользователей при их извлечении - размещение данных в другом месте, отличном от цепочки блоков. Это вносит тонкость, поскольку rollup все равно должен обеспечивать доступность данных в другом месте. Традиционно для этой цели использовались другие блокчейны, специально разработанные в качестве уровня доступности данных для систем rollup и т. д.
Это создает трудности в обеспечении безопасности на таком же высоком уровне. Когда данные напрямую публикуются на блокчейн BTC, правила соглашения могут гарантировать их абсолютную правильность. Однако, когда они публикуются во внешней системе, лучшее, что они могут сделать, это проверить SPV-доказательство, то есть, данные уже опубликованы в другой системе.
Это требует доказательства того, что данные существуют в других цепях, в конечном итоге это проблема Машина Oracle. Блокчейн BTC не может полностью подтвердить что-либо, кроме собственных событий в своей цепи, лучшее, что он может сделать, это подтвердить ZKP. Однако ZKP не может подтвердить, что данные rollup в Блоке после его генерации действительно были открыто опубликованы. Он не может подтвердить, что внешняя информация действительно доступна всем.
Это открыло дверь для атаки задержки данных, то есть создание обязательств по опубликованию данных и их использование для продвижения rollup, но данные фактически недоступны. Это приводит к тому, что пользователи не могут извлечь средства. Единственным истинным решением является полная зависимость от ценности и структуры стимулов систем, отличных от BTC.
В тупике
Это создает дилемму для rollup. Когда речь идет о проблемах доступности данных, фактически существует двоичный выбор между публикацией данных в блокчейне BTC или в другом месте. Этот выбор имеет серьезное влияние на безопасность, суверенитет и масштабируемость rollup.
С одной стороны, использование блокчейна Биткойн в качестве уровня доступности данных установит жесткий предел масштабируемости для rollup. Блоки ограничены по размеру, что означает, что существует ограничение на количество rollup-ов, которые могут существовать одновременно, а также на общее количество транзакций, которые могут быть обработаны вне блокчейна для всех rollup-ов вместе взятых. Каждое обновление rollup требует определенного количества блоков, пропорционального количеству счетов, у которых изменился баланс с момента последнего обновления. Теория информации позволяет сжимать данные только до определенной степени, и на этом этапе больше нет потенциала для расширения.
С другой стороны, использование разных уровней для обеспечения доступности данных устраняет жесткий верхний предел масштабируемости, но также возникают новые вопросы безопасности и суверенитета. В случае Rollup, использующего BTC для обеспечения доступности данных, если данные, которые пользователь хочет извлечь, не были автоматически опубликованы в блокчейн, состояние Rollup не может измениться. Использование Validiums полностью зависит от способности внешней системы сопротивляться мошенничеству и скрытию данных.
Теперь любой Блокпроизводитель на системе доступности внешних данных может захватить средства пользователей BTCRollup, производя Блок вместо фактического трансляции этого Блока, чтобы сделать данные доступными.
Итак, если мы действительно реализуем идеальную реализацию Rollup на BTC и действительно реализуем односторонний вывод пользователей, каково это будет?