Розуміння Lightning Network, частина 2: створення мережі

Розуміння Lightning Network, частина 2: створення мережі

Мережа Lightning Network була найбільш очікуваною технологічною інновацією, що розгорнули над Біткоїном.

Платіжний рівень, який вперше запропонували Джозеф Пун і Тедж Драйя здатен підтримувати практично необмежену кількість офчейн-транзакцій між користувачами, майже безплатно, при цьому максимально використовуючи безпеку, яку пропонує Біткоїн.

Але мало хто повністю розуміє, як «майбутнє мікроплатежів» має істотно підвищити можливості Біткоїна.

У цій серії з трьох статей Bitcoin Magazine пояснює основні компонувальні блоки (модулі) мережі Lightning Network та показує, як вони поєднуються, щоб реалізувати цей майбутній рівень протоколу.

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

Мережа

У попередній статті Еліс і Боб створили двонапрямний платіжний канал. Тепер Еліс хоче заплатити один біткоїн третій особі, Керол.

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

Зокрема, Еліс може перерахувати Бобу один біткоїн, а Боб може перерахувати один біткоїн Керол.

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

Тому Еліс хоче переконатися, що вона лише тоді перераховує Бобу один біткоїн, якщо він також перераховує Керол один біткоїн. Це досягається (частково) за допомогою простого криптографічного трюку.

Коли Еліс хоче надіслати Керол біткоїн, вона каже Керол створити числове значення (випадкову послідовність чисел) і надіслати їй його хеш. Еліс також каже Керол обміняти у Боба початкове числове значення на біткоїн.

Тим часом Еліс забирає хеш у Керол, повертається до Боба і каже Бобу, що дасть йому біткоїн, якщо він дасть їй відповідне числове значення (яке має лише Керол).

Тому Боб звертається до Керол і дає їй один біткоїн в обмін на це числове значення.

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

Всі задоволені.

Гаразд. ...майже всі задоволені.

У цьому «наївному» сценарії посередник Боб все ще повинен довіряти Еліс та Керол. Боб повинен довіряти Керол в тому, що вона дійсно дасть йому числове значення після того, як він дасть їй біткоїн, а також Боб повинен довіряти Еліс, що вона дійсно дасть йому біткоїн, як тільки він представить їй числове значення.

Тому угода у форматі «біткоїн-за-числове значення» має бути абсолютно застрахована в мережі. Точніше: якщо Боб дає біткоїн Керол, він повинен гарантовано отримати біткоїн від Еліс.

Ось де на допомогу приходять контракти з хешлоками та таймлоками (HTLC).

Контракти з хешлоками та таймлоками (HTLC)

Отже, Еліс і Боб хочуть обміняти біткоїн на числове значення через HTLC. (І Боб та Керол також хочуть обміняти біткоїни на те саме числове значення, але поки що це не важливо.)

Для цього Еліс, замість того, щоб надсилати Бобу біткоїн напряму, надсилає біткоїн на нову (і знову ж таки: специфічну) адресу з мультипідписом. Біткоїни, заблоковані на цій адресі, можна розблокувати двома різними способами.

Перший варіант: Боб має застосувати свій підпис та числове значення.

Другий варіант — Еліс має застосувати свій власний підпис. Однак ця опція пов’язана з наявністю CLTV-таймлоку: Еліс може підписати й транслювати транзакцію лише через, скажімо, два тижні.

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

І якщо Боб не дасть числове значення вчасно, існує «альтернатива у вигляді тайм-ауту», щоб Еліс змогла повернути свій біткоїн. Все просто.

Повернімося до мережі, адже саме для цього потрібне це налаштування HTLC.

Як уже згадувалося, не тільки Еліс і Боб, а й Боб і Керол створили HTLC. Отже, якщо Керол вимагатиме свій біткоїн у Боба, Боб обов'язково отримає числове значення натомість; це буде видно у блокчейні.

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

Нарешті, це дійсно важливо, щоб Боб отримав числове значення від Керол до того, як Еліс зможе отримати назад свій біткоїн від Боба. Якщо Боб отримає числове значення від Керол лише після того, як Еліс вже повернула своє, Боб все-таки застрягає по середині. Таким чином, тайм-аут у HTLC Боба і Керол має закінчитися до закінчення тайм-ауту в HTLC Еліс та Боба. (Наприклад, рівно через десять днів замість двох тижнів. Ось чому ще для HTLC потрібні CheckLockTimeVerify (CLTV), а не CheckSequenceVerify (CSV)).

Насамкінець, є ще одна проблема, яку потрібно вирішити: щоб Lightning Network була корисною, все це має виконуватися поза блокчейном. Як це робиться, описано в третій і останній статті цієї серії.

Які країни забороняють майнінг та чому Які країни забороняють майнінг та чому У світі низка країн вирішили заборонити майнінг. Уряди цих держав недооцінюють потенціал майнінгу, помилково вважаючи його надто енергомістким. Але за належного регулювання він забезпечує розвиток енергосистем, споживаючи лише надлишки електроенергії.  Володимир Гришенко 23 травня 2024
Bitcoin Pizza Day: легендарне свято біткоїнерів Bitcoin Pizza Day: легендарне свято біткоїнерів Багато хто чув про найдорожчу піцу в історії. Перша купівля реального товару за BTC – надзвичайно важлива подія для Біткоїн-ком’юніті. Вона відкрила шлях до гіпербіткоїнізації. Дмитро Харьков 22 травня 2024
Чому Венесуелі не варто забороняти майнінг Чому Венесуелі не варто забороняти майнінг Спроба побудувати соціалізм обернулася для Венесуели повним фіаско. Суттєво допомогти у розв’язанні економічних проблем міг би майнінг, однак замість стимулювання індустрії, місцева влада хоче заборонити видобуток біткоїнів. Володимир Гришенко 21 травня 2024