
Subscribe to Fuel Labs — Russian Blog

Subscribe to Fuel Labs — Russian Blog
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers


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

Основные функции уровня выполнения включают:
Обработка транзакций: Проверка и выполнение транзакций, отправленных пользователями.
Выполнение смарт-контрактов: Запуск кода смарт-контрактов, которые являются самовыполняющимися контрактами, где условия соглашения напрямую прописаны в коде.
Управление состоянием: Поддержание состояния блокчейна, включая балансы аккаунтов, состояния смарт-контрактов и другие важные данные. Управление состоянием в Ethereum особенно сложно из-за его сложного дерева состояний, но для решения этой проблемы разрабатываются инновации, такие как Verkle trees, которые оптимизируют хранение состояния, позволяя использовать меньшие и более эффективные доказательства данных. В то же время, другие блокчейны, такие как Solana, несмотря на отсутствие глобального дерева состояний, также сталкиваются с проблемами управления состоянием.
Цель масштабируемости заключается в повышении производительности за счет увеличения скорости обработки транзакций (быстрая финализация) и пропускной способности транзакций (большее количество транзакций в секунду). Люди часто думают о производительности в терминах TPS, или транзакций в секунду. В действительности, масштабируемость относится к количеству вычислений в секунду, которые блокчейн может обработать, так как транзакции могут различаться по сложности и требованиям к ресурсам. Ethereum использует "газ" для измерения вычислений, необходимых для выполнения транзакций и смарт-контрактов. Задача масштабирования уровня выполнения заключается в увеличении количества вычислений в секунду без значительного повышения требований к аппаратному обеспечению для отдельных полных нод, которые проверяют транзакции в блоках. Эффективное решение этой проблемы имеет решающее значение для повышения пропускной способности и производительности блокчейн-сетей.

Чтобы полностью понять, почему масштабируемость необходимо рассматривать с точки зрения вычислений, важно более подробно рассмотреть, как обрабатываются транзакции на Ethereum. Когда пользователь инициирует транзакцию в Ethereum, она проходит через несколько этапов, прежде чем будет завершена. Вот упрощенный обзор этого процесса:
Инициация транзакции: Внешне управляемый аккаунт (EOA) или владелец смарт-контракта инициирует транзакцию, создавая подписанный JSON-RPC запрос. Этот запрос включает такие детали, как адрес получателя, количество Эфира (если необходимо), данные для взаимодействия с контрактом, лимит газа и другие параметры транзакции.
Проверка цифровой подписи: Ноды в сети Ethereum сначала проверяют цифровую подпись транзакции, чтобы подтвердить ее подлинность и убедиться, что она не была изменена во время передачи.
Проверка nonce: Сеть проверяет nonce (одноразовое число) аккаунта отправителя, чтобы убедиться, что транзакция идет по порядку и предотвратить атаки воспроизведения. Nonce увеличивается с каждой отправленной транзакцией.
Расчет газа: Газ — это единица измерения вычислительных усилий, необходимых для выполнения транзакций и смарт-контрактов. Транзакция указывает лимит газа, который является максимальным количеством газа, которое отправитель готов использовать для этой транзакции. Плата за газ выплачивается в Эфире и покрывает стоимость вычислений и хранения в сети Ethereum.
Трансляция транзакции: После валидации транзакция транслируется на все ноды в Ethereum peer-to-peer сети. Ноды получают транзакцию и начинают процесс включения ее в блок для проверки.
Создание блока: Валидаторы в механизме консенсуса Proof of Stake (PoS) Ethereum проверяют и предлагают новый блок, включающий партии проверенных транзакций, включая самую недавно инициированную.
Валидация блока: Другие ноды также проверяют правильность транзакций, проверяя подписи, подтверждая наличие средств и обеспечивая отсутствие двойного расходования.
Обновление состояния: Когда блок признан действительным, каждая нода обновляет свою локальную копию блокчейна Ethereum новыми изменениями состояния из транзакций в этом блоке. Это означает обновление балансов аккаунтов, хранения контрактов и других важных данных. Ethereum поддерживает глобальное дерево Меркли, которое консолидирует все данные состояния, организуя их в иерархическую структуру, где состояние каждого блока хэшируется и связывается, что в конечном итоге приводит к единому корневому хэшу. Это обеспечивает единый корень состояния, позволяющий легким нодам проверять целостность конкретных транзакций или данных без необходимости загружать весь блокчейн.
Хотя уровень исполнения является центральным для функциональности Ethereum, он также представляет собой значительное узкое место для количества вычислений, которые Ethereum может обрабатывать в любой момент времени. Доступность данных (DA) была критической проблемой, но такие решения, как EIP-4844, которые ввели временные "блоб-данные", намного дешевле для хранения, чем обычные транзакции Ethereum, в значительной степени смягчили эти проблемы. Улучшая распределение данных и их хранение вне цепи, такие инновации, как EIP-4844, сместили акцент на уровень выполнения как на основное препятствие для масштабируемости Ethereum.
https://x.com/WestieCapital/status/1770853327527444483
Несколько факторов способствуют возникновению узкого места выполнения в Ethereum.
Задержка — это время от отправки транзакции до её подтверждения и включения в блокчейн. Высокая задержка может приводить к медленным подтверждениям транзакций, длительному ожиданию для пользователей и задержкам в выполнении смарт-контрактов. Основные узкие места задержки включают:
Время блока и задержка подтверждения: Среднее время блока в Ethereum, в настоящее время около 12 секунд, устанавливает минимальную задержку для подтверждения транзакций. Если транзакция включается в следующий блок, среднее время ожидания составляет примерно половину времени блока, или 6 секунд. При высоком объеме транзакций задержка может увеличиваться, так как транзакции дольше ждут включения в блок.
Синхронизация блокчейна (консенсус): Ноды в сети Ethereum должны достигнуть консенсуса о валидности каждого блока. Этот процесс может приводить к задержке, так как ноды проверяют транзакции, валидируют блоки и синхронизируются с состоянием сети. Различное время распространения блоков также вносит вклад в задержку.
Пропускная способность сети напрямую связана с её способностью эффективно обрабатывать и обрабатывать большие объемы транзакций в заданный промежуток времени. Более высокая пропускная способность означает, что сеть может обрабатывать больше транзакций в секунду. Узкие места пропускной способности включают:
Однопотоковое выполнение: Виртуальная машина Ethereum (EVM) обрабатывает транзакции по одной в однопоточном режиме. Это означает, что транзакции не могут выполняться параллельно, что ограничивает количество транзакций, которые могут быть обработаны одновременно.
Неэффективное выполнение: EVM использует 256-битные слова и стековый подход вместо регистров. Этот выбор дизайна приводит к неэффективному использованию вычислительных ресурсов, увеличивая время и энергию, необходимые для выполнения контрактов.
Управление состоянием: Ethereum поддерживает большое, глубоко вложенное дерево состояний с 256 уровнями. Каждый раз, когда обновляется пара "ключ-значение", необходимо сделать 256 обновлений в базе данных. Этот обширный процесс обновления значительно замедляет работу сети.
Накладные расходы на измерение газа: В то время как измерение газа предназначено для предотвращения чрезмерного использования ресурсов и избежания проблемы остановки, отслеживание каждой операции добавляет значительные накладные расходы. Эти накладные расходы способствуют более медленной обработке транзакций.
Ограничения по мощности нод: Ноды Ethereum имеют практические ограничения на свои вычислительные и хранилищные возможности. Когда потребности в обработке транзакций превышают эти ограничения, ноды не справляются с нагрузкой, что приводит к задержкам в проверке и распространении блоков.
Рост состояния: С увеличением числа транзакций увеличивается и состояние блокчейна. Этот рост требует большего объема хранения и делает проверку и доступ к состоянию более времязатратными, что дополнительно замедляет работу сети.
Проблемы с производительностью, возникающие из-за уровня исполнения, проявляются по-разному, влияя как на масштабируемость сети, так и на пользовательский опыт. Вот несколько примеров:
Загруженность сети: В периоды высокого спроса, такие как популярные TGE или выпуск NFT, количество транзакций может перегрузить сеть, что приводит к перегрузке. Это приводит к более длительному времени подтверждения и повышенным комиссиям за газ, так как пользователи соревнуются за обработку своих транзакций.
Высокие комиссии за газ: Когда сеть перегружена, комиссии за газ могут резко вырасти, делая даже простые транзакции непомерно дорогими для пользователей. Это ограничивает доступность и удобство использования сети.
Проблемы с масштабируемостью: Ограниченная пропускная способность EVM (Ethereum Virtual Machine) препятствует эффективному масштабированию Ethereum. По мере роста числа пользователей и децентрализованных приложений (dApps), сеть испытывает трудности с поддержанием увеличенной нагрузки без значительного ухудшения производительности.
Узкое место на уровне исполнения оказывает ощутимое влияние как на конечных пользователей, так и на разработчиков, существенно влияя на всю экосистему Ethereum.
Высокие комиссии за газ в периоды пиковых нагрузок делают взаимодействие с сетью дорогостоящим для пользователей, будь то отправка ETH, участие в DeFi протоколах или выпуск NFT. Загруженность сети может привести к задержкам подтверждения транзакций, что вызывает разочарование и неудобства у пользователей, ожидающих взаимодействия в реальном времени. Эти высокие расходы и задержки снижают общее впечатление использования сети, отпугивают потенциальных пользователей и ограничивают рост экосистемы.
С точки зрения разработчиков, необходимость оптимизации смарт-контрактов для минимизации использования газа добавляет сложности и времени к процессу разработки. Им также приходится сталкиваться с оптимизацией инфраструктуры, часто через сторонних поставщиков, таких как нод сервисы (например, Infura). Это может быть еще более серьезной проблемой, чем просто оптимизация смарт-контрактов. Создание масштабируемых децентрализованных приложений (dApps) на Ethereum усложняется ограниченной пропускной способностью сети, часто требуя от разработчиков внедрения решений вне сети или технологий масштабирования второго уровня для повышения производительности.
Значимые события, связанные с загруженностью сети
Безумие вокруг NFT CryptoKitties в конце 2017 года стало поворотным моментом, продемонстрировавшим, насколько загруженной может стать сеть. Всплеск транзакций от пользователей, занимающихся разведением и торговлей виртуальными котами, привел к значительным задержкам в сети. В разгар ажиотажа CryptoKitties было причиной почти 16% всех транзакций в сети Ethereum, что приводило к задержкам некоторых транзакций на часы или даже дни. Согласно статье на Coindesk, в какой-то момент было около 30 000 транзакций, которые застряли и ждали обработки.

Лето DeFi в 2020 году стало очередным периодом значительной загруженности сети. Быстрое принятие децентрализованных приложений (dApps) таких как Uniswap и Compound привело к значительному увеличению активности в сети. Эти факторы, наряду с другими, вызвали высокий спрос на пространство в цепочке и, как следствие, резкий рост комиссий за газ, при этом ежедневно тратилось тысячи ETH на транзакционные издержки.
Бум NFT в период с 2021 по 2022 годы еще больше подчеркнул проблемы масштабируемости Ethereum. Высокопрофильные запуски и аукционы NFT, такие как запуск Otherside от Yuga Labs, привлекли тысячи участников, что привело к резкому росту комиссий за газ. Средняя комиссия за газ в день выпуска Otherside превысила $400 за транзакцию.
Помимо нишевых видов деятельности, таких как торговля NFT и спекуляции на DeFi, высокие затраты и задержки могут также подрывать пользовательский опыт dApps, снижая вовлеченность и удержание пользователей. Несколько блокчейн-проектов были вынуждены либо мигрировать на другие блокчейны, либо полностью прекратить свою деятельность. Например, UniLogin, который стремился упростить вход пользователей в приложения на базе Ethereum — критическая функция для массового принятия, — был вынужден прекратить свою деятельность из-за того, что растущие комиссии за газ сделали его финансово нежизнеспособным, достигая временами более $130 за регистрацию. Кроме того, платформа Publish0x, на которой пользователи могут зарабатывать криптовалюту за создание и чтение контента, была вынуждена задерживать выплаты и перейти на ежемесячное распределение из-за высоких затрат. Для того чтобы Ethereum эффективно масштабировался для реальных приложений в таких областях, как финансы, управление цепочками поставок и децентрализованная идентификация, необходимо решить проблемы масштабируемости, чтобы поддержать более широкое принятие.
Реальные последствия узких мест на уровне выполнения очень значительны, затрагивая как пользователей, так и разработчиков. Высокие комиссии за газ, загруженность сети и ограничения масштабируемости препятствуют росту и удобству использования экосистемы Ethereum. Решение этих проблем требует инноваций и улучшений уровня выполнения.
В Части II мы рассмотрим важность инноваций в уровне выполнения для будущего Ethereum. Мы внимательно изучим текущие ограничения EVM, потенциальные решения и преимущества перехода за рамки традиционной модели выполнения.
Рекомендуемая литература:
Отказ от ответственности
Эта статья была переведена с ее оригинального языка для вашего удобства. Несмотря на стремление к точности, могут быть небольшие ошибки или различия в толковании. Для наиболее точного и достоверного представления, пожалуйста, обратитесь к оригинальной публикации, доступной по ссылке. Мы ценим ваше понимание и рекомендуем обращаться к оригинальному источнику за подробной информацией.
Это Часть I многосерийного цикла от Fuel Labs, посвященного вопросам масштабируемости и выполнения на Ethereum. Этот цикл направлен на предоставление всестороннего понимания проблем, связанных с повышением производительности и емкости Ethereum, а также рассмотрение текущих решений, направленных на повышение его эффективности и масштабируемости для широкого применения.
Архитектура Ethereum включает в себя несколько уровней, каждый из которых играет важную роль в работе сети. Среди этих уровней особенно значим уровень выполнения. Обработка транзакций, выполнение смарт-контрактов и поддержание согласованного и безопасного состояния происходят именно на уровне выполнения. Однако этот уровень часто является узким местом, ограничивающим общую производительность и масштабируемость сети Ethereum.
Выполнение относится к вычислениям, необходимым для выполнения транзакций и внесения изменений в состояние блокчейна. Эти вычисления часто включают в себя проверку транзакций путем проверки их подписей и балансов токенов, а также выполнение логики на блокчейне, необходимой для обновления состояния. Изменения состояния происходят, когда полные ноды обновляют свою копию реестра, чтобы отразить новые переводы токенов, обновления кода смарт-контрактов и изменения в хранении данных.

Основные функции уровня выполнения включают:
Обработка транзакций: Проверка и выполнение транзакций, отправленных пользователями.
Выполнение смарт-контрактов: Запуск кода смарт-контрактов, которые являются самовыполняющимися контрактами, где условия соглашения напрямую прописаны в коде.
Управление состоянием: Поддержание состояния блокчейна, включая балансы аккаунтов, состояния смарт-контрактов и другие важные данные. Управление состоянием в Ethereum особенно сложно из-за его сложного дерева состояний, но для решения этой проблемы разрабатываются инновации, такие как Verkle trees, которые оптимизируют хранение состояния, позволяя использовать меньшие и более эффективные доказательства данных. В то же время, другие блокчейны, такие как Solana, несмотря на отсутствие глобального дерева состояний, также сталкиваются с проблемами управления состоянием.
Цель масштабируемости заключается в повышении производительности за счет увеличения скорости обработки транзакций (быстрая финализация) и пропускной способности транзакций (большее количество транзакций в секунду). Люди часто думают о производительности в терминах TPS, или транзакций в секунду. В действительности, масштабируемость относится к количеству вычислений в секунду, которые блокчейн может обработать, так как транзакции могут различаться по сложности и требованиям к ресурсам. Ethereum использует "газ" для измерения вычислений, необходимых для выполнения транзакций и смарт-контрактов. Задача масштабирования уровня выполнения заключается в увеличении количества вычислений в секунду без значительного повышения требований к аппаратному обеспечению для отдельных полных нод, которые проверяют транзакции в блоках. Эффективное решение этой проблемы имеет решающее значение для повышения пропускной способности и производительности блокчейн-сетей.

Чтобы полностью понять, почему масштабируемость необходимо рассматривать с точки зрения вычислений, важно более подробно рассмотреть, как обрабатываются транзакции на Ethereum. Когда пользователь инициирует транзакцию в Ethereum, она проходит через несколько этапов, прежде чем будет завершена. Вот упрощенный обзор этого процесса:
Инициация транзакции: Внешне управляемый аккаунт (EOA) или владелец смарт-контракта инициирует транзакцию, создавая подписанный JSON-RPC запрос. Этот запрос включает такие детали, как адрес получателя, количество Эфира (если необходимо), данные для взаимодействия с контрактом, лимит газа и другие параметры транзакции.
Проверка цифровой подписи: Ноды в сети Ethereum сначала проверяют цифровую подпись транзакции, чтобы подтвердить ее подлинность и убедиться, что она не была изменена во время передачи.
Проверка nonce: Сеть проверяет nonce (одноразовое число) аккаунта отправителя, чтобы убедиться, что транзакция идет по порядку и предотвратить атаки воспроизведения. Nonce увеличивается с каждой отправленной транзакцией.
Расчет газа: Газ — это единица измерения вычислительных усилий, необходимых для выполнения транзакций и смарт-контрактов. Транзакция указывает лимит газа, который является максимальным количеством газа, которое отправитель готов использовать для этой транзакции. Плата за газ выплачивается в Эфире и покрывает стоимость вычислений и хранения в сети Ethereum.
Трансляция транзакции: После валидации транзакция транслируется на все ноды в Ethereum peer-to-peer сети. Ноды получают транзакцию и начинают процесс включения ее в блок для проверки.
Создание блока: Валидаторы в механизме консенсуса Proof of Stake (PoS) Ethereum проверяют и предлагают новый блок, включающий партии проверенных транзакций, включая самую недавно инициированную.
Валидация блока: Другие ноды также проверяют правильность транзакций, проверяя подписи, подтверждая наличие средств и обеспечивая отсутствие двойного расходования.
Обновление состояния: Когда блок признан действительным, каждая нода обновляет свою локальную копию блокчейна Ethereum новыми изменениями состояния из транзакций в этом блоке. Это означает обновление балансов аккаунтов, хранения контрактов и других важных данных. Ethereum поддерживает глобальное дерево Меркли, которое консолидирует все данные состояния, организуя их в иерархическую структуру, где состояние каждого блока хэшируется и связывается, что в конечном итоге приводит к единому корневому хэшу. Это обеспечивает единый корень состояния, позволяющий легким нодам проверять целостность конкретных транзакций или данных без необходимости загружать весь блокчейн.
Хотя уровень исполнения является центральным для функциональности Ethereum, он также представляет собой значительное узкое место для количества вычислений, которые Ethereum может обрабатывать в любой момент времени. Доступность данных (DA) была критической проблемой, но такие решения, как EIP-4844, которые ввели временные "блоб-данные", намного дешевле для хранения, чем обычные транзакции Ethereum, в значительной степени смягчили эти проблемы. Улучшая распределение данных и их хранение вне цепи, такие инновации, как EIP-4844, сместили акцент на уровень выполнения как на основное препятствие для масштабируемости Ethereum.
https://x.com/WestieCapital/status/1770853327527444483
Несколько факторов способствуют возникновению узкого места выполнения в Ethereum.
Задержка — это время от отправки транзакции до её подтверждения и включения в блокчейн. Высокая задержка может приводить к медленным подтверждениям транзакций, длительному ожиданию для пользователей и задержкам в выполнении смарт-контрактов. Основные узкие места задержки включают:
Время блока и задержка подтверждения: Среднее время блока в Ethereum, в настоящее время около 12 секунд, устанавливает минимальную задержку для подтверждения транзакций. Если транзакция включается в следующий блок, среднее время ожидания составляет примерно половину времени блока, или 6 секунд. При высоком объеме транзакций задержка может увеличиваться, так как транзакции дольше ждут включения в блок.
Синхронизация блокчейна (консенсус): Ноды в сети Ethereum должны достигнуть консенсуса о валидности каждого блока. Этот процесс может приводить к задержке, так как ноды проверяют транзакции, валидируют блоки и синхронизируются с состоянием сети. Различное время распространения блоков также вносит вклад в задержку.
Пропускная способность сети напрямую связана с её способностью эффективно обрабатывать и обрабатывать большие объемы транзакций в заданный промежуток времени. Более высокая пропускная способность означает, что сеть может обрабатывать больше транзакций в секунду. Узкие места пропускной способности включают:
Однопотоковое выполнение: Виртуальная машина Ethereum (EVM) обрабатывает транзакции по одной в однопоточном режиме. Это означает, что транзакции не могут выполняться параллельно, что ограничивает количество транзакций, которые могут быть обработаны одновременно.
Неэффективное выполнение: EVM использует 256-битные слова и стековый подход вместо регистров. Этот выбор дизайна приводит к неэффективному использованию вычислительных ресурсов, увеличивая время и энергию, необходимые для выполнения контрактов.
Управление состоянием: Ethereum поддерживает большое, глубоко вложенное дерево состояний с 256 уровнями. Каждый раз, когда обновляется пара "ключ-значение", необходимо сделать 256 обновлений в базе данных. Этот обширный процесс обновления значительно замедляет работу сети.
Накладные расходы на измерение газа: В то время как измерение газа предназначено для предотвращения чрезмерного использования ресурсов и избежания проблемы остановки, отслеживание каждой операции добавляет значительные накладные расходы. Эти накладные расходы способствуют более медленной обработке транзакций.
Ограничения по мощности нод: Ноды Ethereum имеют практические ограничения на свои вычислительные и хранилищные возможности. Когда потребности в обработке транзакций превышают эти ограничения, ноды не справляются с нагрузкой, что приводит к задержкам в проверке и распространении блоков.
Рост состояния: С увеличением числа транзакций увеличивается и состояние блокчейна. Этот рост требует большего объема хранения и делает проверку и доступ к состоянию более времязатратными, что дополнительно замедляет работу сети.
Проблемы с производительностью, возникающие из-за уровня исполнения, проявляются по-разному, влияя как на масштабируемость сети, так и на пользовательский опыт. Вот несколько примеров:
Загруженность сети: В периоды высокого спроса, такие как популярные TGE или выпуск NFT, количество транзакций может перегрузить сеть, что приводит к перегрузке. Это приводит к более длительному времени подтверждения и повышенным комиссиям за газ, так как пользователи соревнуются за обработку своих транзакций.
Высокие комиссии за газ: Когда сеть перегружена, комиссии за газ могут резко вырасти, делая даже простые транзакции непомерно дорогими для пользователей. Это ограничивает доступность и удобство использования сети.
Проблемы с масштабируемостью: Ограниченная пропускная способность EVM (Ethereum Virtual Machine) препятствует эффективному масштабированию Ethereum. По мере роста числа пользователей и децентрализованных приложений (dApps), сеть испытывает трудности с поддержанием увеличенной нагрузки без значительного ухудшения производительности.
Узкое место на уровне исполнения оказывает ощутимое влияние как на конечных пользователей, так и на разработчиков, существенно влияя на всю экосистему Ethereum.
Высокие комиссии за газ в периоды пиковых нагрузок делают взаимодействие с сетью дорогостоящим для пользователей, будь то отправка ETH, участие в DeFi протоколах или выпуск NFT. Загруженность сети может привести к задержкам подтверждения транзакций, что вызывает разочарование и неудобства у пользователей, ожидающих взаимодействия в реальном времени. Эти высокие расходы и задержки снижают общее впечатление использования сети, отпугивают потенциальных пользователей и ограничивают рост экосистемы.
С точки зрения разработчиков, необходимость оптимизации смарт-контрактов для минимизации использования газа добавляет сложности и времени к процессу разработки. Им также приходится сталкиваться с оптимизацией инфраструктуры, часто через сторонних поставщиков, таких как нод сервисы (например, Infura). Это может быть еще более серьезной проблемой, чем просто оптимизация смарт-контрактов. Создание масштабируемых децентрализованных приложений (dApps) на Ethereum усложняется ограниченной пропускной способностью сети, часто требуя от разработчиков внедрения решений вне сети или технологий масштабирования второго уровня для повышения производительности.
Значимые события, связанные с загруженностью сети
Безумие вокруг NFT CryptoKitties в конце 2017 года стало поворотным моментом, продемонстрировавшим, насколько загруженной может стать сеть. Всплеск транзакций от пользователей, занимающихся разведением и торговлей виртуальными котами, привел к значительным задержкам в сети. В разгар ажиотажа CryptoKitties было причиной почти 16% всех транзакций в сети Ethereum, что приводило к задержкам некоторых транзакций на часы или даже дни. Согласно статье на Coindesk, в какой-то момент было около 30 000 транзакций, которые застряли и ждали обработки.

Лето DeFi в 2020 году стало очередным периодом значительной загруженности сети. Быстрое принятие децентрализованных приложений (dApps) таких как Uniswap и Compound привело к значительному увеличению активности в сети. Эти факторы, наряду с другими, вызвали высокий спрос на пространство в цепочке и, как следствие, резкий рост комиссий за газ, при этом ежедневно тратилось тысячи ETH на транзакционные издержки.
Бум NFT в период с 2021 по 2022 годы еще больше подчеркнул проблемы масштабируемости Ethereum. Высокопрофильные запуски и аукционы NFT, такие как запуск Otherside от Yuga Labs, привлекли тысячи участников, что привело к резкому росту комиссий за газ. Средняя комиссия за газ в день выпуска Otherside превысила $400 за транзакцию.
Помимо нишевых видов деятельности, таких как торговля NFT и спекуляции на DeFi, высокие затраты и задержки могут также подрывать пользовательский опыт dApps, снижая вовлеченность и удержание пользователей. Несколько блокчейн-проектов были вынуждены либо мигрировать на другие блокчейны, либо полностью прекратить свою деятельность. Например, UniLogin, который стремился упростить вход пользователей в приложения на базе Ethereum — критическая функция для массового принятия, — был вынужден прекратить свою деятельность из-за того, что растущие комиссии за газ сделали его финансово нежизнеспособным, достигая временами более $130 за регистрацию. Кроме того, платформа Publish0x, на которой пользователи могут зарабатывать криптовалюту за создание и чтение контента, была вынуждена задерживать выплаты и перейти на ежемесячное распределение из-за высоких затрат. Для того чтобы Ethereum эффективно масштабировался для реальных приложений в таких областях, как финансы, управление цепочками поставок и децентрализованная идентификация, необходимо решить проблемы масштабируемости, чтобы поддержать более широкое принятие.
Реальные последствия узких мест на уровне выполнения очень значительны, затрагивая как пользователей, так и разработчиков. Высокие комиссии за газ, загруженность сети и ограничения масштабируемости препятствуют росту и удобству использования экосистемы Ethereum. Решение этих проблем требует инноваций и улучшений уровня выполнения.
В Части II мы рассмотрим важность инноваций в уровне выполнения для будущего Ethereum. Мы внимательно изучим текущие ограничения EVM, потенциальные решения и преимущества перехода за рамки традиционной модели выполнения.
Рекомендуемая литература:
Подтверждение транзакции: После включения транзакции в блок и добавления этого блока в блокчейн транзакция считается подтвержденной. Подтверждение указывает на то, что транзакция необратима и принята сетью Ethereum.
Окончательное выполнение и взаимодействие с контрактом: Для транзакций, взаимодействующих со смарт-контрактами, код контракта выполняется в соответствии с входными данными, предоставленными в транзакции. Это выполнение может включать обновление внутренних переменных состояния контракта, эмиссию событий или инициирование дополнительных транзакций.
Квитанция транзакции: Генерируется квитанция транзакции, которую можно проверить, чтобы подтвердить такие детали, как количество использованного газа, номер блока, в который была включена транзакция, и любые другие данные, созданные во время выполнения контракта.
Подтверждение транзакции: После включения транзакции в блок и добавления этого блока в блокчейн транзакция считается подтвержденной. Подтверждение указывает на то, что транзакция необратима и принята сетью Ethereum.
Окончательное выполнение и взаимодействие с контрактом: Для транзакций, взаимодействующих со смарт-контрактами, код контракта выполняется в соответствии с входными данными, предоставленными в транзакции. Это выполнение может включать обновление внутренних переменных состояния контракта, эмиссию событий или инициирование дополнительных транзакций.
Квитанция транзакции: Генерируется квитанция транзакции, которую можно проверить, чтобы подтвердить такие детали, как количество использованного газа, номер блока, в который была включена транзакция, и любые другие данные, созданные во время выполнения контракта.
No activity yet