Под термином Ethereum blockchain подразумевается цепочка блоков, состоящая из множества элементов, работающих по конкретным правилам и содержащих определенные сведения о переводах и других узлах. Безопасность цепочки транзакций обеспечивается наличием копий блокчейн на ПК сотен тысяч пользователей в разных странах мира, не зависящих друг от друга. Особенность сети Эфириум — особое построение, а создание блокчейна Ethereum возможно своими руками.
Определение
Блокчейн Ethereum — набор соединенных между собой узлов, защищенный на криптографическом уровне механизм. В состав входят данные о переводах в сети и другие сведения, обеспечивающие безопасность и защиту от постороннего вмешательства. Если говорить простыми словами, блокчейн Эфира имеет три особенности:
- Криптографически защищен. Свидетельствует о применении сложного алгоритма, построенного на математическом принципе. Построение сводит к минимуму вероятность взлома. Это брандмауэр, защищающий систему от подделки, атак и иных действий злоумышленников. Все транзакции должны быть действительными и проверенными на валидность каждым из участников сети.
- Блокчейн Ethereum — одноэлементный механизм, обеспечивающий фиксацию операций в сети. Свидетельствует о существовании единого алгоритма, отвечающего за переводы в цепочке Эфира. В криптосети действует стандартный набор правил, необходимых для проведения операций и принимаемых участниками сети.
- Цепочка блокчейн Эфириум отличается совместно применяемым состоянием. Работа алгоритма открыта в любой момент для каждого из пользователей и применяется участниками (при наличии необходимости).
Простыми словами блокчейн Ethereum — технология, работающая на базе осуществляемых операций. Система принимает определенные параметры, применяет их в качестве основы, а после переходит на новый этап развития. Стартовая точка отсчета — генезис, первоначальная позиция цепочки, предшествующая всем транзакциям в цепи. С момента проведения первой операции происходит изменение состояния в нечто иное, характерное для текущего временного промежутка.
В состав блокчейна Ethereum входит огромное число операций, исчисляемое миллионами переводов, которые формируются в элементы цепи (блоки), содержащие группы операций. Каждый очередной элемент находится во взаимосвязи с предыдущим, что обеспечивает создание полноценной цепочки.
Для перевода цепочки в новое положение проверятся состояние транзакций, их валидность. В процессе признания корректности операция проходит через майнинг. Суть заключается в применении вычислительных мощностей множества ПК пользователей для формирования новых блоков (элементов) цепочки блокчейн Ethereum.
Каждый майнер (вычислительный узел) имеет право на создание нового элемента цепи, подтверждение транзакции и премии (на 10 ноября 2018 года составляет 3 Эфира). В проверке правильности операций участвуют десятки тысяч майнеров по всему миру. Каждый с помощью вычислительных мощностей ищет доказательство валидности перевода. При успешном поиске блок добавляется к общей цепочке и считается корректным. Процесс подтверждения элементов блокчейна Ethereum происходит с применением механизма консенсуса под названием PoW (Proof-of-Work).
Для цепочки блоков Эфира характерно единое состояние, принимаемое пользователями сети. Отсутствие консенсуса приводит к разрушению системы и невозможности определения единственно верного состояния. При разветвлении в каждой цепи находилось бы разное число монет, а определение валидности стало невозможным.
Появление нескольких ответвлений приводит к появлению форка — так называемой «вилки», возникающей при отсутствии консенсуса участников в отношении принципов работы системы. Пример ответвления (хардфорка) блокчейн — Ethereum Classic. Разработчики делают все возможное во избежание разделений для защиты криптовалютной сети.
В состав системы Ethereum входит ряд компонентов: аккаунты, определенное состояние, операции, газ и размер комиссии. Сюда включаются блоки, выполнение переводов, добыча криптовалюты и механизм PoW.
Адреса Ethereum и их взаимодействие в криптосети
Блокчейн Эфириум включает несколько видов счетов, взаимодействующих между собой посредством обмена информацией (передается в виде сообщений). Для каждого счета характерен определенный адрес и актуальное состояние. Адрес в Ethereum — идентификатор (160 бит). Используется для проверки корректности разных аккаунтов. Бывают двух видов:
- Внешние. Их управление осуществляется с помощью private key и характерной программы.
- Внутренние (для smart-контрактов). Контролируются с помощью ассоциированного кода.
Адреса владельцев счетов и счета смарт-контрактов имеют индивидуальные особенности. Первые способны отправлять сообщения аналогичным элементам сети блокчейн или счетам смарт-контрактов. С применением приватного ключа происходит создание и подпись транзакции. Передача сведений между учетными записями разных аккаунтов представляет собой стандартную передачу денег. Если данные направляются на внутренний счет, их задача заключается в запуске работы программы контракта с последующим исполнением определенных действий. Это может быть отправка монет, проведение расчетов, формирование новых контрактов и так далее.
Отличие внутренних счетов заключается в выполнении операции по факту отправки сообщения от внешнего аккаунта. Действовать самостоятельно не способны: все манипуляции в цепочке блокчейн Ethereum активируются путем отправки сообщений со счетов пользователей (держателей криптовалюты).
Состав счета в системе Ethereum
Счет криптосети Эфириум включает несколько параметров:
- StorageRoot — хеш главного узла дерева Меркла (распространяется в блокчейне для кодирования хеша хранилища конкретного счета). Если не ставить параметр вручную, по умолчанию ничего не указано.
- Nonce — показатель, представляющий собой число операций, совершенных с определенного адреса аккаунта (для внешнего пользователя). В случае с внутренним счетом указанный параметр отражает число смарт-контрактов, сформированных с помощью конкретного счета.
- CodeHash — хеш виртуальной машины Ethereum для определенного аккаунта. Для внутренних счетов представляет собой код, хеширующийся и сохраненный в качестве «кодХеш». Для смарт-контрактов показатель не указывается (оставляется незаполненная строчка).
- Balance — количество горючего, необходимого для конкретного адреса (измеряется в Wei).
Состав счетов (внешнего владельца и контракта) идентичен, а отличается только содержание.
Экосистема Ethereum и место хранения блокчейна
Состояние криптовалютной сети формируется из совмещения адресов и аккаунтов. Информация блокчейн содержится во внутренней структуре, именуемой древом Меркла, представляющим собой двоичное древо, состоящее из ряда узлов:
- «Листья». Находятся в нижней части древа блокчейн. Внутри базовые сведения.
- Промежуточные узлы. Элементы, играющие роль хешей для подчиненных ответвлений.
- Корневой узел. Находится на пике древа. Из него выходят подчиненные узлы.
Данные из «листьев», находящихся в нижней части древа, создаются по следующему алгоритму:
- Сведения для хранения разделяются на блоки.
- Новые элементы блокчейн разбиваются на сегменты.
- Для каждого нового элемента берется хеш.
- Происходит повторение цикла до момента, пока единственным не остается «корень».
Для «работы» древа Меркла требуется ключ, применяемый для каждого содержащегося внутри параметра. От корневого элемента ключ направляет к очередному узлу для получения в будущем необходимого параметра (того, что содержится в конечных элементах).
В ситуации с блокчейном Ethereum ключ для древа находится между адресами и характерными для них аккаунтами. Аналогичная древовидная структура применяется для хранения операций и чеков. Так, в каждом узле блокчейна Ethereum имеется заголовок, в состав которого включается хеш главных узлов (корневых элементов) для трех древовидных структур — состояний, чеков и операций.
Применение древа Меркла обеспечивает удобство хранения указанных сведений. Здесь важно учесть особенность блокчейна Ethereum, включающего в себя ноды (бывают легкими и полными). Особенность полных нод заключается в синхронизации с блокчейн и загрузкой истории транзакции за весь период существования сети. Владельцами полных нод являются майнеры, на ПК которых находятся сведения обо всей цепочке.
Легкие узлы примеряются для пользователей кошельков, не нуждающихся в хранении сведений обо всех операциях в криптосети.
Особенность таких элементов заключается в загрузке заголовков блоков, без скачивания подробных сведений об операциях или состояниях. Применения легких нодов достаточно для генерации новых элементов блокчейна Ethereum, а также получения ответов о сделках и событиях в сети.
Безопасность сети обеспечивается, благодаря древу Меркла. Попытка изменить информации о транзакции в любом из ответвлений приводит к необходимости правок в расположенном выше элементе. Такой процесс происходит до момента, пока в конечном итоге не меняется корень (основание) цепи.
При проверке значения, хранящегося в блоке блокчейна, применяется доказательство Меркла. В его состав входят элементы сведений для контроля, корневой хеш древа, а также ветки, идущие сверху вниз. После изучения доказательства участники сети убеждаются в корректности ветви на всей протяженности — начиная с верхушки и заканчивая нижними ответвлениями.
В роли некого идентификатора применяется хеш главного узла (корня). Благодаря наличию в заголовке элемента блокчейн Ethereum корневого хеша древа состояний, операций и чеков, любая из нод способна контролировать валидность и состояние системы Эфира.
Создание своего блокчейн на Ethereum — шаг за шагом
Создание и разработка блокчейн на Ethereum включает в себя несколько этапов, начиная с формирования приватного blockchain, заканчивая формированием smart-контракта. Рассмотрим каждый из этапов подробнее:
- Установка Geth. Протокол можно скачать в качестве отдельной программы, работающей на различных операционных системах, или в роли библиотеки для внедрения в системы Андроид, Go или iOS. На этом этапе устанавливается homebrew, а после вводятся специальные команды. Подробная инструкция приведена по ссылке — ethereum.github.io/go-ethereum/install/, а скачивание установщика для Windows доступно здесь — ethereum.github.io/go-ethereum/downloads/.
- Создание майнер-аккаунта. Такой шаг позволяет создать два ключа (секретный и общедоступный) с защитным паролем. Место для хранения ключей — <datadir>/keystor. Папка со своим блокчейном располагается в месте, которое зависит от операционной системы. К примеру, в случае с Windows местонахождение папка %APPDATA%\Ethereum. Место для хранения можно изменить.
- Создание генезис-блока. Для блокчейна Эфира первый блок создан еще 20 июля 2015 года. Теперь нужно создать генезис для нового blockchain. Его активация осуществляется с применением специальной команды, где указывается директория для базы данных, а также точка для начальной загрузки и создания первого блока. Генезис сохраняется под названием genesis.json.
- Майнинг. После выполнения рассмотренных шагов можно приступать к добыче новых элементов блокчейн Ethereum. Здесь применяется параметр networkid. Участники сети, подключаемые к майнингу, должны использовать тот же идентификатор.
- Подключение консоли Geth. Здесь в распоряжении создателя блокчейн имеется два варианта — запустить «консоль» отдельно или начать добычу как «консоль». Подключение осуществляется через узел добычи по IPC.
- Просмотр аккаунтов и баланса. Далее можно внести специальную команду для получения сведений о подключенных пользователей, а после посмотреть баланс. Для этого применяются специальные команды.
- Подключение МетаМаск. Это приложение необходимо для получения сведений из блокчейна, создания и управления идентификаторами.
- Передача Эфира. После создания приватного и публичного ключа Ethereum, требуется разблокировка ключа. Далее определяется три переменные (стороны-отправителя, получателя и числа передаваемых монет). Теперь с помощью специальной команды осуществляется отправка денег.
- Изучение баланса — прямо в плагине или через geth (необходима специальная команда).
- Подключение редактора Remix к закрытой сети.
- Формирование, внедрение и вызов smart-контракта.
На завершающем этапе можно проверить процесс формирования блоков с применением Ethereum Block Explorer. Для получения доступа к личному блокчейну требуется запуск программы с помощью команды localhost:8000.
Интерес к криптовалюте ETH и блокчейну легко объяснить. Эксперты прогнозируют будущий рост курса Эфириума к доллару, что свидетельствует о перспективах криптовалюты. Повышается интерес к смарт-контрактам, активно применяемыми государственными и частными организациями. На 11 ноября стоимость 1 Эфириума составляет 210 долларов, но уже к концу года этот показатель может достигнуть 300 долларов и выше. Знание блокчейна Ethereum и принципов его построения позволяет почерпнуть максимум из системы, заработать на майнинге и даже создать собственный blockchain.