В последние полтора месяца, из-за резкого роста курса некоторых криптовалют, стало выгодно майнить на видеокартах, что, к слову, и привело к резкому их подорожанию. Но вот что такое майнинг и как он работает — знают далеко не все, и об этом мы поговорим в этой статье.
Начнем с определения:
Майнинг (mining, добыча полезных ископаемых) — деятельность по поддержанию распределенной платформы и созданию новых блоков с возможностью получить вознаграждение в форме новых единиц и комиссионных сборов в различных криптовалютах.
Понятно то, что ничего не понятно. Распределенная платформа — это способ решения задач сразу на многих устройствах, объединенных параллельно. То есть, грубо говоря, в процессе майнинга происходит решение математической задачи, в результате которой можно получить за это деньги. Иными словами — производительность ПК переводится в деньги, а вы платите только за электричество и интернет.
Хэш и блокчейн — столпы майнинга
Но что это за задача? Для того, чтобы ответить на этот вопрос, сначала разберемся с тем, что такое хэш. Хэш, или хэш-функция — это алгоритм, который преобразует любые исходные данные, будь то файл, картинка или текст, в последовательность букв и цифр определенной длины. Причем делает это так, что разные исходные данные дают разный результат (в противном случае, если разные исходные данные дают одинаковый хэш, это называют коллизией — столкновением, и это, вообще говоря, уязвимость).
Для чего нам нужен хэш? Он нужен нам для того, чтобы, не имея на руках файлов, знать, одинаковые они или нет. Зачем это нам? Для понимания этого рассмотрим вторую важную составляющую майнинга — блокчейн.
Блокчейн (blockchain, цепочка блоков) — выстроенная по определённым правилам непрерывная последовательная цепочка криптографически связанных блоков, содержащих информацию.
Рассмотрим на примере, как работает блокчейн. Создаем файл и записываем в него фразу «Привет мир-1». Считаем его хэш-сумму по любому алгоритму — самый распространенный это sha256. Допустим, при этом мы получили строчку А (на самом деле она длиннее и разнообразнее эдак в 64 раза, но для наглядности упростим ситуацию). Теперь создаем второй файл, записываем в него фразу «Привет мир-2» и следующей строчкой пишем А. Сохраняем файл и считаем его хэш — он оказывается, допустим, B. Теперь создаем третий файл, записываем в него «Привет мир-3» и B, сохраняем, считаем хэш — он оказывается С, создаем новый файл, и так далее. Поздравляем сами себя с созданием простейшего блокчейна — все предыдущие файлы завязаны на самый первый, то есть все блоки — элементы одной цепочки. При этом самый первый блок называется Genesis Block (первичный блок), он рассматривается отдельно, так как у него отсутствует родительский блок.
Разумеется, возникает вопрос — а как проверить целостность сети, может быть 10001 блок был получен не из 10000, а из головы? Да очень просто — в каждом последующем файле записан кэш предыдущего. И так можно рекурсивно «спуститься» вплоть до самого первого блока. Если где-то кэш не совпадет — значит, в сеть были внесены изменения.
Теперь мы, наконец-то, можем перейти к описанию майнинга.
Принцип работы майнинга
Представим, что внутри самого первого файла написано не только «Привет мир-1», но и 00000. Считаем его хэш, и он, к примеру, начинается с 3f5da... Радостные, отправляем этот кэш и узнаем, что он не подходит. Но почему? Да все просто — хэш должен начинаться с нуля, а количество нулей в начале подбирается так, чтобы каждый блок биткойна появлялся раз в приблизительно 10 минут. Хм, скажете вы, ну давайте запишем в файл не 00000, а 00001 (да-да, самый простой перебор, ибо предсказать, какой получится хэш, мы не можем. А если вы сможете — получите Нобелевскую премию, серьезно). Считаем его хэш — и он начинается с 7b3fa8... Мда, и опять не нули в начале. Ладно, запишем в файле 00002. Опять не нули? Ставим 00003, и так далее. И вот так, перебирая, мы в конце концов получаем хэш, начинающийся с нужного числа нулей, с помощью этого хэша генерируем новый блок, и получаем за него деньги. Вот так просто и работает майнинг.
А в чем тогда разница между майнингом разных криптовалют? Да только в количестве данных в блоке, текущей сложностью, набором правил для хэша да самим алгоритмом хэширования.
Сразу же возникает вопрос — а можно как-то подделать эту цепь блоков и получить сразу много биткойнов? Конечно можно, вам для этого всего лишь нужно перемайнить ВСЕ блоки с самого начала образования цепи по своему алгоритму — как только у вас станет на один блок больше, чем у всех других майнеров — сеть автоматически примет ваши условия. Это так называемая «атака 51%», и она возможна лишь в теории: во-первых, для того, чтобы перемайнить почти 500 000 блоков биткойнов, потребуются просто гигантские вычислительные мощности и деньги, во-вторых — даже став «королем биткойнов», самый максимум, что вы сможете — это останавливать транзакции в сети, что денег вам точно не принесет (но вот обвалить курс, или, наоборот, поднять и сыграть на этом, будет можно. Но вряд ли человек, имеющий достаточные для создания такой сети деньги, будет этим заниматься — скорее всего он вложит их во что-то более выгодное).
Регуляция в сети биткойна
В сети биткойна разумеется есть регуляция: во-первых, это сложность: то есть сколько нулей должно быть в начале хэша. Она подбирается так, чтобы в неделю появлялось 2016 блоков — то есть 10 минут на блок. Соответственно, чем больше вычислительных мощностей участвует в майнинге — тем больше должна быть сложность, чтобы удерживать темп — а значит тем сложнее каждому найти нужную хэш-сумму. Второй ограничитель — это стоимость награды. В 2009 году за один блок давали 50 BTC, потом 25, а сейчас — всего 12.5.
Поэтому мы получаем сразу две проблемы для майнера: если самые первые блоки биткойнов без проблем рассчитывались на листке бумаги с калькулятором (нужно было найти хэш с всего одним нулем в начале), в начале 2010ых для этого требовался компьютер с мощный процессором, то теперь, даже имея хороший сервер, в одиночку найти нужный хэш практически нереально (за разумное время, конечно). Вторая проблема — даже если вы найдете такой блок, биткойнов вы получите в 4 раза меньше, чем 8 лет назад. И их стоимость может не окупить (вернее уже давно не окупает) затрат на электричество — а работать себе в убыток вряд ли кто-то будет. Но есть и плюс — если в начале биткойны стоили буквально десяток центов, то теперь их курс превышает 2000 долларов — правда, все равно сильно возросшая сложность привела к тому, чтобы майнить биткоины на домашнем ПК невыгодно.
Однако уже давно созданы специальные устройства — ASIC. Это интегральные схемы особого назначения, которая заточены под определенные действия (в данном случае — под майнинг), но потребляют при этом относительно немного энергии. И то, чтобы майнить на них было выгодно, создаются огромные фермы из них в Китае, в местах с дешевым электричеством — только так можно получить существенную прибыль.
Текущее состояние майнинга криптовалют
Возникает вопрос — почему вдруг люди порядка месяца назад массово бросились скупать видеокарты и делать фермы? Все просто — всегда курс может вырасти настолько, что становится выгодно майнить даже на видеокартах (процессоры для этого подходят хуже — майнинг отлично распараллеливается, и тут GPU с несколькими тысячами простых вычислительных блоков оказывается лучше, чем CPU с 4-8 мощными ядрами). Но тут важно понимать, что мало того, чтобы сейчас курс определенной криптовалюты был высок — нужно, чтобы он был высоким на протяжении по крайней мере того времени, пока вы не «отобъете» затраты на ферму. И в самом лучшем случае для эфириума это 3-4 месяца, а обычно это больше полугода. Увы — никто предсказать курс на такой длительный промежуток времени не может, поэтому домашний майнинг был и является рискованной затеей.
И самый последний вопрос — что делать тем, кто хотел купить себе видеокарту, а теперь, глядя на цены, понимает, что они им не по карману? Просто мониторить авито и прочие площадки продаж б/у комплектующих: время работает на вас, чем больше майнеров и мощностей — тем менее выгодным и тяжелым становится майнинг, и поэтому те, у кого были небольшие фермы, работающие на грани прибыли, уже стали их распродавать, и уже можно «урвать» 1080 Ti по старым ценам. Да, это будет б/у видеокарта, но стоит понимать, что она работала от силы 1-2 месяца при комфортных для нее условиях. И с учетом того, что гарантия на них обычно 2-3 года — волноваться не о чем.