Шардинг для криптовалюты и блокчейна Ethereum

Dara86

Местный знаток
attachment.php


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

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

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

Проблема масштабируемости и скорости транзакций

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

Чем больше число полных узлов, тем медленнее блокчейн. Разработчикам Ethereum приходится выбирать, какие из следующих трех требований удовлетворять в первую очередь:
  • Безопасность
  • Масштабируемость
  • Децентрализация
В нынешнем состоянии технология полностью удовлетворяет первому и третьему требованию, однако страдает второе (масштабируемость). Раньше подобное положение вещей всех устраивало, однако времена изменились, и теперь низкая масштабируемость мешает массовому распространению криптовалюты. Разработчики Ethereum решили, что в таких условиях допустимо немного пожертвовать безопасностью, увеличить пропускную способность блокчейна и повысить скорость транзакций.

Решение проблемы

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

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

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

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

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

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

Proof-of-Stake критически важен для шардинга

При этом удар по безопасности будет нанесен только в том случае, если Ethereum продолжит использовать механизм консенсуса Proof-of-Work. Связано это с тем, что PoW зависит от вычислительной мощности, и при использовании шардинга она сокращается для каждой подобласти, позволяя злоумышленникам получить над ней контроль. Вероятность атаки на сеть возрастает, поскольку вычислительная мощность, нужная, чтобы поставить под контроль определенный шард, теперь гораздо ниже, чем мощность, необходимая для контроля над всей сетью.

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

В случае PoW-блокчейна с шардингом атака 51% вполне возможна и представляет реальную угрозу для безопасности сети. Злоумышленники могут сосредоточить силу на одном шарде и полностью поставить его под контроль. Затем с помощью протокола взаимодействия между шардами они могут атаковать другие части сети.

Для обеспечения безопасности, децентрализации и масштабируемости виртуальной машины Ethereum необходим переход на алгоритм Proof-of-Stake. PoS не даст хакерам сконцентрироваться на атаке одного шарда благодаря эффективному использованию случайной выборки. Система на основе Proof-of-Stake устранит опасность атаки 51%, которая останется, если Ethereum продолжит работать на алгоритме Proof-of-Work.

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

sharding
 

Вложения

  • Ethereum-2-roadmap.jpg
    Ethereum-2-roadmap.jpg
    48,4 КБ · Просмотры: 28

SergeiG

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