масштабирование криптовалюты что такое

Почему масштабируемость — большая проблема криптовалют

В чём суть проблемы масштабируемости

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

Такая неприятная ситуация возникает из-за ограничений в блокчейне. Суть в том, что каждый блок имеет строго прописанный максимум информации, которую он может в себя вместить. Такие ограничения помогают системе легче переживать DDoS-атаки на сеть. А транзакции являются той самой информацией, которая записывается в блоки, подтверждающие переводы. На создание каждого блока требуется время. У каждой криптовалюты оно своё, но у биткоина этот процесс занимает 10 минут.

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

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

Какие были предложены и реализованы решения проблемы масштабируемости

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

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

Увеличение размера блока до восьми мегабайт

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

Окей, снимаем ширму: первой группой разработчиков были ребята, которые впоследствии создали Bitcoin Cash, а второй группой была компания Blockstream со своим протоколом SegWit, который являлся целью компромисса. Разлад произошел после того, как создатели Bitcoin Cash приняли ряд важных решений без участия главы Blockstream Адама Бэка.

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

Источник

Способы масштабирования биткоина и других криптовалют

масштабирование криптовалюты что такое. Смотреть фото масштабирование криптовалюты что такое. Смотреть картинку масштабирование криптовалюты что такое. Картинка про масштабирование криптовалюты что такое. Фото масштабирование криптовалюты что такое

В этой статье

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

Например, транзакции биткоина увеличились в несколько раз: со 100 тысяч до 10 миллионов за пять лет. В сети Эфириум количество транзакций поднялось до 500 тысяч.

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

Проблема масштабируемости криптовалют

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

СистемаTpS
PayPal193
Visa1667
Ethereum20
Bitcoin (без segwit)7

Единственный способ улучшить эти цифры — работать с масштабируемостью. Эти проблемы можно сгруппировать таким образом:

Время добавления в блок

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

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

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

масштабирование криптовалюты что такое. Смотреть фото масштабирование криптовалюты что такое. Смотреть картинку масштабирование криптовалюты что такое. Картинка про масштабирование криптовалюты что такое. Фото масштабирование криптовалюты что такоеТеперь про Ethereum. Теоретически, сеть может обрабатывать 1000 транзакций в секунду. Однако на практике ограничивается 6,7 миллионами газа в каждом блоке. Статистику можно посмотреть на Etherscan.

Газ — это плата за вычислительные усилия, которые потребуются для решения смарт-контракта

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

Время достижения консенсуса

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

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

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

масштабирование криптовалюты что такое. Смотреть фото масштабирование криптовалюты что такое. Смотреть картинку масштабирование криптовалюты что такое. Картинка про масштабирование криптовалюты что такое. Фото масштабирование криптовалюты что такое

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

Это особенно относится к Ethereum, потому что в этой сети наибольшее количество нод среди всех криптовлют из-за популярности ICO.

Существующие решения масштабируемости

SegWit

Segwit — это сайдчейн, который идет параллельно основной цепи и содержит подписи к транзакциям. Тогда в блоке освобождается дополнительное место.

Увеличение размера блока

Раз проблема биткоина и эфириум в ограничении размера блока, почему бы просто не увеличить его? Изначально, BTC не должен был иметь блок в 1 Мб, но Сатоши Накамото установил ограничение, чтобы сеть не погрязла в спам-транзакциях.

Реализация увеличенного блока породила много дебатов в сообществе биткоина. Аргументы разных сторон таковы.

Против увеличения размера блока:

Аргументы за увеличения размера блока:

Увеличение размера блока было также рассмотрено для Ethereum, но из-за многих причин сообщество отказывается от этого:

Proof Of Stake

Сейчас одна из самых важных вещей — это переход Эфириума от PoW к PoS.

Для перехода к PoS в сети будет постепенно реализовываться Casper. Среди плюсов, кратко назовем:

У POS-майнеров не будет платы за блок, они могут зарабатывать только за транзакционные сборы. Это стимулирует их увеличить размер блока, чтобы получить больше транзакций (посредством управления газом).

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

Однако весь этот переход не лишен проблем. Одно из самых больших опасений — майнеры могут сделать форк до IceAge.

Sharding / Шардинг

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

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

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

Изначально блокчейн создавался в одном уровне взаимодействия: от блока к блоку (один блок связывается с другим и так далее). Шардинг предполагает два уровня взаимодействия.

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

Второй уровень: простой блокчейн, которая принимает транзакционные группы, а не транзакции.

Проблемы внедрения шардинга:

Оффчейн-каналы

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

Каковы требования для создания нового канала вне сети?

Главный протокол для масштабирования на данный момент lightning netwok. Подробнее механизм его работы мы описали в отдельной статье.

Plasma Ethereum

Это новый слой архитектуры Ethereum: сначала lightning, затем plasma и последним сам блокчейн.

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

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

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

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

Могут ли эти варианты решить проблему масштабируемости? Еще увидим.

Источник

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

масштабирование криптовалюты что такое. Смотреть фото масштабирование криптовалюты что такое. Смотреть картинку масштабирование криптовалюты что такое. Картинка про масштабирование криптовалюты что такое. Фото масштабирование криптовалюты что такое

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

Для широкого применения криптовалюты должны иметь высокую пропускную способность транзакций. В система Visa — 5K tps. Если рассматривать криптовалюту, как средство оплаты или полноценную систему для децентрализованных приложений, то надо ориентироваться на порядки в несколько тыс. транзакций в секунду.
В декабре 2017 г. Хайп на рынке привел к очень высокому повышению комиссии. Трансфер в сети биткойна стоил десятки долларов. И в данный момент большинство самых известных криптовалют имеют проблемы с масштабируемостью.

Максимум 1 мб блок. В блок помещается около 2000 транзакций, что дает около 3.5 транзакций в секунду. В 2016–2017 г. было очень много разговоров о пропускной способности биткойна и в итоге было запланировано 2 апгрейда сети

Не все клиенты пользуются Segregated Witness (т. к. это был сотфорк, а не хардфорк, то осталась обратная совместимость и многие не используют SegWit в транзакциях), то реальная пропускная способность увеличилась лишь частично. В теории имеется на данный момент 7 tps (transactions per second) и вряд ли это значение в ближайшем будущем будет сильно увеличено. Самый вероятный сценарий — LightningNetwork (о нем ниже).

Количество транзакций в эфире зависит от установленного лимита газа (совокупная мощность вычислений) на 1 блок. Сейчас это 8M. Это значение несколько раз менялось, было 3M и 5M. Существенно его не увеличить, т. к. ноды итак еле справляются. Размер блокчейна составляет около 1Тб. Пропускная способность около 15 транзакций в секунду и на данный момент это предел.

Основные способы увеличения пропускной способности криптовалют.

1. Увеличение размера блока. По этому пути можно пойти, но это временное решение проблемы, блок будет необходиомо увеличивать в сотни раз. Но даже 2–4-кратное увеличение блока приведет к снижению децентрализации, т. к. хранить у себя копию блокчейна станет сложнее. При текущей экономике майнинга (когда владельцы полных нод не получают вознаграждения) в эфире и биткойне этот путь никто не рассматривает всерьез.

2. Офф-чейн транзакции.

2.1. Платежные каналы.

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

Принцип PoS майнинга следующий. Владелец ноды устанавливает у себя ПО, скачивает блокчейн и кладет на свой баланс некоторое количество монет, не меньшее установленного протоколом, которые становятся залогом его добросовестности. Далее он, также, как и другие участники подтверждаете пришедшие к нему блоки. Каждый участник проводит транзакции в блоке, валидирует его и получает вознаграждение. Т. к. ПО у всех одинаковое и список транзакций тоже одинаковый, то результат у всех должен получиться одинаковым. В случае валидации неверного блока участник теряет залог. В теории атаковать сеть злоумышленнику невыгодно, т. к. для этого ему нужно скупить на рынке очень много койнов (>1/3, участвующих в майнинге, для вывода из строя и или >2/3, для получения контроля). Это принесет ему прибыль, но атака подорвет доверие к криптовалюте и обрушит ее стоимость. Но это теория, в реальности PoS алгоритмы еще не до конца изучены в полевых условиях. PeerCoin — первопроходец PoS, гибрид с POW, разработана в 2012 г. и имеет много недостатков.

Ключевая проблема алгоритмов PoS — проблема Византийских генералов BFT

Вид PoS — delegated PoS, где участники голосуют за валидаторов и делегируют им свои монеты за вознаграждение — https://miningbitcoinguide.com/mining/sposoby/dpos-protokol

Большое и серьезное видео о PoS и dPoS

4. Sharding. Разбиение блокчейна на несколько частей (шардов), когда каждый из них хранит лишь свою часть блокчейна. Можно сделать 100 шардов и на первый взгляд это увеличит пропускную способность в 100 раз. Но не все так просто. Проблема в том, что шарды не знают о состоянии других шард, т. е. по умолчанию можно делать транзакции только внутри шард. Чтобы обойти это ограничение надо наладить обмен информации между шардами и это снизит общую пропускную способность. Стоит отдельно добавить, что, судя по всему, для сохранения децентрализации Sharding является необходимостью, т. к. хранение блокчейна с 10K tps на сервере это очень дорогостоящее мероприятие, требующее большого количества аппаратных мощностей, а Sharding позволяет хранить лишь часть блокчейна.

Трилемма массштабируемости, которую шардинг по идее должен разрешить.

Источник

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

Источник

Что на самом деле означает «масштабируемость» в мире блокчейна?

Масштабируемость — одна из самых важных проблем в блокчейне. С тех пор, как появился Биткоин, она была в центре внимания как практиков отрасли, так и ученых. Чжицзе Рен и Питер Чжоу исследуют вопросы масштабируемости блокчейна в VeChain и сравнивают различные блокчейны, анализируя их плюсы и минусы. Их цель — обеспечить как криптовалютные сообщества, так и широкую публику глубоким пониманием текущего состояния развития блокчейна. Думаю, вам это тоже будет чертовски интересно. Далее — от первого лица.

Независимо от того, исследуете ли вы блокчейн в академических кругах или просто тащитесь от происходящего в мире крипты, вы наверняка слышали термин «масштабируемость» (scalability) или «масштабируемый блокчейн» (scalable blockchain). Об этом так много говорят, столько шума. Однако в большинстве случаев за «масштабируемым» блокчейном скрывается обычная цепочка блоков, способная достигать высоких показателей TPS (транзакций в секунду). Иногда бывает даже так, что истинный смысл «масштабируемости» искажается или даже намеренно меняется, чтобы ввести людей в заблуждение и получить незаслуженные преимущества. С другой стороны, мы видели массу докладов и статей, написанных исследовательскими институтами, компаниями или СМИ, в которых пытаются объективно сравнить масштабируемость разных блокчейнов. Однако вряд ли хоть кто-то из них способен отличить лживые утверждения от имеющих под собой почву.

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

Для большинства компьютерных систем — например, базы данных или поисковой системы — «масштабируемость» означает способность системы обрабатывать растущий объём работы, то есть масштабироваться. Система плохо масштабируется или, иными словами, имеет плохую масштабируемость, если вместо того, чтобы задействовать больше ресурсов (например, подключать дополнительную вычислительную мощность, серверы или пропускную способность), она требует дополнительных усилий по модификации системы, чтобы быть в состоянии справиться с возросшей нагрузкой.

И всё же, в области блокчейна у слова «масштабируемость» гораздо более широкий диапазон значений. Да что там говорить — даже термин «блокчейн» пока не получил хорошего определения с академической точки зрения. К примеру, если говорить про Bitcoin, многие до сих пор считают «масштабированием» любое улучшение пропускной способности, задержки, времени начальной загрузки или стоимости транзакций.

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

Фактически, мы можем классифицировать масштабируемые блокчейны на четыре типа:

Масштабирование Bitcoin

Все мы знаем, что Биткоин плохо масштабируется. Потому что дизайн POW (proof-of-work), лежащий в основе работы Биткоина, это не позволяет. В Биткоине POW используется как метод случайного определения следующего действительного (valid) блока, то есть все узлы «работают» (обеспечивают доказательство проделанной работы, POW) в течение определённого времени, чтобы определить победителя. Более того, новый блок должен быть синхронизирован со всей сетью, чтобы каждый узел мог (плюс-минус) конкурировать с другими в гонке за следующий блок. По сути, POW Биткоина обладает каскадной структурой, как на рисунке ниже.

Каскадная структура POW Биткоина запускает алгоритм консенсуса только после того, как все узлы закончат получать и проверять все блоки.

То, что синхронизация занимает 1 минуту, когда длительность работы POW составляет 10 минут (как в Биткоине) — это нормально. Но Биткоин больше не будет честным и безопасным, если время синхронизации будет сопоставимо с каждым циклом POW, что произойдёт, если размер блока увеличится или интервал блока значительно уменьшится — например, до 1 минуты. В таком случае в сети появится много форков, ответвлений, что в итоге приведёт к очень долгому времени подтверждения и снижению уровня безопасности.

Другими словами, неочевидное ограничение Биткоина заключается в том, что время каждого раунда работы алгоритма консенсуса должно быть значительно больше периода синхронизации. Сколько времени уйдёт на синхронизацию — зависит не только от дизайна алгоритма консенсуса, но и в значительной степени от характеристик основной сети, например, от пропускной способности, задержки, топологии, уровня децентрализации. В работе ‘On scaling decentralized blockchains‘ (О масштабировании децентрализованных блокчейнов) подсчитано, что Bitcoin мог обеспечить не больше 27 транзакций в секунду на сети Bitcoin в 2016 году. Это ограничение может быть неприменимо к отдельному альткоину, использующему тот же алгоритм POW для достижения консенсуса, или даже к современному Bitcoin, так как сети отличаются по размеру или уровню децентрализации. Однако вышеупомянутое ограничение остается в силе. Следовательно, «наивные» подходы, которые увеличивают блок (привет BCH — от редакции) или уменьшают интервал между блоками, могут «масштабировать» Биткоин совсем чуть-чуть.

Масштабирование POW

Для решения проблемы, изложенной выше, предлагаются новые схемы POW, в которых безопасность системы не зависит от синхронизации новых блоков, как показано на рисунке ниже. Другими словами, период согласования (достижения консенсуса) не обязательно должен быть значительно больше времени синхронизации, его можно оставить примерно или в точности таким же. Например, в Bitcoin-NG консенсус используется только для определения лидера раунда вместо целого набора транзакций. Таким образом, синхронизация транзакций может выполняться параллельно и может использоваться больший размер блока. Другие похожие блокчейны в этой категории имеют Hybrid Consensus, Byzcoin и GHOST.

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

POS (proof-of-stake)

Мы можем включить некоторые новые схемы POS в категорию масштабируемого POW с точки зрения масштабируемости. Всё потому, что в таких системах консенсус в сети достигается с помощью механизмов выбора лидера, которые основаны на генераторах случайных чисел и которым не требуется много времени для достижения справедливого выбора. Следовательно, у них нет ограничения в том, что «период консенсуса должен быть значительно больше времени синхронизации», и можно сразу перейти к большому размеру блока, как в решениях масштабирования POW. Среди известных проектов: Ouroboros, Snow White, Dfinity и Algorand.

Масштабирование BFT

Алгоритмы византийской отказоустойчивости (BFT) — это семейство алгоритмов консенсуса, которые могут допускать произвольное поведение ненадежных узлов, что позволяет честным узлам достигать консенсуса в ненадёжных сетях. Всё началось с задачи византийских генералов, предложенной Лесли Лэмпортом в начале 80-х. Однако из-за отсутствия «реальных» случаев применения практическая версия BFT появилась только в 1995 году и получила название «практической византийской отказоустойчивости» (PBFT).

PBFT — это алгоритм, имеющий сложность сообщения O(N²), как показано на следующем рисунке. N здесь — это общее число узлов проверки/майнинга в сети. На рисунке ниже показаны пять шагов в каждом раунде согласования (консенсуса), а стрелка представляет сообщение, отправляемого с одного узла на другой. Можно заметить, что для достижения консенсуса по одному сообщению это сообщение сперва должно быть передано всем узлам сети, а затем каждая нода (узел) должна оповестить каждую другую о сообщении.

Одним из главных недостатков PBFT является то, что он плохо масштабируется в зависимости от размера сети из-за сложности сообщения O(N²). Легко обнаружить, что количество сообщений, отправляемых между узлами для каждой транзакции, будет расти в квадрате относительно роста количества проверяющих сеть узлов. И поскольку пропускная способность может расти только пропорционально количеству узлов, пропускная способность будет уменьшаться по мере роста сети, и в принципе её нельзя будет использовать в сети с более чем, скажем, 50 узлами.

Для решения этой проблемы было предложено несколько идей, масштабирующих классические алгоритмы BFT. Первая попытка получила название спекулятивной (или предположительной) BFT. Идея очень проста: сперва узлы предполагают, что состояние сети хорошее и что среда доверенная, и используют более простые и эффективные схемы для достижения консенсуса. Если попытка в таком случае не удаётся, они переключаются обратно на более «дорогостоящий» PBFT. Это эквивалентно размену «худшей из задержек» на «лучшую из возможных пропускную способность». Отметим, что этот тип BFT на примере, допустим, Zyzzyva, существовал еще до концепции блокчейна. Поскольку проблема масштабируемости становится всё более и более важной, идея спекулятивной византийской отказоустойчивости была пересмотрена и принята на вооружение практиками и исследователями блокчейна для построения таких систем, как Byzcoin, Algorand и Thunderella.

Zyzzyva спекулятивно использует схему сложности сообщения O(N) для достижения консенсуса

Вторая идея заключается в намеренном удалении избыточности в процессе BFT за счёт использования информационно-теоретического инструмента — кодирования со стиранием. Он может повысить эффективность использования пропускной полосы. К примеру, Honeybadger-BFT попадает в эту категорию.

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

Что лучше: масштабируемый POW (POS) или масштабируемая BFT

Хотя схемы масштабируемого POW (POS) и масштабируемой BFT, упомянутые выше, могут отличаться как по форме, так и по концепции, они могут иметь схожую производительность с точки зрения пропускной способности. В идеале оба подхода должны максимально использовать пропускную способность для передачи сообщений и обеспечивать беспрепятственную сложность сообщений O(N). 100-1000 транзакций в секунду (TPS) в сети с сотнями узлов (нод) будет грубым приближением пропускной способности масштабируемого POW (POS) или масштабируемой BFT. Другими словами, если вы видите термин «масштабируемый блокчейн», скорее всего, он будет относиться к двум этим типам «масштабируемости».

Направленные ациклические графы (DAG)

Многих удивит, что алгоритмы консенсуса на базе DAG также попадают в эту категорию, поскольку многие считают, что их вполне можно масштабировать горизонтально. Но факт заключается в том, что большинство DAG, независимо от того, являются они академическими предложениями по типу Phantom, Conflux или Avalanche, или промышленными проектами по типу IOTA и Hedera Hashgraph, они требуют, что все сообщения были известны каждому углу. Phantom, Conflux и IOTA можно рассматривать как усовершенствованные версии GHOST (масштабируемый POW), обеспечивающие лучшее распараллеливание консенсуса и синхронизацию. Avalanche и Hedera Hashgraph можно рассматривать как алгоритмы спекулятивной BFT, которые выдают высокую пропускную способность с менее строгими предположениями BFT.

Горизонтальные блокчейны (scale-out)

Эта концепция больше напоминает первоначальное определение «масштабируемого» в распределённых системах, в том смысле, что как масштабируемый горизонтально (scale-out) блокчейн, так и масштабируемая распределённая система с радостью предлагают более высокую пропускную способность по мере роста сети. Принципиальное различие между ними заключается в том, что масштабируемость в распределённых системах требует линейного роста производительности системы вместе с числом серверов (узлов), а это по сути является недостижимым для блокчейна по причине децентрализации.

И поэтому исследователи блокчейна стремились к более низкому уровню масштабируемости, чтобы пропускная способность сети росла сублинейно с увеличением размера сети. В результате получались схемы, которые сегодня называются «масштабируемыми горизонтально блокчейнами». Возможно, вы не слышали об этом самом горизонтальном масштабировании (scale-out), но наверняка слышали о «шардинге», Lightning Network и Ethereum Plasma. Их все можно рассматривать как горизонтальные подходы к решению вопроса масштабируемости блокчейна.

В масштабируемых горизонтально блокчейнах некоторые сообщения могут никогда не достичь некоторых узлов. Здесь под «узлами» мы подразумеваем тех, кто участвует и в валидации, и в консенсусе. В контексте Биткоина это будет означать, что майнеры не должны знать и подтверждать все транзакции. Серьёзным следствием такого параметра будет то, что растёт риск двойной траты, поскольку монеты, потраченные в транзакции, можно потратить снова в узлах, которые не знают об этой транзакции. Чтобы предотвратить двойные траты и, в то же время, сохранить параметр, нам понадобится, чтобы некоторые узлы в сети проверяли транзакции от лица других, что фактически возвращает определённый уровень централизации в систему. В результате под угрозой оказывается безопасность или децентрализация. Эту проблему называют «трилеммой масштабируемости блокчейна». Из-за трилеммы были споры о том, стоит ли нам вообще использовать горизонтальные схемы масштабирования.

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

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

Шардинг (sharding) — это разделение всей сети на подсети, «шарды» или сегменты, где узлы в каждой подсети используют локальный ledger, то есть книгу блоков. В идеале каждому узлу нужно знать, проверять и хранить сообщения, передаваемые только в пределах его собственного сегмента, а не все. Можно представить шардинг как разбиение исходного блокчейна на меньшие блокчейны, которые менее безопасны, так как меньше узлов проверяют транзакции и участвуют в консенсусе.

Таким образом, самые большие проблемы стратегии шардинга следующие: 1) как защитить каждый шард; 2) как шарды могли бы эффективно и безопасно взаимодействовать для обработки транзакций между шардами. Например, если какие-нибудь криптовалюты перемещаются из шарда А в шард Б, получатель в шарде Б должен запросить действительность валют у множества узлов из шарда А, чтобы не попасться на уловку злоумышленников. Для решения этих двух проблем предлагалось много решений, достаточно перечислить некоторые: Omniledger, Chainspace, Rchain, шардинг для Ethereum, распространяться о них мы будем в другой статье.

Схемы вне блокчейна (off-chain), внешние решения надстройки, в значительной степени базируются на идеях Lightning Network, которая использует некоторые хитрые приёмы для активации отдельного канала вне блокчейна между двумя узлами для быстрых переводов — без необходимости регистрировать каждую транзакцию между ними на блокчейне Bitcoin. Однако такое удобство сопряжено с некоторыми издержками, а именно: обе стороны должны заранее внести депозит на блокчейн, чтобы открыть оффчейн-канал между собой. С тех пор предлагалось множество подобных внеблокчейновых схем, предлагающих проведение быстрых платежей. В частности, сторонам позволяли взаимодействовать посредством других типов сообщений, например, транзакций с множеством сторон (multi-party transactions), транзакций условных платежей (conditional payment transactions) и транзакций на смарт-контрактах (smart contract transactions). Таким образом, остаётся лишь задача спроектировать и эффективно развернуть такие механизмы за пределами блокчейна с применением принудительных мер на блокчейне для различных типов сообщений. Из обсуждаемых проектов: Plasma, Polkadot, Liquidity.

Что лучше: шардинг или внеблокчейновые платежи?

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

Фактически, термин «консенсус» состоит из двух свойств: согласованность (соглашение) и жизнеспособность (доступность). Первое означает, что два честных узла не должны иметь разногласий по поводу содержания сообщения. Последнее означает, что если честный узел знает сообщение, все остальные честные узлы в конечном счете тоже о нём узнают. Как для шардинга, так и для внеблокчейновых схем жизнеспособность оказывается скомпрометированной, поскольку о некоторых сообщениях узнают не все честные узлы. Разница между ними в том, как они достигают согласованности. В частности, шардинг гарантирует согласованность в шарде с определённым ухудшением безопасности. С другой стороны, решения вне цепи блоков не дают жёсткой гарантии согласованности. Вместо этого согласованность зависит от некоторого экономического принуждения, такого как депозит на основной цепи, и штрафного механизма, если кто-то ведёт себя плохо за пределами блокчейна.

VAPOR

Помимо шардингового и внеблокчейнового подходов, мы недавно предложили ещё одно решение для горизонтального масштабирования: VAPOR. Эта система основана на важном допущении под названием «рациональность», которое мы наблюдали на имеющихся системах блокчейна. В частности, мы находим, что большинство систем блокчейна рассматривают особый тип сообщений — транзакций, и большинство систем по умолчанию подразумевают, что участники блокчейна рациональны в отношении транзакций. К примеру, если Алиса рациональна и если она хочет что-то купить у Боба, после того, как она осуществит платежную транзакцию Бобу, ей нужно будет предоставить подлинность этой транзакции Бобу. И Боб, если он разумен и рационален, продаст свой товар только после того, как проверит, что сделка действительно подтверждена и подлинна. Мы называем это «рациональностью в передачи ценности». VAPOR использует «рациональность» в системе передачи ценности для масштабирования без ущерба для безопасности и децентрализации. Другими словами, VAPOR может использоваться в качестве полностью защищённой и децентрализованной системы ценностей, то есть в качестве криптовалюты, без необходимости каждого узла знать, подтверждать и хранить все транзакции. Однако у этой системы есть ограничение в функциональности, поскольку её можно использовать только для передачи ценности — в качестве «денег», чтобы допущение о «рациональности» соблюдалось.

Обсуждение

Мы надеемся, что теперь концепция масштабируемости блокчейна стала вам понятнее. Самое важное, что нужно из этого всего вынести: так называемый «масштабируемый блокчейн» ничего не скажет вам о его подлинной масштабирумости, если только его не сравнивают с Биткоином, POW Биткоина, классическим BFT или негоризонтальным блокчейном.

Критерии определения масштабируемости блокчейна

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

      Использует ли блокчейн POW Биткоина в качестве типа консенсуса? Если да, есть ли ограничение, что узлы всегда должны синхронизироваться с новейшими блоками, иначе их мощность майнинга будет потрачена впустую? Если да, это не масштабируемый POW.
      Использует ли блокчейн византийскую отказоустойчивость (BFT) в качестве типа консенсуса? Если да, есть ли какая-нибудь хитрая уловка, которая позволяет уменьшить сложность сообщения? Если нет, это не масштабируемая BFT.
      Нужно ли знать каждый кусочек сообщения каждому проверяющему узлу/майнеру? Узел в данном случае означает узлы, которые участвуют в консенсусе, то есть узлы, которые могут генерировать блоки — например, майнеры в контексте криптовалют. Если да, это не горизонтально масштабируемый блокчейн.

Так сколько транзакций в секунду может быть на блокчейне?

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

Слой 1 или слой 2?

«Что будет лучшим решением для масштабирования блокчейна, слой 1 или слой 2?» — этот вопрос вызывает столько горячих споров, что мы не могли его не задать, обсуждая «масштабируемость». Однако мы не будем называть их конкретно, поскольку определение слою 1 и слою 2 (layer 1/layer 2), как таковое, не существует. Ограничимся кратким описанием.

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *