Введение
Проблема масштабирования блокчейн-сети
В результате складывается сложная ситуация с узконаправленным видом решений. Блокчейн можно рассматривать как поезд, который отправляется по точному расписанию. Количество мест в каждом вагоне ограничено, и чтобы получить билет, пассажиры должны сделать определенную ставку, чтобы забронировать место. Если все одновременно попытаются сесть в поезд, цена на место резко возрастет. Точно так же и с сетью забитой пендинг-транзакциями, в таком случае от пользователей требуется платить более высокую комиссию, чтобы своевременно добавить их транзакцию в обработку.
Создатель Ethereum Виталик Бутерин придумал трилемму масштабируемости, чтобы описать проблему, с которой сталкиваются блокчейны. Он теоретизирует, что протоколы должны найти компромисс между масштабируемостью, безопасностью и децентрализацией. Эти свойства несколько расходятся друг с другом, в то время как в основном фокусируются на двух свойствах, третье остается без внимания.
Что такое оффчейн-масштабирование?
Оффчейн-масштабирование относится к методам, которые позволяют осуществлять транзакции без увеличения количества блоков в блокчейне. Протоколы, которые подключаются к цепочке, позволяют пользователям отправлять и получать средства без транзакций, появляющихся на основной цепочке. Мы рассмотрим два наиболее известных решения в этом направлении: сайдчейны и платежные каналы.
Введение в сайдчейны
Что такое сайдчейн?
Сайдчейн, боковая цепочка (от англ. sidechain) – это отдельный блокчейн . Однако это не автономная платформа, так как она имеет некоторую привязку к основной цепи (майнчейну). Майнчейн и сайдчейн являются функционально совместимыми, это в свою очередь означает, что активы могут свободно перемещаться из одной цепи в другую.
Как это работает?
Предположим, что у нашей подруги Алисы есть пять биткоинов. Она хочет обменять их на пять эквивалентных единиц на биткоин-сайдчейне, давайте назовем их сайдкоинами. Целевой сайдчейн использует двустороннюю привязку (от англ. two-way peg), это означает, что пользователи могут переносить свои активы из основной цепи в боковую и наоборот.
После того, как Алиса конвертировала свои монеты в сайдкоины, она в любое время может провести процесс в обратном порядке. Теперь, когда она вошла в сайдчейн, она может свободно совершать операции в этой цепочке. Алиса может отправлять сайдкоины и получать их от других пользователь, так же, как и в основной цепи.
К примеру, она может заплатить Бобу один сайдкоин за худи Binance. Когда она захочет вернуться в биткоин, ей нужно будет отправить оставшиеся четыре сайдкоина на специальный адрес. После подтверждения транзакции четыре биткоина будут разблокированы и доставлены по адресу, который она контролирует на основной цепочке.
Для чего используются сайдчейны?
Вы можете задаться вопросом, какой в этом смысл? Почему просто нельзя использовать блокчейн биткоина?
Безусловно, для небольших повседневных платежей такой уровень безопасности не нужен. Если Алиса купит кофе, то у нее не будет ни малейшего желания стоять в ожидании подтверждения транзакции. Она задержит очередь, и к тому же ее напиток остынет до того момента когда его принесут.
Интересным является тот факт, что при возникновении критических ошибок сайдчейны могут работать, не затрагивая основную цепочку. Это позволяет использовать их в качестве платформ для проведения различных экспериментов и развертывания новых функций, которые в противном случае потребовали бы консенсуса от большинства участников сети.
При условии, что пользователи будут довольны компромиссами сети, сайдчейны могут стать неотъемлемым шагом на пути к эффективному масштабированию. Майнчейн нодам не нужно хранить каждую транзакцию из сайдчейна. Алиса может войти в сайдчейн с помощью одной транзакции в сети биткоина и выполнить сотню различных транзакций используя сайдкоины, а затем выйти из сайдчейна. То есть в блокчейне биткоина, она выполнит только две транзакции – одну для входа и другую для выхода.
Ethereum Plasma имеет схожие черты с подобным решением, но между ними есть много различий. Чтобы узнать подробности см. статью: «Что такое Ethereum Plasma?».
Введение в платежные каналы
Что такое платежный канал?
Платежные каналы служат для такой же цели, что и сайдчейны, но они принципиально отличаются. Подобно сайдчейнам, они выносят транзакции за рамки основной цепочки, чтобы предотвратить раздутие блокчейна, но в отличие от сайдчейна, в данном решении нет необходимости в отдельном блокчейне.
Платежный канал использует смарт-контракт, позволяющий пользователям совершать сделки, не публикуя свои транзакции в блокчейне. Это достигается с помощью программного соглашения между двумя участниками.
Как это работает?
Допустим, каждый из них вносит по 10 BTC на целевой адрес, после этого баланс кошелька составит 20 BTC. В блокчейне довольно просто рассмотреть их начальный баланс, который может подтвердить всем, что у Алисы и Боба по 10 BTC. Если Алиса передаст передать Бобу одну монету, она может обновить его, чтобы понять- Алиса имеет 9 BTC, Боб имеет 11 BTC. Им не нужно будет публиковать данные в блокчейне, поскольку общий баланс на адресе останется прежним.
Однако, может наступить момент, когда у Алисы будет 5 BTC, а у Боба 15 BTC. Они могут легко создать транзакцию, которая распределит правильные балансы на их личные адреса, после совместного подписания и передачи этой транзакции в сеть.
Алиса и Боб могли записать на своем балансе десять, сто или тысячу транзакций. Но что касается блокчейна, они сделали только две транзакции в цепочке: одну для начального депозита и одну после окончательного перераспределения средств между собой. Кроме этих двух, все другие транзакции являются бесплатными и почти мгновенными, поскольку они происходят вне цепочки. При этом Алиса и Боб не платили майнерам и не ждали подтверждений транзакций в блоках.
Маршрутизация платежей
Очевидно, что платежные каналы являются удобными для двух сторон, которые хотят обменяться большим количеством сделок, но с помощью маршрутизации платежей их функции становятся еще лучше. Допустим, что сеть этих каналов может расширяться, это означает, что Алиса может заплатить стороне, с которой она не связана напрямую. Если у Боба открыт канал с Кэрол, Алиса может передать ей средства при условии наличия достаточного объема средств. Для этого, она передает монеты Бобу, который в свою очередь, передаст их Кэрол. Если Кэрол подключена к другому участнику, например Дэну, то она может сделать то же самое.
Такая сеть эволюционирует в распределенную сетевую топологию, которая контактирует сразу с несколькими пирами. В такой сети зачастую будет присутствовать несколько маршрутов к месту назначения, и пользователи смогут выбрать наиболее подходящий и эффективный.
Заключение
Мы обсудили два подхода к масштабируемости, которые позволяют совершать транзакции, не обременяя лежащий в их основе блокчейн. Как сайдчейны, так и технология платежных каналов еще не созрели, но они все чаще используются пользователями, которые хотят обойти недостатки транзакций базового уровня.
По мере того, как идет время, и все больше пользователей присоединяются к сети, крайне важно поддерживать ее децентрализацию. Это достижимо только путем введения ограничений на рост блокчейна, чтобы новые ноды могли легко присоединяться. Сторонники оффчейн-решений масштабируемости полагают, что со временем основной блокчейн будет использоваться только для расчета больших финансовых сделок или для привязки входящих/исходящих сайдчейнов и открытия/закрытия каналов.