Саташи Накамото отправил предложение о «новой системе электронных денег, полностью равноправной, без доверенной третьей стороны» в список рассылки криптографии в пятницу, 31 октября 2008 года. Первый ответ - первый раз, когда кто-либо публично прокомментировал биткойн - пришло следующее воскресенье: «Нам очень, очень нужна такая система, - писал Джеймс А. Дональд, - но, насколько я понимаю ваше предложение, оно, похоже, не масштабируется до требуемого размера».
Продолжая 10 лет спустя, эта критика все еще звучит правдоподобно. Даже самые пылкие евангелисты Биткойн признают, что это бесполезно для совершения небольших ежедневных покупок. Но Lightning Network, один из самых многообещающих проектов по масштабированию биткойнов, который сейчас реализуется, может изменить это.
Сеть Молния
Выступая на саммите Blockstack в июле 2017 года, генеральный директор Lightning Labs Элизабет Старк процитировала эту первую критику электронных денег Накамото, но выразила уверенность в том, что биткойн действительно может масштабироваться. «Мы в основном снова в 1995 году, когда речь заходит о блокчейнах и децентрализованных технологиях», - сказала она, имея в виду время, когда Интернет приобрел HTTP и другие транспортные и прикладные уровни TCP / IP.
Среди наиболее обсуждаемых приложений «уровня 2» для цепочки биткойнов - сеть с молнией. Впервые предложенный Джозефом Пунем и Тэджем (он же Thaddeus Dryja) в 2015 году (самая последняя версия их документа доступна здесь), система lightning была преобразована в действующую спецификацию под названием lightning-rfc или «BOLTS» тремя компаниями, каждая из которых имеет его собственная реализация: у Lightning Labs есть lnd, у Blockstream есть c-lightning, а у ACINQ есть eclair. Также разрабатываются не-BOTLS реализации, такие как Thunder.
Сеть Lightning уже запущена и работает, но она находится в зачаточном состоянии. Настоящий биткойн был отправлен и почти всегда получен с использованием реализаций Lightning Labs, Blockstream и ACINQ, и все три являются совместимыми. На видео ниже показан инженер ACINQ, который почти мгновенно отправил 0, 000001 биткойн (около 0, 01 долл. США) из узла эклера в узел lnd через узел c-lightning:
Чтобы увидеть, какое улучшение это представляет, мы попробовали аналогичную транзакцию в цепочке биткойнов, используя GreenAddress, приложение для мобильного кошелька. Приложение предложило платить майнерам 0, 00001907 BTC ($ 0, 19): комиссия в размере 1, 907%. Хотя неясно, сколько блоков было предназначено для подтверждения этой платы (мы обратились к GreenAddress, чтобы выяснить это), ответ, вероятно, составляет шесть блоков или около часа.
Мы никогда не узнаем, сколько времени на самом деле потребовалась бы эта конкретная транзакция: сообщение об ошибке сообщило нам, что «выходы ниже 546 сатоши считаются биткойном неэкономичной. Пожалуйста, увеличьте значение».
Lightning Labs также проверила межатомные атомные перестановки с использованием сети; Это переносы стоимости между различными блокчейнами, в данном случае биткойнами и лайткойнами, которые потенциально являются первым шагом к созданию децентрализованных обменов.
Молния позволяет микроплатежи, которые биткойн не может самостоятельно, но существующие реализации все еще глючат. Старк призывает пользователей узнавать о молниях, используя биткойнский «testnet» (то есть, использовать поддельные деньги), а не «живой сети» с живым огнем. Однако на момент написания в сети было совершено около $ 50 000 транзакций, и некоторые люди потеряли деньги из-за ошибки c-lightning. (Кристиан Декер, главный технический специалист Blockstream, сообщил мне по электронной почте, что в большинстве случаев средства в конечном итоге возвращаются.)
Так как работает молния?
Как работает молния
Решение Lightning основано на двухсторонних каналах платежей вне сети. Скажите, что Алиса и Боб часто совершают небольшие сделки друг с другом. Платежи внутри сети в этом случае нецелесообразны из-за комиссий и длительного времени подтверждения, поэтому они решили открыть канал, позволяющий им отправлять биткойны туда и обратно, мгновенно и без комиссии.
Открытие канала
Чтобы открыть канал, Алиса, Боб или оба вносят определенное количество биткойнов на специальный адрес через так называемую транзакцию финансирования (зеленое поле на диаграмме ниже). Скажем, Алиса вносит 1 BTC. Она отправляет средства по так называемому многозначному адресу 2-из-2, который требует, чтобы Алиса и Боб криптографически «подписали» любую отправляющую транзакцию своими закрытыми ключами. Обычная транзакция требует только подписи (одного) закрытого ключа, соответствующего открытому ключу адреса отправителя.
Важно отметить, что транзакция по финансированию еще не подписана и не передана в сеть.
Затем Алиса и Боб создают «транзакцию обязательства», используя транзакцию финансирования в качестве «родителя»: они используют ее неподтвержденный вывод 1 BTC в качестве ввода для «дочерней» транзакции, которая отправляет 0, 5 BTC Алисе (выход 0) и 0, 5 BTC к Бобу (выход 1). Если вы протестуете, что протокол биткойна не позволяет пользователям подписывать расходы, не зная подписей входа, эта возможность была предоставлена с помощью программной вилки.
Алиса затем подписывает вывод, отправляя 0, 5 BTC Бобу; Боб подписывает вывод, отправляя 0, 5 BTC Алисе. Затем они подписывают и транслируют транзакцию финансирования, которая передается в цепочку биткойнов (с учетом сетевых сборов и времени ожидания).
Теперь у них есть открытый канал оплаты, через который они могут переводить биткойны туда и обратно мгновенно и без комиссии. Алиса или Боб могут закрыть его в любое время и потребовать свои 0, 5 BTC каждый, или любой другой обновленный баланс.
Открытие канала… на английском
Если вы уже не знаете достаточно о внутренностях молниеносной сети, вероятно, трудно усвоить «знак здесь, сначала здесь, потратьте это, передайте это - нет, не так».
Вот более концептуальное описание. Транзакция финансирования выглядит так: она предоставляет средства для канала. Это также действует как ограничение для канала: ни одна из сторон не может получить больше первоначальной суммы финансирования, и сальдо обеих сторон должно составлять эту сумму. Причина, по которой транзакция финансирования создается сначала, но транслируется последней, заключается в том, что если бы она была просто проведена в блокчейне за один шаг, ничего бы не было выполнено, кроме одной простой транзакции. Молния не делает их быстрее или дешевле.
Оставив транзакцию финансирования открытой, вставив транзакцию обязательства - которая, как описано ниже, функционирует как своего рода умный контракт, - и затем закрыв транзакцию финансирования, молниеносная попытка открыть своего рода червоточину в сети. Это позволяет вам перемещать биткойны вперед и назад по единому определенному пути. Вы используете протокол биткойн, но обходите задержки и расходы, наложенные майнерами.
Хранение молнии без доверия
Скажем, теперь Боб хочет заплатить Алисе 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 предлагают назначить какую-либо третью сторону, чья работа состоит в том, чтобы инициировать транзакции по устранению нарушений - те, которые вознаграждают все средства канала несправедливой стороне - когда контрагент пытается обмануть. Они могут быть оплачены из штрафа.
Олаолува Осунтокун, соучредитель Lightning Labs и технический директор, разрабатывает «сторожевые башни», чтобы выступать в роли сторонних силовиков. Хотя были высказаны опасения, что эти узлы могут выступать в качестве доверенных сторон и вносить небезопасность в сеть, Осунтокун сообщает CoinDesk, что для данного канала потребуется только одна честная сторожевая башня.
Кроме того, как указывает в электронном письме Кристиан Декер, главный технический специалист Blockstream, мошенничество сопряжено с риском. Очень важно предположить, что сторона, которую вы пытаетесь ограбить, не будет регистрироваться хотя бы раз в неделю, и риск потери всех денег в вашем канале может быть достаточным сдерживающим фактором.
Подключение каналов
В реальном мире Алиса не хочет заключать сделки исключительно с Бобом, а Боб - исключительно с Алисой. У обоих есть любое количество контрагентов, которым они должны заплатить. Открытие каналов с каждой из этих сторон было бы нецелесообразно. Даже если бы пользовательский интерфейс был упрощен до совершенства, лишь немногие пользователи имели бы ликвидность, необходимую для связывания биткойнов в дюжине или более открытых каналов.
К счастью, они не должны. Как показано в приведенном выше видео, пользователи могут направлять платежи по каналам промежуточных пользователей, поэтому оплата по любому каналу с открытым каналом должна быть возможной по принципу шести степеней разделения. В отличие от транзакций в пределах одного канала, эти многоканальные транзакции, вероятно, потребуют небольших сборов, чтобы стимулировать узлы финансировать каналы и держать их открытыми. Луковая маршрутизация, техника, используемая для маскировки пользователей браузера TOR, не позволяет промежуточным узлам видеть полный путь, пройденный транзакцией, уменьшая проблемы конфиденциальности.
Насколько хорошо эта сеть каналов работает на практике, еще неизвестно, и вполне возможно, что если платежи будут идти слишком сложным путем - со слишком большим количеством «прыжков» по промежуточным каналам - плата, взимаемая этими пользователями, может сложиться.
Может ли молния оставаться децентрализованной?
Эти опасения связаны с тем, что для критиков представляет непреодолимый недостаток в молниеносной сети. В сегодняшних реализациях канал имеет ограничение: количество биткойнов в первоначальной транзакции финансирования ограничивает общую сумму денег в канале.
Эта ситуация налагает компромисс на пользователей с разумно ограниченными ресурсами. Они могут либо финансировать каналы с большим количеством биткойнов, чтобы гарантировать, что у них есть средства для осуществления любых платежей, в которых они могут нуждаться, либо они могут финансировать более мелкие каналы и иметь биткойн для других целей. (Поскольку платежи можно направлять по связанным каналам, конкретному пользователю, вероятно, не нужно открывать больше нескольких каналов, а может быть, только пару.)
Выбор сводится к тому, чтобы иметь ликвидность внутри молниеносных каналов или ликвидность вне их внутри цепочки. Выбор финансирования ликвидных каналов оплаты может быть рискованным, если сторожевые башни или какое-либо другое решение не предотвращает потерю средств из-за невнимательности. С другой стороны, если каналы платежей становятся безопасными, а молния становится основным методом ежедневного использования биткойнов, проблем с размещением средств в каналах будет мало. Они будут служить «перезаряжаемой дебетовой картой или наличными», как выразился Деккер, в то время как основная цепочка действует как сберегательный счет.
Старк приводит аналогичный аргумент: финансирование молниеносного канала не позволяет вам использовать этот биткойн для чего-либо еще, кроме «сети из потенциально большого количества узлов, которые в мультишопе будут принимать биткойны мгновенно», - написала она по электронной почте. «Мы предполагаем, что средства на каналах Lightning будут более полезными, чем биткойны в сети, для осуществления транзакций из-за мгновенной скорости и низких комиссий», - добавила она.
Концентраторы?
Но с кем бы вы создали эти каналы? Выбор Боба для вашей Алисы - экономическое решение, а не криптографическое, и для критиков молниеносной сети очевидным ответом будет своего рода «хаб», узел с большим капиталом, дающий ему возможность поддерживать хорошо финансируемые открытые каналы с несколькими партиями одновременно.
Идея о том, что может развиться вне банковской индустрии биткойнов, беспокоит энтузиастов биткойнов, которые видят в этом централизацию сети.
Старк оспаривает эту линию аргументации. «Тысячи пользователей используют полные узлы для биткойнов, - пишет она, - и мы считаем, что те и другие также будут запускать узлы на Lightning (это проще, потому что вам не нужен полный биткойн-узел вместе с ним, и в отличие от биткойн-полных узлов вы можно сделать небольшие сборы от маршрутизации). Она также отмечает, что ее команда работает над «сплайсингом», который позволит пополнять каналы с помощью биткойнов из основной цепочки. Эта способность может облегчить компромисс между размещением биткойна в канале или оставлением его в основной цепочке, что, в свою очередь, может уменьшить тенденцию к формированию хабов.
Деккер считает вероятным, что «сформируется двухуровневая сеть с большим количеством надежных узлов, которые выступают в качестве основы сети». Однако он ожидает, что это будут торговцы, а не хабы, которые существуют исключительно для обеспечения ликвидных каналов. Он утверждает, что предоставление этих каналов нескольким пользователям будет дорогостоящим, требуя от концентраторов взимать высокую плату и делая их неконкурентоспособными по сравнению с другими узлами.
Генеральный директор ACINQ Пьер-Мари Падью не признается, что знает, как может развиваться сеть молний. «Очень сложно предсказать, какое будет равновесие между централизацией и децентрализацией», - написал он по электронной почте. «Конечно, будут более крупные узлы и более мелкие узлы, но в какой степени сложно сказать заранее».
Правильный путь к масштабированию?
Пун и Дрия утверждают, что «используя сеть из этих каналов микроплатежей, Биткойн может масштабировать до миллиардов транзакций в день с вычислительной мощностью, доступной на современном настольном компьютере сегодня». Возможно, но сегодня это точно не так. На момент написания статьи было открыто менее 1000 молниеносных узлов сети.
Молния не единственное предложение по масштабированию. Основным конкурентом являются биткойн-деньги, спорный хард-форк биткойнов, позволяющий получать более крупные блоки. Дебаты между сторонниками наличных биткойнов, сторонниками молнии и сторонниками различных третьих путей - даже случайных против скальеров - являются живыми, хотя и ожесточенными. Может случиться так, что один или другой выйдет на первое место, что они будут продолжать сосуществовать, или что все потерпит неудачу.
В любом случае, молниеносная сеть является многообещающей попыткой преодолеть дилемму масштабируемости, которая преследует биткойн с первых выходных биткойнов в 2008 году.
