X
Нажмите Нравится
Мобильная версия Новости Украины Рейтинги Украины MH17 Выборы Коронавирус Лайфхак Война

Биткоин для «чайников»: Майнинг

3 июля 2017, 10:30 |
«Майнинг» — второе слово после «блокчейна», с которым у многих ассоциируется Биткоин.
Биткоин для «чайников»: Майнинг

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

Для большинства майнинг — это какой-то фантастически непонятный процесс в ходе которого при помощи компьютерного оборудования (видеокарт и asic-процессоров) идет добыча денег — монет биткоина.

Действительно, слово «майнинг» (mining) в переводе с английского означает добычу полезных ископаемых. А майнеры (miners) — это шахтеры.

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

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

Собственно, процесс денежных переводов в типичной финансовой среде описывается серией из четырех последовательных шагов:

  1. Submission — отправитель посылает в систему платежное сообщение (поручение) о переводе некоторой суммы денег получателю;
  2. Validation — сообщение проходит процедуру проверки отправителя и целостности сообщения;
  3. Conditionality — проверяется наличие достаточного баланса для перевода на счету отправителя;
  4. Settlement — проведение транзакции, перевод денежных средств на счет получателя.

В современной экономике эти процессы обычно поддерживаются финансовыми посредниками, такими как банки.

Отправитель (клиент банка) посылает платежное сообщение или поручение (submission) в платежную систему банка. Это сообщение должно пройти процедуру подтверждения (идентификации) клиента и целостности сообщения (validation). После успешной валидации сообщения банковская система проверяет необходимые условия для платежа (conditionality), а именно — достаточность средств на балансе клиента или наличие кредита. Если все проверки пройдены, банк окончательно (безусловно и безотзывно) проводит платеж (settlement)— пополнение счета получателя и уменьшение баланса счета отправителя.

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

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

Поэтому, процесс денежных переводов в них присходит несколько по-другому, а именно:

  1. Submission — отправитель перевода при помощи программного приложения «биткоин-кошелек» направляет в сеть Биткоина сообщение, в котором указываются биткоин-адреса отправителя и получателя, а также сумма перевода и сумма комиссии за перевод (опционально).
    Это сообщение автоматически подписывается электронной цифровой подписью (ЭЦП) отправителя, которая формируется при помощи закрытого (приватного) ключа отправителя и криптографически связана с его биткоин-адресом. Подробнее см. статью «Электронная цифровая подпись: Просто и наглядно».
  2. Validation — это сообщение проходит проверку в сети по ЭЦП. Тем самым, происходит идентификация отправителя. Для проверки используется биткоин-адрес, поскольку он связан с приватным ключом отправителя при помощи которого он подписал сообщение.
    На самом деле личность отправителя не имеет значения, она остается анонимной. Под идентификацией отправителя понимается соответствие биткоин-адреса отправителя и сообщения (платежного поручения) криптографической подписи (ЭЦП). Тем самым подтверждается, что указанная сумма денег (монет биткоина) должна быть отправлена с конкретного биткоин-адреса.
  3. Conditionality — проверяется наличие достаточного баланса для перевода на счету отправителя. Для этого, согласно протоколу Биткоина, происходит подсчет всех непотраченных Выходов (т.н. UTXOunspent transaction output) этого адреса. Подробнее см. статью «Биткоин за 5 минут: Блок».
  4. Если все проверки прошли, сформированная транзакция ждет добавления в блок и записи в блокчейн.

И вот тут, собственно, и начинается процесс, который получил название «майнинг».

Что же это такое? Попробуем разобраться…

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

Но, во-первых, мы знаем, что данные (транзакции) в блокчейн записываются в виде блоков (транзакций). Следовательно, надо предварительно сформировать блок. Если блок будет маленьким, например, из нескольких транзакций, то блоки формировались бы с большой скоростью — сотни блоков в минуту.

Во-вторых, как мы знаем, сеть Биткоина является одноранговой и децентрализованной, т.е. состоящей из многих разбросанных по всему миру постоянно работающих компьютеров (серверов), называемых узлами (node).

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

При этом могла возникнуть ситуация называемая «проблемой двойных трат», когда некий недобросовестный пользователь Биткоин-сети решил отправить со своего биткоин-адреса, баланс которого составляет 1 BTC, одновременно два платежа по 1 BTC на два разных биткоин-адреса.

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

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

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

Но, какой именно узел будет это делать? Ведь сеть Биткоина одноранговая и все узлы имеют равные права.

Автор Биткоина, некий Сатоши Накамото, предложил в протоколе использовать для определения такого узла алгоритм, который получил название Proof of Work (PoW) — доказательство сделанной работы.

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

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

Такой криптографической задачей в протоколе Биткоина является задача по подбору параметра, называемого nonce, который, будучи добавлен к заголовку сформированного блока, давал хэш-код (см.статью «Хэширование: Просто и наглядно»), начинающийся с заданного количества нулевых битов (bits), что равносильно получению хэша, менее и равного заданного большого числа.

Другими словами, надо добавить такую короткую строку данных (nonce) в сформированный блок, чтобы получившийся хэш-код блока начинался с нескольких нолей.

Такую задачу можно решить только перебором большого количества разных параметров (nonce). Что очень трудоемко и требует больших вычислительных мощностей.

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

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

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

Весь этот процесс по «цифроперемалыванию» — подставил новый параметр nonce, вычислил хэш, проверил результат и т.д. до нахождения нужного хэша с нолями в его начале, — и есть пресловутый «майнинг»!

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

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

Но вернемся к майнигу… А где же добытые «шахтерами» (майнерами) деньги (биткоины)?

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

Собственно, новые монеты могут попасть в сеть Биткоина только в результате майнинга. Тем самым осуществляется эмиссия биткоина.

Первоначально (в 2009 году) за каждый новый блок (т.е. каждые 10 минут) манеры, которые добавили его в блокчейн, получали 50 монет BTC. Но, опять же, протоколом Биткоина установлено, что через каждые 210 000 блоков (примерно 4 года) вознаграждение за новый блок уменьшается в 2 раза. Поэтому сейчас (2017 год) майнеры получают за добавленный блок 12,5 BTC. А суммарное количество биткоинов (эмиссия) не может превышать 21 млн монет. Почему это так, я рассказал в статье «Почему количество биткоинов ограничено».

Помимо платы за блок майнеры, добавившие блок в блокчейн Биткоина, получают комиссионное вознаграждение (transaction fee) с каждой транзакции. При этом майнеры стараются наполнить блок в первую очередь транзакциями с максимальной комиссией. Поэтому, если отправитель указал небольшую комиссию, его платежное поручение откладывается в исполнении. В результате некоторые платежи могут идти часами, а то и вовсе не пройти.

Подведем итоги:

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

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

Ранее по теме «Биткоин за 5 минут»:

 

Будущее

Тайная дочь Путина выступила против него

4 августа 2025, 13:45  |  20 хвилин
Луиза Розова (в народе известная как Елизавета Кривоногих), долгие годы считавшаяся внебрачной дочерью президента России Владимира Путина, впервые открыто выступила против него.

США полностью готовы к ядерной войне с Россией — Трамп

2 августа 2025, 11:24  |  20 хвилин
США готовы к ядерной войне с Россией — заявил Дональд Трамп, комментируя угрозы со стороны Дмитрия Медведева. На фоне резкой эскалации риторики между Вашингтоном и Москвой американский лидер распорядился разместить две атомные подводные лодки в «соответствующих регионах».

Трамп требует прекратить войну в Украине до 8 августа

31 июля 2025, 19:58  |  20 хвилин
Соединенные Штаты Америки официально сообщили Совету Безопасности ООН об инициативе президента Дональда Трампа по прекращению войны в Украине до 8 августа. В случае невыполнения этого срока США оставляют за собой право прибегнуть к дополнительным действиям.

Оперативная информация по состоянию на 16:00 31.07.2025 по российскому вторжению

31 июля 2025, 18:31  |  Генштаб ВСУ
Российские захватчики продолжают штурмовать позиции украинских защитников. Всего с начала суток, 31 июля 2025, произошло 66 боевых столкновений.

«Самый старый ребёнок в мире» родился в США

31 июля 2025, 14:44  |  20 хвилин
В США родился ребенок из эмбриона, замороженного более 30 лет назад — в 1994 году!

Туск заявил о признаках возможного прекращения войны в Украине

30 июля 2025, 20:07  |  20 хвилин
Премьер-министр Польши Дональд Туск заявил, что видит «многие признаки» того, что война в Украине может быть приостановлена в ближайшее время.

«Крот» в Воздушных силах готовил удары по F-16

30 июля 2025, 18:06  |  20 хвилин
ШОКИРУЮЩИЕ ПОДРОБНОСТИ! Украинский лётчик-инструктор оказался агентом РФ и сливал данные для ударов по F-16!

«Аэрофлот» парализован масштабной кибератакой: отменены десятки рейсов

28 июля 2025, 14:21  |  20 хвилин
В результате беспрецедентной хакерской атаки на IT-системы крупнейшего российского авиаперевозчика произошёл системный сбой: отменены десятки рейсов, нарушена работа всех цифровых сервисов, пассажиры застряли в аэропортах, а власти начали расследование.

В СМИ — тревога: к Земле приближается «инопланетный корабль»?

27 июля 2025, 18:29  |  20 хвилин
Волна публикаций в западных СМИ — от New York Post до Daily Mail — вызвала ажиотаж: к Земле якобы летит межзвёздный объект, который может оказаться враждебным инопланетным зондом.

Украина получит 33 000 ударных комплектов автопилота с ИИ

27 июля 2025, 15:27  |  20 хвилин
Американо-немецкая компания Auterion до конца 2025 года передаст Украине 33 000 ударных комплектов Skynode — это более чем в 10 раз превысит предыдущие поставки.

Закон против НАБУ: The Economist говорит о «панике» в окружении Зеленского

23 июля 2025, 18:25  |  20 хвилин
Закон, который существенно ограничивает независимость Национального антикоррупционного бюро (НАБУ) и Специализированной антикоррупционной прокуратуры (САП), вызвал бурю протестов в Украине и резкую критику со стороны международных партнёров.

Верховная Рада официально утвердила новый состав правительства Украины

17 июля 2025, 18:30  |  20 хвилин
В четверг, 17 июля 2025 года, украинский парламент поддержал кадровые изменения в Кабинете Министров, окончательно сформировав обновленное правительство.

Страницы: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10

ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031