EVM — как это связано с блокчейном? [дубликат]

У меня есть несколько проблем с пониманием архитектуры программного обеспечения блокчейна. Для меня Блокчейн — это база данных, в которой хранятся все транзакции, квитанции, балансы и т. д. Но как подключение к EVM? Отвечает ли EVM за изменение базы данных Blockchain? Когда полный узел получает транзакцию или новый блок. Он обрабатывает транзакции с EVM. Является ли внутреннее хранилище EVM блокчейном или что такое внутреннее хранилище EVM? Если это не блокчейн, отвечает ли EVM только за обработку транзакции и отправку квитанции обратно в блокчейн, чтобы он мог выполнить обновление? Есть ли два экземпляра — блокчейн (база данных) и evm (процессор) — или один экземпляр evm, который включает в себя базу данных блокчейна? Надеюсь, вы понимаете, что я пытаюсь здесь сказать.

Ответы (3)

Блокчейн — это пример более общей концепции, называемой распределенным конечным автоматом.

Конечный автомат — это система, которая имеет набор состояний и функцию, которая переходит между этими состояниями.

В Ethereum состояние — это дерево состояний учетной записи, а функция перехода принимает блок в качестве входных данных, запускает все транзакции в блоке на EVM и переходит в новое состояние, полученное в результате выполнения EVM.

Таким образом, вы можете думать о EVM как о части функции перехода между блоками.

Ответ Томаса очень полезен.

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

Объем протокола достаточен для включения контрактов в специально созданные транзакции. Контракты написаны в простом машинном коде (байт-коде), и протокол описывает, как их интерпретировать. Таким образом, история транзакций фиксирует развертывание исполняемого кода.

Язык контрактов включает внутреннюю память, поэтому некоторые входные данные могут запускать функции, которые изменяют постоянные значения.

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

Я думаю, что разумно подытожить, сказав, что данные «живут» во входных данных. Блокчейн сам по себе является системой, которая убеждает все узлы в том, что у них есть достоверная, истинная история входных данных, и это все, что им нужно знать.

Надеюсь, это поможет.

Отвечает ли EVM за изменение базы данных Blockchain?

Перед транзакцией «блокчейн» представляет определенное состояние. Во время транзакции состояние меняется с пред-транзакционного на пост-транзакционное (если нет реверсии). Этот «переход из одного состояния в другое» осуществляется с помощью EVM. Некоторые изменения просто пересылают Вэй с одного аккаунта на другой. Другие более сложны: запуск смарт-контракта для изменения значений хранилища. (Хотя некоторые могут возразить, что простая отправка не требует EVM, эффект тот же.)

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

Различайте EVM (который выполняет изменение состояния) и само состояние, которое является текущим значением всех данных в базе данных (или, как его назвало бы большинство людей, - текущими значениями всех данных в цепочке ).

Если это не блокчейн, отвечает ли EVM только за обработку транзакции и отправку квитанции обратно в блокчейн, чтобы он мог выполнить обновление?

Я думаю, вы зациклились на слове. The blockchainможно рассматривать как структуру данных, в которой blocksвсе chainedвместе, путем включения ссылки (родительского хэша) в текущий блок. Я думаю об этой структуре данных как о блокчейне, но я также (в то же время) думаю обо всем этом как о блокчейне. Итак, это многогранное слово. Возможно, лучше всего думать об этом как о структуре данных. EVM обрабатывает изменения состояния и сохраняет изменения состояния в связанном вместе списке блоков.

Есть ли два экземпляра — блокчейн (база данных) и evm (процессор) — или один экземпляр evm, который включает в себя базу данных блокчейна?

Смотрите предыдущий ответ.