Что такое обрезка состояний и как она работает?

В нескольких источниках упоминается идея сокращения штата. Что это такое и реализуется ли оно в настоящее время в сети? Это ручной процесс или можно сделать автоматически? Если Ethereum в настоящее время обрабатывает 1 ГБ в месяц при текущем объеме и может расти с более широким внедрением, может ли сокращение состояний предотвратить увеличение размера блокчейна Ethereum? Некоторые источники кажутся обеспокоенными .

Ответы (1)

Это похоже на сборку мусора в языках программирования и в древовидной системе управления версиями, такой как git. Когда контракты Эфириума работают, они изменяют свое состояние. А поскольку дерево состояний является неизменяемой структурой только для добавления, это означает, что каждый раз, когда состояние изменяется, оно получает новый корень состояния. Некоторые элементы, которые были доступны из старых корней, могут быть недоступны из нового корня (из-за операций, которые удаляют или изменяют записи). Теоретически их можно обрезать (собрать мусор). Однако, поскольку консенсус Proof-Of-Work как таковой не определяет, когда переходы между состояниями являются окончательными, всегда существует теоретическая возможность того, что состояние будет возвращено к более старым корням, и вещи, которые были сокращены, потребуются снова. Таким образом, обрезка в настоящее время является компромиссом. Мы говорим, что, например, после блока 5000 мы предполагаем, что состояние не будет возвращено, и удаляем все недоступные узлы. Кто-то все еще может захотеть отключить эту функцию, чтобы сохранить всю историю блокчейна для специальных целей.

Вот очень подробное описание: https://blog.ethereum.org/2015/06/26/state-tree-pruning/

Ответы должны быть больше, чем просто ссылка. Ответ должен иметь смысл, даже если ссылка не работает.
Обратите внимание, что правильным термином является state trie , но по историческим причинам правильно, что этот пост относится к state tree .
Трие — это дерево .