Данный блокчейн представляет собой позволяет производить запись транзакций, используя совместно состояние. Определение короткое, но для многих непонятное, давайте же рассмотрим ключевые характеристики, присущие для этого термина.
Криптографическая защищенность указывает на то, что генерирование новой валюты определяется при помощи сложнейшего математического алгоритма. Он практически не поддается взлому, представляет своего рода файервол. Механизм устроен таким образом, что совершить какое-либо мошеннические действия, или обман почти невозможно.
Еще один параметр блокчейна – одноэлементность механизма записи транзакций. Он указывает на то, что один канонический компонент алгоритма ответственный за генерирование абсолютно всех транзакций. Система имеет одно истинное значение (глобальное), принимаемое всеми участниками.
Состояние – совместно используемого типа указывает на то, что показатель данного механизма в определенный момент времени доступен для всех и применяется совместно всеми субъектами сети.
Система Эфириума реализовывает это утверждение блокчейна, которое мы далее и будет более подробно разбирать. Также в статье мы опишем ключевые принципы работы всей сети данной платформы.
Конструктивно компонент представляет собой машину состояний, которая функционирует при помощи транзакций. Точные науки предполагают считывание входных данных самим механизмом. На основе этих импульсов система переводится в новое состояние.
Машина состояния Ethereum включает в себя отправную точку, именуемую «состоянием генезиса». Если говорить простым языком, то он является своеобразным чистым листом, на котором производятся разнотипные транзакции. После их исполнения генезис преобразуется в новую форму, приобретая новое результативное состояние. Каждый временной промежуток представляет конечное состояние, являющееся, по сути, актуальным состоянием Эфириума.
Ethereum состояние имеет в себе миллионы транзакций, которые в свою очередь группируются в блоки. Каждый такой компонент включает отдельные группы транзакций, при этом, каждый предыдущий блок связан со следующим. Таким образом, получается цепочка.
Чтобы осуществить вызов перехода сети в другое состояние, необходимо сгенерировать действительную транзакцию. Она будет таковой, если пройдет процесс валидации – мониторинга и утверждения. Последняя операция широко известна всем, как майнинг. В Эфириуме данный процесс представляет собой совокупность группы сетевых узлов, компьютеров, расходующих свои ресурсы на построение блоков, отвечающих за действительные транзакции.
Каждый из вычислительных узлов сети декларирует себя как майнер и может претендовать на построение и валидацию транзакционного блока. Такой компонент известен под названием «нод». Множество майнеров со всего мира пробуют одновременно генерировать блоки, проводя валидацию их в дальнейшем. В процессе записывания блока непосредственно в блокчейн, предоставляется своего рода математическое «доказательство» (proof, пруф). Оно играет роль гарантии того, что если пруф реально существует, он должен обязательно быть действительным, валидным.
Чтобы осуществить добавление блока к ключевой части блокчейна, оператор (майнер) подтверждает его самым первым, раньше других участников. Валидация каждого отдельного блока посредством предоставления операторам криптографических пруфов именуется Proof of Work. Переводится термин как доказательство или подтверждение выполненной работы. В результате успешной реализации такой операции, человек, сгенерировавший валюту, получает вознаграждение.
Что же оно собой представляет? Блокчейн Ethereum применяет встроенные цифровые токены, которые известны как эфиры. Всегда, когда оператор подтверждает сгенерированный блок, создаются новые эфиры и переводятся на счет майнера. При этом каждый человек в процессе работы соблюдает одинаковую цепочку блоков. Многие также интересуются вопросом: можно ли отдельным майнерам самостоятельно построить полноценную цепочку из блоков? Начнем с того, что блокчейн идентифицируется как механизм с 1 элементом для фиксирования манипуляций состояния, применяемым совместно. Определение указывает на правильное актуальное условие, которое представляет собой глобальную истину, принимаемую всеми участниками. Если представить, что будет иметь место сразу несколько актуальных состояний или же цепочек, то такое бы явление просто бы сломало всю полную систему. Это в свою очередь повлекло бы за собой несогласованность, невозможность договориться о единственно актуальном состоянии.
Теоретически может быть и другая ситуация, при которой блочные цепочки расходятся. В таком случае на одной майнер имел бы, например, 10 коинов, на второй – 20, а на третьей 40 и т.д. Можно видеть, что практически невозможно определить одну валидную цепочку. Каждый раз, когда будет происходить генерирование нескольких версий цепочек, будет создаваться «форк» - разветвление. В большинстве случаев их тщательно избегают, ведь они приводят к разрушению системы и предоставляют пользователям сложный выбор о том, какая цепь для них более надежная, чему они больше доверяют.
Для определения максимально валидного пути и в дальнейшем предоставить возможности для генерирования множества цепочек, на платформе Эфириум реализован еще один рабочий алгоритм GHOST. К привидениям аббревиатура относится, а расшифровывается так: “Greedy Heaviest Observed Subtree”, весомое поддерево.
Согласно ему каждый из нас при работе в системе должен подбирать тот путь, который будет выполнять максимально возможное число вычислений. Самый точный метод определения такогонаправленияи – применение каждого последнего блока, в свою очередь предоставляющего общее число блочных элементов на текущем напарвлении. Высокий номер указывает на более долгий пройденный путь и большее количество усилий, приложенных майнерами с целью достижения этой точки. Ориентируясь на этот тезис, можно легко договориться о едином варианте такого состояния.
На этом пока все, общую картину о блокчейне у нас уже есть. Давайте же сейчас рассмотрим детальнее ключевые компоненты, входящие в конструкцию системы Ethereum:
Далее мы будем использовать несколько новых понятий, в частности – «хэш». Идти речь будет о конкретном хэше – КЕССАК-256.
Если рассматривать общее состояние, применяемое совместно в глобальном плане, то стоит указать, что состоит оно из нескольких счетов – малых объектов. Они в процессе работы взаимодействуют один с другим путем бесперебойности подачи сообщений. Все такие счета обладают совместным состоянием и адресом на 20 бит. Последний в глобальной системе Ethereum является идентификатором на 160 бит, применяемый для точного идентификации каждого отдельного счета.
Они бывают двух типов:
Данные два параметра существенно отличаются друг от друга, и сейчас мы рассмотрим, чем же именно. Счета, принадлежащие внешним эмитентам, поддерживают возможность отправки сообщений на другие счета, контрактов или прочих внешних владельцев. При этом, все транзакции создаются и подписываются только секретным ключом. То сообщение, которое передается между счетами, представляет собой обыкновенный денежный перевод. А сообщения, отправленные непосредственно на контрактный счет, запускает исполнение кода алгоритма, этого же контракта. Это дает возможность выполнять разноплановые действия:
Если их сравнивать со счетами контрактов, то ссылки на внешних владельцев имеют возможность самостоятельной идентификации для создания следующих транзакций. Контрактные счета осуществляют такого рода операции только в ответ на уже полученные переводы. При этом, они должны поступать с внешних счетов, или же от другого счета контрактов.
Исходя из указанного выше, можно видеть, что действия в Эфириуме (его блокчейне) инициализированы транзакциями, которые поступают со наружных счетов.
Несмотря на тип счета, его состояние включает 4 ключевые компонента:
Ранее мы писали, что глобальное состояние внутри системы подразумевает сравнение уже имеющихся адресов и счетных состояний. Данный мониторинг направляется в ведомство данных, где и хранится.
Элемент Меркла конструктивно является двоичным деревом, включающим в себя несколько узлов. Эти компоненты в свою очередь состоят из:
Информация из низа дерева создается посредством отделения на блоки тех данных, которые далее необходимо сохранить. Созданные компоненты разделяются на более мелкие сегменты, берется хэш каждого из них. Этот процесс идет по кругу, в результате должен быть только корневой хэш.
Для дерева требуется универсальный ключ для переменных, отдельно хранящихся внутри. Этот компонент указывает на тот дочерний узел, ему нужно следовать, сначала – корневой узел. Данные, применяемые при отображении, хранятся в конечных узлах.
Эфириум отображает ключ для отдельного дерева, между адресами и счетами, которые с ними совместимы. В них входят все 4 основные компонента. «Сторэдж Рут» по умолчанию также элемент типа «дерево».
Каждый отдельный блок обязательно включает название, а он – корневой хэш узлов разноплановых деталей trie:
Функции эффективного сохранения данных в деревьях применяются для легких нодов или клиентов. Блокчейн совместим со всеми такими элементами. Ноды, представлены в одном из двух типов: легком и полном. Последние отвечают за синхронизацию блокчейна, осуществляя загрузку всей цепочки, напрямую от блока генезиса и заканчивая актуальный верхний блок. При этом, включаются все транзакции, записанные в цепи.
Полные ноды архивного типа, как правило, имеют майнеры, ведь данные компоненты являются незаменимым для майнинга крипты. Есть возможность также загрузить полный нод без осуществления записей обо всех осуществленных транзакциях.
Бывают ситуации, при которых нет необходимости сохранять полностью всю цепочку. Здесь, кстати будут лёгкие ноды. Они позволяют загружать только лишь цепь блочных заголовков, начиная от генезиса и заканчивая актуальным верхним блоком. При этом детальные данные о транзакциях и ассоциации с их состоянием отсутствуют. Легкие элементы принимают участие в генерировании верифицируемых ответов обо всех ключевых событиях. Это обусловлено тем, что они работают с блочными заголовками. Работоспособность обусловливается тем, что хэши из дерева Меркла харктеризуются верхним распространением. В таком случае, если злоумышленники будут пытаться осуществить подмену или же установку поддельной транзакции в низ дерева, такие действия повлекут изменения верхнего хэша. В результате это способно изменять корень дерева.
Чтобы провести проверку частей любого нода, можно применять метод «доказательство Меркал». Он включает в себя:
Ознакомившись с таким доказательством, каждый сможет убедиться в алгоритме хэширования данной ветки на протяжении, вплоть до корня дерева.
Главная сильная сторона работы с деревом Меркла – криптографическая зависимость структурных узлов от информации, которая хранятся в нем. Хэш этого узла выполняет функции идентификатора защиты данных.
Блок состоит из элементов, в частности заголовка, из хэша корня дерева, а также выписки и переводы. Каждая нода проводит проверку малой части состояния Ethereum. Поэтому не нужно сохранять все состояние, объем которого теоретически может быть бесконечным.