воскресенье, 22 ноября 2015 г.

Мама, мама - откуда берутся дети? Введение в майнинг для новичков.


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

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

Я знаю всего три способа получения криптофантиков.

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

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

Для простоты обьяснения давайте рассмотрим принцип работы криптовалютных технологий схематично и поверхностно.

Вся информация о принадлежности монет кошелькам хранится в цепочке блоков - блокчейне.
То есть минимальная единица хранения - блок.

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

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

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

Но и это ещё не всё - значение этого хэша должно быть меньше, чем установленное системой число.

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

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

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

Однако продолжим.

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

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

Что-то мы отвлеклись, пора вернуться к нашим криптобаранам.

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

На сегодняшний день майнинг монет требует огромных вычислительных мощностей, и редко кто майнит в одиночку.
Обычно майнеры работают в пулах (pool - объединение), каждый участник пула рассчитывает не весь блок, а только его часть.
Если пул решает блок и поучает за него награду, то она делится между участниками по заранее оговорённым правилам.

В настоящее время майнинг можно производить на:

- центральных процессорах (CPU);
- видеокартах (GPU);
- специальных устройствах (ASIC - асик или эйсик).

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

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

Посередине находятся алгоритмы, которые можно гораздо эффективнее обсчитывать на процессорах видеокарт, чем на CPU.
В этом ряду можно найти X11, X13, Quark, Groestl, WhirlpoolX, Lyra и т.д.
Проблема данного семейства алгоритмов состоит в том, что видеопроцессоры для майнинга достаточно разнообразны - они могут быть производства AMD (красные) или NVIDIA (зелёные).
Кроме того, для успешной работы необходимо установить требуемые драйвера видеокарт, а они различные для каждого алгоритма.
Ну и главный момент - видеокарты не майнят сами по себе, для их работы необходима специальная программа - майнер.
Майнер может просто отсутствовать для выбранного вами алгоритма под вашу видеокарту.
Или быть неоптимальным по скорости.
А от скорости работы майнера в майнинге зависит почти всё - существуют оптимизированные майнеры для отдельных видеопроцессоров под некоторые алгоритмы, способные работать в несколько раз быстрее, чем их конкуренты.

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

Мне по ряду параметров очень нравится семейство монет Cryptonote, в обиходе называемое Криптоновыми ;-)
В следующей заметке я расскажу, как реально начать майнинг, какой пул выбрать для работы и прочие мелочи.