Почему клиенты Ethereum загружают весь блокчейн?

Допустим, меня не интересует майнинг, а интересует только один контракт и его последнее состояние. Почему мой клиент не должен отбрасывать все остальные состояния при инициации, а также игнорировать любые новые блоки, если они не включают изменения состояния, связанные с интересующим контрактом?

Конечно, через какое-то время я могу обнаружить, что хочу «подписаться» на какой-то другой новый контракт, который мой клиент, возможно, до этого момента игнорировал. Однако в этом случае мой клиент может запустить тот же процесс, который обычно используется при первоначальной установке, и отбросить все, что не имеет отношения к рассматриваемому контракту.

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

Итак… чтобы повторить вопрос, почему клиенты Ethereum загружают всю цепочку блоков, а не что-то в этом роде?

Примечание: для ясности контекст вышеуказанного вопроса — это клиент с отключенным майнингом.

Для ясности: контекст вопроса выше — это клиент, у которого отключен майнинг.
Пожалуйста, отредактируйте свой вопрос, чтобы добавить контекст вопроса для ясности.
Добро пожаловать в SE. Если ответ вас удовлетворил, отметьте его как ответ.

Ответы (1)

Полный клиент (или толстый клиент) должен воспроизвести все транзакции в состоянии, чтобы обеспечить достоверность.

То, что вы ищете, — это вариант легкого клиента, который в настоящее время находится в стадии исследования. Идея состоит в том, чтобы наблюдать только за частью состояния и использовать других одноранговых узлов для тех частей состояния, которые представляют меньший интерес.