Майнинг, также добыча (от — добыча полезных ископаемых) — деятельность по созданию новых структур (обычно речь идёт о новых блоках в блокчейне) для обеспечения функционирования криптовалютных платформ. За создание очередной структурной единицы обычно предусмотрено вознаграждение за счёт новых (эмитированных) единиц криптовалюты и/или комиссионных сборов. Обычно майнинг сводится к серии вычислений с перебором параметров для нахождения хеша с заданными свойствами. Разные криптовалюты используют разные модели вычислений, но они всегда достаточно длительны по времени для нахождения приемлемого варианта и быстры для проверки найденного решения (см. Доказательство выполнения работы). Такие вычисления используются алгоритмами криптовалют для обеспечения защиты от повторного расходования одних и тех же единиц, а вознаграждение стимулирует людей расходовать свои вычислительные мощности и поддерживать работу сетей.
Майнинг — не единственная технология создания новых блоков и обеспечения эмиссии. Альтернативами являются форжинг (минтинг) и ICO. Обычно используется только одна технология, но в некоторых криптовалютах используют комбинации из них.
История В 1983 году американский криптограф Дэвид Чаум придумал тип криптографических электронных денег под названием ecash. Позже, в 1995 году, он реализовал это через Digicash, раннюю форму криптографических электронных платежей. Digicash требовалось пользовательское программное обеспечение, чтобы снимать банкноты из банка и назначать определенные зашифрованные ключи, прежде чем их можно будет отправить получателю. Это позволило третьей стороне не отследить цифровую валюту.
В 1996 году Агентство национальной безопасности опубликовало документ под названием «Как сделать монетный двор: криптография анонимных электронных денег», в котором описывалась система криптовалюты. Статья была впервые опубликована в списке рассылки Массачусетского технологического института, а затем, в 1997 году, в The American Law Review.
В 1998 году Вей Дай описал «b-money», анонимную распределенную систему электронных денег. Вскоре после этого Ник Сабо описал «bit-gold». Подобно биткойну и другим криптовалютам, которые последуют за ним, бит-золото (не путать с более поздней биржей на основе золота BitGold) описывалось как система электронной валюты, требовала от пользователей доказательства выполнения работы, которые были криптографически собраны вместе и опубликованы.
В январе 2009 года разработчиком под псевдонимом Сатоши Накамото был создан биткойн. Он использовал SHA-256, криптографическую хеш-функцию, в своей схеме проверки работоспособности. В апреле 2011 года был создан Namecoin как попытка сформировать децентрализованную DNS. В октябре 2011 года был выпущен Litecoin, который использовал scrypt в качестве хеш-функции вместо SHA-256. Peercoin, созданный в августе 2012 года, использовал гибрид Proof-of-Work и Proof-of-Stake.
Пример вычислений В качестве примера используются вычисления хешей, аналогичные вычислениям в системе Биткойн, где процесс майнинга заключается в подборе такого значения специального дополнительного параметра Nonce, которое позволит получить хеш, числовое значение которого будет не более некоторого заданного числа — Difficulty Target, целевого при данном уровне сложности.
Пример хешей для одной и той же фразы, но с разными значениями дополнительного параметра. Последняя строка в примере имеет наименьшее значение хеша.
«Hello, world!0» => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64 «Hello, world!1» => e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8 «Hello, world!2» => ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7 ... «Hello, world!4248» => 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cfdf65cc0b965 «Hello, world!4249» => c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6 «Hello, world!4250» => 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9
В системе «Биткойн» уровень сложности пересчитывается через каждые 2016 блоков (примерно раз в 2 недели). Он увеличивается или уменьшается в зависимости от того, насколько время создания этой партии блоков отличается от 20160 минут (2016 * 10). Такой механизм обеспечивает появление блоков в среднем через каждые 10 минут вне зависимости от суммарной мощности всех майнеров. В других криптовалютах пересчёт как хеша, так и целевого уровня сложности может существенно отличаться. Во многих альткойнах среднее время формирования блока существенно ниже, вплоть до нескольких секунд.
Майнинг биткойнов Система Биткойн предусматривает только одну возможность для дополнительной эмиссии — новые биткойны получает в качестве вознаграждения тот, кто сгенерировал очередной блок. Полученное вознаграждение за блоки можно использовать после получения 120 подтверждений (то есть сеть разрешает тратить вознаграждение примерно через 20 часов).
Вероятность получения награды соло-майнером в произвольный десятиминутный период приблизительно равна соотношению его вычислительной мощности к вычислительной мощности всей сети. И если это соотношение очень маленькое, то вероятность получения награды даже за длительный промежуток времени также будет низкой. Желающие получить возможно большее вознаграждение стремились задействовать как можно бо́льшие вычислительные мощности. В первых версиях клиента была кнопка «сгенерировать новые биткойны»Сергей Козловский Никто не знает, но стоит дорого // Lenta.ru, 2013-04-03.
Особенность задачи майнинга позволяла применить максимальное распараллеливание вычислений. В силу специфики строения для этого хорошо подошли графические процессоры (GPU) с небольшой дополнительной программойhttps://www.theregister.co.uk/2011/08/16/gpu_bitcoin_brute_forcing/ «the idea of GPGPU extremely attractive for the purpose of bitcoin mining» (в сотни раз производительнее CPUhttps://arstechnica.com/tech-policy/news/2011/08/symantec-spots-malware-that-uses-your-gpu-to-mine-bitcoins.ars «estimates that GPUs can compute hashes up to 750 times as quickly as a typical CPU.») и платы с FPGA (производительность сравнима с видеокартами, но превосходят их по энергоэффективности). После этого используемый в стандартном клиенте майнинг при помощи центрального процессора оказался нецелесообразным из-за слишком малой вероятности получить вознаграждение, и кнопку убрали. Затем начался выпуск специализированных процессоров (ASIC), выполняющих исключительно вычисление хешей для сети Биткойн, более производительных и энергоэффективных, чем GPU и FPGA, и тем более CPU. Примерно с 2012—2013 года майнинг распространённых криптовалют на чём-либо кроме специализированных чипов, в том числе на видеокартах, стал невыгодным — стоимость потребляемой электроэнергии превышает средний результат. Например, к началу 2015 года сложность майнинга наиболее известной криптовалюты Bitcoin выросла в 10 тысяч раз.
Десятки стартапов разрабатывали собственные реализации ASIC-майнеров, при этом новые, более производительные поколения чипов могли выходить каждые полгода (обычно плотность размещения транзисторов в логических схемах удваивается за 2 года).
С переходом майнинга на ASIC стали появляться компании, занимающиеся майнингом в промышленных масштабах, размещающие крупные установки майнинга в местах с дешёвым электричеством и, иногда, с не слишком высокой температурой окружающего воздуха, в частности во Внутренней Монголии (Китай). Некоторые из подобных компаний позиционируют себя в качестве «облачных», продавая часть своих ресурсов в аренду.
Пулы Для уменьшения влияния фактора удачи и более равномерного и предсказуемого получения вознаграждения майнеры объединяют свои вычислительные мощности в пулыPooled Mining //Bitcoin wiki (от — общий фонд). Особенностью вычислений, производимых майнерами, является возможность применить максимальное распараллеливание процессов, когда каждый участник пула ищет свой вариант решения без увязки своих действий с действиями других участников, достаточно лишь обеспечить исключение дублирования расчётов одних и тех же параметров разными участниками. Часто выплаты майнеру рассчитываются исходя из отправленных им пулу стандартных вариантов (shares) (блоков с хешем, который подошёл бы, если бы сейчас параметр сложности был равен единице). Для нахождения блока в среднем требуется количество стандартных вариантов, равное текущей сложности.
С точки зрения криптовалютной системы, пул выступает как мощный соло-майнер, который получает вознаграждение на общих основаниях. Но за счёт своей совокупной мощности, вероятность получения награды у пула равна сумме вероятностей получить награду каждого из его участников. Полученное вознаграждение распределяется между членами в соответствии с установленными владельцем пула правилами. Существуют 3 основных вида начисления наградMining pool reward FAQ //Bitcoin wiki: Proportional — после нахождения пулом блока награда делится пропорционально вкладу каждого участника. PPS — вознаграждается каждый присланный стандартный вариант (из расчёта текущего вознаграждение за блок, деленного на текущую сложность). Score — оценочная система вознаграждения стандартных вариантов, алгоритм которой определяется организатором пула.
У этих типов начисления есть следующие популярные варианты: SMPPS — аналогично PPS, но пул никогда не передаёт пользователям больше, чем реально получил сам. Разница между реальным получением награды пулом и вознаграждением стандартного варианта в PPS, если таковая есть, компенсируется постепенно. ESMPPS — аналогично SMPPS, но уравнивает приоритеты вознаграждения постоянным и новым участникам пула. RSMPPS — аналогично SMPPS, но первыми в очереди на вознаграждение ставятся новые пользователи. PPLNS — аналогично Proportional, но деление награды осуществляется пропорционально вкладу в последние N присланных в пул долей, где N обычно равно удвоенной сложности.
По состоянию на 2016 год большинство крупных пулов майнинга Биткойнов находится в КНР: в марте 2016 года более половины мощности сети была разделена между тремя крупными китайскими пулами, четвёртое место занимает пул компании BitFury — одного из первых производителей майнинговых чипов и основанной выходцами из стран бывшего СССР.
Эмиссия
Выпуск порций новых единиц криптовалюты обычно происходит по заранее известным правилам и не зависит от какого-либо регулирующего органа (см. график количества биткойнов до 2033 года). Чаще всего, стандартную порцию новых единиц в форме вознаграждения получает тот, кто сформировал в блокчейне очередной блок. При майнинге вероятность успеха пропорциональна доле задействованной вычислительной мощности в суммарной мощности всех майнеров данной криптовалюты, но результат в конкретный момент носит случайный характер.
Размер стандартного вознаграждения может оставаться всегда неизменным. Но во многих криптовалютах размер эмиссионного вознаграждения постепенно снижается. Например, вознаграждение в биткойнах первоначально составляло 50 биткойнов за блок, но после формирования каждых блоков (приблизительно раз в 4 года) уменьшается вдвое, то есть является убывающей геометрической прогрессией. Общий объём эмиссии рассчитывается в этом случае как сумма всех членов убывающей геометрической прогрессии и не превысит 21 миллион биткойнов. На май 2014 года в обращении находилось 12,7 миллиона биткойнов. 28 ноября 2012 года произошло первое уменьшение эмиссионной награды с 50 до 25 биткойновBlock 210000, Bitcoin Block Explorer. Следующее уменьшение в два раза произошло 9 июля 2016 года. В 2140 году эмиссия будет остановлена вовсе (размер вознаграждения 50 → 25 → 12,5 → ... → 0). Формирование блоков продолжится и далее, но вознаграждение уже не будет иметь эмиссионной части и будет формироваться исключительно за счёт добровольных комиссионных отчислений«Bitcoin: Peer-To-Peer Electronic Cash System» раздел № 6 «Incentive».