Содержание
- Проблемы масштабируемости блокчейна Ethereum
- Решение: шардинг
- Почему Proof-of-Stake необходим для шардинга
Представьте себе, что вы сидите в большой аудитории и пишете экзамен вместе с еще 500 человек. Допустим, 50 преподавателей наблюдают и оценивают экзамены. Представьте, что каждому из этих 500 экзаменуемых нужно будет пройти всех 50 преподавателей и ваша оценка будет средней из всех выставленных. Можете ли вы представить, сколько времени займет написание всех экзаменационных работ? Очевидно, это ни разу не практичный способ, который только усложняет экзамены и становится сложнее вместе с увеличением числа студентов, сдающих экзамены. Ровно с такими же трудностями столкнулся блокчейн Ethereum, набирая популярность и наращивая объем транзакций.
Теперь представьте, что вместо 50 преподавателей, которым нужно принять 500 экзаменов, ответственность будет разбита на сегменты. Каждый инспектор из числа преподавателей отвечал бы за оценку 10 экзаменов, и оценка, которую выставлял каждый инспектор, была бы окончательной для каждого из этих 10 студентов. Если инспектор не уверен, как оценивать определенного студента, он мог бы проконсультироваться с другими инспекторами и получить больше информации.
Собственно, это простой пример того, как шардинг может решить проблему блокчейна Ethereum, увеличив скорость транзакций и снизив загруженность сети.
Проблемы масштабируемости блокчейна Ethereum
В настоящее время блокчейн Ethereum требует, чтобы все узлы в сети хранили и обрабатывали все проходящие транзакции. Другими словами, проблема блокчейна Ethereum в том, что ему нужны полные узлы (ноды). Хотя этот процесс обеспечивает сеть высокой степенью защиты, поскольку каждую транзакцию должен подтвердить каждый узел, это очень сложный и плохо масштабируемый метод, от которого сообщество разработчиков Ethereum планирует отказываться.
Чем больше число полных узлов, тем медленнее и менее масштабируемым становится блокчейн.
В своей настоящей форме блокчейн Ethereum должен делать выбор для удовлетворения двух из трех атрибутов ниже:
- Безопасность
- Масштабируемость
- Децентрализация
Настоящее состояние блокчейна Ethereum в полной мере удовлетворяет 1 и 3 критерии, но сильно теряет, когда доходит до масштабируемости. Но времена меняются, и масштабируемость камнем лежит на пути к массовому распространению блокчейна, поэтому сообщество разработчиков Ethereum принимает решение частично пожертвовать безопасностью. Так они надеются увеличить скорость проведения транзакций.
Решение: шардинг
Представьте, что Ethereum разбит на тысячу островов. Каждый остров живет своей жизнью. У каждого острова есть свои уникальные особенности и все, что этому острову принадлежит, то есть аккаунты, могут взаимодействовать между собой и свободно использовать все функции острова. Если же они хотят связаться с другими островами, придется использовать определенный протокол.
В обычном понимании шардинг — это своего рода разбиение, которое делит большие базы данных на части поменьше и побыстрее, шарды (осколки). По определению, шард, он же осколок, это часть чего-то целого.
Но применительно к блокчейну Ethereum это очень запутанная и сложная концепция. В этой статье вы найдете упрощенное ее объяснение, но для подробного изучения вам придется погрузиться в долгие технические рассуждения и математические выкладки, разумеется. Вкратце: сеть делится на множество меньших разделов — шардов — и каждый шард содержит независимые части данных о транзакциях. Сообщество Ethereum пытается уйти от необходимости полных узлов за счет внедрения шардинга. Шардинг будет размещаться исключительно на уровне протокола.
Внедрение шардинга позволит каждому узлу хранить подмножество данных и отвечать за верификацию определенного набора транзакций, а не всех транзакций, которые последовательно проходят на блокчейне из-за не-параллельной природы Ethereum Virtual Machine (EVM).
Когда конкретному узлу требуется информация, которая не хранится в его собственном блоке, он найдет другой узел, у которого есть необходимая информация. Эта предпосылка для кросс-шардовых сообщений.
В настоящее время блокчейн Ethereum позволяет проводить 8 транзакций в секунду (TPS), а при шардинге станут доступны тысячи TPS без необходимости полных узлов, и общий размер узла тоже уменьшится. Тем не менее, этот процесс нельзя считать полностью безопасным, потому что узлы скорее будут зависимы, чем независимы. На такую жертву готовы пойти разработчики, чтобы увеличить пропускную способность сети.
Почему Proof-of-Stake необходим для шардинга
При всем вышесказанном, эта угроза безопасности будет иметь место только если Ethereum продолжит работать на механизме консенсуса Proof-of-Work. Поскольку PoW полагается на мощность хэширования сети, должен быть способ помешать злоумышленнику, пытающемуся манипулировать хэшем сети, который будет намного ниже из-за разбиения сети на шарды.
Атака 51% на блокчейн на базе PoW без шардинга практически неосуществима из-за требуемой мощности хэша и общих затрат на эту атаку, что в случае Ethereum выльется в миллиарды долларов. Злоумышленнику потребуется 51% от общей мощности хэш-сети, чтобы атаковать сеть и получить контроль над большинством голосов.
На блокчейне на основе PoW с шардингом вероятность атаки 51% выше и общая угроза безопасности сети выше. Злоумышленник или их группа могут сконцентрировать мощность хэша в одном шарде и получить контроль над этим шардом. Злоумышленник затем может использовать кросс-шардовую коммуникацию, чтобы атаковать другие шарды в сети.
Именно поэтому нужен протокол Proof-of-Stake, чтобы EVM была безопасной, децентрализованной и масштабируемой. PoS позволил бы Ethereum отнять у атакующего возможность сконцентрировать хэшрейт на одном шарде. Система PoS также устранила бы уязвимость для атаки 51%, которая стала бы актуальней, если шардинг был внедрен в систему на основе PoW.
PoS-блокчейн с шардингом лишит атакующих возможности выбирать шард, который они хотят обработать, и не позволит им узнать заранее, какой шард будет назначен решающим (авторитетным) в сети.
Источник: 2bitcoins.ru