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

Средний
Блокчейн
Apr 13, 2021
post.postDetail.readTime

aiSummary

showMore

detailedSummary

Как и биткоин, основной причиной проблемы масштабируемости Ethereum является сетевой протокол, который каждый узел в сети должен обработать каждую транзакцию. В Ethereum 1.x реализована слегка измененная версия механизма консенсуса по результатам проверки работоспособности (PoW). В Ethereum майнерам необходимо найти неценз, чтобы решить целевую проблему. Каждый узел должен убедиться, что работа майнеров является действительной, и сохранить точную копию текущего состояния сети. Это значительно ограничивает возможности и пропускную способность процесса транзакций в блокчейне Ethereum. В настоящее время он может обрабатывать только 12–15транзакций в секунду.

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

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

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

Безопасность. Это относится к целостности и неизменимости публичного реестра, а также к способности противостоять 51% атакам или атакам, похожим на DDoS.

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

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

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

Решения для масштабирования Ethereum

Масштабируемость Ethereum — одна из самых активных тем в сообществе Ethereum. Ниже приведены несколько проблем, которые сообщество пытается решить для будущего Ethereum:

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

Завершение транзакции — как скоро децентрализованная сеть достигнет консенсуса о том, что транзакция прошла и не может быть возвращена? В настоящее время для того, чтобы сеть могла считать блок окончательным в основной сети, требуется около шести блоков с биткоином и 3–4 минуты с Ethereum. Заинтересованные читатели должны ознакомиться с блоком Виталика для расчёта транзакций и вероятности завершения блока.

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

Размер блока

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

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

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

Альткоины

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

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

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

Ончейн-решения

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

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

Ещё одно решение уровня 1 или ончейн — это переход на механизм консенсуса «Доказательство стейкинга» (PoS), который является одной из самых активных областей исследования, направленных на решение проблем масштабируемости и эффективности в Ethereum. Существует множество дискуссий с точки зрения преимуществ и недостатков механизма консенсуса на основе PoW. Она довольно эффективна для защиты блокчейна в децентрализованной сети, но также является серьезной проблемой в работе блокчейна.

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

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

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

Случайно с самых старых нод.

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

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

Оффчейн-решения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Одним из очень интересных аспектов MVP является повторное введение модели UTXO. Одним из ключевых отличий Ethereum является переход от модели UTXO биткоина к более определённой модели аккаунта, где баланс аккаунта — это государственный объект, поддерживаемый в мире.

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

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

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

Массивная масштабируемость будет достигнута за счёт разгрузки дорогостоящих вычислений в дочерние сети и предоставления корневой сети общих услуг безопасности и арбитража в блокчейн на глобальном уровне. Существует несколько похожих кроссчейн-решений, таких как сеть Cosmos. Сеть Cosmos, которая считается интернетом блокчейнов, предлагает интеграционную архитектуру на основе хаба. Независимые блокчейны, как зоны или спицы, прикрепляются к основному блокчейну в качестве центра. Его цель — облегчить интеграцию блокчейна через протокол IBC (интер-блокчейн-коммуникации).

bybitApp
earnAnytime