Размер шрифта
-
+

Разработка смарт-контрактов в Ethereum - стр. 14

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

За подтверждение оммеров майнеры получают меньшее вознаграждение, чем за полный блок.



Виртуальная машина Ethereum является сердцем Ethereum.

Эта виртуальная машина предназначена для запуска всеми участниками одноранговой сети.

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

Ethereum представляет собой одноранговую сеть, где каждый одноранговый узел хранит одну и ту же копию базы данных blockchain и запускает виртуальную машину Ethereum для поддержания и изменения ее состояния, которое хранится в блокчейне.

Теперь разберемся со всем этим поподробнее.

Блокчейн Ethereum хранит блоки, которые в свою очередь хранят транзакции и состояние.

И блокчейн Ethereum во многом похож на блокчейн биткойнов, хотя он имеет некоторые отличия.

Основное различие между Ethereum и Bitcoin в отношении архитектуры blockchain заключается в том, что, в отличие от биткойнов, блоки Ethereum содержат копию как списка транзакций, так и самого последнего состояния.

Состояние хранится в специальной структуре данных, называемой деревом Merkle.

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

И эта структура данных хранит специальные объекты, называемые аккаунтами или счетами, причем каждый аккаунт имеет 20-байтовый адрес и содержит четыре поля:

Счетчик nonce, используемый для проверки, что каждая транзакция может обрабатываться только один раз;

Текущий баланс эфира;

Код смарт-контракта аккаунта, если присутствует;

И хранилище аккаунта (пустое по умолчанию);

И данные состояния (вместе с балансами, контрактами) хранятся каждым клиентом Ethereum (или узлом Ethereum).

Есть два типа аккаунтов:

Счет внешнего владельца, который контролируется закрытым ключами и не имеет никакого кода, связанного с ним.

И счет контракта, который контролируются его кодом контракта, и имеет связанный с ним код.

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

Сообщение между двумя счетами внешних владельцев – это просто передача денег.

Страница 14