Соучредитель Ethereum Виталик Бутерин назвал одними из главных проблем сети раздувание объема и рост сложности блокчейна со временем, а также рассмотрел пути их решения.
В пятой части эссе «Возможное будущее протокола Ethereum» под названием The Purge («Чистка») он указал на два основных «слабых места» в этом плане:
- исторические данные — любая выполненная транзакция и учетная запись должны храниться всеми клиентами вечно и загружаться при синхронизации. В результате этот объем растет даже при неизменности емкости сети;
- функции протокола — гораздо проще добавить новую, чем удалить старую, что приводит к увеличению сложности кода.
«Чтобы Ethereum поддерживал себя в долгосрочной перспективе, нам нужно сильное противодействие обеим этим тенденциям, со временем снижая сложность и раздувание. Но нам также нужно сохранить одно из ключевых свойств, которые делают блокчейны великолепными: их постоянство», — подчеркнул Бутерин.
На момент написания статьи полностью синхронизированная нода Ethereum требует примерно 1,1 ТБ дискового пространства для клиента исполнения и еще «несколько сотен гигабайт» для клиента консенсуса.
Одним из естественных вариантов решения проблемы Бутерин считает хранение каждым узлом только небольшого процента данных. С этим связана одна из основных целей этапа The Purge — упрощение запуска клиентов на ПК пользователей.
В результате, можно получить сеть из 100 000 нод, каждая из которых содержит случайный набор из 10% исторической информации. Реплицирование этих частей 10 000 раз будет эквивалентно полному хранению.
Данные: блог Бутерина.
Эксперт отметил, что из 1,1 ТБ клиента исполнения на историю приходится ~800 ГБ, а остальное — на данные состояния.
Сократить объем последней составляющей можно за счет внедрения сроков истечения хранения, а также частичной доступности данных с опцией их полного «воскрешения» при необходимости, полагает Бутерин.
Касательно усложнения протокола он отметил, что удаление «лишних» функций потребует компромисса в обеспечении обратной совместимости.
«Не существует единого решения, которое могло бы снизить сложность протокола; внутренняя природа проблемы заключается в том, что существует множество мелких исправлений», — признал программист.
Некоторые улучшения вроде удаления старых типов транзакций, окончательного удаления механизма комитетов Beacon Chain или гармонизации формата данных реализовать относительно несложно. Изменения для других опций, в основном «зашитых» в EVM, потребуют большего объема анализа и технической работы, считает Бутерин.
Напомним, в четвертой части эссе сооснователь Ethereum рассмотрел пути сокращения хранилищ данных состояния сети за счет использования деревьев Веркла и других технологий.