Ethereum blockchain: что это, размер, где хранится

Ethereum blockchain: что это, размер, где хранится

  1. Ethereum blockchain: что это простыми словами
  2. Адреса Эфириум блокчейна: как взаимодействуют аккаунты внутри площадки
    • Из чего состоит счет в системе Эфириум

  3. Экосистема платформы: где хранится блокчейн Ethereum
  4. Как создать свой blockchain на Ethereum: подробная инструкция

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

Ethereum blockchain: что это простыми словами

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

Внутри системы ходит одноименная криптовалюта Эфириум или Эфир. Работа сети базируется на 3-х фундаментальных принципах:

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

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

  • Открытое состояние механизма — это значит, что сетью могут пользоваться все её участники в любой момент времени.
  • Механизм блокчейна Эфириума систематически анализирует входящие сведения и, опираясь на них, изменяет свое состояние. Стартовой точкой для рассматриваемой системы является так называемое «состояние генезиса». Это начальный статус платформы до осуществления каких-либо денежных переводов. После проведения транзакций осуществляется переход сети в фазу нового конечного состояния, которое будет текущим состоянием блокчейна на конкретный момент времени.

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

    Как было сказано чуть выше, весь жизненный цикл Ethereum blockchain основан на постоянном изменении состояния. Чтобы такие изменения проводились, в системе должны присутствовать действительные транзакции. Переводы получают статус действительных после прохождения валидации, являющейся частью майнинга. Майнинг в сети Эфира — это процесс создания новых блоков транзакций, который выполняется за счет вычислительных мощностей сотен компьютеров (или узлов).

    По сути, каждый майнер претендует на формирование и проверку нового элемента блокчейна. Тысячи пользователей во всем мире безостановочно генерируют и утверждают блоки. При записи нового элемента blockchain каждый майнер даёт математическое доказательство того, что блок сформирован и включает в себя только действительные переводы. Этот алгоритм получил название Proof-of-Work (то есть доказательство выполненной работы). За каждый подтвержденный блок «шахтеры» получают вознаграждение в виде определенного количества монет Эфириума.

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

    По состоянию на 21.08.2018 блокчейн Эфира имеет такие ключевые показатели:

      Общий хешрейт сети — 282.395 Thash/s.

    Среднее время, которое тратится на генерацию блока — 14,5 сек (это примерно в 10 раз быстрее, чем в сети Биткоин).

    Суммарное количество блоков — 6 186 719.

    Размер одного элемента сети — 25,134 Кб.

    Размер блокчейна Ethereum — 667,10 Гб.

    Среднее количество блоков, генерируемое за сутки — 5 945.

  • Награда за блок — 3 ETH.
  • Опираясь на вышеизложенную информацию, можно прийти к выводу, что размер блокчейна Эфириума ежедневно увеличивается на 148,6 Мб. Таким образом, за год база данных сети «потяжелеет» примерно на 54 Гб. Этот факт стоит учитывать тем, кто хочет завести себе полновесный кошелек для хранения Эфира.

    Адреса Эфириум блокчейна: как взаимодействуют аккаунты внутри площадки

    Помимо блоков транзакций, сеть Эфириума содержит в себе множество крохотных объектов, способных взаимодействовать друг с другом, обмениваясь сообщениями. Эти объекты называются счетами. Каждый конкретный счет имеет определенное состояние, а также 20-битный адрес. Адрес же является 160-битным идентификатором, применяемым для выявления того или иного счета.

    Все профили блокчейна Эфириума разделены на 2 категории:

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

  • Счета контрактов, которые управляются не ключом, а ассоциированным программным кодом.
  • Крайне важно понимать, в чем заключается отличие между двумя этими видами объектов. Со счетов внешних владельцев можно отправлять сообщения как на другие внешние адреса, так и на адреса контрактов. В первом случае будет проводиться обычный денежный перевод. Во втором случае (отправка на счет контракта) активируется особый программный код, позволяющий контракту выполнять заданные действия. В коде может быть заложена практически любая функция: от трансфера монет до проведения математических вычислений.

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

    При работе на рассматриваемой платформе очень важно уметь анализировать состояние счета. Об этом мы поговорим далее.

    Из чего состоит счет в системе Эфириум?

    Состояние счета в блокчейне Эфира всегда включает 4 элемента:

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

    Balance — показывает, сколько wei (наименьшая единица Эфира) есть на счету аккаунта.

    StorageRoot — хеш корневого узла дерева Меркла (о нём мы расскажем чуть позже). Данное дерево проводит кодировку информации, содержащейся в хранилище конкретного счета.

  • CodeHash — особый код цифровой машины Ethereum. В случае с контрактами данный код сохраняется непосредственно как CodeHash. Если говорить о счетах внешних владельцев, то поле CodeHash представляет собой хеш пустой строчки.
  • Экосистема платформы: где хранится блокчейн Ethereum

    Выше мы упоминали такое понятие, как дерево Меркла. Так вот, это двоичная иерархическая структура данных, в которой хранятся все сопоставления адресов и счетов. Дерево Меркла включает 3 вида узлов (или нод):

      Конечные узлы — находятся внизу иерархической структуры. В них содержатся базовые сведения.

    Промежуточные ноды, каждый из которых — это хеш двух его дочерних узлов.

  • Корневой узел — это вершина дерева Меркла. Формируется данный нод из хеша двух подчиненных ему узлов.
  • Информация, располагающаяся внизу двоичной иерархической структуры, генерируется по такому алгоритму:

    1. Сведения, подлежащие сохранению, разделяются на блоки.
    2. Сформированные блоки, в свою очередь, разделяются на сегменты.
    3. Система берёт хеш каждого сегмента, и операция повторяется.
    4. Система собирает хеш сегментов до того момента, пока не останется лишь корневой хеш.

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

    В системе Ethereum ключ показывается между адресами и относящимися к ним счетами. Эти ключи мы уже упоминали ранее: Nonce, Balance, StorageRoot, CodeHash. Помимо этого, в двоичном дереве Меркла хранятся транзакции и квитанции. Если говорить точнее, то в каждом блоке присутствует свой заголовок, в котором располагается корневой хеш древа состояний, переводов и квитанций (то есть, мы имеем 3 разные структуры в одном блоке).

    Использование деревьев Меркла для хранения информации в сети Эфириум крайне полезно и практично. Дело в том, что функционирование платформы обеспечивают сотни отдельных узлов (или нод). Эти ноды делятся на 2 группы: полные и легкие. Полные архивные узлы загружают весь блокчейн Эфириума, содержащий подробную информацию по каждой отдельной транзакции. Зачастую, полными нодами являются майнеры, генерирующие новые блоки и гарантирующие работу площадки. Однако вся база данных Ethereum весит крайне много (667,10 Гб). Более того, она безостановочно расширяется, что может доставить пользователю проблемы в будущем.

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

    Нельзя не упомянуть и о том, что принцип работы дерева Меркла оберегает блоки от внедрения поддельных транзакций. Дело в том, что хеширование в иерархической структуре распространяется вверх. Если злоумышленник внесет изменения в узел, находящийся внизу, он спровоцирует цепную реакцию. Сначала изменится хеш первого нода, находящегося выше, потом хеш узла, расположенного ещё выше. В итоге поменяется хеш корневого узла, что недопустимо. Проверяя всю цепочку хеширования, можно выявить, какой элемент дерева имеет некорректное расположение в иерархической структуре.

    Как создать свой blockchain на Ethereum: подробная инструкция

    Поняв принцип работы системы Эфириума, можно создать свой приватный блокчейн для локальной сети. Далее мы узнаем, как это делается.

    Прежде всего, необходимо скачать клиент под названием Geth. Этот клиент является одним из вариантов реализации протокола Ethereum. Это лицензированное приложение, так что никаких проблем с ним не будет. Geth можно загрузить в качестве отдельной программы или в виде библиотеки для интеграции в проекты на Android либо iOS.

    Установочный файл можно скачать, перейдя по ссылке ethereum.github.io/go-ethereum/downloads/. Там будут версии для Windows, MacOS и Linux. Инсталляция клиента на Windows проходит стандартно. Чтобы поставить Geth на MacOS, необходимо использовать менеджер пакетов Homebrew. В нем нужно ввести такие команды:

    Инсталляция клиента на Linux также требует введения определенных команд через терминал. Они представлены ниже:

    Далее нужно создать аккаунт майнера. Таким образом, мы сгенерируем приватный и публичный идентификатор, а также установим пароль для их защиты. В качестве примера мы рассмотрим создание профиля на MacOS через менеджер пакетов Homebrew. Нам нужно ввести следующую команду: geth account new –datadir /path/to/data/dir. В конце прописан адрес, по которому будут храниться наши ключи.

    После этого переходим к самому интересному — созданию первого генезисного блока. Команда для генерирования первого элемента нашей приватной сети указана ниже:

    В этой команде для нас наибольшую важность представляют 2 значения:

    • datadir — адрес, по которому будут располагаться ключи;
    • init — начало создания первого блока с именем genesis.json.

    Вот как будет выглядеть код генезисного блока:

    Прописанные в коде команды имеют следующие значения:

      chainid — гарантирует обмен информацией в сети Ethereum без использования блокчейна Ethereum Classic, а также тестовой сети Morden.

    homesteadBlock со значением «0» — это значит, что в нашей приватной сети будет применяться релиз Ethereum Homestead.

    eip155Block со значением «0» — сеть поддерживает протокол EIP (Предложения по улучшению Эфириума) под номером 155. В предложениях EIP прописаны ключевые стандарты для функционирования блокчейна Эфириума.

    eip158Block со значением «0» — генезисный блок, а значит и все последующие элементы приватного блокчейна, поддерживают EIP 158.

    difficulty — уровень сложности при поиске значения nonce к генезисному блоку (об элементе nonce мы говорили чуть выше).

    gasLimit — максимальное количество внутренней единицы оплаты, которое может взиматься системой за обработку транзакции либо смарт-контракта. Кроме того, данная команда указывает, сколько переводов может храниться в одном блоке.

  • alloc — параметр, обеспечивающий предварительное распределение Эфириума из генезисного блока на один или несколько аккаунтов. Код первичного блока, указанный выше, подразумевает пересылку всех монет на один аккаунт.
  • После создания первого элемента сети можно приступать к генерации следующих блоков. Иными словами, начинается процесс майнинга. Майнить мы будем через клиент Geth. Чтобы запустить процесс, надо ввести в менеджере пакетов такую команду:

    При активации майнинга важную роль играют следующие значения:

      networkid — сетевой идентификатор приватного блокчейна Эфириум.

    mine — команда, активирующая майнинг.

    rpc — команда, активирующая сервер HTTP-RPC. Благодаря ей, бумажники других пользователей локальной сети могут подключаться к созданному узлу майнинга.

    rpcaddr — команда, указывающая интерфейс для работы на вышеупомянутом сервере. Изначально установлен интерфейс localhost.

    rpcport — даёт указание на порт для работы HTTP-RPC. Здесь по умолчанию выставлено значение 8545.

    rpcapi — указывает программные интерфейсы приложений (API), доступные на сервере HTTP-RPC. Изначально выставлен eth,net,web3.

    rpccorsdomain — команда, активирующая CORS. Она указывает перечень доменов, с которых разрешено принимать запросы.

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

  • console — данная команда может запускать майнинг с интерактивным окружением jаvascript (этот параметр больше подходит продвинутым пользователям).
  • Процесс майнинга можно начинать непосредственно через Geth или запускать консоль отдельно, а потом подключать её к узлу специальной командой. Выглядит эта команда так:

    После подключения консоли Geth можно просматривать все аккаунты приватного блокчейна Эфириума, а также следить за их балансом. В этом вам помогут следующие 2 команды:

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

    Виталик Бутерин о блокчейне и Эфириуме:

    Блокчейн Ethereum: принцип работы, экосистема, перспективы

    Несмотря на то, что первым криптовалютным проектом был запущенный более 10 лет назад биткоин, настоящая революция в сфере децентрализованных технологий начала вершиться лишь с 2015 года, когда была запущена сеть Ethereum. Именно это событие стало отправной точкой для множества финтех-проектов, которые привлекли волну «свежей крови» на крипторынок.

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

    Что такое блокчейн Эфириум

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

    Если более простыми словами, блокчейн Эфириума — это платформа, позволяющая выполнять операции по переводу активов между участниками сети и создавать dApps на базе смарт-контрактов.

    Внутри системы Ethereum имеется одноименная криптовалюта (ETH), которая используется для передачи ценности между пользователями, а также выполняет роль своеобразного топлива, необходимого для поддержания работоспособности сети.

    Принцип работы и структура блокчейна Эфириум

    Основными концептуальными принципами, на которых базируется работа блокчейна Ethereum, являются:

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

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

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

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

    Транзакции в сети Ethereum

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

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

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

    Эфириум-аккаунты и их виды

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

    Все аккаунты в сети эфира делятся на два вида:

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

    Возможность инициировать транзакции по переводу средств на внешние счета и отправке команд смарт-контрактам имеют исключительно профили первого типа.

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

    Любая учетная запись Ethereum всегда содержит четыре стандартных элемента:

    • nonce — если речь идет о внешних счетах, этот параметр отображает число осуществленных переводов; для контрактных аккаунтов — количество созданных ими новых контрактов;
    • balance — показывает, сколько наименьших дробных частиц ETH (wei) удерживается на счету;
    • storageRoot — закодированное дерево Меркла (хеш содержимого аккаунта);
    • codeHash — у внешних записей это поле пустое, а у контрактных содержит хеш кода виртуальной машины, отвечающей за обработку транзакций.

    Смарт-контракты в сети Ethereum

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

    В данный момент основная сфера применения смарт-контрактов Эфириума — описанный в примере сбор средств во время первичных предложений монет, а также обеспечение работы тысяч dApps-приложений.

    Транзакции, посредством которых создаются умные контракты, отличаются от операций по переводу активов не только целевым назначением, но и содержимым. У них имеется параметр «init» с кодом, который с помощью математической формулы объявляет адрес нового смарт-контракта и запускает процесс его создания.

    Просмотр всех существующих блоков и аккаунтов, а также содержимого смарт-контрактов и транзакций доступен любому желающему. Для этой цели используются веб-сайты обозревателей блоков (эксплореры), самым популярным из которых является Etherscan.

    Технические особенности экосистемы Эфириума

    Хранящиеся в блокчейне Ethereum данные организованы в виде ассоциативной иерархической структуры, которая носит название префиксного дерева Меркла (Merkle trie). По факту это двоичный файл, содержащий информацию от нескольких типов узлов (нод):

    • Листовые (конечные) — содержат базовые данные и располагаются внизу древовидной системы;
    • Промежуточные — каждый из них содержит хеш пары дочерних узлов;
    • Корневой — узел, представляющий собой вершину дерева; формируется из хешей двух ближайших к нему по иерархии промежуточных узлов.

    Каждому элементу в этой системе соответствует ключ, указывающий путь к конечному узлу, в котором содержится искомое значение.

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

    Упомянутые узлы (ноды) представляют собой копии ПО, установленного на компьютерном оборудовании с подходящим видом вычислительных мощностей. Они бывают:

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

    Как правило, полные ноды контролируются майнерами, большинство которых объединяет свои мощности в рамках пулов для повышения вероятности нахождения новых блоков.

    Возможности блокчейна эфира

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

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

    Именно этот функционал сделал Эфириум самой популярной платформой для выпуска токенов (ERC-20) и проведения первичных предложений монет. По сути, его появление и стало причиной ICO-бума 2016-18 гг.

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

    Преимущества и недостатки сети Ethereum

    Кроме уже названной универсальности (одновременно криптовалютная сеть и платформа для создания dApps), можно выделить следующие плюсы блокчейна Ethereum:

    • Относительная быстрота обработки сетью транзакций;
    • Поддержка смарт-контрактов;
    • Регулярные технологические обновления;
    • Доступность (создавать децентрализованные приложения на базе Эфириума может кто-угодно);
    • Публичность и открытость команды проекта.

    В качестве основных минусов блокчейна Эфириума можно упомянуть:

    • Проблемы с масштабируемостью;
    • Несвоевременная активация «бомбы сложности»;
    • Бесконечная эмиссия монет;
    • Наличие у команды проекта централизованных рычагов управления сетью;
    • Постоянное откладывание разработчиками реализации анонсированных обновлений.

    Кроме того, преимущество в виде работы множества dApps на блокчейне Ethereum одновременно является и его недостатком из-за риска перегруженности сети транзакциями этих приложений. Самый яркий пример — всем известная игра CryptoKitties, которая поначалу была настолько популярной, что в течение нескольких недель сеть эфира была ужасно заторможенной, а комиссии выросли с 20 центов до $4.

    Разница между блокчейнами эфира и биткоина

    Изначально создатели Ethereum называли свою разработку улучшенным биткоином (Bitcoin 2.0). Однако оказалось, что, по сути, единственной общей характеристикой обоих блокчейнов является возможность их использования в качестве платежных каналов. Еще можно упомянуть об одинаковом подходе к добыче новых монет (Proof-of-Work), но эта схожесть уже скоро должна исчезнуть (после перехода Эфириума на PoS).

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

    Еще одним важным различием является максимальное количество монет: у биткоина оно не может превысить 21 млн, а у Эфира эмиссия бесконечная и, как следствие, более высокие инфляционные риски.

    Также не стоит забывать о скорости работы блокчейнов: если генерация нового блока в сети Bitcoin составляет в среднем около 10 минут, то у Ethereum этот показатель сейчас составляет всего 13–14 секунд.

    Перспективы блокчейна Ethereum

    В свое время запуск Эфириума заметно оживил отрасль, показав гибкость и универсальность блокчейн-технологий. За прошедшее время множество пользователей убедилось в том, что для создания dApps-приложений и использования смарт-контрактов Ethereum не нужно обладать чрезвычайно глубокой технической подготовкой.

    Конечно же, за прошедшие годы существования этой сети периодически всплывали и разочаровывающие моменты, из-за которых многие переходили на более быстрые и надежные блокчейны, называемые «убийцами эфира» (например, NEO, EOS, Binance Chain). Но когда наконец будут решены проблемы с масштабируемостью, в частности путем внедрения технологии шардинга, у Ethereum появится реальный шанс выйти на один уровень с мировыми платежными системами (а то и обогнать их!), стать глобальной платформой для децентрализованных приложений и укрепить свои позиции в качестве криптовалюты №2, а также самого популярного решения для проведения ICO.

    Более подробно о планах команды Ethereum мы рассказали в этом видео:

    Планы команды Ethereum

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

    Что такое Эфириум простыми словами и чем он отличается от биткоина

    Ультимативный гайд по Ethereum: что такое смарт-контракты, как пользоваться эфиром и как он меняет современную экономику. Если вы все еще не понимаете, зачем нужен эфириум, то это гайд для вас.

    Эфир — вторая по популярности криптовалюта.

    Главное отличие эфириума от биткоина — возможность быстро создавать смарт-контракты.

    Биткоин — это просто удобный способ хранить и пересылать средства.

    Но спектр действий, производимых с деньгами, намного шире: деньги можно одалживать, депонировать, инвестировать, давать в рост и так далее.

    Смарт-контракты в Ethereum позволяют все это делать и дают базу для новой экономики , свободной от государств и банков.

    Давайте быстро разберемся, что такое смарт-контракт.

    Смарт-контакт — это просто кусок программного кода, встроенный в блокчейн. В коде прописаны условия выполнения контракта. Когда они выполнены — автоматически происходит транзакция.

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

    Смарт-контракты — это точно такой же договор, только цифровой. Он существует внутри системы Ethereum и его исполнение гарантируется компьютерной программой, а в фундаменте — строгая математическая система.

    Вот два простых примера смарт-контрактов.

    Представим ситуацию, что компания Васи собирает по $10 на Кикстартере на создание ховерборда из «Назад в будущее».

    Условия сделки просты:

    • участники переводят по $10 долларов
    • деньги блокируются на Кикстартере
    • если удалось собрать 100% от заданной суммы, то Kickstarter переводит деньги создателям проекта
    • если за заданный срок собрать деньги не удалось, то деньги отправляются обратно участникам

    Третьей стороной в этом случае выступает краудфаундинговая платформа Кикстартер и мы должны ей доверять на слово, что наши отправленные $10 передадут создателям ховерборда, либо вернутся к нам обратно.

    Этот договор можно реализовать через смарт-контракт.

    Вася просто пишет программку на специальном языке Solidity, где прописаны условия. Когда они будут выполнены, то контракт подпишется и совершится транзакция: деньги либо уйдут Васе, либо вернутся контрибьюторам.

    И это куда надежнее:

    • деньги не передаются третьей стороне — они просто блокируются в блокчейне
    • любой участник сможет просмотреть программный код и убедиться, как он работает именно так, как заявлено в условии (если в смарт-контракте проставлено разрешение на прочтение)

    Еще более простой пример.

    Представьте себе автомат с газировкой в университетской столовой.

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

    Это значит, что вы получили газировку необратимо — автомат не может догнать вас и забрать товар обратно (конечно, если автомат исправен).

    Торговый автомат — дедушка современных смарт-контрактов. Именно такую аналогию когда-то привел ученый Ник Сабо, описывая их концепцию.

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

    Но идея криптовалюты в том, что люди не хотят доверять банкам или государству .

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

    Ethereum расширяет концепцию криптовалюты до криптоэкономики через смарт-контракты. Если основная идея биткойна — это деньги независимые от государства, то главная идея ethereum — это экономическая система, независимая от государства

    На сегодня мировая экономическая сеть состоит из экономик отдельных государств: США, Япония, Китай, ЕС и так далее. Криптовалюты позволяют отделить экономику от страны. Эфириум — это экономика без страны.

    Теперь к практической части: как именно пользоваться эфиром и когда это может понадобиться.

    В Ethereum есть два типа аккаунтов: кошелек и смарт-контракт. И те, и другие могут совершать транзакции, хранить монеты и принимать эфирки.

    Главное различие в том, что монетами на балансе смарт-контракта распоряжается не человек, а алгоритм.

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

    Биткойн условно можно разделить на две составляющие:

    • BTC — как денежный актив, единица денег
    • Блокчейн биткойна — система, осуществляющая транзакции BTC

    В аналогии с эфиром:

    • Ether – это криптоденьги
    • Ethereum – это блокчейн-система

    Важно понимать, что Ether и Ethereum — не синонимы .

    Пример из традиционной экономической системы,

    Возьмем обычный американский доллар и его в Финляндию через банковский перевод. Основная система межбанковских транзакций называется SWIFT. Через неё банк в Финляндии получит информацию о переводе.

    В контексте этого примера USD можно заменить на Ether, а систему SWIFT вместе с банками — на Ethereum.

    В Ethereum можно делать три вещи:

    • перевести ETH другому пользователю
    • создать смарт-контракт и записать его в блокчейн
    • выполнить смарт-контракт

    Смарт-контракт — это всего лишь код, который можно исполнить, совершив транзакцию на его адрес.

    Когда вы переводите эфир, то информация о вашей транзакции записывается в блокчейн Ethereum майнером. Когда вы добавляется или исполняете код смарт-контракта, при добавлении блока исполняется код программы.

    За каждую операцию надо заплатить комиссию.

    Эта комиссия идет в награду майнерам, чьи компьютеры занимаются добавлением блоков и исполнением кода смарт-контрактов.

    Единица вознаграждения в Ethereum называется gas.

    Gas (газ или бензин) это единица оплаты комиссии в Ethereum.

    Например, перевод с кошелька на кошелек стоит 21000 gas.

    Считается цена газа в gwei — эфиро-копейках . Gwei = 0.000000001 ETH.

    Если с ценой перевода все ясно, то стоимость записи или выполнения смарт-контракта зависит от его сложности — чем больше операций, тем больше газа требуется для его исполнения.

    Когда вы ставите на очередь какую-то из транзакций, вы указываете

  • Сумма ETH к переводу (может быть 0)
  • Сколько максимум газа вы готовы потратить на исполнение операции
  • Вашу цену за газ в величине Gwei
  • Комиссия вычисляется из количества газа * его стоимости в gwei.

    В интерфейсе кошелька обычно есть ползунок, через который можно установить цену за газ в диапазоне от 1 до 60 Gwei.

    Перевод ETH стоит 21 000 gas.

    Если вы выставите цену 1 gas = 40 Gwei вы заплатите комиссию за перевод 0,00084 ETH.

    Количество газа влияет на скорость выполнения — чем выше стоимость, тем быстрее совершится сделка.

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

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

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

    Так что, не жадничайте.

    Чтобы не переплачивать за бензин, можно пользоваться сервисами расчета оптимальной цены, например, ETH Gas Station. В них отображается примерная скорость выполнения в минутах, в зависимости от выставленной цены.

    Как и любую другую криптовалюту: в обменниках, на бирже или обменять у друзей.

    Вам продадут ETH практически мгновенно и это удобно: думать не нужно, ждать тоже.

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

    На популярных биржах можно выставлять свою цену. Например, вы хотели бы купить ETH по курсу $3900 за эфирку.

    Вы выставляете ордер на покупку эфира по цене $3900. Как только появится встречное предложение — сделка выполнится, но, вероятно, придется подождать.

    Биржи точно так же берут комиссии за любую сделку.

    У нас можно купить эфир без комиссии сервису. Есть два варианта:

    • выставить ордер о покупке ETH по вашей цене, как на бирже, и ждать исполнения ордера
    • купить мгновенно: из всех предложений будет выбрано самое выгодное на данный момент

    Минусы покупки у нас:

    • мы работаем только по инвайтам. Инвайт можно получить от друга, который уже пользуется сервисом, либо заполнить заявку — мы рассмотрим ее в течение дня
    • не подойдет суровым интровертам: мы часто просим фидбек, чтобы делать качественный кастдев, поэтому можем написать вам в письмо и попросить отзыв
    • пока нельзя расплатиться картой

    Хранить как обычно — в криптокошельках.

    Бывает три вида криптокошельков для эфира:

    • Кошелек на вашем устройстве: программа в вашем телефоне, планшете, компьютере. Деньги хранятся прямо на устройстве, поэтому если смартфон сломается или потеряется, то восстановить средства не получится.
    • Холодный кошелек: флешка, на которой записаны ваши эфирки. Самый безопасный способ хранения, но опять же, можно потерять, либо забыть пароль
    • Онлайн-кошелек: регистрируетесь на сайте, кошелек будет доступен по интернету. Пароль можно восстановить, но у сервиса, которому вы доверились, будет доступ к вашим средствам: нужен высокий уровень доверия к сервису

    В большинстве онлайн-кошельков начисляют процент за хранение средств на платформе, обычно это 3-7%.

    Мы даем до 7% годовых за хранение у нас эфира.

    Это техническая часть статьи. Если вам куда интереснее узнать, как через смарт-контракты можно устроить честные выборы, отслеживать поставки лосося или покупать доли в премиальной недвижимости, то смело пропускайте раздел

    Мы уже очень подробно описывали, как устроен блокчейн биткоина.

    Если говорить про сам блокчейн Эфириум, то там хранится та же информация, что в блокчейне Биткоин. Разница в форме:

    • в биткойне хранится история транзакций (кошелек А перевел кошельку Б 10 биткоинов)
    • а в Эфириуме — история состояний (на кошельке А сейчас 1 эфир, на кошельке Б 10 эфира, на кошельке С 0,5 эфира)

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

    В биткойне новые блоки появляются раз в 10 минут, а в Эфириуме — раз в 15 секунд. И там, и там майнеры наперегонки решают математическую задачу, чтобы добавить блок и только один получает вознаграждение.

    Фанаты биткоина обвиняют Эфириум за отсутствие в системе четко определенного количества ETH.

    Вспомним как это устроено в биткойне:

    • максимальное количество BTC ограничено — всего может быть 21 млн монет
    • вознаграждение за блок сокращается на 50% каждые 4 года

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

    В эфириуме нет четкого механизма определения количества монет в системе и награды за блок. Вместо этого используется Минимально Необходимая Эмиссия (MNI). Эфириум автоматически уменьшает вознаграждение за блок до уровня, который необходим для гарантии безопасности сети. Таким образом, количество монет в системе не фиксированное, а минимально необходимое.

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

    Однако не все так просто: чтобы полноценно пользоваться смарт-контрактами в обычной, “оффчейн” жизни, нам все еще приходится прибегать к доверенному лицу или сервису — оракулу.

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

    Правительство решило выдавать прививочные сертификаты Covid-19 через смарт-контракты. Пациент приходит на прививку, врач делает инъекцию и отправляет на кошелек пациента токен — прививочный сертификат. Теперь двери ресторана с FaceId будут разблокироваться перед посетителем только, если он привит.

    Оракулом в этом случае выступает врач — именно он передает смарт-контракту информацию о сделанной вакцине. Если врача подкупить, то он не станет делать прививку, а токен передаст.

    Именно поэтому смарт-контракты пока не перевернули мир. Но давайте пробежимся по самым интересным идеям — некоторые уже работают.

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

    Каждому избирателю падает один токен на специальный кошелек, и он может перевести его на один из 20 кошельков: по кошельку на каждого кандидата. У кого больше монет в кошельке — тот и победил в выборах.

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

    Помимо неподкупности блокчейна в избирательной системе есть и другой плюс — его стоимость.

    На выборы в Думу в 2021 году было потрачено 21,4 млрд рублей, и они стали самыми дорогими в истории России. Большая часть денег ушли на защиту от коронавируса, питьевую воду и зарплату членам комиссии.

    Выборы на смарт-контрактах можно проводить прямо с телефонов избирателей, а блокчейну не нужно платить зарплату, поить водой и протирать антисептиком.

    Если вы разбираетесь в еде, то наверняка знаете, что фермерская, искусственно выращенная форель дешевле и не такая вкусная, как морская.

    Блокчейн со смарт-контрактами можно использовать для отслеживания полной цепочки поставок продуктов питания.

    На форель в супермаркете можно навести QR-код и увидеть всю цепочку поставок рыбы: от места вылова, через руки каждого из перекупщиков до супермаркета. Там же можно проверить документы и факт оплаты.

    Особенно остро стоит вопрос контроля поставок лекарственных препаратов, где цена подделки измеряется здоровьем покупателя.

    Блокчейн для контроля цепочки поставок уже используют Nestle, Mercedes Benz Cars, Walmart, а к 2025 году планирует и Почта России.

    Если у вас есть всего $5000, но вы хотите вложиться в дорогую недвижимость, то это можно сделать через смарт-контракты. Цена недвижимости разбивается на токены, и их можно распродать за совсем небольшие суммы. Смарт-контракт будет отвечать за распределение прибыли. Здесь можно почитать подробнее, как это работает.

    Наши предыдущие статьи:

    • Что такое блокчейн: руководство для чайников в 2021 году
    • Что такое биткоин простыми словами
    • Как распознать финансовую пирамиду и отговорить близких в нее вступать

    Наша команда создает первый удобный и легальный криптовалютный банк: с нормальным интерфейсом, лицензией Центробанка, прозрачной разработкой и командой.

    Мы уже запустили первую версию: у нас можно купить и продать криптовалюту без комиссии сервису.

    Дальше мы расскажем

    • виды криптокошельков: как выбрать и использовать
    • как устроены скам-проекты в криптовалюте
    • что такое compound interest и почему мы думаем набить это себе на груди

    Подписывайтесь, чтобы не пропустить новые статьи. Еще у нас есть твиттер “Потрачено” и телеграм-канал IT-бомж для людей, которые хотели бы научиться копить, инвестировать и отучиться тратить всю зарплату.

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

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

    В целом все три способа хранения неплохи, мы в команде пользуемся всеми тремя, в зависимости от целей. Небольшие суммы храним на кошельках типа Jaxx, перевозим за границу на аппаратном кошельке, что-то храним у себя платформе — в частности то, чем торгуем.

    Насчет сид-фразы — ее тоже нужно либо запоминать, либо записывать. Почти все наши знакомые рано или поздно начинают записывать ее либо на бумажке, либо в облачных сервисах типа Notion или Evernote, которые куда менее безопасны, чем прокачанные кастодиальные сервисы.

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

    Как хранить Ether

    Как вы можете заметить, слово криптовалюта содержит в себе слово “валюта” или, другими словами, деньги. Люди склонны хранить и переносить традиционные деньги в своих кошельках, поэтому неудивительно, что программное обеспечение, которое взаимодействует с криптовалютами и, в частности, с Ether, называется кошельком. Но правильное ли это сравнение?

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

    Формы ключей

    1. Наиболее примитивной формой хранения приватного ключа является простая строка из символов, в случае ключа Etherium символов в строке 64. Такую строку можно записать на листе бумаги или в файл на компьютере.
    2. Первым улучшенным способом хранения, придуманным после приватного ключа, является файл хранилища ключей. В двух словах, это файл, содержащий приватный ключ, зашифрованный особым образом с использованием созданного пользователем пароля. Таким образом, ваш ключ немного более защищен по сравнению с первым вариантом, так как нет открытого текста с ключом. Но если кто-нибудь получит доступ к файлу хранилища ключей, ничто не сможет помешать ему попытаться просто взломать пароль.
    3. Мнемоническая фраза — по сути, является более удобным, с человеческой точки зрения, способом хранения приватного ключа. Мнемоническая фраза обычно состоит из 12 — 24 английских слов. На основании этих слов по специальному алгоритму генерируется приватный ключ.

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

    Оффлайн (холодное) хранилище

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

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

    Аппаратный кошелек

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

    Основной проблемой таких кошельков является их цена. Цены на самые дешевые модели начинаются от 100 $.

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

    Далее мы рассмотрим хранилища, которые полагаются на интернет-соединение.

    Собственная нода

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

    Такой способ хранения подходит для продвинутых пользователей.

    Metamask

    Metamask — один из самых популярных и удобных способов хранения Ether. Это расширение веб-браузера, которое может генерировать ключи, используя мнемоническую фразу, или импортировать ваши уже имеющиеся приватные ключи и файлы хранилища. Все данные хранятся в самом браузере, а доступ к ним осуществляется по паролю.

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

    Мобильный кошелек

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

    Биржи

    Последний вариант в списке хранения Ether — это биржи и онлайн кошельки. Доступ к Ether в данном случае осуществляется после авторизации пользователя по электронной почте. Для дополнительной защиты часто используется 2-FA аутентификация, например смс-подтверждение или Google Authenticator. Несмотря на то, что биржи и онлайн кошельки обычно профессионально подходят к хранению ключей, иногда злоумышленникам удается получить доступ к средствам пользователя. В таких случаях обычно вспоминают фразу “не ваш ключ — не ваши средства”.

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

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

    Dag файл размер Ethereum

    • Почему растет размер dag файла eth при майнинге?
    • Размер
      • Размер dag файла ethereum график
    • Ethereum DAG файл достиг объема 4 Гб, что делать?

    Eth DAG файл представляет собой специальный файл, который грузится в память графического процессора в момент, когда пользователь ПК приступает к добыче виртуальной монеты. Размер этого параметра со временем увеличивается, что приводит к росту требований к видеокарте компьютера. В начале 2017-го года размер Даг файла Эфириум составлял 2 Гб, на 18 сентября 2018 года этот показатель вырос до 2,65 Гб, в июле 2021 года – это уже 4.32 Гб.

    Dag файл Eth растет на 100 Мб в среднем каждые 2 месяца.

    Сколько графической памяти нужно для майнинга Эфира?

    Почему растет размер dag файла eth при майнинге?

    Внутри DAG-файла хранится огромное количество данных, это, практически, локальная копия блокчейна Эфириума. Каждый майнер хранит или полную копию или частичную – в случае с Ethereum хранится полная копия всех операций по блокам.

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

    Размер

    Чтобы определить Eth Dag size используйте следующее:

    1. программу GPU-Z в момент майнинга – она позволяет отследить фактический размер памяти оборудования и объем файла;
    2. найдите документ на компьютере и узнайте его параметры;
    3. обратитесь за помощью на специальные ресурсы, например, https://investoon.com/tools/dag_size, где информация обновляется в режиме реального времени.

    Способ с сайтом самый удобный, поскольку он регулярно обновляется в привязке к реальному времени, а также калькулятору размера DAG. Достаточно ввести нужный блок и узнать, каким будет объем спустя n-количество времени.

    Dag файл Эфира меняется каждую эпоху. Одна эпоха – 30 000 блоков. Увеличение скорости DAG файла напрямую зависит от времени нахождения блока. Но время нахождения блока нестабильно, оно может занимать от 10 до 60 секунд. Таким образом, день каждой эпохи не определен во времени, он определяется блоками. В целом, DAG file увеличивается на 0,72 в год. Но помните, это зависит от времени нахождения блока. Для других сетей с более медленным временем поиска блоков Даг файл Etherium увеличивается медленнее, и ваш графический процессор может работать дольше.

    Размер dag файла ethereum график

    Размер Даг файла Etherium график.

    Ethereum DAG файл достиг объема 4 Гб, что делать?

    Вы давно майните Эфириум, DAG-файл вырос до 4 Гб, и ваши видеокарты уже не могут добывать ETH. Что делать? Существует два решения. Первое (и самое очевидное) – приобрести новые видеокарты, с бОльшим объемом памяти. Второе – начать майнить другую монету на тех же картах с объемом памяти 4 Гб, и продавать её на биржах в обмен на ETH. Выбирайте прибыльные монеты с подходящим размером DAG-файла. Также учитывайте, что у некоторых монет этого файла нет. Их можно майнить до тех пор, пока они остаются доходными, при этом не беспокоясь о “способностях” видеокарт. Вот некоторые монеты, на которые можно обратить внимание:

    BTG

    У BTG отсутствует DAG-file, ее поддерживают многие биржи (значит, её будет достаточно легко продать), и иногда она оказывается в рейтинге самых доходных криптовалют. С другой стороны, проект монеты на Github обновляется достаточно редко.

    ETP

    Легко продать – она принимается на многих биржах. Высокий объем торгов и весьма активный проект в Github также являются преимуществами. Но стоимость монеты очень нестабильна, так что перед началом майнинга нужно обязательно узнайте её текущий курс.

    ZEL

    У этой монеты также нет DAG-файла, и она может “похвастаться” довольно большим объемом торгов. Большой плюс – выбор пулов для майнинга. Единственное “но” – это относительно небольшая сеть монеты. Из-за этого доходность может снизиться даже в том случае, если ее будет добывать сравнительно небольшое количество майнеров.

    SERO

    SERO хорошо майнится на видеокартах Nvidia, и её цена периодически повышается. Сверьтесь с курсом перед тем, как начать майнить. Хороший выбор бирж, однако, стоит учесть, что монету, в основном, поддерживают китайские биржи и пулы.

    BEAM

    Нет DAG-file. BEAM активно развивают разработчики, и ее объем торгов достаточно большой. На видеокартах с объемом памяти 4 Гб монета майнится хорошо, хотя не так эффективно, как на картах на 6 Гб и больше. Стабильность процесса майнинга зависит от оптимизации майнера.

    Как работает Эфириум? (Часть 1: блокчейн, счета и состояние сети)

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

    Введение

    По сути, Эфириум представляет собой открытую базу данных, в которой постоянно хранится публичный реестр записей о цифровых транзакциях. Здесь важно заметить, что эта база данных не нуждается ни в каком централизованном органе управления, который бы поддерживал её существование и обеспечивал безопасность. Она функционирует как не требующая доверия система обработки транзакций, среда, в которой отдельные люди могут осуществлять одноуровневые (peer-to-peer) транзакции без необходимости доверять некой третьей стороне или друг другу.

    Моя цель заключается в том, чтобы объяснить, как Эфириум функционирует на техническом уровне, но сделать это без сложной математики и устрашающих формул. Даже если вы в жизни не написали ни строчки программного кода, я надеюсь, что после прочтения этого поста вы, по крайней мере, будете лучше понимать эту технологию. Если некоторые части покажутся вам чрезмерно техническими и трудными для понимания, это нормально! Нет необходимости вникать в каждую мелочь. Я бы рекомендовала вам просто сосредоточиться на общем понимании работы Эфириума.

    Многие из затрагиваемых в этом посте тем представляют собой разбор концепций, изложенных в «жёлтой книге» Эфириума. Я добавила собственные объяснения и диаграммы, чтобы упростить их понимание. Если вы достаточно отважны и готовы принять этот технический вызов, то можете также ознакомиться непосредственно с «жёлтой книгой» Эфириума.

    Ну что ж, приступим!

    Определение блокчейна

    Согласно «жёлтой книге» Эфириума, блокчейн – это «криптографически защищённый одноэлементный механизм записи транзакций с совместно используемым состоянием«. Звучит запутанно, правда? Давайте попробуем разобраться.

    • “Криптографически защищённый” означает, что создание цифровой валюты обеспечивается сложным математическим алгоритмом, который чрезвычайно сложно взломать. Представьте себе своего рода файервол. Это делает обман и злоупотребление системой (напр., создание поддельных или удаление существующих транзакций) практически невозможным.
    • “Одноэлементный механизм записи транзакций”означает, что существует только один канонический экземпляр механизма, ответственного за создание всех транзакций в системе. Иными словами, в этой системе есть только одна глобальная истина, которая принимается всеми участниками системы.
    • “С совместно используемым состоянием” означает, что состояние этого механизма в каждый момент времени открыто для всех и используется совместно всеми участниками сети.

    В Эфириуме реализована эта парадигма блокчейна.

    Парадигма блокчейна Эфириума

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

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

    Состояние Эфириума включает в себя миллионы транзакций. Эти транзакции группируются в «блоки». Блок содержит группы транзакций и каждый блок связан с предыдущим, образуя цепочку.

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

    Любой вычислительный узел сети (их также называют «нодами», от англ. node – узел сети), декларирующий себя в качестве майнера, может претендовать на создание и валидацию блока транзакций. Многие майнеры со всего мира одновременно пытаются создавать и валидировать блоки. Каждый майнер при записи блока в блокчейн предоставляет математическое «доказательство» (англ. proof), и это доказательство действует как гарантия: если доказательство существует, блок должен быть валидным (действительным).

    Для того чтобы добавить блок к основному блокчейну, майнер должен подтвердить его раньше других, конкурирующих с ним, майнеров. Процесс валидации каждого блока путём предоставления майнерами математического доказательства называется Proof-of-Work(доказательство выполнения работы).

    Майнер, подтверждающий новый блок, получает за выполнение этой работы вознаграждение. Какое вознаграждение? В блокчейне Эфириума используются внутренние цифровые токены, называемые «эфирами». Каждый раз, когда майнер подтверждает блок, генерируются новые эфиры и выплачиваются майнеру.

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

    Ранее мы приводили определение блокчейна как одноэлементного механизма записи транзакций с совместно используемым состоянием. Из этого определения мы можем понять, что корректное текущее состояние – это единственная глобальная истина, которая должна приниматься всеми. Наличие нескольких состояний (или цепочек) разрушило бы всю систему, так как в этом случае было бы невозможно договориться о том, какое состояние сети считать истинным. Если бы цепочки блоков расходились, то на одной из них у вас могло бы быть 10 коинов, на другой – 20, а на третьей – например, 40, и не было бы возможности определить, какая цепочка является более «валидной.»

    Всякий раз, когда генерируется несколько вариантов цепочек, образуется «форк» (от англ. fork – вилка, разветвление). Обычно форков стараются избегать, так как они разрушают систему и ставят пользователей перед выбором, какой цепочке они доверяют больше.

    Для того чтобы определить, какой путь в большей степени валиден и предотвратить образование нескольких цепочек, в Эфириуме используется механизм, называемый «протоколом GHOST».

    “GHOST” = “Greedy Heaviest Observed Subtree” («Жадное и самое весомое видимое поддерево»)

    Простыми словами, согласно протоколу GHOST, мы должны выбирать тот путь, на котором было выполнено наибольшее количество вычислений. Один из способов определить этот путь – по номеру последнего («листового») блока, который представляет собой общее количество блоков (не считая генезисного) на текущем пути. Чем больше номер блока, тем длиннее проделанный путь и тем выше количество усилий, затраченных майнерами для того, чтобы достичь этой точки. Используя такое рассуждение, мы можем договориться о канонической версии текущего состояния.

    Теперь, когда вы получили общее представление о том, что такое блокчейн, давайте поговорим подробнее об основных компонентах, из которых состоит система Эфириума:

    • счета (аккаунты)
    • состояние
    • газ и комиссии
    • транзакции
    • блоки
    • выполнение транзакций
    • майнинг
    • Proof-of-Work

    Прежде чем мы начнём, оговорюсь, что всякий раз, когда я говорю о «хэше» чего-либо, я имею в виду хэш KECCAK-256, используемый в Эфириуме.

    Счета (аккаунты)

    Глобальное «совместно используемое состояние» Эфириума состоит из множества небольших объектов («счетов»), которые могут взаимодействовать друг с другом через обмен сообщениями. Каждый счёт имеет ассоциированное с ним состояние и 20-битный адрес. Адрес в Эфириуме представляет собой 160-битный идентификатор, который используется для идентификации любого счёта.

    Существует два типа счетов:

    • Счета внешних владельцев (externally owned accounts) управляются при помощи секретных ключей и не имеют ассоциированного с ними программного кода.
    • Счета контрактов управляются ассоциированным с ним программным кодом.

    Счета внешних владельцев и счета контрактов

    Важно понимать фундаментальные различия между счетами внешних владельцев и счетами контрактов. Счета внешних владельцев могут отправлять сообщения на адреса других счетов внешних владельцев ИЛИ счетов контрактов, создавая и подписывая транзакции своим секретным ключом. Сообщение, передаваемое от одного счёта внешнего владельца другому – это просто денежный перевод. Сообщение же, отправленное от счета внешнего владельца на адрес счёта контракта, активирует выполнение программного кода контракта, что позволяет ему выполнять различные действия (например, трансфер токенов, некоторые вычисления, создание новых контрактов и т.д.).

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

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

    Состояние счёта

    Состояние счёта, независимо от его типа, складывается из четырёх компонентов:

    • nonce: для счетов внешних владельцев, это число представляет собой количество транзакций, отправленных с адреса данного счёта. Для счетов контрактов, это количество контрактов, созданных данным счётом.
    • balance: баланс Wei для данного адреса. 1 эфир = ¹⁰¹⁸Wei.
    • storageRoot: хэш корневого узла patricia-дерева Меркла (о деревьях Меркла мы поговорим позже). Это дерево кодирует хэш содержимого хранилища данного счёта и по умолчанию пусто.
    • codeHash: хэш кода EVM (виртуальной машины Эфириума – подробнее об этом позже) для данного счёта. Для счетов контрактов, это код, который хэшируется и сохраняется как codeHash. Для счетов внешних владельцев, поле codeHash является хэшем пустой строки.

    Глобальное состояние сети

    Итак, мы знаем, что глобальное состояние Эфириума складывается из сопоставления адресов и состояний счетов. Это сопоставление хранится в структуре данных, называемой patricia-деревом Меркла.

    Дерево Меркла (также известное как trie-дерево) – это тип двоичного дерева, состоящего из множества узлов с:

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

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

    Этому дереву необходим ключ для каждого хранящегося внутри него значения. Начиная с корневого узла дерева, ключ указывает вам, к какому дочернему узлу следовать, чтобы получить соответствующее значение, хранящееся в конечных узлах. В случае с Эфириумом, ключ/значение для дерева состояний отображается между адресами и ассоциированными с ними счетами, включая balance, nonce, codeHash и storageRoot для каждого счёта (где storageRoot сам также является деревом).

    Та же самая trie-структура используется для хранения транзакций и квитанций (они же чеки, анг. receipt).

    Точнее говоря, каждый блок имеет «заголовок», в котором хранится хэш корневых узлов трёх различных trie-структур, включая:

    1. trie-дерево состояний;
    2. trie-дерево транзакций;
    3. trie-дерево квитанций.

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

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

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

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

    Для проверки части данных любая нода может использовать «доказательство Меркла». Доказательство Меркла состоит из:

    1. фрагмента данных для проверки;
    2. корневого хэша дерева;
    3. «ветви» (всех хэшей на пути от проверяемого фрагмента данных к корню дерева).

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

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

    Как работает блокчейн Ethereum — смарт контракты и адреса счетов

    Как следует из официальной документации платформы Эфириум :

    Блокчейн Ethereum – это криптографически защищённый одноэлементный механизм записи транзакций с совместно используемым состоянием.

    Звучит немного запутанно, правда? Давайте попробуем разобраться.

    • “Криптографически защищённый” означает, что создание цифровой валюты обеспечивается сложным математическим алгоритмом, который чрезвычайно сложно взломать. Представьте себе своего рода файервол. Это делает обман и злоупотребление системой (напр., создание поддельных или удаление существующих транзакций) практически невозможным.
    • “Одноэлементный механизм записи транзакций”означает, что существует только один канонический экземпляр механизма, ответственного за создание всех транзакций в блокчейне Ethereum. Иными словами, в этой системе есть только одна глобальная истина, которая принимается всеми участниками системы.
    • “С совместно используемым состоянием” означает, что состояние этого механизма в каждый момент времени открыто для всех и используется совместно всеми участниками сети.

    В сети криптовалюты Эфириум реализована данная парадигма блокчейна, далее мы разберем ее подробно и объясним основные принципы функционирования экосистемы платформы.

    Навигация по материалу:

    Основные принципы блокчейна Эфириума

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

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

    Состояние Эфириума включает в себя миллионы транзакций. Эти транзакции группируются в «блоки». Блок содержит группы транзакций и каждый блок связан с предыдущим, образуя цепочку.

    Для того чтобы вызвать переход сети из одного состояния в другое, транзакция должна быть действительной. Для того чтобы транзакция была признана действительной, она должна пройти через процесс валидации (проверки и утверждения), известный как майнинг. Майнингом в сети Эфириум называется процесс, в котором группа узлов сети (т.е. компьютеров) расходует свои вычислительные ресурсы на создание блока действительных транзакций.

    Любой вычислительный узел сети (их также называют «нодами», от англ. node – узел сети), декларирующий себя в качестве майнера, может претендовать на создание и валидацию блока транзакций. Многие майнеры со всего мира одновременно пытаются создавать и валидировать блоки. Каждый майнер при записи блока в блокчейн предоставляет математическое «доказательство» (англ. proof), и это доказательство действует как гарантия: если доказательство существует, блок должен быть валидным (действительным).

    Для того чтобы добавить блок к основному блокчейну, майнер должен подтвердить его раньше других, конкурирующих с ним, майнеров. Процесс валидации каждого блока путём предоставления майнерами математического доказательства называется Proof-of-Work (доказательство выполнения работы).

    Майнер, подтверждающий новый блок, получает за выполнение этой работы вознаграждение. Какое вознаграждение? В блокчейне Эфириума используются внутренние цифровые токены, называемые «эфирами». Каждый раз, когда майнер подтверждает блок, генерируются новые эфиры и выплачиваются майнеру.

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

    Ранее мы приводили определение блокчейна как одноэлементного механизма записи транзакций с совместно используемым состоянием. Из этого определения мы можем понять, что корректное текущее состояние – это единственная глобальная истина, которая должна приниматься всеми. Наличие нескольких состояний (или цепочек) разрушило бы всю систему, так как в этом случае было бы невозможно договориться о том, какое состояние сети считать истинным. Если бы цепочки блоков расходились, то на одной из них у вас могло бы быть 10 коинов, на другой – 20, а на третьей – например, 40, и не было бы возможности определить, какая цепочка является более «валидной.»

    Всякий раз, когда генерируется несколько вариантов цепочек, образуется «форк» (от англ. fork – вилка, разветвление). Обычно форков стараются избегать, так как они разрушают систему и ставят пользователей перед выбором, какой цепочке они доверяют больше.

    Для того чтобы определить, какой путь в большей степени валиден и предотвратить образование нескольких цепочек, в Эфириуме используется механизм, называемый «протоколом GHOST».

    • “GHOST” = “Greedy Heaviest Observed Subtree” («Жадное и самое весомое видимое поддерево»)

    Простыми словами, согласно протоколу GHOST, мы должны выбирать тот путь, на котором было выполнено наибольшее количество вычислений. Один из способов определить этот путь – по номеру последнего («листового») блока, который представляет собой общее количество блоков (не считая генезисного) на текущем пути. Чем больше номер блока, тем длиннее проделанный путь и тем выше количество усилий, затраченных майнерами для того, чтобы достичь этой точки. Используя такое рассуждение, мы можем договориться о канонической версии текущего состояния.

    Теперь, когда вы получили общее представление о том, что такое блокчейн, давайте поговорим подробнее об основных компонентах, из которых состоит система Эфириума:

    • счета (аккаунты)
    • состояние
    • газ и комиссии
    • транзакции
    • блоки
    • выполнение транзакций
    • майнинг
    • Proof-of-Work

    Прежде чем мы начнём, оговорюсь, что всякий раз, когда я говорю о «хэше» чего-либо, я имею в виду хэш KECCAK-256, используемый в Эфириуме.

    Адреса счетов — аккаунты сети Ethereum

    Глобальное «совместно используемое состояние» Эфириума состоит из множества небольших объектов («счетов»), которые могут взаимодействовать друг с другом через обмен сообщениями. Каждый счёт имеет ассоциированное с ним состояние и 20-битный адрес. Адрес в Эфириуме представляет собой 160-битный идентификатор, который используется для идентификации любого счета.

    Существует два типа счетов :

    • Счета внешних владельцев (externally owned accounts) управляются при помощи секретных ключей и не имеют ассоциированного с ними программного кода.
    • Счета контрактов управляются ассоциированным с ним программным кодом.

    Адреса владельцев счетов и адреса смарт-контрактов

    Важно понимать фундаментальные различия между счетами внешних владельцев и счетами контрактов. Счета внешних владельцев могут отправлять сообщения на адреса других счетов внешних владельцев ИЛИ счетов контрактов, создавая и подписывая транзакции своим секретным ключом. Сообщение, передаваемое от одного счёта внешнего владельца другому – это просто денежный перевод. Сообщение же, отправленное от счета внешнего владельца на адрес счёта контракта, активирует выполнение программного кода контракта, что позволяет ему выполнять различные действия (например, трансфер токенов, некоторые вычисления, создание новых контрактов и т.д.).

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

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

    Состояние счета

    Состояние счёта, независимо от его типа, складывается из четырёх компонентов:

    • nonce: для счетов внешних владельцев, это число представляет собой количество транзакций, отправленных с адреса данного счёта. Для счетов контрактов, это количество контрактов, созданных данным счётом.
    • balance: баланс Wei для данного адреса. 1 эфир = ¹⁰¹⁸Wei.
    • storageRoot: хэш корневого узла patricia-дерева Меркла (о деревьях Меркла мы поговорим позже). Это дерево кодирует хэш содержимого хранилища данного счёта и по умолчанию пусто.
    • codeHash: хэш кода EVM (виртуальной машины Эфириума – подробнее об этом позже) для данного счёта. Для счетов контрактов, это код, который хэшируется и сохраняется как codeHash. Для счетов внешних владельцев, поле codeHash является хэшем пустой строки.

    Экосистема сети Эфириум

    Итак, мы знаем, что глобальное состояние Эфириума складывается из сопоставления адресов и состояний счетов. Это сопоставление хранится в структуре данных, называемой patricia-деревом Меркла.

    Дерево Меркла (также известное как trie-дерево) – это тип двоичного дерева, состоящего из множества узлов с:

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

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

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

    В случае с Эфириумом, ключ/значение для дерева состояний отображается между адресами и ассоциированными с ними счетами, включая balance, nonce, codeHash и storageRoot для каждого счёта (где storageRoot сам также является деревом).

    Та же самая trie-структура используется для хранения транзакций и квитанций (они же чеки, анг. receipt).

    Точнее говоря, каждый блок имеет «заголовок», в котором хранится хэш корневых узлов трёх различных trie-структур, включая:

    1. trie-дерево состояний;
    2. trie-дерево транзакций;
    3. trie-дерево квитанций.

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

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

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

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

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

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

    Для проверки части данных любая нода может использовать «доказательство Меркла». Доказательство Меркла состоит из:

    1. фрагмента данных для проверки;
    2. корневого хэша дерева;
    3. «ветви» (всех хэшей на пути от проверяемого фрагмента данных к корню дерева).

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

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

    «Желтая книга» Эфириума находится в свободном доступе на Github.

    Читайте также:
    Как и на чем можно майнить Эфириум Классик — настройка
    Рейтинг
    ( Пока оценок нет )
    Понравилась статья? Поделиться с друзьями:
    Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: