Некоторые методы масштабирования блокчейна Ethereum | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 26 октября, печатный экземпляр отправим 30 октября.

Опубликовать статью в журнале

Библиографическое описание:

Тельбухов, А. Б. Некоторые методы масштабирования блокчейна Ethereum / А. Б. Тельбухов, С. В. Наумов, В. В. Прокопова, Д. О. Инишева. — Текст : непосредственный // Молодой ученый. — 2019. — № 21 (259). — С. 49-50. — URL: https://moluch.ru/archive/259/59320/ (дата обращения: 16.10.2024).



В статье представлен обзор некоторых методов масштабирования блокчейна Ethereum.

Ключевые слова: блокчейн, Ethereum, масштабирование блокчейна.

Блокчейны в настоящее время имеют недостатки, и один из самых существенных — это скорость обработки транзакций. Чтобы соответствовать современным стандартам, сеть должна обрабатывать порядка нескольких тысяч транзакций в секунду (например, Visa имеет возможность обрабатывать порядка нескольких десятков тысяч транзакций в секунду). Ethereum [1] на данный момент, по словам Виталика Бутерина, сооснователя этого проекта, обрабатывает порядка 15 транзакций в секунду. Теоретически сеть может обрабатывать порядка 1000 транзакций в секунду. Но на практике количество транзакций, которые могут быть включены в блок и, следовательно, количество транзакций, которые могут быть обработаны за единицу времени, ограничено лимитом газа в блоке. Также ограничивающим скорость фактором является необходимость заверять истинность информации в блоке каждым узлом сети (т. е. пользователем, который проводит вычисления для сети).

Газ — единица исчисления комиссии за вычисления, произведенные в смарт-контракте.

Смарт-контракт — система, которая автоматически перемещает средства по заданным разработчиком контракта правилам.

Предложены разные решения данной проблемы.

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

Другое направление решения — шардинг [1], предложенный Виталиком Бутериным.

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

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

Сам Виталик Бутерин возлагает большие надежды именно на технологию шардинга и надеется достичь за его счёт пропускной способности порядка 100000 транзакций в секунду. [2]

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

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

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

Плюсы State Channels:

– В основной цепи происходит только два действия — развертывание и свертывание канала, после развертывания стоимость обновления состояния крайне низкая.

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

Минусы State Channel:

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

Plasma[2] — как и state channels, технология основана на вынесении полезных операций из основного блокчейна. Но Plasma развивает идею за счёт создания дочерних блокчейнов, куда передаётся состояние основного блокчейна. В дочернем блокчейне действуют собственные правила консенсуса, которые могут отличаться от правил консенсуса основной цепи.

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

Заключение. Блокчейны являются отличной платформой для реализации экономических механизмов благодаря встроенным монетарным стимулам и публичной верифицируемости информации в нем. Значительной проблемой является крайне низкая пропускная способность сети. Способы масштабирования блокчейна первого и второго слоя призваны решить эту проблему. Крупные компании, такие как OmiseGo, L4 Digital ведут исследования и разработку в направлении реализации различных методов.

Литература:

  1. V. Buterin. Ethereum White Paper. A NEXT GENERATION SMART CONTRACT & DECENTRALIZED APPLICATION PLATFORM. // http://blockchainlab.com. URL: http://blockchainlab.com/pdf/Ethereum_white_paper-a_next_generation_smart_contract_and_decentralized_application_platform-vitalik-buterin.pdf (дата обращения: 17.05.2019).
  2. Vitalik Buterin Says Ethereum Must Reach 100,000 Transactions Per Second, Bitcoin May Remain Solely a Store of Value // https://dailyhodl.com. URL: https://dailyhodl.com/2019/03/20/vitalik-buterin-says-ethereum-must-reach-100000-transactions-per-second-bitcoin-may-remain-solely-a-store-of-value/ (дата обращения: 17.05.2019).
  3. V. Buterin. Ethereum Sharding FAQ. URL: https://github.com/ethereum/wiki/ wiki/Sharding-FAQ (дата обращения: 17.05.2019).
  4. J. Poon, V. Buterin. Plasma: Scalable Autonomous Smart Contracts. // plasma.io. URL: https://plasma.io/plasma.pdf (дата обращения: 17.05.2019).
Основные термины (генерируются автоматически): основная цепь, транзакция, канал, Канал состояния, лимит газа, пользователь, пропускная способность, секунда, узел сети.


Ключевые слова

блокчейн, Ethereum, масштабирование блокчейна

Похожие статьи

Абстрактные и динамически сгенерированные контроллеры в ASP.NET

В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.

Контейнеризация как современный способ виртуализации

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

Особенности изучения линейного алгоритма на flowcode

В статье рассматривается линейный алгоритм на микроконтроллере с помощью Flowcode.

Программирование микроконтроллеров Arduino

В данной статье будет описан способ программирования микроконтроллеров Arduino в среде Arduino IDE.

Рассмотрение декларативного подхода к разработке интерфейсов мобильных приложений для Android

В данной статье рассматриваются императивный и декларативный подходы к разработке интерфейсов, анализируются преимущества и недостатки библиотеки Jetpack Compose.

Разбор многоступенчатой конвертации на примере форматов sb3 и exe

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

Многопоточность в языке Swift

В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.

Сравнительный анализ фреймворков для frontend-разработки

В данной статье рассматриваются самые популярные фреймворки для frontend-разработки.

Обзор надежности систем загрузки журнальных записей в Big Data

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

Технология ASP.NET MVC

В статье рассматривается проектирование архитектуры приложений ASP.NET MVC. Авторы описывают теоретические основы ASP.NET MVC, которые необходимы для разработки web-приложений платформы.NET Framework.

Похожие статьи

Абстрактные и динамически сгенерированные контроллеры в ASP.NET

В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.

Контейнеризация как современный способ виртуализации

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

Особенности изучения линейного алгоритма на flowcode

В статье рассматривается линейный алгоритм на микроконтроллере с помощью Flowcode.

Программирование микроконтроллеров Arduino

В данной статье будет описан способ программирования микроконтроллеров Arduino в среде Arduino IDE.

Рассмотрение декларативного подхода к разработке интерфейсов мобильных приложений для Android

В данной статье рассматриваются императивный и декларативный подходы к разработке интерфейсов, анализируются преимущества и недостатки библиотеки Jetpack Compose.

Разбор многоступенчатой конвертации на примере форматов sb3 и exe

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

Многопоточность в языке Swift

В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.

Сравнительный анализ фреймворков для frontend-разработки

В данной статье рассматриваются самые популярные фреймворки для frontend-разработки.

Обзор надежности систем загрузки журнальных записей в Big Data

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

Технология ASP.NET MVC

В статье рассматривается проектирование архитектуры приложений ASP.NET MVC. Авторы описывают теоретические основы ASP.NET MVC, которые необходимы для разработки web-приложений платформы.NET Framework.

Задать вопрос