Майбутнє блокчейну — це грандіозне бачення: децентралізація, безпека та масштабованість; але зазвичай блокчейн може реалізувати лише два з цих аспектів, а одночасне задоволення всіх трьох вимог називається непосильним трикутником блокчейну. Протягом багатьох років люди досліджували, як вирішити цю непросту задачу, як підвищити пропускну спроможність та швидкість транзакцій блокчейну, забезпечуючи децентралізацію та безпеку, тобто вирішити проблему масштабування, що є однією з актуальних тем обговорення в процесі розвитку блокчейну.
Давайте спочатку загально визначимо децентралізацію, безпеку та масштабованість блокчейну:
Децентралізація: будь-хто може стати вузлом і брати участь у виробництві та верифікації блокчейн-системи, чим більше вузлів, тим вищий рівень децентралізації, що забезпечує, щоб мережа не контролювалася невеликою групою великих централізованих учасників.
Безпека: чим вищі витрати на отримання контролю над блокчейн-системою, тим вища безпека, отже, ланцюг може протистояти атакам з боку значної частини учасників.
Масштабованість: здатність блокчейну обробляти велику кількість транзакцій.
Перше значне жорстке розгалуження мережі біткойн виникло через проблему розширення. Зі збільшенням кількості користувачів біткойна та обсягом транзакцій, мережа біткойн з обмеженням в 1 МБ на блок почала стикатися з проблемою заторів; з 2015 року в спільноті біткойн існували розбіжності щодо проблеми розширення: одна сторона, представлена Bitcoin ABC, підтримувала розширення блоків, а інша сторона, представлена Bitcoin Core, вважала, що слід використовувати рішення Segwit для оптимізації структури основного ланцюга. 1 серпня 2017 року клієнтська система Bitcoin ABC, розроблена до 8 МБ, почала працювати, що призвело до появи першого значного жорсткого розгалуження в історії біткойна, а також до народження нової криптовалюти BCH.
Так само, мережа Ethereum також вибрала пожертвувати частиною масштабованості для забезпечення безпеки та децентралізації мережі; хоча мережа Ethereum не обмежує обсяг транзакцій, як це робить мережа Bitcoin, шляхом обмеження розміру блоку, вона фактично перетворилася на встановлення обмеження на плати за паливо, які можуть вміщуватися в один блок, але мета залишається реалізація Trustless Consensus і забезпечення широкого розподілу вузлів (, незалежно від того, чи скасують або підвищать ліміт, багато менших вузлів з недостатньою пропускною здатністю, пам'яттю та обчислювальною потужністю будуть усунені ).
Від CryptoKitties у 2017 році, літа DeFi, до подальшого зростання таких ланцюгових застосувань, як GameFi та NFT, попит на пропускну спроможність на ринку постійно зростає, але навіть Тьюринг-повний Ethereum може обробляти лише 15~45 транзакцій на секунду (TPS), що призводить до зростання витрат на транзакції, збільшення часу розрахунку, більшість Dapps важко витримують витрати на експлуатацію, вся мережа стає повільною та дорогою для користувачів, а проблема масштабування блокчейну терміново потребує вирішення. Ідеальне рішення для масштабування полягає в тому, щоб підвищити швидкість транзакцій блокчейн-мережі ( коротший час фіналізації ) та пропускну спроможність транзакцій ( більш високий TPS) без жертвування децентралізацією та безпекою.
Ми розділили плани розширення на дві основні категорії: розширення на ланцюзі та поза блокчейном, використовуючи "чи змінюється один рівень основної мережі" як критерій.
2.1 Розширення на блокчейні
Основна концепція: рішення, яке досягає ефекту масштабування шляхом зміни одного з протоколів основної мережі, наразі основним рішенням є шардінг.
Розширення на блокчейні має кілька варіантів, у цій статті не буде їх детально розглянуто, нижче коротко наведено два варіанти:
Варіант перший — розширити простір блоку, тобто збільшити кількість транзакцій, які упаковуються в кожен блок, але це підвищить вимоги до обладнання вузлів з високою продуктивністю, підвищить бар'єри для приєднання вузлів, знизить рівень "децентралізації".
Варіант два - це шардінг, що розділяє блокчейн-реєстр на кілька частин, більше не кожен вузол бере участь у всіх записах, а різні шардінги, тобто різні вузли, відповідають за різні записи, паралельні обчислення можуть одночасно обробляти кілька транзакцій; це може знизити навантаження на обчислення вузлів та поріг входження, підвищити швидкість обробки транзакцій і рівень децентралізації; але це означає, що обчислювальна потужність всього мережі розподіляється, що знижує "безпеку" всієї мережі.
Зміна коду протоколу основної мережі може призвести до непередбачуваних негативних наслідків, оскільки будь-яка незначна уразливість у базовій системі серйозно загрожує безпеці всієї мережі, і мережа може бути змушена до розгалуження або перерви для виправлення та оновлення. Наприклад, інцидент з інфляційною уразливістю Zcash у 2018 році: код Zcash був модифікований на основі коду версії Bitcoin 0.11.2, у 2018 році один інженер виявив у його базовому коді високий ризик уразливості, а саме можливість безмежного випуску токенів, після чого команда витратила 8 місяців на таємне виправлення, а інцидент було оприлюднено лише після виправлення уразливості.
2.2 поза блокчейном розширення
Основна концепція: рішення для масштабування, яке не змінює існуючий протокол основної мережі першого рівня.
поза блокчейном розширення може бути детально розділене на Layer2 та інші рішення:
Статевий канал передбачає, що лише під час відкриття, закриття або вирішення спорів користувачам потрібно взаємодіяти з основною мережею, а взаємодію між користувачами проводити поза блокчейном, щоб зменшити час і фінансові витрати на транзакції, а також забезпечити необмежену кількість транзакцій.
Стан каналу — це простий P2P протокол, що підходить для "застосунків на основі раундів", наприклад, для гри в шкільні шахи. Кожен канал управляється багатопідписним смарт-контрактом, що працює в основній мережі, цей контракт контролює активи, внесені в канал, перевіряє оновлення стану та арбітрує спори між учасниками ( на основі доказів шахрайства з підписами та часовими мітками ). Учасники після розгортання контракту в блокчейн-мережі вносять кошти та блокують їх, після підписання обома сторонами канал офіційно відкривається. Канал дозволяє учасникам здійснювати необмежену кількість безкоштовних транзакцій поза блокчейном (, доки їх чиста вартість переказів не перевищує загальну суму внесених токенів ). Учасники по черзі надсилають оновлення стану один одному, чекаючи на підтвердження підпису з боку іншого. Як тільки інша сторона підтверджує підпис, оновлення стану вважається завершеним. У нормальних умовах оновлення стану, погоджені обома сторонами, не завантажуються в основну мережу, лише в разі виникнення спору або закриття каналу покладаються на підтвердження основної мережі. Коли потрібно закрити канал, будь-який учасник може подати запит на транзакцію в основну мережу, якщо запит на вихід отримує одностайне підтвердження підписів, транзакція відразу виконується в мережі, тобто смарт-контракт розподіляє залишкові заблоковані кошти відповідно до залишків кожного з учасників за фінальним станом каналу; якщо інші учасники не підтвердили підпис, всім потрібно буде дочекатися закінчення "періоду виклику", щоб отримати залишкові кошти.
Отже, рішення зі статусними каналами можуть значно зменшити обчислювальне навантаження основної мережі, підвищити швидкість транзакцій і знизити витрати на транзакції.
2015/02, Джозеф Пун і Таддеус Дріджа опублікували чернетку білого документа мережі блискавки.
2015/11, Джефф Колман вперше систематично узагальнив концепцію State Channel, запропонувавши, що Payment Channel біткоїна є підвипадком концепції State Channel.
2016/01, Joseph Poon та Thaddeus Dryja офіційно опублікували білу книгу «The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments», в якій представлено рішення для масштабування мережі біткойнів – Payment Channel( платіжний канал), яке призначене лише для обробки переказів на мережі біткойнів.
2017/11, перша специфікація дизайну State Channel на основі Payment Channel, відома як Sprites, була запропонована.
2018/06, Counterfactual запропонував дуже детальний дизайн Generalized State Channels, це перший повністю пов'язаний з каналами стану дизайн.
У жовтні 2018 року в статті «Узагальнені державні мережі каналів» була запропонована концепція державних канальних мереж і віртуальних каналів.
2019/02, концепція статус-каналів розширилась до N-Party Channels, Nitro є першим протоколом, створеним на основі цієї ідеї.
2019/10, Pisa для вирішення проблеми постійної онлайн присутності всіх учасників розширила концепцію Watchtowers.
Аліса та Боб вносять кошти з особистої EOA на адресу контракту поза блокчейном, ці кошти блокуються в контракті, поки канал не буде закрито, після чого залишок повертається користувачу; після підписання підтвердження обидві сторони офіційно відкривають канал.
Аліса та Боб теоретично можуть проводити необмежену кількість транзакцій поза блокчейном через цей канал, учасники спілкуються між собою через зашифровані підписані повідомлення (, а не через мережу блокчейну ). Обидва користувачі повинні підписати кожну транзакцію, щоб запобігти атакам подвійної витрати. Через ці повідомлення вони пропонують оновлення стану своїх рахунків і приймають оновлення стану, запропоновані іншим.
Якщо Аліса хоче закрити канал і завершити транзакцію з Бобом, Алісі потрібно подати остаточний стан свого рахунку до контракту; якщо Боб підпише та затвердить, контракт звільнить заблоковані кошти відповідно до остаточного стану. Якщо Боб не відповість на підпис, контракт звільнить заблоковані кошти відповідно до користувача після закінчення періоду оскарження.
Песимістичний сценарій робочого процесу каналів стану: спочатку двоє учасників вносять кошти, а потім починають обмінюватися оновленнями стану. Припустимо, в якийсь момент Боб не відповідає на підписане оновлення стану, надіслане Елісою, у його ході; в цей момент Еліса може ініціювати виклик, подавши в контракт своє останнє дійсне стан, яке також містить підпис Боба, щоб довести, що остання транзакція вже отримала схвалення Боба, і останній стан вже отримав підтвердження Боба. Потім контракт дозволяє Бобу протягом певного часу відповісти, подавши наступний стан до контракту; якщо Боб відповідає, тоді двоє можуть продовжити здійснювати транзакції в каналі стану; якщо Боб не відповідає протягом цього часу, контракт автоматично закриває канал стану та повертає кошти Елісі.
Миттєве підтвердження, угода може бути завершена миттєво
Висока пропускна здатність, теоретично безмежна торгівля
Низькі комісії, лише при відкритті каналу потрібно сплатити комісію поза блокчейном.
Добра конфіденційність, поза блокчейном транзакції не будуть опубліковані в основній мережі
Недоліки:
Низький рівень використання капіталу, потрібно заблокувати кошти
Непривітно для користувачів, потрібно постійно моніторити канал онлайн
Створення каналу є досить складним
Важко спроектувати універсальний канал стану
Відсутність ліквідності, канали не можуть гнучко переміщати кошти
3.1.5 Застосування
Біткоїн-мережа блискавки
Огляд:
Мережа Lightning є каналом малих платежів у мережі Bitcoin, її загальна еволюція технологій проходила так: 2/2 багатопідписна конструкція одностороннього платежного каналу, після додавання RSMC(Revocable Sequence Maturity Contract) можна побудувати двосторонній платіжний канал, потім, додавши HTLC(Hash Time Lock Contract), можна розширити платіжні канали до багатокористувацьких платежів, врешті-решт побудувати платіжну мережу, тобто мережу Lightning. Через позаблокчейн канали малих платежів, а потім за допомогою посередників формувати торгову мережу, можна вирішити проблему розширення мережі Bitcoin. Загальне використання мережі Lightning дотримується процесу "депозит(створення каналу)→ угода в мережі Lightning(оновлення стану каналу)→ повернення/розрахунок(закриття каналу)"; теоретично мережа Lightning може обробляти мільйон транзакцій на секунду.
Часова лінія:
У лютому 2015 року Джозеф Пун і Таддеус Дріджа опублікували чернетку білого папера про мережу Lightning;
У січні 2016 року була опублікована офіційна версія білого паперу та заснована
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
поза блокчейном розширення рішення Глибина аналізу: State Channels та Біткойн Lighting Network
Глибина аналізу розширення поза блокчейном
Автори: Еллейн Сюй, Хетті Цзян, Джун Ванг, Уалон Лін, Ілю Лін
1. Необхідність розширення
Майбутнє блокчейну — це грандіозне бачення: децентралізація, безпека та масштабованість; але зазвичай блокчейн може реалізувати лише два з цих аспектів, а одночасне задоволення всіх трьох вимог називається непосильним трикутником блокчейну. Протягом багатьох років люди досліджували, як вирішити цю непросту задачу, як підвищити пропускну спроможність та швидкість транзакцій блокчейну, забезпечуючи децентралізацію та безпеку, тобто вирішити проблему масштабування, що є однією з актуальних тем обговорення в процесі розвитку блокчейну.
Давайте спочатку загально визначимо децентралізацію, безпеку та масштабованість блокчейну:
Перше значне жорстке розгалуження мережі біткойн виникло через проблему розширення. Зі збільшенням кількості користувачів біткойна та обсягом транзакцій, мережа біткойн з обмеженням в 1 МБ на блок почала стикатися з проблемою заторів; з 2015 року в спільноті біткойн існували розбіжності щодо проблеми розширення: одна сторона, представлена Bitcoin ABC, підтримувала розширення блоків, а інша сторона, представлена Bitcoin Core, вважала, що слід використовувати рішення Segwit для оптимізації структури основного ланцюга. 1 серпня 2017 року клієнтська система Bitcoin ABC, розроблена до 8 МБ, почала працювати, що призвело до появи першого значного жорсткого розгалуження в історії біткойна, а також до народження нової криптовалюти BCH.
Так само, мережа Ethereum також вибрала пожертвувати частиною масштабованості для забезпечення безпеки та децентралізації мережі; хоча мережа Ethereum не обмежує обсяг транзакцій, як це робить мережа Bitcoin, шляхом обмеження розміру блоку, вона фактично перетворилася на встановлення обмеження на плати за паливо, які можуть вміщуватися в один блок, але мета залишається реалізація Trustless Consensus і забезпечення широкого розподілу вузлів (, незалежно від того, чи скасують або підвищать ліміт, багато менших вузлів з недостатньою пропускною здатністю, пам'яттю та обчислювальною потужністю будуть усунені ).
Від CryptoKitties у 2017 році, літа DeFi, до подальшого зростання таких ланцюгових застосувань, як GameFi та NFT, попит на пропускну спроможність на ринку постійно зростає, але навіть Тьюринг-повний Ethereum може обробляти лише 15~45 транзакцій на секунду (TPS), що призводить до зростання витрат на транзакції, збільшення часу розрахунку, більшість Dapps важко витримують витрати на експлуатацію, вся мережа стає повільною та дорогою для користувачів, а проблема масштабування блокчейну терміново потребує вирішення. Ідеальне рішення для масштабування полягає в тому, щоб підвищити швидкість транзакцій блокчейн-мережі ( коротший час фіналізації ) та пропускну спроможність транзакцій ( більш високий TPS) без жертвування децентралізацією та безпекою.
! Глибокий звіт про дослідження на 10 000 слів: комплексний аналіз офчейн-експансії
2. Категорії планів розширення
Ми розділили плани розширення на дві основні категорії: розширення на ланцюзі та поза блокчейном, використовуючи "чи змінюється один рівень основної мережі" як критерій.
2.1 Розширення на блокчейні
Основна концепція: рішення, яке досягає ефекту масштабування шляхом зміни одного з протоколів основної мережі, наразі основним рішенням є шардінг.
Розширення на блокчейні має кілька варіантів, у цій статті не буде їх детально розглянуто, нижче коротко наведено два варіанти:
Зміна коду протоколу основної мережі може призвести до непередбачуваних негативних наслідків, оскільки будь-яка незначна уразливість у базовій системі серйозно загрожує безпеці всієї мережі, і мережа може бути змушена до розгалуження або перерви для виправлення та оновлення. Наприклад, інцидент з інфляційною уразливістю Zcash у 2018 році: код Zcash був модифікований на основі коду версії Bitcoin 0.11.2, у 2018 році один інженер виявив у його базовому коді високий ризик уразливості, а саме можливість безмежного випуску токенів, після чого команда витратила 8 місяців на таємне виправлення, а інцидент було оприлюднено лише після виправлення уразливості.
2.2 поза блокчейном розширення
Основна концепція: рішення для масштабування, яке не змінює існуючий протокол основної мережі першого рівня.
поза блокчейном розширення може бути детально розділене на Layer2 та інші рішення:
! Звіт про глибоке дослідження на 10 000 слів: комплексний аналіз офчейн-експансії
3. поза блокчейном розширення рішення
3.1 Канали держави
3.1.1 Підсумок
Статевий канал передбачає, що лише під час відкриття, закриття або вирішення спорів користувачам потрібно взаємодіяти з основною мережею, а взаємодію між користувачами проводити поза блокчейном, щоб зменшити час і фінансові витрати на транзакції, а також забезпечити необмежену кількість транзакцій.
Стан каналу — це простий P2P протокол, що підходить для "застосунків на основі раундів", наприклад, для гри в шкільні шахи. Кожен канал управляється багатопідписним смарт-контрактом, що працює в основній мережі, цей контракт контролює активи, внесені в канал, перевіряє оновлення стану та арбітрує спори між учасниками ( на основі доказів шахрайства з підписами та часовими мітками ). Учасники після розгортання контракту в блокчейн-мережі вносять кошти та блокують їх, після підписання обома сторонами канал офіційно відкривається. Канал дозволяє учасникам здійснювати необмежену кількість безкоштовних транзакцій поза блокчейном (, доки їх чиста вартість переказів не перевищує загальну суму внесених токенів ). Учасники по черзі надсилають оновлення стану один одному, чекаючи на підтвердження підпису з боку іншого. Як тільки інша сторона підтверджує підпис, оновлення стану вважається завершеним. У нормальних умовах оновлення стану, погоджені обома сторонами, не завантажуються в основну мережу, лише в разі виникнення спору або закриття каналу покладаються на підтвердження основної мережі. Коли потрібно закрити канал, будь-який учасник може подати запит на транзакцію в основну мережу, якщо запит на вихід отримує одностайне підтвердження підписів, транзакція відразу виконується в мережі, тобто смарт-контракт розподіляє залишкові заблоковані кошти відповідно до залишків кожного з учасників за фінальним станом каналу; якщо інші учасники не підтвердили підпис, всім потрібно буде дочекатися закінчення "періоду виклику", щоб отримати залишкові кошти.
Отже, рішення зі статусними каналами можуть значно зменшити обчислювальне навантаження основної мережі, підвищити швидкість транзакцій і знизити витрати на транзакції.
! Глибокий звіт про дослідження на 10 000 слів: комплексний аналіз масштабування поза мережею
3.1.2 Хронологія
3.1.3 Технічні принципи
Робочий процес каналу стану:
Аліса та Боб вносять кошти з особистої EOA на адресу контракту поза блокчейном, ці кошти блокуються в контракті, поки канал не буде закрито, після чого залишок повертається користувачу; після підписання підтвердження обидві сторони офіційно відкривають канал.
Аліса та Боб теоретично можуть проводити необмежену кількість транзакцій поза блокчейном через цей канал, учасники спілкуються між собою через зашифровані підписані повідомлення (, а не через мережу блокчейну ). Обидва користувачі повинні підписати кожну транзакцію, щоб запобігти атакам подвійної витрати. Через ці повідомлення вони пропонують оновлення стану своїх рахунків і приймають оновлення стану, запропоновані іншим.
Якщо Аліса хоче закрити канал і завершити транзакцію з Бобом, Алісі потрібно подати остаточний стан свого рахунку до контракту; якщо Боб підпише та затвердить, контракт звільнить заблоковані кошти відповідно до остаточного стану. Якщо Боб не відповість на підпис, контракт звільнить заблоковані кошти відповідно до користувача після закінчення періоду оскарження.
Песимістичний сценарій робочого процесу каналів стану: спочатку двоє учасників вносять кошти, а потім починають обмінюватися оновленнями стану. Припустимо, в якийсь момент Боб не відповідає на підписане оновлення стану, надіслане Елісою, у його ході; в цей момент Еліса може ініціювати виклик, подавши в контракт своє останнє дійсне стан, яке також містить підпис Боба, щоб довести, що остання транзакція вже отримала схвалення Боба, і останній стан вже отримав підтвердження Боба. Потім контракт дозволяє Бобу протягом певного часу відповісти, подавши наступний стан до контракту; якщо Боб відповідає, тоді двоє можуть продовжити здійснювати транзакції в каналі стану; якщо Боб не відповідає протягом цього часу, контракт автоматично закриває канал стану та повертає кошти Елісі.
! Глибокий звіт про дослідження на 10 000 слів: комплексний аналіз масштабування поза мережею
3.1.4 Переваги та недоліки
Переваги:
Недоліки:
3.1.5 Застосування
Біткоїн-мережа блискавки
Огляд: Мережа Lightning є каналом малих платежів у мережі Bitcoin, її загальна еволюція технологій проходила так: 2/2 багатопідписна конструкція одностороннього платежного каналу, після додавання RSMC(Revocable Sequence Maturity Contract) можна побудувати двосторонній платіжний канал, потім, додавши HTLC(Hash Time Lock Contract), можна розширити платіжні канали до багатокористувацьких платежів, врешті-решт побудувати платіжну мережу, тобто мережу Lightning. Через позаблокчейн канали малих платежів, а потім за допомогою посередників формувати торгову мережу, можна вирішити проблему розширення мережі Bitcoin. Загальне використання мережі Lightning дотримується процесу "депозит(створення каналу)→ угода в мережі Lightning(оновлення стану каналу)→ повернення/розрахунок(закриття каналу)"; теоретично мережа Lightning може обробляти мільйон транзакцій на секунду.
Часова лінія: