Статья является переводом материала от tier-1 фонда в криптовалюте - a16z.

Untitled

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


По мере роста блокчейна, поддерживающего все большее число пользователей и более частые транзакции, растет и объем информации (то самое состояние), которую хранят валидаторы для проверки транзакций. Например, в Bitcoin состояние состоит из набора выходов неизрасходованных транзакций (UTXO). В Ethereum состояние состоит из баланса счета для каждого аккаунта, а также кода и хранилища для каждого смарт-контракта.

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

Именно на это направлены "блокчейны без состояния". Однако, несмотря на значительную работу над ними, они по-прежнему далеки от практического применения. Но это отставание от прогресса, как выясняется, является неотъемлемым - разрыв между этими конструкциями и практичностью никогда не будет преодолен. Недавние исследования показывают, что ни одна схема блокчейна без состояния, какой бы умной она ни была, никогда не будет осуществима без дополнительных мер по управлению состоянием. Однако, как мы покажем в конце этой статьи, такой результат невозможности не должен нас огорчать.


Состояние безсостоятельности

Сегодня это состояние велико, но управляемо. Например, ноды Bitcoin хранят около 7 Гбайт данных, а узлы Ethereum - около 650 Гбайт. Однако эта нагрузка на хранилище для полных узлов возрастает примерно линейно с увеличением пропускной способности (транзакций в секунду, или TPS) цепи, которая сегодня недопустимо мала. При существующих конструкциях состояние, необходимое для реальной поддержки повседневных транзакций (десятки и сотни тысяч TPS), будет громоздким и потребует терабайтов или даже петабайтов.

Это послужило стимулом для поиска технических подходов, позволяющих значительно уменьшить объем состояния, требуемого для валидаторов. “Святой Грааль” - блокчейн без состояния, который потребует от валидаторов хранить только состояние постоянного размера, независимо от пропускной способности транзакций. (На самом деле этот термин безсостоятельности неверен: состояние все равно есть, просто оно достаточно мало, чтобы быть практичным при любой будущей пропускной способности - как правило, оно имеет постоянный размер). Такое небольшое требование к хранению данных значительно упростит работу узла валидатора; в оптимистичном случае каждый сможет управлять узлом на своем мобильном телефоне. Поскольку увеличение числа валидаторов повышает безопасность цепочки, важно снизить барьер входа для валидаторов.

Несмотря на значительный объем исследований, посвященных блокчейнам без состояния (например, Todd, Buterin, Boneh et al., Srinivasan et al.), они далеки от практического применения, и, насколько нам известно, ни один из них не развернут. Фундаментальная проблема всех известных блокчейнов без состояния заключается в том, что они требуют от пользователей хранения дополнительных данных, называемых свидетельствами(witnesses), которые помогают валидаторам проверять транзакции с участием их счетов. Например, такое свидетельство может представлять собой доказательство включения Меркла, показывающее, что учетная запись пользователя и ее баланс включены в глобальное состояние. Когда пользователь осуществляет транзакцию, он предоставляет это свидетельство валидаторам, демонстрируя, что на его счету достаточный баланс.

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