Глобальные изменения в Ethereum простыми словами

На GitHub проекта Ethereum есть ответы на частные вопросы по Шардингу сети. С опорой на эту статью мы расскажем основные моменты масштабирования Эфириума.

Шардинг Эфириума простыми словами

Самыми простыми словами, шардинг заставляет транзакции делиться на «осколки» (на английском shard). Каждый узел в сети обрабатывает не весь блок, а его составляющие. Это позволяет обрабатывать транзакции быстрее и масштабировать сеть.

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

Осколки не будут константной. Протокол имеет встроенный процесс балансировки нагрузки, который перемещает объекты между шардами (осколками):

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

Углубленный уровень

Если вы не слишком подкованы в теме, вот заранее несколько определений:

Нода, узел — это компьютер в сети с клиентом блокчейна,
Состояние — это весь блокчейн на последний момент времени, текущее состояние блокчейна должно синхронизироваться между нодами.
История — упорядоченный список всех транзакций, которые произошли после генезиса. В простой модели «настоящее состояние» должно быть детерминированной функцией состояния генезиса и истории.
Функция перехода состояния — функция, которая принимает состояние, применяет транзакцию и выводит новое состояние. При этом вычисление может включать добавление и вычитание остатков на счетах, указанных в транзакции, проверку цифровых подписей и код контракта.
Дерево Меркла — криптографическая структура хеш-дерева, которая может хранить большой объем данных. В Ethereum набор транзакций каждого блока, а также состояние хранится в дереве Merkle, где корни привязаны к блоку.

Тривиальные, но безрезультатные способы масштабирования

Существуют три основные категории «простых решений».

  • Отказаться от масштабирования отдельных блокчейнов и вместо этого предположить, что пользователи будут использовать множество разных «альткоинов». Это значительно увеличивает пропускную способность, но ограничивает уровень безопасности: увеличение сети на N уменьшает безопасность на N. Следовательно, это жизнеспособно для незначительных N.
  • Просто увеличить размер блока. В некоторых ситуациях является правильным выбором, поскольку размеры блоков могут быть ограничены политикой, а не техническими соображениями. Но такой подход неизбежно имеет свои пределы: если зайти слишком далеко, то узлы, работающие на пользовательском оборудовании, будут отказывать. Тогда сеть начнет полагаться исключительно на небольшое количество суперкомпьютеров, что может привести к риску централизации.
  • «Слияние майнинга» — это техника, в которой есть много цепей, но все сети имеют одну и ту же мощность добычи (или, в PoS, долю). В настоящее время Namecoin работает так с блокчейном BTC. Если все майнеры участвуют, это теоретически может увеличить пропускную способность в N раз без ущерба для безопасности. Однако тут возникают проблемы.
Решение увеличивает вычислительную нагрузку на каждый майнер в коэффициенте N. Поэтому на самом деле это решение является просто скрытой формой увеличения размера блока.
Также цепи не связаны по-настоящему: требуется лишь небольшое количество экономических стимулов, чтобы убедить майнеров отказаться или поставить под угрозу одну конкретную цепь.
Если только несколько пулов участвуют в каждом слиянии блокчейнов, тогда существует неизбежный риск централизации.

Почему масштабируемость — проблема, о которой все говорят?

Касательно масштабируемости есть трилемма. Она звучит так: система на блокчейне может иметь только два из следующих трех свойств:

  • децентрализация (система может работать в сценарии, где каждый участник имеет доступ только к ресурсам O(c), то есть к обычным ноутбукам или виртуальным серверам),
  • масштабируемость (возможность обработки транзакций O(n)>O (c)),
  • безопасность (защита от злоумышленников с использованием ресурсов O (n)).

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