Користувачі Bitcoin повинні мати лише BTC на Bitcoin, щоб змусити вивести свій BTC з BOB назад на Bitcoin. Ми працюємо над гібридним рішенням: за замовчуванням Ethereum як DA, дозволяючи користувачам примусово включати транзакції на BOB за допомогою спеціальної транзакції на Bitcoin. Ми раді поділитися нашою роботою, що ведеться, у цьому дописі в блозі.
tl;dr
Одна з основних властивостей L2 полягає в тому, що їх стан повинен рухатися навіть коли секвенсор відключеноL2s досягають цього шляхом зчитування та запису свого стану з рівня доступності даних (DA), який може бути оновлений незалежно від того, що L2 перебуває в мережі. Таким чином, користувачі можуть змусити включення своїх транзакцій навіть тоді, коли послідовник знаходиться в автономному режимі або послідовник не приймає їх транзакції безпосередньо.
Для мосту BitVM BOB це становить цікаву проблему. Зараз BOB використовує блоки Ethereum EIP-4844 як свій шар DA. Користувачі Ethereum можуть легко викликати зняття коштів назад на Bitcoin через міст BitVM. Однак для цього потрібно, щоб у користувачів були ETH на Ethereum.
Цього недостатньо для нас: користувачі Біткоїн повинні мати можливість виводити свій Біткоїн з BOB назад на Біткоїн, використовуючи лише BTC. Ми працюємо над гібридним рішенням: за замовчуванням переходячи на Ethereum як DA, дозволяючи користувачам виконувати транзакції на BOB через спеціальну транзакцію на Біткоїн. Ми раді поділитися нашою роботою, яка триває, у цьому дописі в блозі.
Процес походження є досить важливим для L2s: весь стан L2 BOB потрібно побудувати з L1 та шару DA. Це дозволяє L2 користуватися таким же опором цензурі, як і рівень DA, в нашому випадку Ethereum.
Спрощений, у роллапах (зокрема, у ланцюгах OP Stack) ми маємо два типи даних на L1:
Якщо ми хочемо, щоб Bitcoin був у якості шару DA, чому б не перейти повністю до використання Bitcoin як DA шару? Відповідь, насамперед,вартість. Bitcoin має дуже обмежене сховище (приблизно 4 МБ приблизно кожні 10 хвилин), тому вартість зберігання висока.
Однак, у нашому випадку, BOB все ще може використовувати Ethereum як свій «головний» шар DA, де він публікує всі свої транзакційні дані, але додає Bitcoin як високоцензурний запасний шар, якщо Ethereum DA недоступний. По суті, Ethereum стає оптимістичним шаром DA, а Bitcoin стає дорогим, але стійким останнім варіантом.
Базовим рішенням є додавання Bitcoin до BOB як частини конвеєра деривативації, таким чином, щоб BOB (і, зокрема, "операційний вузол") обробляв вхідні дані в такому порядку:
Давайте перейдем до можливого рішення для кодування транзакцій з примусовим виведенням Bitcoin в конвеєр похідних BOB. Зверніть увагу, що це все ще досліджується, тому можливі зміни.
Нам знадобиться три частини, щоб створити примусову транзакцію на виведення:
Стек OPтранзакція депозиту має таку структуру:
Примусова операція зняття вимагає включення закодованої операції зняття в поле даних операції депозиту. Це робиться шляхом створення операції на BOB, яка викликає зняття з BOB на Bitcoin і працюватиме точно так само, якщо операція була відправлена з Ethereum.
Ми можемо зберігати (стислу) версію примусової транзакції зняття коштів на Bitcoin, яка містить усі вищезазначені дані.
Оскільки дані для примусової операції зняття більші, ніж зазвичай повинні зберігатися в вихідному OP_RETURN, ми, ймовірно, використовуватимемо Taprootвивід для зберігання даних.
Хоча легко визначити транзакцію депозиту (яка може включати зняття коштів) на Ethereum, оскільки вона надсилається до контракту OptimismPortal BOB, визначити транзакцію примусового зняття на Bitcoin не так легко.
Серіалізація даних: Примусова транзакція зняття коштів серіалізується за допомогою скриптів Taproot у структурі «конверта». Це noops в мережі Bitcoin і використовуються, наприклад, для порядкових чисел. Ми адаптуємо структуру під наші потреби.
Не встановлено
OP_FALSE OP_IF
OP_PUSH "bob"
OP_1
OP_PUSH "транзакція"
OP_0
OP_PUSH $WITHDRAWAL_TRANSACTION_DATA
OP_ENDIF
Двофазна схема фіксації/розкриття:
Як і з порядковими числами, користувачам доведеться надіслати дві транзакції на біткоїн:
Це найбільш відкрита проблема наразі, що перебуває під розглядом двох варіантів.
Ми також експериментуємо з більшою кількістю ідей, тому слідкуйте за оновленнями!
Будь-хто може визначити стан BOB, перевіривши дані про Bitcoin та Ethereum:
Збереження даних: Хоча забезпечення збереження даних між ланцюжками Ethereum та Bitcoin є важливим, просте наявність даних про транзакції на обох ланцюжках не гарантує їхньої валідності. Транзакції повинні представляти дійсні переходи стану відповідно до функції переходу стану rollup, щоб бути вважаними законними. Рішення передбачає впровадження логіки перевірки всередині op-вузла (або інших реалізацій рівня консенсусу), яка спочатку перевіряє, чи транзакція призводить до дійсної зміни стану перед тим, як приймати її.
Докази про шахрайство та валідність: Система доказів шахрайства для BitVM та Ethereum потребує поліпшення для обробки даних з обох ланцюгів, що може зробити вирішення суперечок складнішим. Щоб вирішити це, нам потрібно точно враховувати можливі транзакції з Bitcoin та Ethereum як частину моста BitVM та розрахунків BOB на Ethereum.
Збільшення обсягу зберігання: Крім того, вузли BOB в мережі стикаються зі збільшеними вимогами до зберігання та пропускної здатності, оскільки їм потрібно обробляти та зберігати дані з Bitcoin та Ethereum. Однак ми можемо зменшити це, вимагаючи, щоб угоди BOB, здійснені на Bitcoin, були включені в блоби Ethereum з посиланням на останні блоки Bitcoin. Таким чином, вузлам потрібно синхронізувати лише недавні блоки Bitcoin.
Ми з нетерпінням очікуємо на розширення гібридних роллапів, поєднуючи безпеку Bitcoin з інноваціями Ethereum. У цій конкретній проблемі нас цікавить поєднання Bitcoin із стікером BOB. Ми оновимо цей допис у блозі з більш детальною інформацією по мірі нашого прогресу.
Користувачі Bitcoin повинні мати лише BTC на Bitcoin, щоб змусити вивести свій BTC з BOB назад на Bitcoin. Ми працюємо над гібридним рішенням: за замовчуванням Ethereum як DA, дозволяючи користувачам примусово включати транзакції на BOB за допомогою спеціальної транзакції на Bitcoin. Ми раді поділитися нашою роботою, що ведеться, у цьому дописі в блозі.
tl;dr
Одна з основних властивостей L2 полягає в тому, що їх стан повинен рухатися навіть коли секвенсор відключеноL2s досягають цього шляхом зчитування та запису свого стану з рівня доступності даних (DA), який може бути оновлений незалежно від того, що L2 перебуває в мережі. Таким чином, користувачі можуть змусити включення своїх транзакцій навіть тоді, коли послідовник знаходиться в автономному режимі або послідовник не приймає їх транзакції безпосередньо.
Для мосту BitVM BOB це становить цікаву проблему. Зараз BOB використовує блоки Ethereum EIP-4844 як свій шар DA. Користувачі Ethereum можуть легко викликати зняття коштів назад на Bitcoin через міст BitVM. Однак для цього потрібно, щоб у користувачів були ETH на Ethereum.
Цього недостатньо для нас: користувачі Біткоїн повинні мати можливість виводити свій Біткоїн з BOB назад на Біткоїн, використовуючи лише BTC. Ми працюємо над гібридним рішенням: за замовчуванням переходячи на Ethereum як DA, дозволяючи користувачам виконувати транзакції на BOB через спеціальну транзакцію на Біткоїн. Ми раді поділитися нашою роботою, яка триває, у цьому дописі в блозі.
Процес походження є досить важливим для L2s: весь стан L2 BOB потрібно побудувати з L1 та шару DA. Це дозволяє L2 користуватися таким же опором цензурі, як і рівень DA, в нашому випадку Ethereum.
Спрощений, у роллапах (зокрема, у ланцюгах OP Stack) ми маємо два типи даних на L1:
Якщо ми хочемо, щоб Bitcoin був у якості шару DA, чому б не перейти повністю до використання Bitcoin як DA шару? Відповідь, насамперед,вартість. Bitcoin має дуже обмежене сховище (приблизно 4 МБ приблизно кожні 10 хвилин), тому вартість зберігання висока.
Однак, у нашому випадку, BOB все ще може використовувати Ethereum як свій «головний» шар DA, де він публікує всі свої транзакційні дані, але додає Bitcoin як високоцензурний запасний шар, якщо Ethereum DA недоступний. По суті, Ethereum стає оптимістичним шаром DA, а Bitcoin стає дорогим, але стійким останнім варіантом.
Базовим рішенням є додавання Bitcoin до BOB як частини конвеєра деривативації, таким чином, щоб BOB (і, зокрема, "операційний вузол") обробляв вхідні дані в такому порядку:
Давайте перейдем до можливого рішення для кодування транзакцій з примусовим виведенням Bitcoin в конвеєр похідних BOB. Зверніть увагу, що це все ще досліджується, тому можливі зміни.
Нам знадобиться три частини, щоб створити примусову транзакцію на виведення:
Стек OPтранзакція депозиту має таку структуру:
Примусова операція зняття вимагає включення закодованої операції зняття в поле даних операції депозиту. Це робиться шляхом створення операції на BOB, яка викликає зняття з BOB на Bitcoin і працюватиме точно так само, якщо операція була відправлена з Ethereum.
Ми можемо зберігати (стислу) версію примусової транзакції зняття коштів на Bitcoin, яка містить усі вищезазначені дані.
Оскільки дані для примусової операції зняття більші, ніж зазвичай повинні зберігатися в вихідному OP_RETURN, ми, ймовірно, використовуватимемо Taprootвивід для зберігання даних.
Хоча легко визначити транзакцію депозиту (яка може включати зняття коштів) на Ethereum, оскільки вона надсилається до контракту OptimismPortal BOB, визначити транзакцію примусового зняття на Bitcoin не так легко.
Серіалізація даних: Примусова транзакція зняття коштів серіалізується за допомогою скриптів Taproot у структурі «конверта». Це noops в мережі Bitcoin і використовуються, наприклад, для порядкових чисел. Ми адаптуємо структуру під наші потреби.
Не встановлено
OP_FALSE OP_IF
OP_PUSH "bob"
OP_1
OP_PUSH "транзакція"
OP_0
OP_PUSH $WITHDRAWAL_TRANSACTION_DATA
OP_ENDIF
Двофазна схема фіксації/розкриття:
Як і з порядковими числами, користувачам доведеться надіслати дві транзакції на біткоїн:
Це найбільш відкрита проблема наразі, що перебуває під розглядом двох варіантів.
Ми також експериментуємо з більшою кількістю ідей, тому слідкуйте за оновленнями!
Будь-хто може визначити стан BOB, перевіривши дані про Bitcoin та Ethereum:
Збереження даних: Хоча забезпечення збереження даних між ланцюжками Ethereum та Bitcoin є важливим, просте наявність даних про транзакції на обох ланцюжках не гарантує їхньої валідності. Транзакції повинні представляти дійсні переходи стану відповідно до функції переходу стану rollup, щоб бути вважаними законними. Рішення передбачає впровадження логіки перевірки всередині op-вузла (або інших реалізацій рівня консенсусу), яка спочатку перевіряє, чи транзакція призводить до дійсної зміни стану перед тим, як приймати її.
Докази про шахрайство та валідність: Система доказів шахрайства для BitVM та Ethereum потребує поліпшення для обробки даних з обох ланцюгів, що може зробити вирішення суперечок складнішим. Щоб вирішити це, нам потрібно точно враховувати можливі транзакції з Bitcoin та Ethereum як частину моста BitVM та розрахунків BOB на Ethereum.
Збільшення обсягу зберігання: Крім того, вузли BOB в мережі стикаються зі збільшеними вимогами до зберігання та пропускної здатності, оскільки їм потрібно обробляти та зберігати дані з Bitcoin та Ethereum. Однак ми можемо зменшити це, вимагаючи, щоб угоди BOB, здійснені на Bitcoin, були включені в блоби Ethereum з посиланням на останні блоки Bitcoin. Таким чином, вузлам потрібно синхронізувати лише недавні блоки Bitcoin.
Ми з нетерпінням очікуємо на розширення гібридних роллапів, поєднуючи безпеку Bitcoin з інноваціями Ethereum. У цій конкретній проблемі нас цікавить поєднання Bitcoin із стікером BOB. Ми оновимо цей допис у блозі з більш детальною інформацією по мірі нашого прогресу.