31
Рисунок 2.1 – Парадигма блокчейна Ethereum
В случае с машиной состояний Ethereum, начальной точкой является
«состояние генезиса». Оно подобно чистому листу или пустому бланку до того,
пока в
сети не произойдут какие-либо транзакции. После выполнения
транзакций состояние генезиса переходит в конечное состояние. В
любой
момент времени это конечное состояние является текущим состоянием
Ethereum.
Рисунок 2.2 – Состояние блокчейна
Состояние Ethereum включает в
себя огромное количество транзакций.
Эти транзакции группируются в «блоки». Блок содержит группы транзакций, а
каждый блок связан с предыдущим, тем самым образуя цепочку.
32
Рисунок 2.3 – Блоки транзакций
Чтобы вызвать переход сети из одного состояния в другое, транзакция
должна быть признана действительной, для чего она должна пройти через
процесс валидации (проверки и утверждения), известный как майнинг.
Майнингом - это процесс, в
котором группа узлов сети (компьютеров)
расходует свои вычислительные ресурсы на генерацию блока действительных
транзакций.
Любой вычислительный узел сети (их также называют «нодами»),
объявляющий себя в качестве майнера, может претендовать на создание и
валидацию блока транзакций. Многие ноды со всего мира одновременно
пытаются создавать и валидировать блоки. Каждый майнер при записи блока в
блокчейн предоставляет математическое «доказательство», которое действует
как гарантия: если доказательство существует, то блок должен быть
действительным.
Для того чтобы добавить блок к основному блокчейну, майнер должен
подтвердить его раньше всех его конкурентов. Процесс проверки каждого
блока путём предоставления нодами математического доказательства
называется доказательством выполнения работы (proof-of-work)[20].
Так как блокчейн одноэлементный механизм записи транзакций с
совместно используемым состоянием, то корректное текущее состояние – это
единственная глобальная истина, которая должна приниматься всеми. Наличие
нескольких состояний (или цепочек) разрушило бы всю систему, так как в
таком случае было бы невозможно договориться о том, какое состояние сети
должно считаться истинным.
33
Каждый раз, когда формируется несколько вариантов цепочек, образуется
разветвление (fork). Обычно разветвлений стараются избегать, так как они
разрушают систему и ставят пользователей перед выбором, какой цепочке они
должны доверять.
Рисунок 2.4 – Разветвления
Для того чтобы определить, какой путь наиболее действителен и
предотвратить образование нескольких цепочек, в
Ethereum используется
механизм, известный как «протокол GHOST».
Согласно протоколу GHOST, мы должны выбирать тот путь, на котором
было совершено самое большое количество вычислений. Один из способов
определить этот путь – по номеру последнего блока, который представляет
собой общее количество блоков на текущем пути, исключая генезисный. Чем
больше номер блока, тем длиннее проделанный путь и тем выше количество
усилий, затраченных нодами для того, чтобы достичь этой точки. Используя
такое рассуждение, можно договориться о
действительной версии текущего
состояния.
34
Рисунок 2.5 – Каноническое состояние
Достарыңызбен бөлісу: