Ethereum Merkle Tree Пояснение

Вот мое основное понимание того, как Ethereum хранит транзакции

  1. Для каждой транзакции создается хэш
  2. Затем выбираются пары и генерируется хэш для каждой пары
  3. Таким образом, последний оставшийся хэш становится корнем
  4. Заголовок блока содержит три дерева Merkle
    • Чтобы сохранить состояние
    • Чтобы поддерживать транзакции
    • Чтобы сохранить квитанции
  5. Каждый блок ссылается на хэш-код предыдущего блока
  6. Я прилагаю очень общую диаграмму, показывающую эту структуру.

 введите описание изображения здесь>> </a> </p>

<p> Вопросы: <br>
 1. Корень состояния блока 180994 указывает на первый левый дочерний блок Block 180993
 корень государства.  Что это значит и зачем это нужно?  <br>
 2. Давайте возьмем пример <br>
 - Первый блок 180993 имеет транзакцию, в которой счет 98
   прохождение 30 эфиров эфира на счет 100 <br>
 - Второй блок 180994
   имея транзакцию, на которой счет 99 передает 20 простых данных для учетной записи
   100 </p>

<p>  Как это отразится на дереве? Будет ли подобное кросс-отображение деревьев Меркле, как показано на диаграмме? </Em> Пожалуйста, объясните </p>

<blockquote>
  <p> <strong> Добавлено больше Detail </strong> </p>
</blockquote>

<p> <a href= введите описание изображения здесь>> </a> </p></body></html>

22 голоса | спросил Susmit 18 PMpTue, 18 Apr 2017 15:18:33 +030018Tuesday 2017, 15:18:33

2 ответа


13

Состояние содержит информацию обо всех учетных записях в блок-цепочке, оно не сохраняется в каждом блоке. Состояние генерируется обработкой каждого блока с момента генезисного блока. Каждый блок будет изменять только части состояния.

Как сгенерировать состояние определено в желтой бумаге (pdf) . Он определен таким образом, что его можно реализовать на любом языке программирования, и все такие реализации будут генерировать одно и то же представление.

  1. Это означает, что левая сторона не была изменена в блоке 180994. Это всего лишь представление, помните, что все состояние не сохранено, только корневой хеш.

  2. Есть статья о Деревья Меркле в Эфириуме , я, вероятно, не могу сделать лучше. Основная идея деревьев merkle заключается в том, что для одной операции он будет изменять только минимальное количество узлов, чтобы пересчитать хэш корня.

ответил Ismael 18 PMpTue, 18 Apr 2017 22:38:14 +030038Tuesday 2017, 22:38:14
10

Говорят, что Ethereum имеет блок-цепочку на основе учетной записи. Состояние не сохраняется непосредственно в каждом блоке.

Чтобы построить лучшее концептуальное понимание, мы можем сказать, что все учетные записи локально расположены на узле Ethereum в виде «данных о состоянии». Это часто встречается по соображениям производительности, и предполагается, что он будет храниться в дереве Merkle Patricia, но спецификация протокола этого не требует. Состояние желтой бумаги,

  

Состояние (состояние) мира - это отображение между адресами (160-бит   ) и состояния учетной записи (структура данных, сериализованная как RLP,    см. Приложение B). Предполагается, что, хотя он не хранится на блочной цепочке,   , что реализация будет поддерживать это сопоставление в модифицированном    Дерево Merkle Patricia

Итак, в дополнение к самой блочной цепочке, мы обнаруживаем, что имеем дело с « вторым состоянием ». Данные состояния можно охарактеризовать как неявные, что означает, что их можно вычислить из фактических данных блок-цепи. Транзакции содержат все соответствующие поля для определения новых данных состояния. В отличие от биткойнов, блоки Ethereum содержат копию как списка транзакций, так и корневого хэша Merkle для всего дерева состояний.

Взято из Желтая бумага доктора Гэвина Вуда:

  

Этническая среда выполнения: (aka ERE) Окружающая среда    предоставляется автономному объекту, выполняющемуся в EVM. Включает    EVM, а также структура мирового состояния, на которое EVM полагается    для определенных инструкций I/O, включая CALL & CREATE.

В заключение, хранение состояния управляется клиентской реализацией протокола Ethereum. Я добавил (слишком упрощенное) изображение, которое я создал, чтобы показать переход состояния до и после отправки транзакции между двумя сторонами.

 Изображение, которое я создал, чтобы помочь понять концептуальную модель перехода государства Что касается понимания дерева Merkle Patricia, я бы указал вам на любую статью, посвященную Radix Trees

ответил Malone 19 AMpWed, 19 Apr 2017 01:44:36 +030044Wednesday 2017, 01:44:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132