Саташі Накамото надіслав пропозицію про "нову електронну систему готівки, яка повністю відповідає рівним рівнем, без третьої сторони", до списку розсилки криптографії в п'ятницю, 31 жовтня 2008 року. Перша відповідь - перший раз, коли хтось публічно Прокоментував біткойн - прийшов наступної неділі: "Нам дуже, дуже потрібна така система, - писав Джеймс А. Дональд, - але те, наскільки я розумію вашу пропозицію, схоже, не масштабується до потрібного розміру".
Протягом 10 років ця критика все ще звучить. Навіть найзапекліші євангелісти Bitcoin визнають, що робити щоденні покупки невеликими щоденними покупками не варто. Але Мережа блискавок, один із найперспективніших проектів масштабування біткойна, який зараз триває, може змінити це.
Мережа блискавки
Виступаючи на саміті Blockstack у липні 2017 року, генеральний директор Lightning Labs Елізабет Старк процитувала першу критику електронних готівки Накамото, але висловила впевненість, що біткойн насправді може масштабуватися. "Ми, як правило, в 1995 році знову, коли мова йде про блокчейн і децентралізовані технології", - сказала вона, маючи на увазі час до придбання Інтернетом HTTP та інших транспортних та прикладних шарів TCP / IP.
Серед найбільш обговорюваних програм "шар 2" для блокчейну біткойн - це мережа блискавок. Вперше запропонований Джозефом Пуном та Таджем, він же Таддеєм Дридже у 2015 році (найновіша версія їхньої газети доступна тут), блискавка була опрацьована у функціонуючій специфікації під назвою lightning-rfc або "BOLTS" трьома компаніями, кожна з яких має власна реалізація: Lightning Labs має lnd, Blockstream має c-блискавку, а ACINQ має еклер. Також розробляються не-BOTLS реалізації, такі як грім.
Мережа блискавки вже працює і працює, але вона знаходиться в крайньому зародку. Справжній біткойн був надісланий і майже завжди отриманий за допомогою Lightning Labs, реалізацій Blockstream та ACINQ, і всі три є сумісними. На відео нижче показано, що інженер ACINQ надсилає 0, 000001 біткойн (приблизно 0, 01 долара) майже миттєво з вузла еклера в вузол lnd через c-блискавковий вузол:
Щоб побачити, наскільки це означає покращення, ми спробували аналогічну транзакцію на блокчейн біткойна за допомогою програми для мобільного гаманця GreenAddress. Додаток пропонував сплатити шахтарям 0, 00001907 BTC (0, 19 дол. США): 1 907% комісії. Хоча незрозуміло, скільки блоків цю плату потрібно було підтвердити в межах (ми звернулися до GreenAddress, щоб дізнатися), відповідь, ймовірно, шість блоків, або близько години.
Ми ніколи не дізнаємося, скільки часу ця конкретна транзакція зайняла, однак: повідомлення про помилку повідомляло нам, що "виходи нижче 546 сатошей вважаються біткоїном неекономічним пилом. Будь ласка, збільште значення".
Lightning Labs також випробував атомні свопи між ланцюгами, використовуючи мережу; це передачі вартості між різними блокчейнами, в даному випадку біткойнами та litecoin, які потенційно означають перший крок до побудови децентралізованих бірж.
Блискавка дозволяє мікроплатити, що біткойн не може самостійно, але існуючі реалізації все ще є помилковими. Старк закликає користувачів дізнатися про блискавку, використовуючи "тест-мережу" біткойна (тобто використовувати підроблені гроші), а не "основну мережу" в прямому ефірі. На момент написання транзакції в мережі було здійснено близько 50 000 доларів транзакцій, проте деякі люди втратили гроші на помилку c-lightning. (Крістіан Декер, головний інженер з технічних технологій в Blockstream, сказав мені електронною поштою, що в більшості випадків кошти в кінцевому підсумку стягуються.)
То як працює блискавка?
Як працює блискавка
Рішення Lightning базується на двосторонніх, не ланцюгових каналах оплати. Скажіть, що Аліса та Боб часто вступають між собою в невеликі кількості. Оперативні платежі в цьому випадку не є практичними через плату та тривалий час підтвердження, тому вони вирішують відкрити канал, що дозволяє їм відправляти біткойн туди-сюди, миттєво та безкоштовно.
Відкриття каналу
Щоб відкрити канал, Аліса, Боб або обидва внести певну кількість біткойна на спеціальну адресу через те, що називається трансакцією фінансування (зелене поле на схемі нижче). Скажіть, Аліса вносить 1 BTC. Вона надсилає кошти на так звану багатозначну адресу 2-з-2, яка вимагає від Аліси та Боба криптографічно "підписувати" будь-яку транзакцію відправлення своїми приватними ключами. Для звичайної транзакції потрібен лише підпис (єдиного) приватного ключа, відповідного відкритому ключу адреси відправлення.
Важливо, що трансакція фінансування ще не підписана та не транслюється в мережу.
Далі, Аліса та Боб створюють "транзакцію з зобов'язаннями", використовуючи транзакцію фінансування як свого "батьківського": вони використовують непідтверджений вихід 1 BTC як вхід для "дочірньої" транзакції, яка надсилає 0, 5 BTC в Alice (вихід 0) та 0, 5 BTC до Боба (вихід 1). Якщо ви протестуєте, що протокол біткойна не дозволяє користувачам підписувати витрати, не знаючи підписів входу, ця можливість була надана за допомогою м'якої вилки.
Потім Аліса підписує вихід, посилаючи Бобі 0, 5 BTC; Боб підписує вихід, надсилаючи Алісі 0, 5 BTC. Потім обидва підписують та транслюють транзакцію фінансування, яка бере на себе біткойн-блокчейн (за умови мережевих зборів та часу очікування).
Тепер у них є відкритий канал оплати, за допомогою якого вони можуть миттєво перевозити біткойн назад і вперед і безкоштовно. Або Аліса, або Боб можуть закрити її в будь-який час і вимагати їх 0, 5 BTC кожна, або будь-який оновлений баланс.
Відкриття каналу… Англійською
Якщо ви вже трохи не знаєте про внутрішність блискавкової мережі, напевно важко перетравити "знак тут, спочатку тут, проведіть це, транслюйте це - ні не це ".
Ось більш концептуальний опис. Угода про фінансування - це, як це звучить: вона забезпечує кошти для каналу. Він також є обмеженням для каналу: жодна із сторін не може закінчити більше початкової суми фінансування, і залишки обох сторін повинні додати до цієї суми. Причина фінансування транзакції створена першою, але трансляція останньою, полягає в тому, що якби вона була просто розміщена в блокчейн за один крок, нічого не було б здійснено окрім однієї простої ванільної транзакції. Блискавка не робить їх ні швидшими, ні дешевшими.
Залишаючи транзакцію фінансування відкритою, вставляючи транзакцію зобов’язань - яка, як описано нижче, функціонує як своєрідний розумний контракт - і потім закриваючи транзакцію фінансування, блискавичні призи відкривають своєрідну червоточину в мережі. Це дозволяє переміщувати біткойн вперед і назад по одному визначеному шляху. Ви використовуєте протокол bitcoin, але обминаєте затримки і витрати, накладені шахтарями.
Зберігання блискавки довірливим
Скажімо, Боб тепер хоче сплатити Алісі 0, 1 BTC, використовуючи їх відкритий канал. Обидві сторони просто оновлюють транзакцію зобов’язань - не потрібно звертатися до шахтарів. Баланс, раніше 0, 5 BTC кожен, зараз становить 0, 6 BTC до Аліси, 0, 4 BTC до Боба.
Єдина проблема - як це зробити надійно? Оскільки вони вже обмінялися підписами за первинну транзакцію, Боб може підписати цю, а не останню - і піти з 0, 5 BTC замість 0, 4 BTC, який він фактично заборгував. Іншими словами, він може вкрасти близько 1000 доларів у Аліси, виходячи з цін на момент написання. Відповідь може бути лише відкривати канали з людьми, яким ви довіряєте. Але тоді який сенс використовувати біткойн?
Пошук криптографічного рішення цієї дилеми зводиться до однієї мети: унеможливити підписання старої транзакції та закрити канал таким чином, що відображає попередній стан. Поки це є варіантом, блискавка має проблему з подвійним витрачанням.
Пам’ятайте, що Боб підписує половину транзакції про зобов’язання (зобов’язання Tx 1a нижче), яку може транслювати лише Аліса, оскільки у неї немає підпису. Аліса підписує інше (зобов’язання Tx 1b), яке тільки Боб може потім транслювати. Або можна це зробити і закрити канал, але, використовуючи (обмежені) можливості біткойн-смарт-написання контрактів, на результати двох половин транзакції зобов'язань можуть бути застосовані різні обмеження. Зокрема, один вихід може дозволити одержувачу витратити кошти негайно, в той час як інший може бути предметом скасування будь-якою стороною - через договір погашення строкової послідовності (RSMC) - протягом певного періоду часу, наприклад 1000 блоків або приблизно тиждень.
Ось чому це корисно. Якщо Боб виявиться нечестивим і безпринципним, він може лише підписати та транслювати зобов’язання Tx 1b (вище), яке виплачує Алісі негайно (Доставка 1b) і утримує свої кошти у зворотній кінцівці протягом тижня (Відкликана доставка 1b). Аліса, побачивши, що Боб намагався її змінити, може викликати анулювання і заявити, що Боб намагався викрасти не лише 0, 1 BTC, але і 0, 4 BTC, на який він інакше мав би право.
Іншими словами, весь канал йде до Аліси, якщо вона ловить обману Боба. Це можливо тому, що коли сторони створюють нову угоду про зобов'язання (C2a та C2b нижче), пообіцявши фактично не транслювати стару транзакцію зобов’язань (C1a або C1b), вони кладуть свої гроші туди, де є їхні уста. Поряд з новою трансакцією зобов’язань вони створюють транзакцію щодо виправлення порушення з двома результатами (BR1a та BR1b), що застосовуються до попереднього зобов'язання. Аліса надає Бобу приватний ключ для його половини транзакції щодо правопорушення, і навпаки. Тепер якщо будь-яка спроба транслювати стару транзакцію, контрагент може скористатися періодом очікування в 1000 блоків і просуватися попереду цієї транзакції, взявши весь баланс сторони-порушника.
Проблема полягає в тому, що Аліса повинна приділяти настільки постійну увагу своїм каналам, щоб Боб не перехопив її на 1000 блоків. Poon та Dryja пропонують призначити якусь третю сторону, завдання якої полягає в спробі порушити правозастосовчі операції - ті, що винагороджують усі кошти каналу неправомірній стороні - коли контрагент намагається обдурити. За них можна було сплатити збір із штрафу.
Olaoluwa Osuntokun, співзасновник Lightning Labs і CTO, розробляє "сторожові вежі", які служать цими сторонніми виконавцями. Хоча висловлювались занепокоєння, що ці вузли можуть виступати довіреними сторонами та вносити незахищеність у мережу, Осунтокун повідомляє CoinDesk, що для даного каналу буде потрібна лише одна чесна сторожова вежа.
Крім того, як в електронному листі вказує Крістіан Декер, головний інженер з технологій Blockstream, шахрайство є ризиковим. Важливо вважати, що партія, яку ви намагаєтеся пограбувати, не заїжджатиме щонайменше раз на тиждень, і ризик втратити всі гроші на каналі може бути достатнім для стримування.
Підключення каналів
У реальному житті Аліса не хоче вести винятково з Боб, а Боб - виключно з Алісою. В обох є будь-яка кількість контрагентів, за які їм потрібно платити і отримувати їх оплату. Відкривати канали для кожної з цих сторін було б недоцільно. Навіть якби користувальницький інтерфейс був спрощений до досконалості, мало хто з користувачів матиме ліквідність, необхідну для того, щоб зв’язати біткойн у десяток і більше відкритих каналів.
На щастя, вони не повинні. Як показано на відео вище, користувачі можуть здійснювати платіж через канали проміжних користувачів, так що оплата будь-кому з відкритим каналом або двома повинна бути можливою за принципом шестигранної розлуки. На відміну від транзакцій у межах одного каналу, ці багатоканальні транзакції, ймовірно, вимагатимуть невеликих платежів для стимулювання вузлів для фінансування каналів та збереження їх відкритими. Маршрутизація цибулі, техніка, що використовується для маскування користувачів браузера TOR, не дозволяє проміжним вузлам бачити повний шлях, здійснений транзакцією, пом'якшуючи проблеми конфіденційності.
Наскільки добре ця веб-канали працює на практиці, ще належить побачити, і можливо, що якщо платежі повинні мати занадто перекручений маршрут - із занадто великою кількістю «стрибків» через проміжні канали, - плата, яка стягується цими користувачами, може скластись.
Чи може блискавка залишатися децентралізованою?
Ці турботи пов’язані з тим, що, на думку критиків, являє непереборний недолік у блискавковій мережі. У сучасних реалізаціях канал постачається з обмеженням: кількість біткойна в початковій транзакції з фінансування обмежує загальну суму грошей на каналі.
Ця ситуація накладає компроміс для користувачів з досить обмеженими ресурсами. Вони можуть або фінансувати канали з великою кількістю біткойна, щоб гарантувати, що у них є кошти, щоб здійснити будь-який платіж, який їм знадобиться, або вони зможуть фінансувати менші канали та мати біткойн для іншого використання. (Оскільки платежі можна здійснювати через пов'язані канали, певному користувачеві, ймовірно, не потрібно відкривати більше, ніж кілька каналів, і, можливо, лише пару.)
Вибір зводиться до наявності ліквідності в каналах блискавки або ліквідності поза ними, по ланцюгу. Вибір фінансування ліквідних каналів платежів може бути ризикованим, якщо сторожові вежі або якесь інше рішення не перешкоджають втраті коштів через неуважність. З іншого боку, якщо забезпечити безпеку платіжних каналів, а блискавка стане основним методом щоденного використання біткойна, проблем із залишенням коштів у каналах буде мало. Вони вважатимуть дебетовою карткою або готівкою, що перезаряджається, як стверджує Декер, тоді як основний ланцюжок виступає як ощадний рахунок.
Старк висловлює подібний аргумент: фінансування каналу блискавки не дозволяє вам використовувати цей біткойн для чого-небудь іншого, крім "мережі потенційно багатьох вузлів, які в мультихопі приймуть біткойн миттєво", - написала вона електронною поштою. "Ми передбачаємо, що кошти на каналах Lightning будуть кориснішими, ніж біткойн на ланцюзі для трансакцій через миттєву швидкість і низькі комісії", - додала вона.
Хаби?
Але з ким би ви налаштували ці канали? Вибір Боба для своєї Аліси - це економічне рішення, а не криптографічне, а для критиків мережі блискавок очевидною відповіддю було б своєрідний «хаб», вузол з великим капіталом, що дасть йому можливість підтримувати добре фінансуються відкриті канали з кількома партіями одночасно.
Ідея про те, що те, що становить позабітковий біткойн-банківський сектор, може розбурхати ентузіастів, які вважають це централізацією мережі.
Старк оскаржує цю суперечку. "Тисячі користувачів запускають повні вузли для біткойна", - пише вона, - і ми віримо, що ті та інші також запускатимуть вузли на Lightning (це простіше, тому що вам не потрібен повний вузол bitcoin разом з ним, і на відміну від повноцінних вузлів bitcoin ви може зробити невеликі збори від маршрутизації) ". Вона також вказує, що її команда працює над "сплайсінгом", що дозволить поповнювати канали, використовуючи біткойн з основного ланцюга. Ця здатність може полегшити компроміс між тим, як розміщувати біткойн в каналі або залишати його в основному ланцюжку, що, в свою чергу, може зменшити тенденцію до формування хабів.
Decker вважає ймовірним, що "сформується дворівнева мережа з великою кількістю вузлів, які є надійними і виступають основою мережі". Однак він очікує, що це торговці, а не хаби, які існують виключно для забезпечення каналів рідини. Надання цих каналів для декількох користувачів, він стверджує, було б дорогим, вимагаючи від хабів стягувати високі комісії та робити їх неконкурентоспроможними порівняно з іншими вузлами.
Генеральний директор ACINQ П'єр-Марі Падіоу не знає, як може розвиватися блискавична мережа. "Дуже важко передбачити, яка буде рівновага між централізацією та децентралізацією", - написав він електронною поштою. "Звичайно, будуть більші вузли та менші вузли, але наскільки це заздалегідь важко сказати".
Правильний шлях до масштабу?
Poon і Dryja стверджують, що "використовуючи мережу цих каналів мікроплатежів, Bitcoin може масштабувати до мільярдів транзакцій на день, використовуючи обчислювальну потужність, наявну на сучасному настільному комп'ютері сьогодні". Можливо, але це вже точно не так. На момент написання роботи відкрито менше 1000 мереж блискавки.
Не є блискавка єдиною пропозицією щодо масштабування. Основним конкурентом є готівка з біткойна, спірна тверда вилка біткойна, яка дозволяє отримати більші блоки. Дебати між прихильниками грошових коштів у біткойнах, прихильниками блискавки та прихильниками різних третіх способів - навіть випадкових анти-скалерів - є жвавими, хоча й грізними. Може статися, що той чи інший вийде на вершину, що вони продовжуватимуть співіснувати, або що все провалиться.
У будь-якому випадку, блискавична мережа - це багатообіцяюча спроба подолати дилему масштабування, яка переслідувала біткойн з перших вихідних біткойна у 2008 році.
