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