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