Масштабованість блокчейну – сайдчейни та платіжні канали
Головна сторінка
Статті
Масштабованість блокчейну – сайдчейни та платіжні канали

Масштабованість блокчейну – сайдчейни та платіжні канали

Просунутий рівень
Опубліковано Feb 20, 2020Оновлено Feb 9, 2023
9m

Зміст


Вступ

Масштабованість у широкому розумінні означає здатність системи розвиватися, щоб задовольнити зростаючий попит. У обчисленнях ви можете підвищити продуктивність машини, модернізувавши її обладнання, щоб вона швидше виконувала певні завдання. Коли ми говоримо про масштабованість блокчейнів, ми маємо на увазі збільшення їхньої здатності обробляти більше транзакцій.
Такі протоколи, як Bitcoin, мають багато сильних сторін, але масштабованість не входить до їх числа. Якби Bitcoin працював у централізованій базі даних, адміністратору було б відносно легко збільшити швидкість і пропускну здатність. Але ціннісні пропозиції Bitcoin (тобто стійкість до цензури) вимагають, щоб багато учасників синхронізували копію блокчейну.


Проблема масштабованості блокчейну

Запуск ноди Bitcoin відносно дешевий, і навіть прості пристрої можуть це зробити. Але оскільки тисячам нод необхідно підтримувати один одну в актуальному стані, існують певні обмеження їхньої пропускної здатності. 
Обмеження встановлюються на кількість транзакцій, які можуть бути оброблені он-чейн, щоб база даних не розросталася до громіздких розмірів. Якщо вона стане занадто великою, ноди не будуть встигати. Більше того, якщо блоки занадто великі, вони не можуть бути швидко ретрансльовані по мережі.

В результаті ми опиняємось у тупику. Блокчейн можна розглядати як потяг, який відправляється через встановлені інтервали. Кількість місць у кожному вагоні обмежена, і щоб отримати квиток, мандрівники повинні зробити ставку, щоб гарантувати собі місце. Якщо всі спробують сісти в поїзд одночасно, ціна буде високою. Так само мережа, забита очікуючими транзакціями, вимагатиме від користувачів сплати вищих комісій, щоб вони своєчасно побачили свою транзакцію.

Одне з рішень – збільшити кількість вагонів. Це надасть більше місць, більшу пропускну спроможність та нижчі ціни на квитки. Але немає жодної гарантії, що всі місця не заповняться, як раніше. Вагони не можуть постійно додаватися, як і блоки або ліміти gas блоку не можуть масштабуватися нескінченно. Комісія gas робить дорожчим перебування нод у мережі, оскільки для синхронізації їм знадобиться більш дороге обладнання.

Творець Ethereum, Vitalik Buterin, придумав "Трилему масштабованості", щоб описати проблему, з якою стикаються блокчейни. Вона передбачає, що протоколи повинні йти на компроміс між масштабованістю, безпекою та децентралізацією. Вони дещо суперечать один одному – якщо зосередитися на двох властивостях, третя буде недостатньо розвинутою.

З цієї причини багато хто розглядає масштабованість як щось, чого потрібно досягти поза блокчейном, у той час як безпека та децентралізація мають бути максимізовані у самому блокчейні.


Що таке офчейн рішення для масштабування?

Офчейн масштабування (поза ланцюгом) відноситься до підходів, які дозволяють виконувати транзакції без роздування блокчейну. Протоколи, які підключаються до ланцюга, дозволяють користувачам надсилати та отримувати кошти, при цьому транзакції не з'являються в основному ланцюгу. Ми розглянемо два найбільш помітні досягнення у цій галузі: сайдчейни та платіжні канали.


Введення в сайдчейни

Що таке сайдчейн?

Сайдчейн – це окремий блокчейн. Однак це не окрема платформа, оскільки вона якимось чином прив'язана до основного ланцюга. Основний блокчейн та сайдчейн взаємодіють один з одним, що означає, що активи можуть вільно переміщатися між ними.

Є декілька способів забезпечити перенесення коштів. У деяких випадках активи переміщуються з основного ланцюга шляхом депонування на спеціальну адресу. Насправді вони не відправляються – натомість вони прив'язані до адреси, і відповідна сума видається на сайдчейні. Простіший (хоча і централізований варіант) – відправити кошти зберігачеві, який обмінює депозит на кошти у сайдчейні.


Як працює сайдчейн?

Припустимо, у нашої подруги Аліси п'ять Bitcoin. Вона хоче обміняти їх на п'ять еквівалентних одиниць на сайдчейні Bitcoin – назвемо їх cайдкоїнами. Сайдчейн використовує двосторонню прив'язку, що означає, що користувачі можуть переносити свої активи з основного ланцюга у сайдчейн і навпаки. 

Пам'ятайте, що сайдчейн – це окремий блокчейн. Таким чином, він матиме різні блоки, ноди та механізми перевірки. Щоб отримати свої сайдкоїни, Аліса відправляла б п'ять Bitcoin на іншу адресу. Вона може належати комусь, хто потім зарахує на свою адресу сайдчейну п'ять сайдкойнів, як тільки отримає Bitcoin. В якості альтернативи, у нього може бути якесь налаштування, при якому сайдкоїни автоматично зараховуються після того, як програмне забезпечення виявляє платіж.



Тепер Аліса конвертувала свої монети в сайдкоїни, але вона завжди може скасувати процес, щоб повернути свої Bitcoin. Тепер, коли вона увійшла до сайдчейну, вона може здійснювати транзакції в цьому окремому блокчейні. Вона може відправляти сайдкоїни або отримувати їх від інших користувачів, як і в основному ланцюгу.

Вона могла, наприклад, заплатити Бобу 1 сайдкоїн за худі Binance. Коли вона захоче повернутися у Bitcoin, вона може відправити чотири сайдкоїни, що залишилися, на спеціальну адресу. Після підтвердження транзакції, чотири Bitcoin будуть розблоковані та доставлені на адресу, яку вона контролює в основному ланцюгу.


Чому використовуються сайдчейни?

Ви можете поставити питання, в чому сенс цього. Чому Аліса просто не використовує блокчейн Bitcoin?

Відповідь полягає в тому, що сайдчейн може робити те, що не може робити Bitcoin. Блокчейни – це ретельно розроблені системи компромісів. Bitcoin – найбезпечніша і найбільш децентралізована криптовалюта, але не найкраща з погляду пропускної спроможності. Хоча транзакції Bitcoin швидші, ніж звичайні методи, вони ще відносно повільні порівняно з іншими блокчейн системами. Блоки добуваються кожні десять хвилин, і комісії можуть значно зростати, коли мережа перевантажена.

Такий рівень безпеки, ймовірно, не потрібен для невеликих повсякденних платежів. Якщо Аліса платить за каву, вона не чекатиме на підтвердження транзакції. Вона стоятиме у черзі, і до моменту отримання її напій буде холодним.

Сайдчейни не підкоряються тим самим правилам. Фактично їм навіть не потрібно використовувати Proof of Work для роботи. Ви можете використовувати будь-який механізм консенсусу, довіряти одному валідатору або налаштовувати будь-яку кількість параметрів. Ви можете додавати оновлення, яких немає в основному ланцюгу, створювати блоки більшого розміру та забезпечувати швидкі розрахунки.

Цікаво, що в сайдчейнах можуть бути навіть критичні помилки, нЯкі не вплинуть на ланцюг, що лежить в основі. Це дозволяє використовувати їх як платформи для експериментів і розгортання функцій, які в іншому випадку зажадали б консенсусу з боку більшої частини мережі.

За умови, що користувачі задоволені компромісами, сайдчейни можуть стати невід'ємним кроком на шляху ефективного масштабування. Ноди основного ланцюга не повинні зберігати кожну транзакцію із сайдчейну. Аліса могла увійти у сайдчейн за допомогою однієї транзакції Bitcoin, виконати сотні транзакцій із сайдкоїнами, а потім вийти із сайдчейну. Що стосується блокчейну Bitcoin, вона виконала лише два кроки – один для входу та один для виходу.

Ethereum Plasma схожа, але має деякі суттєві відмінності. Прочитайте більше у статті: Що таке Ethereum Plasma?


Введення у платіжні канали

Що таке платіжний канал?

Платіжні канали служать тій же меті, що і сайдчейни, з погляду масштабованості, але дуже відрізняються. Як і сайдчейни, вони "штовхають" транзакції з основного ланцюга, щоб запобігти роздуванню блокчейна. Однак, на відміну від сайдчейнів, для їхньої роботи не потрібен окремий блокчейн.

Платіжний канал використовує смарт-контракт, щоб користувачі могли здійснювати транзакції, не публікуючи свої транзакції в блокчейні. Це досягається за допомогою програмної угоди між двома учасниками.


Як працює платіжний канал?

У таких моделях, як Lightning Network, дві сторони спочатку здійснюють депозит монет на адресу, якою вони спільно володіють. Це адреса із мультипідписом, для використання якої потрібні два підписи. Таким чином, якщо Аліса та Боб створили таку адресу, кошти можна зняти лише за згодою обох сторін.

Допустимо, кожен із них депонує по 10 BTC на адресу, яка тепер містить 20 BTC. У блокчейні досить просто розглянути їхній початковий баланс та підтвердити, що у Аліси та Боба по 10 BTC. Якщо Аліса передасть Бобу одну монету, можна оновити баланс, щоб зрозуміти – Аліса має 9 BTC, Боб має 11 BTC. Їм не потрібно буде публікувати дані у блокчейні, оскільки загальний баланс на адресі залишиться тим самим. 



Однак, може настати момент, коли Аліса матиме 5 BTC, а Боб – 15 BTC. Вони можуть легко створити транзакцію, яка розподілить правильні баланси на їхні особисті адреси після спільного підписання і передачі цієї транзакції у мережу.

Аліса та Боб могли створити на своєму балансі десять, сто чи тисячу транзакцій. Але на блокчейні вони зробили лише дві транзакції у ланцюгу: одну для початкового депозиту та одну після остаточного перерозподілу коштів між собою. За винятком цих двох, решта транзакцій безкоштовні та майже миттєві, оскільки відбуваються поза мережею. Немає жодної комісії для майнера та не потрібно чекати підтверджень блоку.

Звичайно, розглянутий вище приклад потребує співпраці обох сторін, що не є ідеальною ситуацією для незнайомців. Тим не менш, спеціальні механізми можуть використовуватися для покарання за будь-яку спробу обману, тому сторони можуть безпечно взаємодіяти без довіри. 


Маршрутизація платежів

Очевидно, що платіжні канали зручні для двох сторін, які очікують на великий об'єм транзакцій. Але за допомогою маршрутизації платежів їх функції стають ще кращими. Мережа цих каналів може бути розширена, що означає, що Аліса може здійснити оплату стороні, з якою вона не зв'язана напряму. Якщо у Боба відкритий канал із Керол, Аліса може заплатити їй за наявності достатнього об'єма. Для цього вона передає монети Бобу, який у свою чергу передасть їх Керол. Якщо Керол підключена до іншого учасника, наприклад Дена, вона може зробити те саме. 

Така мережа перетворюється на розподілену топологію, в якій кожен підключається до декількох нод. У такій мережі найчастіше будуть присутні декілька маршрутів до місця призначення, і користувачі зможуть вибрати найбільш підходящий та ефективний. 


Заключні думки

Ми обговорили два підходи до масштабованості, які дозволяють здійснювати транзакції без навантаження на базовий блокчейн. І сайдчейни, і технологія платіжних каналів ще не досягли зрілості, але вони все частіше використовуються користувачами, які хочуть оминути недоліки транзакцій базового рівня.

Згодом до мережі приєднаються більше користувачів, тому важливо підтримувати децентралізацію. Цього можна досягти лише встановивши обмеження на зростання блокчейну, щоб нові ноди могли легко приєднатися. Прихильники рішень масштабованості поза ланцюгом вважають, що з часом основний ланцюг буде використовуватися лише для розрахунків за транзакціями з високою вартістю або для прив'язки/виходу із сайдчейнів та відкриття/закриття каналів.