Содержание:
Введение
Это сложная проблема при расширении Blockchain
Какие существуют решения для масштабирования вне цепочки?
Введение в сайдчейн
Что такое сайдчейн?
Как работает сайдчейн?
Почему используются сайдчейны?
Введение в каналы платежей
Что такое канал платежей?
Как работает канал платежей?
Маршрутизация платежей
Резюме
Введение
Масштабируемость - это способность системы развиваться, чтобы удовлетворить растущие потребности в транзакциях. С компьютерами вы можете увеличить производительность, обновив оборудование для выполнения некоторых задач быстрее. Когда речь идет о масштабируемости в блокчейнах, мы говорим о повышении способности обрабатывать множество транзакций одновременно.
Протоколы, такие как Биткойн, имеют много сильных сторон, но масштабируемость не является одной из них. Если Биткойн был бы централизованной базой данных, было бы легко увеличить скорость и пропускную способность сети. Но ценностные заявления Биткойна (способность противостоять цензуре) требуют, чтобы много участников синхронизировали копию блокчейна.
Три проблемы трилеммы при масштабировании блокчейна
Запуск узла Биткойн относительно дешев, и даже простые устройства могут с этим справиться. Но поскольку тысячи узлов должны обновлять друг друга, существуют определенные ограничения их емкости.
Цепь может обрабатывать ограниченные объемы транзакций, чтобы не допустить, чтобы база данных выросла до размера, трудного для использования. Если транзакции слишком велики и слишком быстры, узлы не смогут справиться. Более того, если блоки слишком велики, их невозможно быстро передать в сети.
Результат заключается в том, что мы видим, что сталкиваемся с неким узким местом. Блокчейн можно рассматривать как железнодорожную услугу, отправляющуюся в определенные моменты времени. Каждый вагон имеет ограниченное количество мест, и для того чтобы получить билет, пассажиры должны участвовать в аукционе, чтобы гарантировать себе место. Если все попытаются сесть в поезд одновременно, цена билета возрастет. Аналогично, сеть, перегруженная ожидающими транзакциями, будет требовать от пользователей более высоких сборов, чтобы их транзакции были обработаны.
Одно из решений - сделать вагоны больше. Это означает больше мест, более высокую пропускную способность и более низкие цены на билеты. Но нет никаких гарантий, что места не будут заполнены, как это было раньше. Вагоны не могут быть расширены бесконечно, так же как блоки или лимиты газа не могут быть расширены бесконечно. Второй момент заключается в том, что поддержание узлов в сети будет дороже, так как они потребуют более дорогостоящего оборудования для поддержания синхронизации.
Создатель Ethereum, Виталик Бутерин, обозначил 3 проблемы трилеммы масштабируемости (Scalability Trilemma), чтобы описать вызовы, с которыми сталкиваются блокчейны. Он выдвинул гипотезу, что протоколы всегда должны делать компромисс между масштабируемостью, безопасностью и децентрализацией. Эти три аспекта всегда противоречат друг другу - слишком сильное внимание к двум из этих свойств приведет к ухудшению третьего свойства.
По этой причине многие считают, что масштабируемость - это то, что нужно достигать вне цепи (off-chain), в то время как безопасность и децентрализация должны быть максимально возможными на самом блокчейне.
Какие решения для масштабирования вне цепи существуют?
Масштабирование вне цепи описывает подходы, позволяющие выполнять транзакции, не увеличивая блокчейн. Протоколы, подключенные к цепи, позволяют пользователям отправлять и получать деньги, не требуя, чтобы транзакции появлялись в основной цепи. Мы рассмотрим два наиболее заметных решения на этом фронте: сайдчейн и каналы платежей.
Введение в сайдчейн
Что такое сайдчейн?
Каждый сайдчейн - это отдельный блокчейн. Однако он не является независимой платформой, так как он связан с основной цепью каким-то образом. Основная цепь и сайдчейн могут взаимодействовать друг с другом, что означает, что содержание может свободно перемещаться от одного блокчейна к другому.
Существует несколько способов обеспечить возможность перевода денег туда и обратно. В некоторых случаях активы перемещаются от основной цепи, отправляясь на специальный адрес. Они на самом деле не отправляются - вместо этого они блокируются на этом адресе, и соответствующая сумма выпускается на сайдчейне. Более простой способ (хотя и централизованный) - это отправить деньги доверенному лицу, которое обменяет их на сайдчейне.
Как работает сайдчейн?
Предположим, что у Алисы есть пять биткойнов. Она хочет обменять их на пять эквивалентных единиц на сайдчейне Биткойн - назовем их сайдкоинами. Упомянутый сайдчейн использует двухсторонний замок, что означает, что пользователи могут переводить свои активы с основной цепи на сайдчейн и обратно.
Помните, что сайдчейн - это отдельный блокчейн. Поэтому у него также будут свои блоки, узлы и механизмы валидации. Чтобы получить свои сайдкоины, Алиса отправит свои пять биткойнов на другой адрес. Получатель затем добавит эти 5 сайдкоинов на ее адрес после получения биткойнов. Кроме того, может существовать какая-то настройка для повышения надежности - программное обеспечение автоматически добавляет сайдкоины после обнаружения транзакции.

Алиса теперь конвертировала свои деньги в сайдкоины, но она всегда может отменить процесс, чтобы вернуть свои биткойны. Теперь, когда она присоединилась к сайдчейну, она может свободно торговать на этом отдельном блокчейне. Она может отправлять сайдкоины или получать их от других, так же как она делает это на основной цепи.
Например, она может заплатить Бобу одним сайдкоином за куртку Binance. Когда она хочет вернуть биткойн, она может отправить свои оставшиеся четыре сайдкоина на специальный адрес. После подтверждения транзакции четыре биткойна будут разблокированы и переведены на адрес, который она контролирует на основной цепи.
Почему используются сайдчейны?
Вы можете задаться вопросом, какова цель этого. Почему Алиса не использует блокчейн Биткойн для удобства?
Ответ заключается в том, что сайдчейны могут иметь то, что блокчейн Биткойн не может. Блокчейн - это тщательно продуманная система обмена. Хотя Биткойн - это самая децентрализованная и безопасная криптовалюта, он не является лучшим блокчейном с точки зрения пропускной способности. Хотя транзакции Биткойна быстрее, чем традиционные методы, они все равно относительно медленные по сравнению с другими системами блокчейна. Блоки добываются каждые десять минут, и сборы могут значительно увеличиваться, когда сеть перегружена.
Нужно признать, что мелкие ежедневные платежи, вероятно, не требуют такого уровня безопасности. Если Алиса хочет заплатить за чашку кофе, она не сможет ждать подтверждения этой транзакции. Ей придется стоять в очереди, и ее напиток остынет к моменту его доставки.
Сайдчейны не связаны теми же правилами. На самом деле, они даже не обязаны использовать механизм консенсуса Proof of Work для работы. Вы можете использовать любой механизм консенсуса, полагаясь на одного единственного валидатора или любое количество валидаторов. Вы можете добавлять обновления, которых нет на основной цепи, создавать более крупные блоки и обеспечивать быструю реализацию.
Интересно, что даже если у сайдчейнов есть серьезные ошибки, они все равно не влияют на нижележащую цепь. Это позволяет использовать их как платформу для тестирования и внедрения функций, которые не требуют согласия большинства сети.
Пока пользователи довольны компромиссом, сайдчейны являются эффективным способом масштабирования блокчейна. Узлы основной цепи не обязаны хранить все транзакции с сайдчейна. Алиса может присоединиться к сайдчейну с помощью одной транзакции Биткойн, выполнить сотни транзакций сайдкоинов, а затем покинуть сайдчейн. В процессе, для блокчейна Биткойн, Алисе нужно сделать всего две транзакции - одну для входа и одну для выхода.
Плазма Ethereum также работает аналогичным образом, но есть некоторые значительные различия. Узнайте больше: что такое Ethereum Plasma?
Введение в каналы платежей
Что такое канал платежей?
Каналы платежей функционируют как вспомогательный канал для увеличения масштабируемости блокчейна - аналогично сайдчейнам, но по сути они очень различны. Как и сайдчейны, каналы платежей выводят транзакции из основной цепи, чтобы предотвратить перегрузку блокчейна. Однако, в отличие от сайдчейнов, им не требуется отдельный блокчейн для работы.
Канал платежей использует смарт-контракт, чтобы позволить пользователям выполнять транзакции без необходимости публикации своих транзакций в блокчейне. Это делается с помощью соглашения, исполняемого программным обеспечением между двумя участниками.
Как работает канал платежей?
В популярных моделях, таких как Lightning Network, сначала обе стороны отправляют деньги на адрес, который они совместно владеют. Это адрес мультиподписи, требующий двух подписей для расходования средств. Таким образом, если Алиса и Боб создают такой адрес, деньги могут быть переведены только с согласия обоих.
Предположим, каждый отправляет по 10 BTC на один адрес, и этот адрес теперь имеет 20 BTC. Им будет легко поддерживать баланс, в котором указано, что у Алисы и Боба по 10 BTC. Если Алиса хочет подарить Бобу одну монету, они могут обновить его, чтобы отразить, что у Алисы 9 BTC, а у Боба 11 BTC. Им не нужно будет публиковать это в блокчейне, даже если они продолжают обновлять эти балансы.

Однако в определенный момент, предположим, когда у Алисы 5 BTC, а у Боба 15 BTC. Они могут создать транзакцию, отправляющую эти балансы на адреса, принадлежащие сторонам, подписать ее и записать в блокчейн.
Ранее Алиса и Боб, возможно, записали десять, сто или тысячу транзакций в своем бухгалтерском учете. Но для блокчейна они просто выполняют две операции в цепи: одну для первоначального депозита и одну для перераспределения баланса, когда все транзакции завершены. За исключением этих двух транзакций, все остальные транзакции бесплатны и происходят почти мгновенно, так как они выполняются вне цепи. Нет сборов для майнеров и нет необходимости в подтверждении блока.
Конечно, приведенный выше пример требует, чтобы обе стороны сотрудничали, что не идеальная ситуация, если они незнакомцы. Тем не менее, могут использоваться специальные механизмы для наказания любых попыток мошенничества, так что стороны могут взаимодействовать друг с другом безопасно, не полагаясь на доверие.
Маршрутизация платежей
Очевидно, что каналы платежей являются удобным инструментом, когда обе стороны имеют высокий объем транзакций. Кроме того, у них есть и другие преимущества. Сеть таких каналов может делиться на несколько частей, что означает, что Алиса может заплатить стороне, с которой у нее нет прямых связей. Если у Боба есть открытый канал с Кэрол, Алиса может заплатить ей, при условии, что у нее достаточно средств. Она отправит деньги в канал Боба, и Боб, в свою очередь, отправит их Кэрол. Если Кэрол связана с другим участником, Дэном, то то же самое можно сделать.
Такой сетевой канал развивается в дистрибутивную структуру, где каждый подключается к нескольким равноправным сторонам. Обычно будет несколько маршрутов к пункту назначения, и пользователи выберут самый эффективный маршрут.
Резюме
Мы обсудили два подхода, которые помогают увеличить масштабируемость блокчейна, позволяя выполнять транзакции без нагрузки на основную цепь. Технологии сайдчейнов и каналы платежей еще не полностью отработаны, но они все чаще применяются пользователями, стремящимися исправить недостатки транзакций на базовом уровне.
В будущем, когда больше пользователей присоединятся к сети, важно сохранить децентрализацию. Это можно достичь, установив ограничения на рост блокчейна, чтобы новые узлы могли легко присоединяться. Приверженцы решений по масштабированию вне цепи верят, что со временем основная цепь будет использоваться только для обработки высокоценных транзакций или для замков на сайдчейны и открытия/закрытия каналов платежей.

