logo involta foundation
Involta Foundation

Масштабируемость блокчейна

coin

Введение

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

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

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

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

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

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

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

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

Чтобы решить эту трилемму, был создан концепт офф-чейна (англ. off-chain – цепочка, находящаяся вне основного блокчейна)

Scalability Trilemma

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

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

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

Сайдчейн (англ. sidechain — сторонняя цепь) это отдельный блокчейн, который “связан” с основным блокчейном. Основной блокчейн и сайдчейн являются взаимозаменяемыми с точки зрения активов. Это означает, что монеты могут свободно переходит из одного блокчейна в другой.

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

Как работает сайдчейн

Представим, что у Алисы есть 10 биткоинов, и она хочет переместить все 10 BTC на сайдчейн Биткоина, она получит те же 10 биткоинов, только мы их назовем SBTC. Взаимозаменяемость блокчейнов означает, что Алиса может переносить свои активы с одного блокчейна на другой и обратно сколько угодно.

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

Зачем использовать сайдчейны

Так в чем же смысл сайдчейнов? Ответ заключается в том, что на сайдчейнах можно реализовать гораздо больше вещей. Например, Биткоин считается самой надежной криптовалютой, но c точки зрения пропускной способности технология оставляет желать лучшего. Блок формируется примерно раз в 10 минут, что означает примерно 3-7 транзакций в секунду. В каких-то областях, например, в трейдинге, это непозволительно. Сайдчейны не подчиняются правилам основного блокейна. В действительности, в сайдчейнах даже нет необходимости использовать алгоритм Proof-of-Work — можно использовать любой механизм консенсуса, а также изменять размер блока и время его формирования.

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

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

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

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

Как работают платежные каналы

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

Например, у Алисы есть 10 BTC и у ее друга тоже 10 BTC. Алиса отправляет другу 1 BTC, и в это время как у Алисы, так и у ее друга обновляется баланс: Алиса - 9 BTC, друг 3 11 BTC. Эту транзакцию можно не публиковать. Таким образом, каналы выплат существенно снижают нагрузку на блокчейн. К тому же, такие транзакции бесплатны и происходят моментально, так как майнеры в данном процессе не участвуют. Как только Алиса с другом закончили передавать друг другу биткоины, они могут создать запись в основном блокчейне об их балансе. Скажем у Алисы 14 BTC, а у друга 6 BTC. В блокчейне, несмотря на сотни операций между двумя участниками будет запись только об одной транзакции. Такая модель подходит только для участников, которые доверяют друг другу, однако, уже сейчас существуют каналы выплат, которые используют метод Zero Trust (англ. нулевое доверие). Это означает, что участникам не обязательно доверять друг другу при совершении операций, так как посредником между ними выступает смарт контракт, который проверяет подлинность всех данных.

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

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

Заключение

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

Читайте также