Поддерживаемая узлами сети сумма балансов счетов, которая называется состоянием, продолжает увеличиваться по мере взаимодействия приложений и проектов. У независимого разработчика Алексея Ахунова может быть решение этой проблемы, идею которого он позаимствовал из проекта Cosmos.
Новое предложение, получившее название ReGenesis, было опубликовано на EthResearch в июне. В нем предлагается внедрить не фиксирующие состояние клиенты (stateless client) в существующий блокчейн Эфириума, «обнулив» состояния определенных узлов и заменив их на математическое доказательство на скользящей основе.
Цель этого предложения – сделать набор данных Эфириума масштабируемым с минимальными потерями для безопасности.
«Старые узлы забудут о состоянии», - заявляет Ахунов. «В этот момент времени все узлы забудут, что это было за состояние. Они будут помнить только хэширование».
ReGenesis
«Обнуление» блокчейна – не новая идея. Фактически, она упоминалась еще в Желтой книге Эфириума сооснователем проекта Гэвином Вудом (Gavin Wood). Ахунов сказал, что он черпал вдохновение для своей интерпретации ReGenesis из проекта Cosmos, который неоднократно проходил аналогичную процедуру, чтобы сделать цепочку «легче».
«Я называю это «перезапуском» ReGenesis, и это можно делать регулярно, чтобы облегчить нагрузку на узлы, не связанные с майнингом. Это также представляет менее драматическую версию Stateless Ethereum», - написал Ахунов.
Поддержка не фиксирующих состояние клиентов, то есть узлов, которые будут содержать как можно меньше информации о состоянии для проверки транзакций, была главной целью ETH 2.0, чтобы уменьшить нагрузку на узлы Эфириума. ReGenesis будет включать некоторые из исследований разработчиков Эфириума во время переходного периода, или ETH 1.x.
Предложение подразумевает, что каждый раз, когда блокчейн Эфириума достигает определенного номера блока, сеть автоматически сохраняет данные. Затем она удаляет весь свой прогресс за вычетом «доказательств» или «свидетелей» всех прошлых транзакций. По словам Ахунова, данные автосохранения могут быть сохранены в других сетях, например, BitTorrent.
Ахунов отмечает, что доказательство позволяет перерожденной цепочке Эфириума начинать работу снова с надежного основания, но только для определенных типов узлов.
«Мы устраняем предположение, что все другие проверяющие узлы имеют доступ к этому неявному состоянию. Это позволит проверить, что транзакции в блоке действительны, и хэш состояния корня, представленный в заголовке блока, совпадает с результатом выполнения этого блока», - написал он.
Эта система контрольных точек уже используется в различных вариациях для перевода новых узлов в онлайн, например, в синхронизации Beam.
Забытое старое
Сооснователь Эфириума Виталик Бутерин описывает аналогичные ReGenesis предложения в статье от 2014 года, озаглавленной «Доказательство доли: как я научился любить слабую субъективность».
Бутерин утверждает, что узлу можно доверять при определенных ограничениях, даже если он начинается с контрольной точки вместо блока генезиса. Как и в случае ReGenesis, Бутерин предлагает узлу просто «получить недавний хэш блока от друга», чтобы присоединиться к сети и снова начать проверку транзакций.
Предложение Ахунова предназначено для нынешнего блокчейна Эфириума на PoW. Однако оно работает в соответствии с аналогичными предположениями Бутерина о PoS, путем разделения сети на «полные узлы» и «не фиксирующих состояние клиентов», которые полагаются на внешние доказательства.
Слабая субъективность доводится до логического завершения с помощью продолжающегося исследовательского проекта Stateless Ethereum и PoS. В рамках этого проекта предполагается создать метод проверки транзакций на основе хэша транзакции и математического доказательства в ETH 2.0.
Подводные камни
На данный момент, ReGenesis - это многообещающий проект, который поддержали многие участники сообщества. Однако один из руководителей группы разработчиков Эфириума Петер Силадьи (Péter Szilágyi) отметил, что ReGenesis технически не уменьшает состояние. Он только «прореживает» сеть.
Силадьи имеет ввиду, что некоторым сторонам все еще придется хранить полную копию состояния без помощи доказательств Ахунова, потому что им нужно получить доступ к старому состоянию для отправки транзакций. Если некоторые должны использовать полный реестр, то состояние нельзя считать «обнуленным».
Большое состояние может быть большой проблемой. Например, может быть снижена скорости обработки транзакций, а сеть может стать более легкой целью для DDoS-атак. При этом многие децентрализованные приложения (dapps), например, браузеры Web 3.0, могут иметь проблемы с работой без «перезагрузки», сказал Силадьи. Многим dapps нужно получить доступ к полному состоянию для работы - им недостаточно только доказательства.
«В конечном счете, все всегда сводится к тому, можно ли что-то удалить. Если экосистема Эфириума позволяет нам удалять старые блоки или старые данные, можно многого достичь. Если нет, то у нас проблемы», - сказал Силадьи.
Напомним, что недавно ведущий разработчик Эфириума 2.0 Джастин Дрейк сообщил, что запуска нулевой стадии обновления можно не ждать до начала следующего года.