Производительность и Масштабируемость Блокчейна Эфириум

Основная причина возникновения проблем с масштабируемостью Эфириума заключается, как и в случае с Биткоином, в том, что каждый узел сети должен обрабатывать каждую транзакцию. Эфириум 1.х задействует немного измененный механизм консенсуса proof-of-work (PoW). В Эфириуме майнеры должны состязаться в поиске случайного кода, чтобы удовлетворить требования по целевой сложности. Каждый узел должен подтвердить, что работа майнера пригодна, и хранить точную копию текущего состояния сети. Это значительно сужает возможности по обработке транзакций и снижает производительность сети блокчейна Эфириум. На данный момент она способна обрабатывать всего 12-15 транзакций в секунду.

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

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

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

Безопасность: здесь речь идет о надежности и неизменности публичного реестра, его способности противостоять атакам 51% и сетевым атакам, таким как DDoS-атаки.

Масштабируемость: относится к способности справляться с растущим количеством транзакций в сети блокчейн. Чтобы блокчейн Эфириум стал всемирной вычислительной системой, как представлял себе его изобретатель, он должен сводить все транзакции множества централизованных систем, таких как «Amazon», «Visa» и «Mastercard».

На следующей диаграмме проиллюстрирована трилемма масштабируемости блокчейна:

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

Решения для повышения масштабируемости Эфириума

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

Время обработки транзакций и создания блоков с использованием механизма PoW – насколько быстро майнеры могут обработать все транзакции и создать новый блок посредством майнинга?

Завершенность транзакции – насколько быстро децентрализованная сеть может прийти к согласию о том, что транзакция проведена и необратима? На данный момент для того, чтобы сеть считала блок завершенным в главной сети, в Биткоине необходимо шесть блоков, а в Эфириуме — 3-4 минуты. Заинтересованным читателям следует ознакомиться с блоком Виталика, чтобы узнать, какова вероятность проведения транзакции и необратимости блока. 

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

Размер блока

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

На следующей диаграмме проиллюстрировано, как работает эта техника:

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

Альткоины

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

На следующей диаграмме проиллюстрировано, как работает эта техника:

Однако у этого решения есть ряд недостатков, один из которых связан с безопасностью. Распространено мнение, что сеть защищена лучше, если в обработке транзакции в блокчейне участвует больше узлов сети. При более широком распространении цепей альткоинов меньше узлов будет работать в каждом отдельно взятом блокчейне. Это может снизить безопасность блокчейна, поскольку сеть альткоинов меньшего размера может оказаться более уязвимой к сетевым атакам. Скажем, в более крупной сети у нас около 10 000 узлов, для запуска атаки на сеть потребуется как минимум 5 001 узел (или 51% узлов). Если мы поделим 10 000 узлов на 50 цепочек меньшего размера, каждая цепочка будет состоять из 200 узлов, и для того, чтобы положить любую цепь меньшего размера, потребуется всего 101 узел, мы называем это проблемой атаки 1%. Еще одна проблема заключается в межсетевой интеграции. Несмотря на то, что разработано несколько решений для управления интеграцией между блокчейнами, сложность интеграции маленьких цепей и альткоинов существенно возрастает.

Решения ончейн

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

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

Еще одно решение первого уровня или решение ончейн заключается в переходе к механизму достижения консенсуса на основе доказательства доли владения (proof-of-stake, PoS), в отношении которого наиболее активно ведутся исследования, призванные решить проблемы масштабируемости и производительности Эфириума. О преимуществах и недостатках механизма достижения консенсуса на основе доказательства выполнения работы (PoW) ведутся споры. Он довольно эффективен с точки зрения обеспечения безопасности блокчейна в децентрализованной сети, но при этом он также является основным фактором, сдерживающим рост производительности блокчейна.

Проще говоря, механизм достижения консенсуса на основе доказательства доли владения (или proof-of-stake) является одним из самых популярных алгоритмов достижения консенсуса в сетях блокчейн. В отличие от механизма PoW, при котором майнеры получают вознаграждение за решение криптографических задач, в алгоритме достижения консенсуса PoS пул отобранных валидаторов по очереди предлагает новые блоки. Валидатор выбирается определенным образом в зависимости от его благосостояния, определяемого долей участия. Любой вносящий свои монеты в качестве доли может стать валидатором. Шансы на участие могут быть пропорциональны долям, внесенным участниками. Скажем, Алиса, Боб, Катерина и Дэвид, чтобы участвовать, внесли доли в размере  40 Эфиров, 30 Эфиров, 20 Эфиров и 10 Эфиров соответственно. Вероятность быть выбранными в качестве создателя блоков будет 40%, 30%, 20% и 10%.

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

Случайным образом из числа «самых богатых»;

Случайным образом из числа самых старых.

PoS считается более энергоэффективным и экологически ориентированным механизмом по сравнению с PoW. Кроме того, многие считают его еще и более безопасным. Он существенно снижает вероятность угрозы атаки 51%, поскольку валидаторам-злоумышленникам для нанесения удара по сети блокчейн потребовалось бы заполучить более 50% всех долей. Такой алгоритм разработан с целью отбить у атакующих желание ратифицировать неверные транзакции, ведь если они ратифицируют их, они могут потерять «финансовое обеспечение».

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

Решения офчейн

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

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

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

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

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

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

На диаграмме ниже показано, как может выглядеть сеть «Плазма»:

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

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

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

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

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

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

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

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

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

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

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

.

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

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

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