Майнинг
Последнее редактирование: @HiroyukiNaito(opens in a new tab), 13 марта 2024 г.
Прежде чем начать
Для лучшего понимания этой страницы мы рекомендуем сначала почитать о транзакциях, блоках и доказательстве работы.
Что такое майнинг в Ethereum?
Майнинг — это процесс создания блоков транзакций, которые будут добавлены в блокчейн Ethereum.
Сейчас Ethereum, как и Bitcoin, использует механизм консенсуса «Доказательство работы» (proof-of-work, PoW). Майнинг — это ключевая составляющая в системе доказательства работы. Майнеры Ethereum (компьютеры с работающим программным обеспечением) используют свою вычислительную мощность для обработки транзакций и создания блоков.
Зачем нужны майнеры?
В децентрализованных системах, таких как Ethereum, требуется, чтобы все были согласны с порядком транзакций. Майнеры помогают в этом, решая вычислительно сложную задачу создания блоков и таким образом защищая сеть от атак.
Подробнее о доказательстве работы
Кто может стать майнером Ethereum?
Технически любой может добывать Ethereum, используя свой компьютер. Однако не каждый может добывать эфир (ETH) с прибылью. В большинстве случаев майнеры должны покупать специальное компьютерное оборудование для майнинга с прибылью. Хотя любой может запустить программное обеспечение для майнинга на своем компьютере, маловероятно, что средний компьютер добудет достаточно награды для покрытия расходов, связанных со стоимостью майнинга.
Затраты на майнинг
- Потенциальные затраты на оборудование, необходимое для сборки и обслуживания майнинговой фермы
- Затраты на электричество для майнинговой фермы
- Если dы занимаетесь майнингом в пуле, обычно майнинг-пулы взимают фиксированную комиссию в % от каждого блока, добытого пулом
- Потенциальные затраты на дополнительное оборудование для поддержки майнинговой фермы (вентиляция, мониторинг потребления электроэнергии, электропроводка и т. д.)
Для оценки прибыльности майнинга используйте калькулятор майнинга, такой как Etherscan(opens in a new tab).
Как добываются (майнятся) транзакции Ethereum
- Пользователь составляет запрос на транзакцию и подписывает ее с помощью приватного ключа некоторого аккаунта.
- Пользователь транслирует запрос транзакции в сеть Ethereum через некоторый узел.
- Получив новый запрос на транзакцию, каждый узел сети Ethereum добавляет его в свой мемпул — локальный список всех полученных запросов на транзакции, которые еще не вошли ни в один блок блокчейна.
- В какой-то момент узел собирает несколько десятков или сотен запросов на транзакции в потенциальный блок таким образом, чтобы максимизировать сумму трансакционных комиссий, которые узел заработает, но в пределах лимита газа для блока. Затем узел майнинга делает следующее:
- Проверяет валидность каждого запроса на транзакцию (проверяет наличие подписи и ее соответствие запросу, целостность запроса и т. д.), а затем выполняет код запроса, изменяя состояние своей локальной копии EVM. Комиссию за каждую такую транзакцию майнер направляет на свой счет.
- Как только все запросы на транзакции в блоке будут проверены и выполнены на локальной копии EVM майнер начинает процесс создания «сертификата законности» доказательства работы для этого потенциального блока.
- В конце концов, какой-то майнер создаст блок с соответствующим сертификатом для блока, который включает в себя наш запрос на транзакцию. Затем майнер транслирует в сеть завершенный блок, а так же его сертификат и контрольную сумму нового состояния EVM.
- Другие узлы узнают о новом блоке. Они проверяют сертификат, выполняют все операции в блоке (в том числе транзакцию нашего пользователя) и убеждаются в том, что контрольная сумма их нового состояния EVM после выполнения всех транзакций соответствует контрольной сумме, заявленной майнером этого блока. Только после этого они добавляют этот блок к хвосту блокчейна и принимают новое состояние EVM в качестве канонического состояния.
- Каждый узел удаляет все транзакции нового блока из локального пула невыполненных запросов на транзакции.
- Новые узлы, присоединяющиеся к сети, скачивают все блоки по очереди, в том числе блок, содержащий конкретно нашу транзакцию. Они инициализируют локальную копию EVM с пустым состоянием, а затем выполняют каждую транзакцию каждого блока на их локальной копии EVM, проверяя контрольные суммы состояний в каждом блоке на всем пути.
Каждая транзакция добывается (включается в новый блок и распространяется) только один раз, но выполняется и проверяется каждым участником в процессе изменений канонического состояния EVM. Это подсвечивает одну из центральных идей блокчейна: не доверяй, проверяй.
Визуализация
Посмотрите, как Остин рассказывает о майнинге и блокчейнах с доказательством работы.
Дополнительные ресурсы
Связанные инструменты
- Лучшие майнеры Ethereum(opens in a new tab)
- Калькулятор майнинга Etherscan(opens in a new tab)
- Калькулятор майнинга Minerstat(opens in a new tab)