Клиенты без статуса: Путь к децентрализации в Ethereum

НовичокDec 25, 2023
В этой статье содержится подробное введение в децентрализованное решение Ethereum - клиент без состояния, а также объясняется, что такое состояние, его происхождение, принципы и решения.
Клиенты без статуса: Путь к децентрализации в Ethereum

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

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

Что такое состояние Ethereum?

Чтобы понять, что такое клиенты без состояния, нам сначала нужно разобраться с концепцией "состояния" в Ethereum. Состояние Ethereum означает текущее состояние всех счетов, контрактов, балансов, нонсов и хранилищ в мире Ethereum. Его можно представить себе как базу данных, в которой хранится вся необходимая информация о сети Ethereum в данный момент времени.

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

По мере того, как со временем добавляется все больше аккаунтов, контрактов и транзакций, состояние Ethereum становится все больше и больше. На сегодняшний день размер государства составляет более 1 ТБ и увеличивается на десятки гигабайт в год. Этот растущий штат лежит в основе проблем с децентрализацией.

Почему рост штата вызывает проблемы

Увеличение размера состояния Ethereum вызывает несколько ключевых проблем:

  • Более длительное время синхронизации для новых узлов - Для синхронизации нового узла требуется очень много времени, чтобы обработать все исторические изменения состояния. Это препятствует децентрализации, затрудняя запуск новых полноценных узлов. Синхронизация нового узла с genesis в настоящее время занимает несколько дней, вплоть до недель, на потребительском оборудовании. Это является серьезным препятствием для эффективного создания новых узлов и присоединения к сети большего числа участников.
  • Повышенные требования к аппаратному обеспечению - Для хранения, доступа и обновления больших объемов информации требуется больше хранилищ, памяти и вычислительной мощности. Это лишает менее обеспеченных пользователей возможности запускать узлы. Как минимум, для работы полностью синхронизированного узла Ethereum теперь требуется SSD емкостью 1-2 ТБ. Это недоступно для многих потенциальных операторов узлов.
  • Большее использование полосы пропускания - Трансляции новых блоков должны также включать обновленное состояние, что требует большей пропускной способности. Это увеличивает расходы операторов узлов. В настоящее время государство доминирует в большинстве блочных трансляций, поэтому размеры блоков продолжают расти. Большая пропускная способность означает более высокие затраты для операторов узлов.
  • Замедленная проверка блоков - Считывание и обновление большего состояния делает проверку блоков более медленной, что ограничивает пропускную способность транзакций. Каждая транзакция требует множества операций чтения и записи в хранилище для обновления баланса, несов, состояния контракта и т.д. Большее состояние означает большее количество чтений/записей на блок, что уменьшает количество транзакций, которые могут быть обработаны в секунду.
  • Постоянные затраты на хранение - После того, как данные добавлены в состояние, они должны храниться вечно. Это создает неограниченный рост государства. В настоящее время не существует механизма активного удаления старых и неиспользуемых данных о состоянии. Таким образом, расходы на содержание государства растут бесконечно долго, пока Ethereum продолжает работать.

Клиенты без статуса: объяснение

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

Вот как работают клиенты без статусов на высоком уровне:

  • Клиент хранит только заголовки блоков и корни состояний, а не полные данные о состоянии. Заголовки блоков содержат метаданные, такие как корневой хэш состояния триэ после обработки этого блока.
  • При проверке нового блока клиент получает "свидетеля" вместе с блоком. Этот свидетель представляет собой набор доказательств Меркла, которые демонстрируют, что определенные обновления состояния, полученные в результате транзакций, являются действительными.
  • Свидетель содержит доказательства Меркла для определенных значений состояния, необходимых для обработки транзакций. Например, обновляются остатки на счетах или хранятся контракты.
  • Клиент использует свидетеля, чтобы убедиться, что транзакции действительны по отношению к последнему известному корню состояния. Доказательства подтверждают, что изменения состояния соответствуют предыдущему корню.
  • Если он действителен, клиент обновляется до нового корня состояния, указанного в заголовке блока. Этот новый корень состояния будет использоваться для проверки следующего блока.

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

  • Очень быстрое время синхронизации - нет необходимости воспроизводить исторические изменения состояния. Клиент без статических данных может синхронизироваться почти мгновенно, используя только заголовки блоков.
  • Низкие требования к хранению - корни состояний занимают всего 32 байта. Вместо сотен гигабайт данных нужны только заголовки блоков.
  • Меньшая пропускная способность - передаются только заголовки блоков и свидетели, а не полное состояние. Использование полосы пропускания сведено к минимуму.
  • Быстрая проверка - свидетели содержат только небольшие подмножества релевантных состояний. Подтверждаются только обновленные счета/хранилища.
  • Простая поддержка легких клиентов - легкие клиенты могут легко проверять доказательства. Легкая клиентская модель очень совместима с верификацией без статических данных.

Проблемы с клиентами без статуса

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

  • Размер свидетелей - свидетели могут быть слишком большими для эффективной передачи. Если использовать полные доказательства Меркла, они могут превысить ограничения на размер блока.
  • Создание свидетелей - генерирование оптимальных свидетелей является сложной задачей для разработчиков блоков. Предложения должны собрать нужные фрагменты доказательств для проверки каждой транзакции.
  • Никаких стимулов для свидетелей - предоставление свидетелей не приносит никакого прямого вознаграждения. В отличие от майнинга, здесь нет встроенной структуры стимулов для создания свидетелей.
  • Временные данные - свидетели подтверждают свое состояние в определенный момент времени, требуя регенерации. Свидетели не могут быть использованы повторно по мере выполнения состояния.
  • Хранение состояния - кто-то все еще должен поддерживать полное состояние для создания свидетелей. Проверка без состояния основывается на генерации свидетелей с состоянием.
  • Сложные приложения - некоторые контракты могут полагаться на большие подмножества состояний, раздувая свидетелей. Например, контракты, которые обновляют много слотов хранения за одну транзакцию.

Возможные решения

Исследователи предложили различные решения для устранения этих проблем:

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

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

Потенциальное влияние

Если технические препятствия удастся преодолеть, клиенты без статусов могут значительно продвинуть Ethereum:

  • Более быстрая синхронизация и проверка для поддержки более высокой пропускной способности транзакций. Валидация без состояния значительно ускорит обработку блоков.
  • Снижение потребности в ресурсах для работы узлов, улучшение децентрализации. Ноутбуки и любители могут реально запускать полные узлы.
  • Улучшенная поддержка легких клиентов, таких как мобильные кошельки. Доказательства состояния хорошо совместимы с моделью легкого клиента.
  • Более плавное внедрение шардинга, с проверкой между шардингами без статических данных. Межшардовые транзакции могут использовать эффективные доказательства состояния.
  • Возможность удалять и обрезать старые данные о состоянии, которые больше не нужны. Рост государства может быть активно управляемым, а не неограниченным.
  • Операторы узлов могут более гибко настраивать состояние в зависимости от потребностей. Узлы могут настраивать политику сохранения состояния в зависимости от случаев использования.
  • Переход к модели, в которой вычисления и пропускная способность имеют большее значение, чем хранение данных. Архитектура смещается в сторону более "облачной" модели.

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

Заключение

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

Отказ от ответственности:

  1. Эта статья перепечатана из[Mirror]. Все авторские права принадлежат оригинальному автору[YQ]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Предупреждение об ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.

Клиенты без статуса: Путь к децентрализации в Ethereum

НовичокDec 25, 2023
В этой статье содержится подробное введение в децентрализованное решение Ethereum - клиент без состояния, а также объясняется, что такое состояние, его происхождение, принципы и решения.
Клиенты без статуса: Путь к децентрализации в Ethereum

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

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

Что такое состояние Ethereum?

Чтобы понять, что такое клиенты без состояния, нам сначала нужно разобраться с концепцией "состояния" в Ethereum. Состояние Ethereum означает текущее состояние всех счетов, контрактов, балансов, нонсов и хранилищ в мире Ethereum. Его можно представить себе как базу данных, в которой хранится вся необходимая информация о сети Ethereum в данный момент времени.

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

По мере того, как со временем добавляется все больше аккаунтов, контрактов и транзакций, состояние Ethereum становится все больше и больше. На сегодняшний день размер государства составляет более 1 ТБ и увеличивается на десятки гигабайт в год. Этот растущий штат лежит в основе проблем с децентрализацией.

Почему рост штата вызывает проблемы

Увеличение размера состояния Ethereum вызывает несколько ключевых проблем:

  • Более длительное время синхронизации для новых узлов - Для синхронизации нового узла требуется очень много времени, чтобы обработать все исторические изменения состояния. Это препятствует децентрализации, затрудняя запуск новых полноценных узлов. Синхронизация нового узла с genesis в настоящее время занимает несколько дней, вплоть до недель, на потребительском оборудовании. Это является серьезным препятствием для эффективного создания новых узлов и присоединения к сети большего числа участников.
  • Повышенные требования к аппаратному обеспечению - Для хранения, доступа и обновления больших объемов информации требуется больше хранилищ, памяти и вычислительной мощности. Это лишает менее обеспеченных пользователей возможности запускать узлы. Как минимум, для работы полностью синхронизированного узла Ethereum теперь требуется SSD емкостью 1-2 ТБ. Это недоступно для многих потенциальных операторов узлов.
  • Большее использование полосы пропускания - Трансляции новых блоков должны также включать обновленное состояние, что требует большей пропускной способности. Это увеличивает расходы операторов узлов. В настоящее время государство доминирует в большинстве блочных трансляций, поэтому размеры блоков продолжают расти. Большая пропускная способность означает более высокие затраты для операторов узлов.
  • Замедленная проверка блоков - Считывание и обновление большего состояния делает проверку блоков более медленной, что ограничивает пропускную способность транзакций. Каждая транзакция требует множества операций чтения и записи в хранилище для обновления баланса, несов, состояния контракта и т.д. Большее состояние означает большее количество чтений/записей на блок, что уменьшает количество транзакций, которые могут быть обработаны в секунду.
  • Постоянные затраты на хранение - После того, как данные добавлены в состояние, они должны храниться вечно. Это создает неограниченный рост государства. В настоящее время не существует механизма активного удаления старых и неиспользуемых данных о состоянии. Таким образом, расходы на содержание государства растут бесконечно долго, пока Ethereum продолжает работать.

Клиенты без статуса: объяснение

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

Вот как работают клиенты без статусов на высоком уровне:

  • Клиент хранит только заголовки блоков и корни состояний, а не полные данные о состоянии. Заголовки блоков содержат метаданные, такие как корневой хэш состояния триэ после обработки этого блока.
  • При проверке нового блока клиент получает "свидетеля" вместе с блоком. Этот свидетель представляет собой набор доказательств Меркла, которые демонстрируют, что определенные обновления состояния, полученные в результате транзакций, являются действительными.
  • Свидетель содержит доказательства Меркла для определенных значений состояния, необходимых для обработки транзакций. Например, обновляются остатки на счетах или хранятся контракты.
  • Клиент использует свидетеля, чтобы убедиться, что транзакции действительны по отношению к последнему известному корню состояния. Доказательства подтверждают, что изменения состояния соответствуют предыдущему корню.
  • Если он действителен, клиент обновляется до нового корня состояния, указанного в заголовке блока. Этот новый корень состояния будет использоваться для проверки следующего блока.

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

  • Очень быстрое время синхронизации - нет необходимости воспроизводить исторические изменения состояния. Клиент без статических данных может синхронизироваться почти мгновенно, используя только заголовки блоков.
  • Низкие требования к хранению - корни состояний занимают всего 32 байта. Вместо сотен гигабайт данных нужны только заголовки блоков.
  • Меньшая пропускная способность - передаются только заголовки блоков и свидетели, а не полное состояние. Использование полосы пропускания сведено к минимуму.
  • Быстрая проверка - свидетели содержат только небольшие подмножества релевантных состояний. Подтверждаются только обновленные счета/хранилища.
  • Простая поддержка легких клиентов - легкие клиенты могут легко проверять доказательства. Легкая клиентская модель очень совместима с верификацией без статических данных.

Проблемы с клиентами без статуса

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

  • Размер свидетелей - свидетели могут быть слишком большими для эффективной передачи. Если использовать полные доказательства Меркла, они могут превысить ограничения на размер блока.
  • Создание свидетелей - генерирование оптимальных свидетелей является сложной задачей для разработчиков блоков. Предложения должны собрать нужные фрагменты доказательств для проверки каждой транзакции.
  • Никаких стимулов для свидетелей - предоставление свидетелей не приносит никакого прямого вознаграждения. В отличие от майнинга, здесь нет встроенной структуры стимулов для создания свидетелей.
  • Временные данные - свидетели подтверждают свое состояние в определенный момент времени, требуя регенерации. Свидетели не могут быть использованы повторно по мере выполнения состояния.
  • Хранение состояния - кто-то все еще должен поддерживать полное состояние для создания свидетелей. Проверка без состояния основывается на генерации свидетелей с состоянием.
  • Сложные приложения - некоторые контракты могут полагаться на большие подмножества состояний, раздувая свидетелей. Например, контракты, которые обновляют много слотов хранения за одну транзакцию.

Возможные решения

Исследователи предложили различные решения для устранения этих проблем:

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

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

Потенциальное влияние

Если технические препятствия удастся преодолеть, клиенты без статусов могут значительно продвинуть Ethereum:

  • Более быстрая синхронизация и проверка для поддержки более высокой пропускной способности транзакций. Валидация без состояния значительно ускорит обработку блоков.
  • Снижение потребности в ресурсах для работы узлов, улучшение децентрализации. Ноутбуки и любители могут реально запускать полные узлы.
  • Улучшенная поддержка легких клиентов, таких как мобильные кошельки. Доказательства состояния хорошо совместимы с моделью легкого клиента.
  • Более плавное внедрение шардинга, с проверкой между шардингами без статических данных. Межшардовые транзакции могут использовать эффективные доказательства состояния.
  • Возможность удалять и обрезать старые данные о состоянии, которые больше не нужны. Рост государства может быть активно управляемым, а не неограниченным.
  • Операторы узлов могут более гибко настраивать состояние в зависимости от потребностей. Узлы могут настраивать политику сохранения состояния в зависимости от случаев использования.
  • Переход к модели, в которой вычисления и пропускная способность имеют большее значение, чем хранение данных. Архитектура смещается в сторону более "облачной" модели.

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

Заключение

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

Отказ от ответственности:

  1. Эта статья перепечатана из[Mirror]. Все авторские права принадлежат оригинальному автору[YQ]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Предупреждение об ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!