56 / 736CHAN

Payment Channel

Платіжний канал

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

Payment Channel, або платіжний канал, дозволяє змінювати розподіл спільно заблокованих біткоїнів за допомогою цифрових підписів під домовленостями. Підпис засвідчує згоду з новим розподілом; кожну зміну не обов’язково записувати в блокчейн — публічний реєстр транзакцій Біткоїна. Учасники зберігають можливість закрити канал і розрахуватися в блокчейні. Тут описано звичайний двосторонній канал Lightning із відкликанням: попередню домовленість можна відкликати, а за її пізніше використання застосувати штраф. Інші конструкції можуть мати інші правила.

Уявіть дві сторони, які змінюють свої права на спільно заблоковану суму. Кожному платежу не потрібна окрема транзакція Bitcoin у блоці. Натомість сторони обмінюються підписами для нового стану. Це не просто таблиця, якій доводиться довіряти: вони мають транзакції, що дають змогу забезпечити розрахунок за погодженими умовами. [1] [2]

Транзакція фінансування вносить біткоїни в канал. Її вихід — сума з правилами щодо того, хто може її витратити; підтвердження означає включення транзакції до блока. У звичайному каналі Lightning цей вихід потребує підписів обох сторін: 2-of-2. Ще до публікації транзакції фінансування учасники повинні мати чинний спосіб одностороннього закриття. Зазвичай вони чекають підтверджень фінансування. За певних умов zero-conf дозволяє користуватися каналом без очікування підтвердження. Одержувач тоді більше покладається на сторону, що фінансує канал: транзакція ще не підтверджена й може бути замінена конфліктною. [2] [3]

Commitment-транзакцію підписують заздалегідь, щоб розрахуватися за поточним погодженим розподілом. Вузол тут — програма, яка керує каналом і його оновленнями. Кожна сторона має власну версію commitment-транзакції. Під час оновлення вузли узгоджено обмінюються підписами й секретами відкликання через commitment_signed та revoke_and_ack. Новіша домовленість не робить стару підписану транзакцію недійсною за консенсусом Bitcoin. Тому захист від публікації відкликаного стану має бути закладений в умовах витрачання виходів. [2] [3]

У звичайному каналі з відкликанням сторона, що публікує свій commitment, чекає to_self_delay перед витрачанням власних коштів. Затримку рахують у блоках від підтвердження commitment-транзакції. Якщо стан відкликано, інша сторона може використати ключ відкликання для захисного витрачання відповідних виходів. Треба вчасно відреагувати й отримати підтвердження транзакції. Watchtower — сервіс, який стежить за ланцюгом і може за допомогою заздалегідь підготовлених даних відреагувати на публікацію відкликаного стану. Однак цей сервіс не гарантує успіху й не замінює резервну копію. [3] [4]

Sat — скорочення від satoshi, найменшої одиниці біткоїна в блокчейні. Місткість — загальна сума в каналі, а не баланс кожного учасника. Наприклад, канал має 100000 sat: Алісі належить 70000 sat, а Бобу — 30000 sat. Якщо Аліса платить Бобу 10000 sat, новий розподіл становить 60000 sat і 40000 sat. Для простоти тут не враховуємо комісії та резерви. Місткість не змінилася, але Аліса може менше надіслати й більше отримати. Реальні ліміти також залежать від резервів і незавершених платежів. [6]

Lightning шукає маршрут через кілька з’єднаних каналів. HTLC — умовний платіж: щоб отримати кошти, треба розкрити секретне значення, preimage, хеш якого — цифровий відбиток — збігається з відомим заздалегідь. Часові умови дають шлях розрахунку й тоді, коли платіж не завершується. Посередникам потрібна ліквідність — кошти, які можна надіслати в потрібному напрямку; за проведення платежу вони можуть стягувати комісію. Прямий канал до кожного продавця не потрібний, але сама наявність зв’язку не гарантує придатного маршруту для будь-якої суми. [2] [4]

Під час закриття за взаємною згодою, cooperative close, учасники погоджують транзакцію закриття, розподіл коштів і комісію. Обидва підписують її та публікують у блокчейні. Це зазвичай простіше за односторонній розрахунок, але не обов’язково безкоштовно чи миттєво. Транзакції все одно потрібні підтвердження та комісія, відповідна умовам мережі. [2] [4]

Одностороннє закриття, force close, дозволяє опублікувати власний актуальний commitment без нової згоди партнера. Кошти не обов’язково можна витратити одразу: залишаються часові обмеження та можливе врегулювання HTLC. Можуть знадобитися додаткові транзакції й комісії. Аварійний вихід існує, але його тривалість і вартість залежать від стану каналу та умов блокчейну. [3] [4]

Seed Phrase — це резервні слова, з яких гаманець відновлює ключі. Самі вони не відновлять останній стан відкритого каналу, тому дотримуйтеся процедури свого гаманця. Наприклад, LND, програма для роботи вузла Lightning, використовує ці слова разом зі Static Channel Backup (SCB). Ця статична копія зберігає дані для зв’язку з партнерами та прохання закрити канали; вона не відновлює канали для подальших платежів. Відновлення цим способом залежить і від того, чи дадуть партнери відповідь. Натомість файл channel.db містить базу даних каналів, і його стара копія може зберігати небезпечно застарілий стан. Ніколи не вводьте свої справжні резервні слова на сторонньому сайті для «ремонту» каналу. [5]

З’ясуйте, хто зберігає ключі, хто стежить за каналами та як відновити доступ після втрати пристрою. Кастодіальний означає, що ключі зберігає постачальник послуги. Баланс Lightning у кастодіальному сервісі не обов’язково означає власний канал. За самостійного зберігання ви відповідаєте за копії, доступність і реакцію на проблеми. Канали зменшують кількість записів у блокчейні, але не усувають усіх операційних обов’язків і витрат на розрахунок. [4] [5]

Для повної картини прочитайте також Lightning Network, HTLC, Ліквідність Lightning, Lightning Watchtower. На цю статтю також посилаються Підтвердження, Подвійна витрата, Timelock, HTLC.

DOC · 001Lightning Network paperПервинне джерело DOC · 002BOLT #2 — Channel lifecycleПервинне джерело DOC · 003BOLT #3 — Transaction and script formatsПервинне джерело DOC · 004BOLT #5 — On-chain handlingПервинне джерело DOC · 005Lightning Labs — Disaster recoveryДокументація DOC · 006Lightning Labs — Managing LiquidityДокументація
Переглянуто: Спочатку джерела · Не інвестиційна порада