Масштабируемость блокчейна – сайдчейны и платежные каналы
Главная
Статьи
Масштабируемость блокчейна – сайдчейны и платежные каналы

Масштабируемость блокчейна – сайдчейны и платежные каналы

Профессионал
Опубликовано Feb 20, 2020Обновлено Feb 9, 2023
9m

Введение

Масштабируемость относится к способности системы развиваться в соответствии с растущим спросом. В вычислительных системах вы можете повысить производительность своего оборудования обновив его аппаратное обеспечение для того, чтобы быстрее выполнять определенные задачи. Когда мы говорим о масштабируемости в блокчейнах, мы имеем в виду их способность обрабатывать большее количество транзакций.
Протоколы, такие как биткоин, обладают множеством преимуществ, но масштабируемость не является одной из них. Если бы биткоин запускался базируясь на централизованной базе данных, администратору было бы относительно легко увеличить скорость операций и пропускную способность, но ценные предложения биткоина (то есть устойчивость к цензуре) требуют, чтобы многие участники сети постоянно синхронизировали копию блокчейн-сети.


Проблема масштабирования блокчейн-сети

Запустить биткоин-ноду относительно дешево, это можно сделать даже на технически слабых устройствах. Но поскольку тысячи нод должны быть в курсе о деятельности друг друга, существуют определенные ограничения в их пропускной способности. 
Ограничения накладываются на количество транзакций, которые могут быть обработаны в цепочке, все это для того, чтобы не дать базе данных быстро увеличиться до гигантских размеров. Если она станет слишком большом и быстрой, ноды не смогут оперативно взаимодействовать между собой. Более того, если блоки будут слишком большие, они не смогут быстро ретранслироваться по сети.

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

Одним из решений было бы увеличить размер вагонов. Это будет предполагать больше мест, более высокую пропускную способность и снизить цену на билеты. Но нет никакой гарантии того, что места не начнут заполняться, также, как это было раньше. Их нельзя постоянно расширять, точно так же, как блоки или пределы газа в блоке, которые попросту не могут масштабироваться бесконечно. Последнее делает содержание нод еще более затратным, поскольку их владельцам потребуется более дорогостоящее оборудование для синхронизации с блокчейном.

Создатель Ethereum Виталик Бутерин придумал трилемму масштабируемости, чтобы описать проблему, с которой сталкиваются блокчейны. Он теоретизирует, что протоколы должны найти компромисс между масштабируемостью, безопасностью и децентрализацией. Эти свойства несколько расходятся друг с другом, в то время как в основном фокусируются на двух свойствах, третье остается без внимания.

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


Что такое оффчейн-масштабирование?

Оффчейн-масштабирование относится к методам, которые позволяют осуществлять транзакции без увеличения количества блоков в блокчейне. Протоколы, которые подключаются к цепочке, позволяют пользователям отправлять и получать средства без транзакций, появляющихся на основной цепочке. Мы рассмотрим два наиболее известных решения в этом направлении: сайдчейны и платежные каналы.


Введение в сайдчейны

Что такое сайдчейн?

Сайдчейн, боковая цепочка (от англ. sidechain) – это отдельный блокчейн . Однако это не автономная платформа, так как она имеет некоторую привязку к основной цепи (майнчейну). Майнчейн и сайдчейн являются функционально совместимыми, это в свою очередь означает, что активы могут свободно перемещаться из одной цепи в другую.

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


Как это работает?

Предположим, что у нашей подруги Алисы есть пять биткоинов. Она хочет обменять их на пять эквивалентных единиц на биткоин-сайдчейне, давайте назовем их сайдкоинами. Целевой сайдчейн использует двустороннюю привязку (от англ. two-way peg), это означает, что пользователи могут переносить свои активы из основной цепи в боковую и наоборот.

Помните, что сайдчейн или боковая цепь - это отдельный блокчейн. Таким образом, его блоки, ноды и механизмы валидации будут отличаться от основной цепи. Чтобы получить сайдкоины, Алиса отправляла пять биткоинов на другой адрес. Он может принадлежать кому-то, кто затем зачислит на ее сайдчейн-адрес пять сайдкоинов, как только получит оплату. В качестве альтернативы, он может иметь какую-то настройку с минимальным доверием, при которой сайдкоины автоматически зачисляются после того, как программное обеспечение обнаруживает платеж.



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

К примеру, она может заплатить Бобу один сайдкоин за худи Binance. Когда она захочет вернуться в биткоин, ей нужно будет отправить оставшиеся четыре сайдкоина на специальный адрес. После подтверждения транзакции четыре биткоина будут разблокированы и доставлены по адресу, который она контролирует на основной цепочке.


Для чего используются сайдчейны?

Вы можете задаться вопросом, какой в этом смысл? Почему просто нельзя использовать блокчейн биткоина?

Ответ заключается в том, что сайдчейн способен на то, что биткоин сделать не может. Блокчейны – это тщательно продуманные системы компромиссов. Хоть биткоин и является самой безопасной и децентрализованной криптовалютой, он не лучший с точки зрения пропускной способности. В то время, как биткоин-транзакции быстрее, чем традиционные, они все еще относительно медленные по сравнению с другими блокчейн-системами. Блоки добываются каждые десять минут, а комиссионные сборы могут значительно увеличиться при перегрузке сети.

Безусловно, для небольших повседневных платежей такой уровень безопасности не нужен. Если Алиса купит кофе, то у нее не будет ни малейшего желания стоять в ожидании подтверждения транзакции. Она задержит очередь, и к тому же ее напиток остынет до того момента когда его принесут.

Сайдчейны не связаны между собой одинаковым набором правил. По факту, им даже не нужно использовать алгоритм Proof of Work для своего функционирования. Такие системы могут использовать любой механизм консенсуса, доверяя одному валидатору или сформировать определенный набор настроек с любым количеством параметров. Также для них открывается доступ проводить обновления, которые не существуют на основной цепочке, создавать более крупные блоки и увеличивать скорость денежных расчетов.

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

При условии, что пользователи будут довольны компромиссами сети, сайдчейны могут стать неотъемлемым шагом на пути к эффективному масштабированию. Майнчейн нодам не нужно хранить каждую транзакцию из сайдчейна. Алиса может войти в сайдчейн с помощью одной транзакции в сети биткоина и выполнить сотню различных транзакций используя сайдкоины, а затем выйти из сайдчейна. То есть в блокчейне биткоина, она выполнит только две транзакции – одну для входа и другую для выхода.

Ethereum Plasma имеет схожие черты с подобным решением, но между ними есть много различий. Чтобы узнать подробности см. статью: «Что такое Ethereum Plasma?».


Введение в платежные каналы

Что такое платежный канал?

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

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


Как это работает?

В таких моделях, как популярная сеть Lightning Network, две стороны сначала производят депозит монеты на адрес, которым они совместно владеют. Это специальный адрес с мультиподписью, в котором расходование средств осуществляется только при наличии двух подписей. Таким образом, если Алиса и Боб создали такой адрес, то средства могут быть переведены только после согласия двух сторон.

Допустим, каждый из них вносит по 10 BTC на целевой адрес, после этого баланс кошелька составит 20 BTC. В блокчейне довольно просто рассмотреть их начальный баланс, который может подтвердить всем, что у Алисы и Боба по 10 BTC. Если Алиса передаст передать Бобу одну монету, она может обновить его, чтобы понять- Алиса имеет 9 BTC, Боб имеет 11 BTC. Им не нужно будет публиковать данные в блокчейне, поскольку общий баланс на адресе останется прежним.



Однако, может наступить момент, когда у Алисы будет 5 BTC, а у Боба 15 BTC. Они могут легко создать транзакцию, которая распределит правильные балансы на их личные адреса, после совместного подписания и передачи этой транзакции в сеть.

Алиса и Боб могли записать на своем балансе десять, сто или тысячу транзакций. Но что касается блокчейна, они сделали только две транзакции в цепочке: одну для начального депозита и одну после окончательного перераспределения средств между собой. Кроме этих двух, все другие транзакции являются бесплатными и почти мгновенными, поскольку они происходят вне цепочки. При этом Алиса и Боб не платили майнерам и не ждали подтверждений транзакций в блоках.

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


Маршрутизация платежей

Очевидно, что платежные каналы являются удобными для двух сторон, которые хотят обменяться большим количеством сделок, но с помощью маршрутизации платежей их функции становятся еще лучше. Допустим, что сеть этих каналов может расширяться, это означает, что Алиса может заплатить стороне, с которой она не связана напрямую. Если у Боба открыт канал с Кэрол, Алиса может передать ей средства при условии наличия достаточного объема средств. Для этого, она передает монеты Бобу, который в свою очередь, передаст их Кэрол. Если Кэрол подключена к другому участнику, например Дэну, то она может сделать то же самое.

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


Заключение

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

По мере того, как идет время, и все больше пользователей присоединяются к сети, крайне важно поддерживать ее децентрализацию. Это достижимо только путем введения ограничений на рост блокчейна, чтобы новые ноды могли легко присоединяться. Сторонники оффчейн-решений масштабируемости полагают, что со временем основной блокчейн будет использоваться только для расчета больших финансовых сделок или для привязки входящих/исходящих сайдчейнов и открытия/закрытия каналов.