Lightning: TCP/IP-стек Биткойна

Lightning: TCP/IP-стек Биткойна

Недавно я обратил внимание на то, что в сообществах биткойна, Bitcoin Cash и, в какой-то степени, во всей криптовалютной экосистеме, существует большая неразбериха по поводу Lightning Network. Я бы хотел поделиться своими мыслями о биткойне, блокчейне и сети Lightning исключительно с точки зрения человека с опытом работы с компьютерными сетями.

Для того чтобы лучше понять, как работает блокчейн и сеть Lightning, нужно сделать шаг назад от яростных боёв в Twitter и Reddit (из которых не выходит ничего хорошего) и рассмотреть те сетевые протоколы и системы, которые составляют основу Интернета. Я считаю, что достаточно большое количество знаний о том, как работают компьютерные сети и Интернет, может помочь в понимании проблем масштабирования биткойна. В этой статье я уделю основное внимание трём протоколам: Ethernet, IP и TCP. Я считаю, что, поняв, как работают эти протоколы, можно более подготовленно ответить на большой вопрос о масштабировании биткойна и всех схожих блокчейнов. Итак, приступим.

На сегодняшний день в компьютерных сетях существуют две самые распространённые формы передачи данных: широковещательная (broadcast) и одноадресная (unicast). Существует и много других форм, среди которых anycast и multicast, но мы не будем затрагивать их в этой статье. Начнём с определений этих форм передачи данных.

  • Broadcast  — способ передачи данных, при котором информация отправляется из одной точки сети всем остальным; от одного — ко всем.

Схема широковещательной передачи данных

  • Unicast  — это способ передачи данных, при котором информация отправляется из одной точки сети в другую; от одного — к одному.

Схема одноадресной передачи данных

Поняв принцип работы этих двух способов передачи данных, мы очень легко можем обнаружить, что блокчейн-транзакции напоминают широковещательную передачу данных. Когда в сети биткойна происходит транзакция, она сообщается или вещается всем подключенным узлам в сети. Другими словами, для того чтобы создать транзакцию в сети биткойна, все узлы должны её получить и записать. Транзакции на блокчейне сильно напоминают устаревшие сетевые концентраторы, которые также передавали данные.

Давным-давно для передачи данных между компьютерами мы использовали сетевые концентраторы. В один прекрасный момент стало понятно, что они просто не могут быть масштабированы в связи с их ограниченной природой. Старые сетевые концентраторы поддерживали только широковещательную передачу данных. Данные, которые попадали в один интерфейс или порт, передавались и воссоздавались на всех других интерфейсах или портах сети. Приведу пример, чтобы стало более понятно. Если бы вы хотели отправить мне изображение размером 1МБ по сети со 100 участниками, то этот файл с изображением размером в 1МБ был бы создан 99 раз и передан всем другим пользователям сети.

В случае с биткойном происходит нечто подобное. Данные (транзакция или блок) от одного узла транслируются и повторяются всеми остальными узлами в сети. Блокчейны, как и устаревшие сетевые концентраторы, представляют собой жалкий способ передачи данных и сообщения. Для меня, как для сетевого инженера, было бы абсурдом рассматривать масштабирование такой глобальной платежной сети, как Биткойн, основываясь на проведении транзакций широковещательным способом. Даже сегодня мы, сетевые инженеры, с особым вниманием и осторожностью создаем сети Ethernet и LAN, не говоря уже о мировом уровне.

В качестве сравнения, если бы нам нужно было создать Интернет только на широковещательной передаче данных, как это происходит в блокчейнах и сетевых концентраторах, то нам бы пришлось поместить каждого отдельного человека, хост и устройство во всём мире в один сегмент LAN или широковещательный домен. Интернет бы превратился в гигантскую локальную вычислительную сеть, в которой вся передаваемая информация копировалась бы и вещалась на каждое устройство. Если бы вы открыли эту статью, то всем остальным устройствам в Интернете пришлось бы загружать эту статью. Другими словами, Интернет бы с треском остановился.

В компьютерных сетях самым распространенным видом взаимодействия является одноадресная передача данных, то есть принцип точка-точка. Большинство взаимодействий в Интернете проходит напрямую от одного компьютера к другому, нам не нужно создавать слепую широковещательную передачу данных, надеясь, что они дойдут до получателя. Мы можем отправить и доставить сообщения нужному получателю напрямую. Как было сказано выше, для того чтобы передать файл с изображением размером в 1МБ по широковещательной сети, этот файл нужно скопировать и передать каждому участнику этой сети. Вместо этого в сети, которая поддерживает одноадресную передачу данных, мы можем создать прямой маршрут для этого файла с изображением от источника к пункту назначения.

Я считаю, что Lightning Network представляет собой уровень IP для биткойна. (Я понимаю, что эти формы передачи данных существуют и в Ethernet, и в IP). Но я также понимаю, что эта аналогия помогает лучше понять сложные и абстрактные идеи блокчейна, Lightning, каналов и так далее.

Давайте на секунду остановимся и проигнорируем все объяснения и упрощенные определения Lightning, которые увековечены обеими сторонами дебатов. Вместо этого давайте объективно посмотрим на Lightning и определим, что нам известно. Что мы знаем о Lightning? Эта сеть позволяет замораживать биткойны и создавать каналы с другими участниками. Что ещё нам известно? Мы можем двунаправленно отправлять и получать транзакции между двумя точками сети, которые участвуют в канале. Что ещё нам известно? Мы можем отправлять транзакции дальше по необходимому маршруту.

Основываясь на этих ключевых знаниях, можно сказать, что Lightning позволяет проводить однодресные транзакции в системе (в биткойне), которая до этого поддерживала только широковещательные транзакции. Для меня узлы Lightning в биткойне — это эквивалент IP-хостов, благодаря которым мы наконец можем проводить транзакции точка-точка напрямую к нужным получателям. В случае с традиционным IP мы отправляем и получаем пакеты данных. В случае с Lightning мы отправляем и получаем биткойны. IP позволяет нам масштабировать небольшие и по большому счёту примитивные сети прошлого, превращая их в мировых гигантов, чем и является Интернет сегодня. Таким же образом Lightning позволяет масштабировать глобальную сеть Биткойна.

В то время как узлы Lightning можно сравнить с IP-хостами, каналы Lightning можно сравнить с установленными TCP-соединениями. Сегодня, если мы пытаемся подключиться, например, к веб-сайту, мы открываем TCP-соединение с интернет-сервером, через которое можем загружать исходный HTML-код веб-сайта. Когда же мы загружаем torrent-файл, то открываем TCP-соединение с другими компьютерами в Интернете, которые затем используем для передачи torrent-данных.

В случае с Lightning мы открываем каналы с другими участниками и можем напрямую (точка-точка) отправлять и получать данные (транзакции), как и в случае с TCP. Блокчейн можно сравнить с Ethernet, узлы Lightning —  с нашими IP, а каналы Lightning — с TCP-соединениями.

В завершение хочу сказать, что я вижу много схожего между предыдущими сетевыми технологиями и протоколами, на которых основываются компьютерные сети. Я считаю, что сейчас происходит процесс перевоплощения Интернета. С технической точки зрения я не верю, что возможно масштабирование Биткойна в рамках блокчейна, и опасаюсь широковещательных штормов в будущем. Я благосклонно отношусь к новым одноадресным методам проведения транзакций, которые предлагает Lightning Network. Более того, мне приятно находить веб-черты в Биткойне.

В то время как все сконцентрированы на блокчейн-технологии, я возлагаю надежды на Lightning. Lightning — это TCP/IP-стек Биткойна. Именно с Lightning мы и будем проводить транзакции. На Lightning будет построено всё. Lightning станет основой и создаст возможность для появления приложений, дополнительных протоколов и уровней. Что же произойдет с основным блокчейном Биткойна? Он должен быть и останется децентрализованным, защищённым от взлома, неизменным базовым или основным уровнем, который даст нам криптографические доказательство того, что такое Биткойн.

Некоторые люди и группы людей в наших кругах и сообществах нагоняют страх и предупреждают о дезинформации насчёт «узлов Lightning», но они не могут понять, что их подход к масштабированию транзакций в основном блокчейне только подталкивает нас в направлении концентраторов (ethernet). Если Биткойн потеряет децентрализацию на базовом уровне, то мы потеряем Биткойн. Последние девять лет работы приведут лишь к огромному централизованному широковещательному концентратору, и лишь небольшое количество людей смогут работать с таким монстром.

Я написал эту статью в надежде на то, что она поможет разъяснить существующую неразбериху вокруг Биткойна, блокчейна и Lightning. Статья предлагает объяснение блокчейна и Lightning посредством сравнения этих технологий с концепциями, с которыми многие знакомы.

Источник



Categories: Top, Инфраструктура, Основы, Разработчикам, Стандарты, Теория, Технологии

Tags: , ,

Leave a Reply

4 Комментарий на "Lightning: TCP/IP-стек Биткойна"

  Subscribe  
Notify of
Алексей
Гость

боже мой и такие статьи люди верят! Лайтинг не решает проблему broadcast а пытается решить проблему ограничения размера блока 1Мb, так как количество транзакций больше чем может поместиться в один блок и получается пропускная способность ниже потребностей. Это легко решается увеличением размера блока! А броадкаст работает совершенно по другому! Каждый узел соединен не со всеми узлами а только с 8 другими и броадкаст происходин на 8 узлов, которые соединены с другими 7 узлами. Легко можно посчитать что за 3-4 броадкаста покрывается более миллиона узлов! Про какую проблему броадкаста вообще может идти речь?

Участник

«Это легко решается увеличением размера блока».
Разуйте мозг! Размер блока проблем не решит. Лайтнинг делает транзакцию мгновенной и (почти)бесплатной. Изучите принцип его работы и не путайте людей.

Участник

Если у Вас все так хорошо с искусством подсчета, подсчитайте какой нужен блок для масштабирования битка хотя бы до возможностей VISA?

Asd_Skala
Гость

Удачный пример, теперь я уверен в Lightning