Розуміння Lightning Network, частина 3: завершення головоломки та закриття каналу

Розуміння Lightning Network, частина 3: завершення головоломки та закриття каналу

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

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

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

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

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

Мережа Lightning Network

Наразі Еліс і Боб відкрили двонапрямний платіжний канал, у який вони обоє внесли по п’ять біткоїнів. Вони здійснили дві транзакції туди-сюди, і в поточному стані каналу і Еліс, і Боб можуть претендувати на п’ять біткоїнів для себе, «скинувши канал» у блокчейн.

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

Як і на попередньому етапі, і Еліс, і Боб кожен починає зі створення нової транзакції-зобов’язання. Багато в чому ці транзакції-зобов’язання дуже схожі на попередні аналогічні транзакції. Вони містять звичайні вихідні дані і вихідні дані на специфічну адресу з мультипідписом і таймлоком CSV (CheckSequenceVerify), а також спеціальним хешлоком. Так само як і на попередньому етапі, Еліс і Боб обмінюються своїми старими секретними ключами, щоб фактично анулювати старий канал. А після обміну і Еліс, і Боб можуть підписати свої половини транзакцій-зобов’язань і потенційно в будь-який момент перенести їх у блокчейн.

Всім знайома картина. За винятком однієї зміни. Транзакції-зобов’язання як Еліс, так і Боба тепер включають один новий вихідний результат вартістю один біткоїн. (Це робить баланс 4-5-1; чотири для Еліс, п'ять для Боба, один для нового вихідного результату)

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

По-перше, новий вихідний результат (в транзакціях зобов’язання як Еліс, так і Боба) вивільняє біткоїн за умови, що підпис і числове значення Боба будуть включені в наступну транзакцію. Таким чином, незалежно від того, хто підписує та транслює транзакцію-зобов’язання, Еліс чи Боб, лише Боб може розблокувати цей вихідний результат – якщо він включить числове значення. Але є одна невелика різниця між двома транзакціями-зобов’язаннями: якщо Боб скидає канал, це означає, що буде задіяно таймлок CSV. Йому доведеться чекати 1000 блоків. (Якщо Еліс скине канал, він зможе негайно отримати цей біткоїн.)

Причина, чому Бобу доведеться чекати 1000 блоків, якщо він скидає канал, дуже схожа на те, що ми вже бачили раніше: це дозволяє Еліс отримати цей біткоїн у випадку, якщо Боб коли-небудь спробує підписати та транслювати старий стан каналу. Ось де з’являється другий спосіб розблокувати згаданий вихідний результат. Еліс може «вкрасти» кошти, якщо вона дасть (найновіший) секретний ключ Боба.

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

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

Тож куди все це нас привело?

І Еліс, і Боб мають напівдійсну транзакцію-зобов’язання. Якщо Еліс скидає транзакцію-зобов’язання в блокчейн, вона негайно надсилає Бобу п’ять біткоїнів. Крім того, вона може чекати на 1000 блоків і отримати чотири біткоїни для себе. Також, у Боба є два тижні, щоб надати числове значення й отримати біткоїн у «вихідному результаті HTLC». (Якщо він не дасть числове значення протягом двох тижнів, Еліс може вимагати повернути їй цей біткоїн).

Тим часом Боб може в будь-який момент скинути транзакцію-зобов’язання і негайно надіслати Еліс чотири біткоїни. Тоді йому доведеться почекати 1000 блоків, щоб отримати ще п’ять біткоїнів з однієї адреси та ще один біткоїн з вихідного результату HTLC, якщо він пред'явить числове значення. (Якщо він не дасть числове значення протягом двох тижнів, Еліс зможе повернути його собі назад.)

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

Бидирекшн

Встановлення статусу

На цьому етапі Боб гарантовано може отримати біткоїн в обмін на числове значення (якщо воно у нього є). Все, що йому потрібно зробити, — це підписати й транслювати транзакцію-зобов’язання, яку він отримав від Еліс, включити числове значення у наступну транзакцію, а також підписати й передати її теж.

Еліс це знає. Вона не може обманом позбавити Боба його біткоїна – навіть якщо вона дізнається числове значення якимось іншим способом.

Таким чином, ці двоє можуть просто «повирішувати» за межами каналу. Боб може просто надати числове значення Еліс, а Еліс може погодитися оновити статус каналу до більш нормального стану без HTLC та кінцевого терміну очікування.

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

Канал

Закриття каналу

І, нарешті, ось де реальна сила Lightning Network:

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

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

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

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

Закриття

Чому НБУ потрібен біткоїн Чому НБУ потрібен біткоїн Традиційні золотовалютні резерви не дозволяють центробанкам досягти бажаної фінансової та економічної стабільності в країні. Тож усе більше експертів рекомендують використання біткоїна на національному рівні. Дмитро Харьков 24 квітня 2024
Пітер Тодд: історія канадського розробника Bitcoin Core Пітер Тодд: історія канадського розробника Bitcoin Core Пітер Тодд став відомий не лише роботою над головним клієнтом для Біткоїна, а й участю у багатьох інших Біткоїн-проєктах, таких як Dark Wallet та Coinkite. Володимир Гришенко 23 квітня 2024
МВФ визнав цінність Біткоїна МВФ визнав цінність Біткоїна Фонд зазначив, що великі обсяги BTC-транзакцій зафіксовано в тих країнах, де громадяни стикаються з гіперінфляцією. Володимир Гришенко 22 квітня 2024