Про Bitcoin (BTC) на Хабре писали много (в последнее время даже чересчур много). Как он работает, об интересе к нему со стороны правительства и спецслужб. Биткойн не раз пытались похоронить и затем откопать назад. Даже проводили экскурсии на страусиную ферму. Но как-то, глядя на это, не складывалось целостной картины.
Я постараюсь отчасти восполнить этот пробел и изложить в нескольких постах основные принципы и историю того, как добывались и добиваются биткойны. Преимущественно внимание будет уделяться технологической стороне вопроса, а не громким скандалам в мире медиа и политики. Также, я постараюсь избежать повторения того, о чем уже писалось не раз.
В этот раз речь пойдет об общих принципах майнинга.
Bitcoin mining: «кто все эти люди?»
Для начала попробуем ответить на вопрос, а кто, собственно, занимается добычей биткоинов. Ниже перечислены основные категории людей, добывавших или добывающих биткоины, с учетом хронологии их появления на сцене.
1) Школьники и студенты, имеющие доступ к дешевому (или вовсе бесплатному) электричеству и hardware, за счет своих родителей и университетов.
2) Геймеры, использующие свои игровые ПК для добычи биткоинов в перерывах между компьютерными баталиями.
3) Гики, покупающие несколько ПК для майнинга, и которых обычно останавливает только исчерпание ресурсов электроснабжения/охлаждения/свободного места (ну или терпения родных и соседей)
4) Хакеры, развертывающие ботнеты и использующие для майнинга украденные вычислительные мощности.
5) Сообщества, организующиеся для совместной покупки оборудования и добычи биткоинов, с последующим разделением полученной выгоды.
6) Компании, которым удалось получить финансирование от энтузиастов, через аналог IPO на онлайн-биржах, ведущих торги за bitcoin. Такие компании разрабатывают специализированное hardware (ASIC) для последующей добычи bitcoin и распределяют дивиденды.
Как видно, довольно разношерстная компания.
Добыча Bitcoin
Суть добычи биткоинов сводится к решению некой сложной криптозадачи, для которой неизвестно лучшего подхода чем брутфорс.
Биткоины добываются не по одному, а «пачками», или блоками. Первоначально размер блока равнялся 50 BTC, но он уменьшается вдвое после каждых 210 тыс. добытых блоков. Сейчас добыто уже больше 250 тыс. блоков, а значит, один блок приносит 25 BTC. Новый блок добывается примерно каждые 10 минут. Из-за периодического уменьшения награды за блок вдвое, общее количество BTC никогда не превысит 21млн, ~55% всех BTC уже добыто и, по прогнозам, эта цифра достигнет 99% к 2032 году.
Периодически, через каждые 2016 добытых блоков, происходит корректировка сложности их добычи. Корректировка основывается на скорости добычи в последний период и нужна для сохранения среднего интервала добычи блоков у отметки в 10 минут.
Если количество компьютеров, занятых одновременной добычей биткоинов, в целом растет, то ежедневная награда (равная 24*6*25 = 3600 BTC) остается неизменной. А значит, на каждый компьютер приходится всё меньшая доля общего «пирога».
Добыча биткоинов имеет смысл только до тех пор, пока стоимость добытых BTC превосходит затраты на оборудование и электроэнергию. Т.к. сложность добычи BTC неуклонно увеличивается, да и курс USD/BTC подвержен колебаниям, наименее энергоэффективные средства добычи BTC постепенно исключаются из процесса. Хотя, резкий рост курса USD/BTC может сделать рентабельным их возвращение в строй.
(В этот раз совсем) немного истории
Bitcoin стал результатом развития идей, заложенных в существовавшие ранее криптовалюты. А впервые он появляется на сцене в ноябре 2008го, когда пользователь под псевдонимом Сатоши Накамото (Satoshi Nakamoto) публикует статью, описывающую систему новой валюты. Уже в январе 2009го система начинает функционировать, а её популярность сначала растет медленно, но вскоре переходит в экспоненциальный рост. Известен случай, когда один человек заплатил за пиццу 10тыс. BTC (несколько миллионов $ по нынешнему курсу). Накамото исчезает в апреле 2011, и его личность до сих пор остается загадкой.
Курс USD/BTC
Рисунок 1. Динамика курса USD/BTC и сложности майнинга (источник данных)
На рисунке 1 показана динамика курса обмена USD/BTC с течением времени. Начиная с 2010го года курс резко пошел вверх. Если в июле 2010 1 BTC стоил $0.05, то к августу 2013 уже преодолел отметку $105. В этом интервале наблюдается два скачка – один в июне 2011го, когда биткоин стоил $31.5 и в апреле 2013го, когда курс подскочил до $266 (а сейчас и до $1000). Резкие скачки и обвалы курса чаще всего связаны с периодами пристального внимания СМИ и расцвета страхов/слухов об уязвимостях протокола или взломах организаций, отвечающих за обмен BTC на другие валюты. Подобные слухи каждый раз сопровождаются волной желающих продать биткоины и обвалом курса.
Основная причина, делающая BTC столь привлекательным для спекуляций – верхний предел на количество BTC, равный 21млн. Если когда-нибудь BTC всё-таки заменит золото как эталон для хранения сбережений, то, приравняв стоимость мирового золотого запаса к общей стоимости биткоинов, можно сказать что один BTC будет стоить $71000 – гораздо больше, чем сейчас (практически, на два порядка, даже с учетом последних спекуляций).
Сложность майнинга BTC
На рисунке 1 также показано как менялась сложность майнинга биткоинов с течением времени. За неполные 4 года сложность возросла в 50млн. раз. Если в начале сложность соответствовала 4-8 процессорным ядрам общего назначения, способным перебрать примерно 7 млн. хэшей в секунду (MH/s), то сейчас скорость совместных усилий по брутфорсу превосходит 350 терахэшей в секунду (TH/s).Такому росту способствовали 2 фактора. Первое – рост курса USD/BTC позволяет покрыть расходы на эксплуатацию большего количества оборудования для майнинга. Второе – за это время произошли значительные изменения как в программном, так и в аппаратном обеспечении для майнинга биткоинов. Опять-таки, точки падения сложности добычи BTC соответствуют местам обвала курса USD/BTC.
Инновации в hardware и software для майнинга
Прогресс шел невероятно быстро, изменения следовали одно за другим.
В сентябре 2010 появляется первый общедоступный CUDA miner. Уже в октябре 2010 за ним последовал первый майнер для OpenCL.
Практически сразу после этого, в ноябре 2010, возникло такое явление как pooled mining, когда группа компьютеров выполняет распределенный перебор хэшей, а, при добыче блока биткоинов, делит награду между участниками пропорционально их вкладу в общее дело. Подобные пулы очень быстро выросли до размера тысяч участников, позволив последним получать небольшие суммы каждый день, а не большие (50 или 25 BTC) каждые несколько месяцев.
На тот момент сложность добычи блока биткоинов равнялась примерно месяцу работы одного Hi-End GPU. Одной из ключевых инноваций, сделавшей возможным существование mining pool'ов, стала возможность убедиться, что компьютер действительно провел работу по перебору хэшей, которую он заявил как выполненную, и исключение возможности того, что пользователь «сбежит», когда его компьютеру в ходе перебора посчастливится наткнуться на ответ.
К сожалению, mining pools служат своего рода «концентраторами», что противоречит распределенной природе bitcoin и потенциально ставит под угрозу процесс подтверждения транзакций.
В июне 2011 появился первый open source miner для FPGA. А затем в январе 2013 появляется первый ASIC майнер и множество улучшений последовавших за этим. На графике сложности добычи BTC показаны даты появления этих технологий.
производительность и энергоэффективность
Hi-End CPU (вроде Core i7 990x), подвергнутые оверклокингу, достигли производительности 33 MH/s, а Hi-End GPU от NVidia (вроде GTX 570) 155 MH/s. В то же время GPU от AMD (вроде 7970 за $450) выступали гораздо убедительнее, на уровне 675 MH/s.
Следующий шаг эволюции связан с появлением FPGA майнеров, которые хоть и немного проигрывали видеокартам от AMD в стоимости железа на единицу производительности ($/MH/s), но зато потребляли 60W вместо 200W. Компания под названием Butterfly Labs (BFL) начала продавать FPGA майнеры, которые в итоге могли бы постепенно вытеснить GPU за счет меньшего энергопотребления.
Но тут на сцену выходят ASIC майнеры, дающие выигрыш на порядки, по сравнению с FPGA. За счет их использования суммарная производительност взлетает до небес, а вместе с ней и сложность добычи блоков, что неизбежно оставляет не у дел и GPU и FPGA.
Рисунок 2. Установка для майнинга биткоинов на основе FPGA (источник)
Стратегия майнинга
Важным вопросом для тех, кто занимается добычей биткоинов, является: когда инвестирование денег в «железо» для добычи биткоинов принесет больше прибыли, чем просто их покупка через биржу. Многая специализированная аппаратура для майнинга BTC (или доли в компаниях, эксплуатирующих такую аппаратуру за вас) имеет цену, указанную в BTC. Согласитесь, было бы глупо купить такую аппаратуру и так никогда и не вернуть свои вложения, особенно с учетом обслуживания и счетов за электричество.
Чтобы ответить на этот вопрос, необходимо оценить возврат средств за счет майнинга в биткоинах. В условиях экспоненциального роста сложности добычи новых биткоинов, способность железа к добыче биткоинов падает также экспоненциально. При росте сложности примерно в 1.2 раза каждые две недели, 66% биткоинов, которые «железо» способно добыть за время своей эксплуатации, приходится на первый квартал работы. 22% на второй квартал, 7% на третий, а на всё оставшееся время приходится лишь 4%. При этом в первый день работы будет добыто ~1/80 всех биткоинов, что можно добыть на этом девайсе за время его эксплуатации.
Прибыль от использования аппаратуры для майнинга биткоинов получается суммированием экспоненциально убывающих сумм добываемых биткоинов в единицу времени, минус расходы на эксплуатацию и приобретение, плюс цена, по которой аппаратура может быть продана после завершения её жизненного цикла в качестве майнера биткоинов.
Некоторые из этих параметров известны в момент покупки; например, цена аппаратуры, курс USD/BTC на этот момент и расходы на эксплуатацию. Также легко оценить количество биткоинов, добываемых за первый день работы, т.к. сроки поставки аппаратуры легко оценить (только не надо тут вспоминать про Почту России), а производительность тех же GPU в GH/s – первое, чем пользователи начинают меряться на соответствующих форумах. Расходы на обслуживание напрямую вытекают из спецификации оборудования и счетов за электричество. Оценка того, за какую сумму в будущем удастся продать железо, делается (хоть и приблизительно) изучая сайты вроде e-bay.
Основной риск кроется в динамике курса USD/BTC. Если курс растет – растет и прибыль от добываемых биткоинов, а также имеет смысл оставить оборудование в строю на больший срок. Если курс перестает расти или обваливается, добыча биткоинов становится менее привлекательной, а также для максимизации прибыли имеет смысл отключить оборудование и попытаться продать его раньше.
Изменение цены оборудования со временем ведет себя различным образом для разных типов устройств. Цена на GPU от AMD за год эксплуатации снижается весьма незначительно. В то время, как ситуация со специализированным оборудованием прямо противоположная, т.к. единственное его назначение – майнинг. Специализированные решения на основе FPGA или ASIC имеют гораздо более высокие риски, связанные с датой поставок оборудования – цена, за которую их готовы купить, и то, сколько на них можно заработать, напрямую зависит о даты их ввода в процесс майнинга. Управление этим риском – важная часть майнинга биткоинов.
Для начала необходимо оценить, поставки какого из конкурирующих решений начнутся раньше. Затем, надо оказаться как можно ближе к началу списка заказов на поставку. Иначе, даже если выбор в пользу того или иного решения был сделан верно, сложность добычи биткоинов успеет подскочить к тому моменту, как оборудование доберется до вас, и вы упустите все сливки от появления новой технологии. За полгода прибыль, которую можно получить на одном и том же оборудовании, падает в 15-20 раз.
Отключение оборудования
Рисунок 3. Дневная прибыль от добычи биткоинов и соответствующие расходы на электроэнергию. (источник данных)
Рисунок 3 показывает дневную прибыль на 1 GH/s, которую приносил майнинг биткоинов с 2010го года. Данный график комбинирует исторические данные о сложности майнинга и курсе USD/BTC. Резкий обвал в районе ноября 2012 года соответствует уменьшению нагзады за блок с 50 BTC до 25 BTC. Горизонтальные линии показывают расходы на электроэнергию на 1 GH/s за день для: CPU (Core i5), GPU (AMD 7970), FPGA (Bitforce SHA256) и 110nm ASIC (AvalonBatch 1). Когда прибыль на 1 GH/s опускается ниже этой линии, майнинг становится убыточным и соответствующее оборудование выключается.
Продолжение следует.
Автор: yurav