Джерело: Bitcoin Magazine; Переклад: Ву Чжу, Золотий фінансовий
Rollups недавно стали фокусом масштабирования BTC, ставши первым настоящим конкурентом Lighting Network и привлекши больше внимания. Rollups призваны стать вторым уровнем вне блокчейна, который не ограничен ограничениями и ограничениями Lighting Network, то есть конечному пользователю нужно заранее выделить (или «заимствовать») средства, чтобы получить деньги, или промежуточные узлы требуют баланса канала, чтобы обеспечить полную передачу платежных сумм от отправителя к получателю.
Ці системи спочатку запускалися на Ethereum та інших системах Повнота за Тюрінгом, але останнім часом увага зосереджена на їх трансплантації на блокчейні, що базується на UTXO (наприклад, BTC). У цій статті ми не плануємо обговорювати поточний стан реалізації на BTC, але будемо говорити про функціонал ідеального Rollup, який відповідає довгостроковим прагненням людей, і який залежить від можливості прямої перевірки ZKP на BTC, що на даний момент не підтримується.
Основна архітектура Roll містить наступне: окремий рахунок (UTXO в BTC) зберігає баланс всіх користувачів в Rollup. Цей UTXO містить зобов’язання у вигляді кореня Меркла, що містить усі поточні баланси рахунків у Rollup. Усі ці рахунки авторизовані за допомогою Відкритого ключа / Закритого ключа, тому для витрат поза блокчейном користувачі все ще повинні підписувати деякий вміст за допомогою Секретного ключа. Ця частина структури дозволяє користувачам в будь-який момент без дозволу виходити з Rollup, зробивши транзакцію, що підтверджує, що їх рахунок є частиною дерева Меркла, і вони можуть односторонньо вийти з Rollup без дозволу оператора.
Оператори Rollup повинні включати ZKP в операції, щоб оновити баланс рахунку в у блокчейні під час завершення поза блокчейном операції, інакше операція буде недійсною і не може бути включена в Блокчейн. Це доказує дозволяє людям перевірити, чи всі зміни в балансі поза блокчейном були належним чином авторизовані власником рахунку, а також чи оператор не має злочинних намірів щодо оновлення балансу для крадіжки коштів користувачів або нечесної перерозподілу їх іншим користувачам.
Проблема полягає в тому, що якщо на у блокчейні публікується лише корінь дерева Меркла, який користувачі можуть переглядати та звертатися до нього, то як вони можуть розмістити свої гілки в дереві, щоб вони могли вийти без дозволу в будь-який момент, коли цього захочуть?
У відповідному Rollup, кожен раз, коли підтверджується нова поза блокчейном транзакція і стан рахунку Rollup змінюється, інформація безпосередньо вноситься в блокчейн. Не вся дерево, бо це надто абсурдно, а лише інформація, необхідна для відновлення дерева. У простій реалізації будуть міститися підсумки всіх існуючих рахунків в Rollup, включаючи баланс, і рахунок буде додаватись лише в оновленнях Rollup транзакцій.
У більш високорівневій реалізації використовується різниця в балансі. Це по суті є кратким описом того, які рахунки збільшили або зменшили кошти під час процесу оновлення. Це дозволяє кожне оновлення Rollup містити лише зміни в залишках коштів на рахунках. Після цього користувач може просто просканувати ланцюжок та “обчислити” з початку Rollup, щоб отримати поточний стан залишку коштів на рахунках, що дозволяє їм відновити поточний стан залишку за допомогою дерева Меркля.
Це дозволяє заощадити значні витрати та місце в Блоку (тим самим зекономити кошти), при цьому дозволяючи користувачам забезпечувати доступ до інформації, необхідної для одностороннього виходу. Згідно з правилами rollup, ці дані повинні бути включені у формальний rollup, який надається користувачам за допомогою Блокчейну, тобто транзакції, які не містять резюме рахунку або різницю рахунку, вважаються недійсними.
Ще один спосіб вирішення проблеми доступності даних для вилучення користувачів - це розміщення даних в інших місцях поза Блокчейном. Це вводить складні питання, оскільки роллап все ще потребує обов’язкового забезпечення доступності даних в інших місцях. Традиційно для цього використовуються інші Блокчейни, спеціально розроблені як шар доступності даних для систем, таких як роллап.
Це створює таку саму потужну дилему в гарантуванні безпеки. Коли дані безпосередньо публікуються в BTCБлокчейн, правила Консенсус можуть гарантувати їх абсолютну правильність. Однак коли вони публікуються в зовнішній системі, їх найкраще, що вони можуть зробити - це перевірити SPV доказ, тобто те, що дані були опубліковані в іншій системі.
Це потребує підтвердження того, що дані існують в інших ланцюгах блоків, це насправді проблема Оракул-машина. Блокчейн BTC не може повністю підтвердити будь-які події, крім тих, які відбуваються в її власному блоку, краще за все, що він може зробити - це підтвердити ZKP. Однак ZKP не може підтвердити, чи були дані rollup блоку дійсно розголошені публічно після його генерації. Він не може підтвердити, що зовнішня інформація справді розголошується всім.
Це відкриває двері для атак затримки даних, тобто створення обіцянок щодо публікації даних та їх використання для просування rollup, але фактично дані недоступні. Це призводить до неможливості вилучення коштів користувачів. Єдиним справжнім рішенням є повна залежність від системи, яка має значення та стимулює, окрім BTC.
Це створює дилему для rollup. Коли йдеться про питання доступності даних, фактично існує бінарний вибір між публікацією даних на блокчейні BTC або в іншому місці. Цей вибір має значний вплив на безпеку та суверенітет rollup, а також його масштабованість.
З одного боку, використання BTC Блокчейну як шару доступності даних встановлює жорстку межу масштабованості для rollup. Блокчейну обмежений обсяг блоків, що встановлює максимальну кількість rollup, які можуть існувати одночасно, а також загальну кількість транзакцій, які можуть бути оброблені поза блокчейном. Кожне оновлення rollup потребує обсягу блоків, пропорційного кількості рахунків, баланси яких змінилися з останнього оновлення. Інформаційна теорія допускає тільки певну ступінь стиснення даних, тому на цьому етапі немає більше потенціалу для масштабування.
З іншого боку, використання різних рівнів для досягнення доступності даних призведе до усунення жорсткого верхнього обмеження на масштабованість, але також поставить нові питання безпеки та суверенітету. У використанні Rollup для досягнення доступності даних за допомогою BTC, якщо дані, які користувач має видобути, не автоматично публікуються на блокчейні, стан Rollup не може змінитися. Щодо використання Validiums, ця гарантія повністю залежить від здатності зовнішньої системи відстоювати обман та сховання даних.
Зараз будь-який Блок продюсер на системі доступності зовнішніх даних може захопити кошти користувачів BTCRollup, продукуючи Блок, а не фактично транслюючи його.
Таким чином, якщо ми дійсно реалізуємо ідеальну реалізацію Rollup на BTC, що дозволить одностороннє виведення коштів користувача, як це буде виглядати?