Источник: Bitcoin Magazine; Перевод: Ву Чжу, Золотая Финансовая Информация
Rollups в последнее время стали центром внимания вопроса о масштабировании BTC и первыми настоящими конкурентами для Сети Lighting в плане широкого распространения. Rollups представляют собой второй уровень вне блокчейна, который не ограничен или не зависит от ограничений Ликвидности ядра Сети Lighting. В конечном счете, для того чтобы получить деньги, конечному пользователю нужно заранее выделить (или «заимствовать») средства, или промежуточному Узлу требуется баланс в канале, чтобы обеспечить плавное движение суммы платежа от отправителя к получателю.
Эти системы изначально работали на Ethereum и других системах, завершенных по Тьюрингу. Однако недавно был сделан упор на их перенос на блокчейн на основе UTXO (например, BTC). В этой статье не будет обсуждаться текущая реализация на BTC, а будет рассмотрена функциональность идеализированного Rollup, которую люди долгое время искали. Это зависит от возможности прямой проверки Доказательств с нулевым разглашением (ZKP) на BTC, которую BTC в настоящее время не поддерживает.
Базовая структура Roll выглядит следующим образом: отдельный счет (в BTC - UTXO) хранит балансы всех пользователей в Rollup. Этот UTXO содержит обязательство, представленное в виде корня Merkle-дерева, обещающее текущие балансы всех счетов в Rollup. Все эти счета авторизованы с помощью открытого/закрытого ключа, поэтому для осуществления внеблокчейневых трат пользователи все равно должны подписать некоторые данные с помощью секретного ключа. Эта часть структуры позволяет пользователям выходить из Rollup в любое время без разрешения, просто предоставив доказательство того, что их счет является частью Merkle-дерева, и они могут односторонне покинуть Rollup без разрешения оператора.
Оператор Rollup должен включить ZKP в транзакцию, чтобы обновить корень Merkle балансасчета вне блокчейна в процессе завершенияв блокчейнетранзакции. Без этого ZKP транзакция будет недействительной и не сможет быть включена вБлокчейн. Это доказательство позволяет людям проверить, получили ли все изменения балансавне блокчейна соответствующее санкционирование владельца счета, а также, не является ли оператор злонамеренным обновлением баланса для кражи средств пользователей или нечестным перераспределением их другим пользователям.
Проблема заключается в том, что если только корень дерева Меркла опубликован в блокчейне, и пользователи могут просматривать и получать к нему доступ, то как они могут разместить свои ветви в дереве, чтобы иметь возможность выходить без разрешения в любое время, когда им захочется?
Подходящий Rollup
В подходящем Rollup каждый раз, когда подтверждается новая транзакция вне блокчейна и изменяется состояние счета Rollup, информация непосредственно помещается в блокчейн. Это не вся дерево, это слишком абсурдно, а только информация, необходимая для восстановления дерева. В простой реализации все счета в Rollup будут содержать баланс, и счета будут добавлены только в обновлении транзакций Rollup.
В более продвинутой реализации используйте разницу в балансе. По сути, это краткое изложение того, какие счета увеличили или уменьшили средства в процессе обновления. Это позволяет каждому обновлению Rollup содержать только изменения остатков средств на счете. Затем пользователь может просто просканировать цепочку и ‘вычислить’ с начала Rollup текущее состояние остатка средств на счете, что позволяет им восстановить текущее состояние остатка средств для построения дерева Меркля.
Это позволяет сэкономить значительные затраты и место в Блоке (таким образом, сэкономить средства), при этом по-прежнему позволяет пользователям гарантировать доступ к информации, необходимой для одностороннего выхода. Правила rollup требуют включения этих данных в официальный rollup, предоставляемый пользователям с использованием Блокчейна, то есть транзакции, не содержащие резюме счета или разницу счета, считаются недействительными.
Срок годности
Еще один способ решения проблемы доступности данных пользователей при извлечении данных - размещение данных в другом месте, вне блокчейна. Это вводит тонкие вопросы, поскольку rollup по-прежнему должен гарантировать доступность данных в другом месте. Традиционно, для этой цели используются другие блокчейны, специально разработанные в качестве слоя доступности данных для систем, таких как rollup.
Это создает трудности с безопасностью. Когда данные напрямую публикуются на блокчейне Биткойн, соглашение может гарантировать их абсолютную правильность. Однако, когда они публикуются во внешней системе, лучшее, что она может сделать, это проверить доказательство SPV, то есть, что данные были опубликованы в другой системе.
Для этого требуется подтверждение того, что данные существуют в других блокчейнах, что в конечном итоге является вопросом машины Oracle. Блокчейн Биткойна не может полностью проверить что-либо, кроме того, что происходит в его собственном блокчейне, лучшее, что он может сделать, это проверить ZKP. Однако ZKP не может подтвердить, что блок, содержащий данные rollup, действительно был открыто опубликован после его создания. Он не может подтвердить, что внешняя информация действительно открыта для всех.
Это открыло дверь для атаки на удержание данных, то есть создание обязательств по опубликованным данным и использование их для продвижения rollup, но фактически данные недоступны. Это приводит к невозможности извлечения средств. Единственным истинным решением является полная зависимость от систем, не связанных с BTC, и их структуры поощрений.
Возможности и проблемы
Это создает дилемму для rollup. Когда речь идет о проблемах доступности данных, по сути, существует двоичный выбор между публикацией данных на блокчейне BTC или в другом месте. Этот выбор имеет значительное влияние на безопасность, суверенитет и масштабируемость rollup.
С одной стороны, использование BTC в качестве слоя доступности данных в Блокчейн устанавливает жесткий предел масштабируемости для роллапа. Блоки ограничены в размере, что устанавливает предел для количества возможных роллапов и общего количества транзакций, которые могут быть обработаны вне Блокчейна. Каждое обновление роллапа требует определенного количества Блоков для учета счетов, балансы которых изменились с предыдущего обновления. Теория информации позволяет сжимать данные только до определенного уровня, поэтому нет больше потенциала для масштабирования.
С другой стороны, использование разных уровней для обеспечения доступности данных устраняет жесткую верхнюю границу для увеличения масштабируемости, но также возникают новые вопросы безопасности и суверенитета. В Rollup, где используется BTC для обеспечения доступности данных, если данные, которые пользователь хочет извлечь, не автоматически публикуются в блокчейне, состояние Rollup не может измениться. В случае использования Validiums это зависит от способности внешней системы противостоять мошенничеству и скрытию данных.
Теперь любой производитель Блок на системе доступности внешних данных может захватить средства пользователей BTCRollup, производя Блоки вместо фактической трансляции Блока, чтобы сделать данные доступными.
Итак, если мы действительно реализуем идеальную реализацию Rollup на BTC и действительно реализуем односторонний вывод пользователей, каково это будет?
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Bitcoin Magazine: какие проблемы стоят перед Rollup?
Источник: Bitcoin Magazine; Перевод: Ву Чжу, Золотая Финансовая Информация
Rollups в последнее время стали центром внимания вопроса о масштабировании BTC и первыми настоящими конкурентами для Сети Lighting в плане широкого распространения. Rollups представляют собой второй уровень вне блокчейна, который не ограничен или не зависит от ограничений Ликвидности ядра Сети Lighting. В конечном счете, для того чтобы получить деньги, конечному пользователю нужно заранее выделить (или «заимствовать») средства, или промежуточному Узлу требуется баланс в канале, чтобы обеспечить плавное движение суммы платежа от отправителя к получателю.
Эти системы изначально работали на Ethereum и других системах, завершенных по Тьюрингу. Однако недавно был сделан упор на их перенос на блокчейн на основе UTXO (например, BTC). В этой статье не будет обсуждаться текущая реализация на BTC, а будет рассмотрена функциональность идеализированного Rollup, которую люди долгое время искали. Это зависит от возможности прямой проверки Доказательств с нулевым разглашением (ZKP) на BTC, которую BTC в настоящее время не поддерживает.
Базовая структура Roll выглядит следующим образом: отдельный счет (в BTC - UTXO) хранит балансы всех пользователей в Rollup. Этот UTXO содержит обязательство, представленное в виде корня Merkle-дерева, обещающее текущие балансы всех счетов в Rollup. Все эти счета авторизованы с помощью открытого/закрытого ключа, поэтому для осуществления внеблокчейневых трат пользователи все равно должны подписать некоторые данные с помощью секретного ключа. Эта часть структуры позволяет пользователям выходить из Rollup в любое время без разрешения, просто предоставив доказательство того, что их счет является частью Merkle-дерева, и они могут односторонне покинуть Rollup без разрешения оператора.
Оператор Rollup должен включить ZKP в транзакцию, чтобы обновить корень Merkle балансасчета вне блокчейна в процессе завершенияв блокчейнетранзакции. Без этого ZKP транзакция будет недействительной и не сможет быть включена вБлокчейн. Это доказательство позволяет людям проверить, получили ли все изменения балансавне блокчейна соответствующее санкционирование владельца счета, а также, не является ли оператор злонамеренным обновлением баланса для кражи средств пользователей или нечестным перераспределением их другим пользователям.
Проблема заключается в том, что если только корень дерева Меркла опубликован в блокчейне, и пользователи могут просматривать и получать к нему доступ, то как они могут разместить свои ветви в дереве, чтобы иметь возможность выходить без разрешения в любое время, когда им захочется?
Подходящий Rollup
В подходящем Rollup каждый раз, когда подтверждается новая транзакция вне блокчейна и изменяется состояние счета Rollup, информация непосредственно помещается в блокчейн. Это не вся дерево, это слишком абсурдно, а только информация, необходимая для восстановления дерева. В простой реализации все счета в Rollup будут содержать баланс, и счета будут добавлены только в обновлении транзакций Rollup.
В более продвинутой реализации используйте разницу в балансе. По сути, это краткое изложение того, какие счета увеличили или уменьшили средства в процессе обновления. Это позволяет каждому обновлению Rollup содержать только изменения остатков средств на счете. Затем пользователь может просто просканировать цепочку и ‘вычислить’ с начала Rollup текущее состояние остатка средств на счете, что позволяет им восстановить текущее состояние остатка средств для построения дерева Меркля.
Это позволяет сэкономить значительные затраты и место в Блоке (таким образом, сэкономить средства), при этом по-прежнему позволяет пользователям гарантировать доступ к информации, необходимой для одностороннего выхода. Правила rollup требуют включения этих данных в официальный rollup, предоставляемый пользователям с использованием Блокчейна, то есть транзакции, не содержащие резюме счета или разницу счета, считаются недействительными.
Срок годности
Еще один способ решения проблемы доступности данных пользователей при извлечении данных - размещение данных в другом месте, вне блокчейна. Это вводит тонкие вопросы, поскольку rollup по-прежнему должен гарантировать доступность данных в другом месте. Традиционно, для этой цели используются другие блокчейны, специально разработанные в качестве слоя доступности данных для систем, таких как rollup.
Это создает трудности с безопасностью. Когда данные напрямую публикуются на блокчейне Биткойн, соглашение может гарантировать их абсолютную правильность. Однако, когда они публикуются во внешней системе, лучшее, что она может сделать, это проверить доказательство SPV, то есть, что данные были опубликованы в другой системе.
Для этого требуется подтверждение того, что данные существуют в других блокчейнах, что в конечном итоге является вопросом машины Oracle. Блокчейн Биткойна не может полностью проверить что-либо, кроме того, что происходит в его собственном блокчейне, лучшее, что он может сделать, это проверить ZKP. Однако ZKP не может подтвердить, что блок, содержащий данные rollup, действительно был открыто опубликован после его создания. Он не может подтвердить, что внешняя информация действительно открыта для всех.
Это открыло дверь для атаки на удержание данных, то есть создание обязательств по опубликованным данным и использование их для продвижения rollup, но фактически данные недоступны. Это приводит к невозможности извлечения средств. Единственным истинным решением является полная зависимость от систем, не связанных с BTC, и их структуры поощрений.
Возможности и проблемы
Это создает дилемму для rollup. Когда речь идет о проблемах доступности данных, по сути, существует двоичный выбор между публикацией данных на блокчейне BTC или в другом месте. Этот выбор имеет значительное влияние на безопасность, суверенитет и масштабируемость rollup.
С одной стороны, использование BTC в качестве слоя доступности данных в Блокчейн устанавливает жесткий предел масштабируемости для роллапа. Блоки ограничены в размере, что устанавливает предел для количества возможных роллапов и общего количества транзакций, которые могут быть обработаны вне Блокчейна. Каждое обновление роллапа требует определенного количества Блоков для учета счетов, балансы которых изменились с предыдущего обновления. Теория информации позволяет сжимать данные только до определенного уровня, поэтому нет больше потенциала для масштабирования.
С другой стороны, использование разных уровней для обеспечения доступности данных устраняет жесткую верхнюю границу для увеличения масштабируемости, но также возникают новые вопросы безопасности и суверенитета. В Rollup, где используется BTC для обеспечения доступности данных, если данные, которые пользователь хочет извлечь, не автоматически публикуются в блокчейне, состояние Rollup не может измениться. В случае использования Validiums это зависит от способности внешней системы противостоять мошенничеству и скрытию данных.
Теперь любой производитель Блок на системе доступности внешних данных может захватить средства пользователей BTCRollup, производя Блоки вместо фактической трансляции Блока, чтобы сделать данные доступными.
Итак, если мы действительно реализуем идеальную реализацию Rollup на BTC и действительно реализуем односторонний вывод пользователей, каково это будет?