Как создается (майнится) Monero. Часть 2

Часть 1 — Что такое Монеро. Вводная часть

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

Процесс создания Монеро описан на примере сервиса SmartCharity (в данный момент находится в разработке). Если коротко: это сайт, на главной странице которого располагается кнопка START. Пользователь нажимает ее и запускает процесс майнинга Монеро для благотворительного проекта SmartCharity. Он предоставляет сервису мощности своего компьютера для создания криптовалюты. Чем больше компьютеров запустили процесс майнинга, тем больше Монеро будет создано. Далее следует описание процесса создания криптовалюты Монеро.

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

Mining переводится как «добыча». По аналогии с золотом добываются коины (монеты), которые можно конвертировать в доллары. И каждый из тех, кто нажал кнопку «Start» на сайте Smart Charity, становится одним из добытчиков. Чтобы добыть большой объем Монеро, нужно очень много добытчиков. Чем больше людей подключилось, тем больше общая мощность и, соответственно, количество Монеро.

Итак, смотрим на иллюстрацию.

Майнинг

Синие круги 1, 2, 3 и 4

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

Кошелек — это случайно сгенерированная пара ключей: приватный и публичный (привычными терминами — это логин и пароль). Чтобы кто-то смог перечислить человеку на его кошелек коины, он дает его адрес. Адрес кошелька — это хэш от публичного ключа, то есть от логина. Хэш не относится к специфическим терминам майнинга, с ним знакомы все программисты.

Хэш — это математическое преобразование информации в строку фиксированной длины. Пример хэша: строка «Smart Charity» преобразуется в DF2E9FAC69FBD7B0DCC1B9770FF2BA7C5D7E620C40E452F0230F59C16B9A96C1

Идем дальше.

Когда один из синих кругов отправляет другому коины происходит так называемая транзакция (изображено на рисунке черными стрелками). Можно провести аналогию с перечислением денежных средств с одной банковской карты на другую или из одного электронного кошелька (Яндекс.Деньги, paypal, webmoney и т.д.) в другой. Физически ничего не перемещается, меняется просто запись о количестве средств у отправляющего и принимающего. У одного становится больше, у другого — меньше.

Транзакция — это запись, содержащая следующую информацию (в скобках – информация для примера):

  • с какого кошелька переводится (№1);
  • на какой кошелек переводится (№2);
  • какая сумма коинов (500);
  • время операции (21:00);
  • дата операции (03.04.2005).

Вся эта информация из записи собирается воедино, формируется ее хэш.

Грубо изобразим операцию хэширования, на самом деле процесс выглядит не так, учтите это!

1 2 500 2100 03042005 => 88587A68F8329645B33DEFCEA6088C72DF9AA97CB4894AE948DD3B1F95651B9B

Полученный хэш подписывается приватным ключом (т.е. паролем от кошелька) отправителя (синего круга №1) и рассылается по всем клиентам. Тут в работу вступают майнеры.

Черные круги A, B, C и красный D

Черные круги A, B, C и красный D — это майнеры. Miner переводится как «шахтер».

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

Как происходит подтверждение? Все существующие майнеры получают одновременно одну и ту же информацию о миллионах транзакций между разными синими шариками. Они собирают эту информацию в один блок.

Блок состоит из:

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

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

Процесс перебора/поиска ключа

Процесс перебора/поиска ключа — это самый важный этап майнинга. Именно для него требуется хорошая вычислительная мощность компьютера, создаются «фермы». Именно этим и занимается компьютер пользователя, когда он нажимаете на кнопку «START» на главной странице сайта SmartCharity. Раньше, когда криптовалюта только появилась, сложность подбираемого ключа была невысокой. Поэтому найти ключ и запаковать блок мог один обычный компьютер. Со временем все большее число майнеров подключалось к сети, вид ключа усложнялся и пришлось создавать мощные «фермы».

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

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

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

Что касается Монеро: для этой криптовалюты предельный объем не установлен.

Переходим к проекту Smart Charity

Красный круг D — это майнер и одновременно сайт Smart Charity. Он распределяет задачу расчета ключа (подписи) вышеописанного блока между всеми подключенными участниками.

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

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

Когда пользователь нажимает кнопку START, запускается файл javascript, размещенный на сайте. Он получает задание на расчет ключа, то есть майнинг Монеро от Smart Charity, и считает его (майнит), задействуя мощность ПК пользователя.

Далее Часть 3 — Зачем майнить Монеро? Почему кто-то покупает данную криптовалюту?