Предисловие: Вопрос касается связи между содержимым квитанций Эфириума и хешем заголовка блока.
Описание проблемы: Интересно, в Ethereum blockid основан на хэше блока. Заголовок содержит хэш корня квитанции Trie. Квитанция содержит идентификатор блока.
Но прежде чем поместить идентификатор блока в квитанцию, нужно знать хеш самого блока (который содержит хеш Trieipts Trie) - другими словами, у нас есть циклическая зависимость.
Теперь я вижу 4 варианта:
1) Блок содержит квитанции транзакций, которые содержатся внутри блока; если нет, то это было бы легко; квитанции будут храниться в последовательных блоках; но это усложнит вещи; поскольку для других узлов должен быть стимул включать внешние поступления, распределять их и т. д.
2) Хеш Trie квитанции квитанции не учитывает поле blockID в квитанциях. Это может привести к изменчивости некоторых данных (не защищенных PoW).
3) BlockID не основан на значении хеша всего заголовка. Таким образом, не принимая во внимание хэш Receipts Trie. (опять-таки с учетом податливости для некоторых данных)
4) Нет идентификатора блока внутри квитанции; но потом я увидел, что они включены в некоторые распечатки JSON, доступные здесь. эти значения добавляются интерфейсом обработки команд неявным образом?
Какая, или, может быть, другая возможность?