В отсутствие широких экспериментальных исследований в области майнинга мы можем обратиться к моделированию. Вкупе с другими формами анализа моделирование может сделать майнинг поддающимся систематизации и пониманию, несмотря на всю непрозрачность и капиталоемкость этой отрасли. Эксперимент по созданию майнингового предприятия — дорогое удовольствие. Значительно дешевле его смоделировать.
«Любой, кто пытается генерировать случайные числа детерминистическими методами, конечно, живет во грехе»,
— Джон фон Нейман.
В первой статье этой серии мы построили модель Монте-Карло для аппроксимации справедливой стоимости майнингового оборудования и чувствительности этой справедливой стоимости к различным рыночным параметрам. Мы показали, что рыночная цена хеш-мощности часто отклоняется от ее теоретической справедливой стоимости, отчасти из-за неликвидности инструмента.
Также в предыдущей статье мы смоделировали будущую ценовую траекторию с помощью модели диффузионных скачков и использовали линейную функцию, чтобы измерить реакцию глобальной хеш-мощности на изменения цены. Однако, как уже упоминалось в предыдущих статьях, динамика взаимосвязи между хешрейтом и ценой выходит за рамки простой линейной зависимости. Чтобы повысить репрезентативность представленной системы анализа, нужно выйти за рамки характеризации глобальной хеш-мощности как единицы и вместо этого смоделировать ее снизу вверх.
В этой статье мы классифицируем майнеров на несколько архетипов исходя из типа используемых машин, общих операционных затрат и предпочитаемой стратегии майнинга. Каждый архетип майнера имеет разную норму прибыли и факторы риска. Прибыльность майнинга изменяется со временем, и каждый майнер получает прибыль либо убыток, что, в свою очередь, определяет его решения об увеличении или сокращении количества работающих машин.
В этой системе изменение хешрейта сети является функцией не просто изменения цены, но совокупности общих результатов всех майнеров, обладающих различными экономическими профилями и профилями риска.
Кодовая база нашей модели полностью открыта и доступна здесь.
Вы можете изменить использованные нами допущения на собственные и посмотреть, как в результирующих условиях будет работать моделируемое майнинговое предприятие. В этой статье я подробно расскажу об этой модели, опишу на примерах ее использование и представлю некоторые интересные выводы, сделанные из анализа пяти различных сценариев.
Игра «Жизнь» Джона Конвея
Наш подход к моделированию хешрейта сети как суммы результатов, получаемых отдельными майнерами, основан на методе, называемом агентным моделированием. Этот метод вырос из ранней работы Джона фон Неймана о клеточных автоматах, опубликованной в 1950-х гг., и был популяризован Джоном Конвеем в игре «Жизнь».
(Источник: Teb’s Lab)Это пошаговое моделирование, происходящее на двумерной сетке ячеек. Задаются предопределенные детерминистические правила, регулирующие взаимодействия между соседними ячейками. С каждым ходом статус ячеек меняется в зависимости от статуса соседних с ней ячеек: клетки оживают, если у них есть ровно три живых соседа, остаются живыми, если у них есть два или три живых соседа, в противном случае клетки отмирают.
Игра «Жизнь» — это примитивный пример агентного моделирования, типа симуляции, в котором решения принимаются различными акторами, разделяющими некое глобальное состояние. В игре «Жизнь» агенты — это клетки, и принимаемые ими решения сводятся к тому, жить им или умереть. Результат зависит исключительно от начального состояния доски и меняться это состояние может контринтуитивно.
Сегодня агентное моделирование продвинулось далеко за пределы конвеевской игры и широко используется в экологии, экономике, финансовой математике (PDF, англ.) и анализе смарт-контрактов (PDF, англ.).
Прибыльность биткойн-майнинга зависит от цены биткойна, общего хешрейта сети и, в меньшей (пока) степени, от комиссий за транзакции. Второй компонент в этом расчете рентабельности, хешрейт сети, зависит от решений других майнеров о запуске или отключении своих машин. Как результат, прогнозы прибыльности майнинга должны быть итеративными, и эта задача хорошо подходит для агентного моделирования.
Если допустить, что цена биткойна совершенно не зависит от хешрейта сети, то ее можно смоделировать цену как автономное геометрическое броуновское движение. В аналогичном ключе мы моделируем ежедневные комиссии как независимые и логарифмически нормально распределенные исходя из постоянного интервала между блоками, равного 10 минутам.
Каждый день во временном ряду мы рассматриваем как один ход; в начале каждого хода цена актива, размер комиссии и общий хешрейт сети передаются агентам майнеров как входные данные для принятия решений.
Исходя из получаемой чистой прибыли, каждый майнер масштабирует свое предприятие, увеличивая или сокращая количество подключенных к сети машин, и публикует получаемый на выходе хешрейт. Сумма хешрейтов всех майнеров в свою очередь записывается как новое значение общего хешрейта сети:
Майнеры как агенты
Моделирование майнеров как агентов является, по сути, параметризацией входных параметров в экономике майнинга. В «Алхимии хеш-мощности» мы ввели понятие рефлексивности хеш-мощности: каждое майнинговое предприятие сильно зависит как от физических условий, так и от субъективного восприятия рынка его оператором.
Все факторы принятия решений охватить невозможно, но в качестве основных детерминант поведения майнеров мы выделяем тип используемых машин, базис себестоимости и применяемую майнером стратегию. Мы формализуем эти факторы в виде параметров классов майнеров.
Тип машин:
В реальном мире майнинговое предприятие обычно оперирует машинами различных типов. Для простоты мы приписали каждому архетипу майнера использование одного типа машин в течение всего моделируемого периода. В этой версии моделирования мы поддерживаем следующую вселенную машин:
Базис себестоимости:
Каждому майнеру на присваивается средняя общая стоимость электроэнергии на весь срок моделирования. Энергопотребление майнера рассчитывается так:
Количество машин * Энергопотребление машины этого типа.
Каждый день работы майнер несет операционные расходы, равные:
Энергопотребление / 1000 * Общую стоимость электроэнергии * 24.
Также при инициализации модели мы задаем распределение тарифов на электроэнергию, которое определяет количество машин для каждого архетипа майнера.
В этой версии по умолчанию мы предоставляем следующую стратификацию. Этот параметр можно настроить по своему усмотрению перед запуском моделирования.
(По нашей оценке)Стратегия:
При инициализации модели каждому майнеру приписывается стратегия. На практике майнеры могут использовать широкий спектр стратегий и переключаться между ними всякий раз, когда меняется их восприятие рыночных условий.
Для простоты в нашей модели каждый майнер следует одной стратегии на протяжении всего моделируемого периода. Мы представили эти две стратегии и оценили их прибыльность в различных рыночных циклах в предыдущей статье.
Лонг по BTC означает, что майнер продает ровно столько биткойнов, чтобы покрыть операционные расходы, а остальную часть своего дохода держит в BTC.
Ежедневная продажа означает, что майнер сразу же обменивает все заработанные биткойны на доллары.
Стратегией майнера определяется его позиции по BTC и доллару. При расчете прибыли для майнеров, использующих стратегию лонга по BTC, необходимо учитывать также нереализованную прибыль: позиция по BTC * цена BTC.
Основываясь на комбинациях этих трех переменных, мы разделили вселенную майнеров по признаку 11 типов машин, 7 диапазонов стоимости электроэнергии и 2 стратегий, что в общей сложности дало 154 архетипа.
При инициализации модели мы задаем стратификацию машин на рынке и цены на основе данных от Hashrate Index, General Mining Research и нескольких других источников. Эти параметры можно настраивать по своему усмотрению перед запуском моделирования.
(Данные о ценах: Hashrate Index, General Mining Research. Процентная доля в хешрейте: наша оценка на основе данных из различных источников)Распределение тарифов на электроэнергию и стратификация машин представляют собой входные данные для расчета количества машин каждого майнера. Это количество единиц оборудования, находящихся под управлением майнера. Важно заметить, что на практике эти два распределения не являются статистически независимыми, как в нашей модели, — например, старые машины, такие как S9s, с большой вероятностью будут использоваться майнерами с доступом к более дешевой электроэнергии.
В начале моделирования общий показатель Количество машин * Хешрейт для всех майнеров масштабируется до примерно равного текущему уровню хешрейта сети по данным Coin Metrics.
Чтобы отслеживать прибыльность майнера, мы добавили в класс майнеров простой калькулятор баланса счета и исторической прибыли.
Баланс счета:
- позиция по USD;
- позиция по BTC;
- позиция по хеш-мощности.
Начальная позиция по хеш-мощности — это количество машин * хешрейт машин соответствующего типа.
Рентабельность:
- Profit_Daily — прибыль за сутки;
- Profit_Last_30_Day — прибыль за последние 30 дней;
- Profit_All — прибыль суммарная.
Рентабельность определяет поведение майнера по мере развития рыночной ситуации. Мы рассмотрим этот механизм в следующем разделе. Profit_30_Days и Profit_All — показывают текущую прибыль на соответствующий момент времени.
Ниже приведены все элементы данных для класса майнеров. Код для класса майнеров находится в файле agents.py.
Функция полезности майнера
При высокой прогнозируемой доходности майнеры могут захотеть расширить свой парк оборудования, а в ожидании отрицательной доходности они могут отключать часть машин, чтобы сократить операционные расходы. Нам нужно точно определить, как майнеры масштабируют свою хеш-мощность, увеличивая или сокращая количество активных машин.
На самом деле существует ряд экзогенных факторов, влияющих на решение майнера о том, чтобы докупить или, наоборот, отключить машины, — такие как доступность внешнего финансирования и качество сна. Для простоты в нашей модели за основной фактор принятия решений мы принимаем историческую рентабельность майнера.
Процесс принятия решений принимает на вход значение Profit_Last_30_Day и рассчитывает результат, на основе которого производится действие. Процесс вычисления результата выглядит следующим образом:
убыток (Profit_Last_30_Day) делится на стоимость электроэнергии, расходуемой на единицу оборудования.
2a) Пороговое значение: Profit_Last_30_Day > суммы всех затрат.
2b) Увеличение парка машин рассчитывается так:
(Profit_Last_30_Day — сумма всех затрат) / Стоимость ед. оборудования * Фактор роста ед. оборудования.
Начальная цена машины * (Текущая цена BTC * Начальный хешрейт сети) / (Начальная цена BTC * Текущий хешрейт сети).
Цены на майнинговое оборудование адаптивны и реагируют на изменения цены актива и хешрейта сети. Каждый тип машин также имеет свой темп роста, отражающий относительную скорость роста его цены. Машины старших поколений имеют меньшую скорость роста из-за нежелания производителей продолжать их производство. Мы учитываем также задержку, возникающую при добавлении новых машин. На изготовление и доставку заказа покупателю часто требуется некоторое время.
В нашей модели это означает, что после увеличения x — значения, запускающего корректировку количества оборудования, — машины не будут добавлены на счет майнера немедленно.
Мы определили список констант, определяющих задержку для каждого типа машин. Задержка реакции представляет собой статическое приближение и должна периодически обновляться, чтобы отражать изменения в пропускной способности цепочки поставок.
(По нашей оценке)В результате триггерная функция выдает количество машин, которое майнер покупает или продает.
Пользователи могут заменить фактор роста и время и время реакции по умолчанию на любые константы по своему усмотрению. Код для настройки можно найти в файле Simulator.py.
Настройка модели
Как и в первой части, мы используем стохастический процесс для проецирования цены биткойна и ежедневного дохода от комиссий на весь моделируемый период. Базовые параметры модели геометрического броуновского движения для цены и логнормального распределения для комиссий получены из исторических данных о цене (источник: Coin Metrics).
Связывая все вышесказанное вместе, мы используем для иллюстрации процесса следующий граф:
Анализ сценариев
Чтобы протестировать модель, мы смоделировали различные рыночные условия и проанализировали результирующее поведение майнеров. Мы оценивали рентабельность майнера с начальным капиталом на покупку оборудования в $1 млн и лишенного возможности в дальнейшем масштабировать свое предприятие. Моделирование проводилось на период 100 дней и были взяты средние результаты 25 испытаний.
Рентабельность измеряли при нескольких различных затратах на электроэнергию в нашей вселенной типов машин. Основные моменты показаны ниже.
Используемые параметры ни в коем случае не являются окончательными, и пользователи могут свободно провести собственный анализ, основываясь на любых других допущениях. Код для анализа сценариев находится в файле main.py.
Сценарий 1: бычий рынок
Наш первый тест имитирует условия бычьего рынка. С учетом продолжающегося на момент написания статьи бычьего рынка, мы просто подогнали модель геометрического броуновского движения к историческим данным. По этим условиям цена BTC постепенно увеличивается до более чем $100 тыс., претерпевая на своем пути несколько коррекций.
Смоделированная цена BTC (25 прогонов, исторические параметры)Хешрейт сети неуклонно растет, претерпевая некоторые незначительные коррекции, возникающие с некоторым запаздыванием после эпизодов снижения цены.
Смоделированный хешрейт сети (25 прогонов, исторические параметры)В этих условиях намного выгоднее просто удерживать позицию по биткойну, вместо того чтобы ежедневно продавать добываемые BTC, даже при высоком тарифе на электроэнергию. Это имеет смысл, учитывая быстрый рост цены BTC.
Стоимость позиции Antminer S9 в зависимости от стратегии (25 прогонов, исторические параметры, 7 ¢/кВт-ч)При электроэнергии по 4 ¢/кВт-ч только майнеры, использующие S9s и сохраняющие позицию в BTC, выходят на безубыточность в течение 100-дневного периода моделирования.
Смоделированная стоимость позиции (25 прогонов, исторические параметры, стратегия лонга по BTC, 4 ¢/кВт-ч)Сценарий 2: волатильный рынок
Для второго сценария мы моделируем неустойчивый рынок, увеличивая показатель волатильности в исторически подходящей модели геометрического броуновского движения на 25% и устанавливая значение дрифта на ноль. Цена сначала растет до почти $80 тыс., а затем резко падает до чуть более $40 тыс.
Смоделированная цена BTC (25 прогонов, параметры волатильного рынка)Хешрейт сначала быстро растет, но затем выходит на плато, реагируя на падение цены. Из-за задержки ответа хешрейт продолжает расти, хоть и гораздо медленнее.
Смоделированный хешрейт сети (25 прогонов, параметры волатильного рынка)Поначалу обе стратегии работают сопоставимо: стратегия лонга по BTC лишь немного опережает в прибыльности ежедневную продажу. Когда цена биткойна падает, майнеры с экспозицией по BTC наказываются за дополнительный риск, который они на себя взяли, снижением рыночной стоимости их активов.
Стоимости позиции с Antminer S9 в зависимости от стратегии (25 прогонов, параметры волатильного рынка, 7¢/кВт-ч)Сценарий 3: медвежий рынок
В третьей симуляции мы моделируем медвежий рынок, подгоняя модель геометрического броуновского движения к историческим данным и меняя знак показателя дрифта. Цена резко падает от текущего уровня и практически достигает $30 тыс.
Смоделированная цена BTC (25 прогонов, параметры медвежьего рынка)Реагируя на падение цены, хешрейт также вступает в коррекцию после первоначального роста. Это переход от фазы избавления от запасов [оборудования] к фазе вытряхивания с рынка, пользуясь терминологией из «Алхимии хеш-мощности».
Смоделированный хешрейт сети (25 прогонов, параметры медвежьего рынка)На медвежьем рынке страдают все, но больше всего он затрагивает лонги по биткойну: при такой стратегии и электроэнергии по 4 ¢/кВт-ч даже самые эффективные майнеры в течение моделируемого периода не могут окупить и половины своих первоначальных инвестиций.
Смоделированная стоимость позиции (25 прогонов, параметры медвежьего рынка, стратегия лонга по BTC, 4 ¢/кВт-ч)Стратегия ежедневной продажи показывает намного лучший результат, но, поскольку доходы майнеров по-прежнему зависят от цены BTC, ее прибыльность тоже оказывается существенно ниже, чем на бычьем рынке.
Смоделированная стоимость позиции (25 прогонов, параметры медвежьего рынка, стратегия ежедневной продажи, 4 ¢/кВт-ч)Сценарий 4: с какими машинами выгоднее работать на бычьем рынке — старыми или новыми?
В четвертом сценарии мы использовали те же исторические параметры, что и в первом, чтобы сравнить эффективность майнеров, работающих со старым и с новым оборудованием при конкурентоспособной стоимости электроэнергии.
На этот раз цена BTC взлетает до $140 тыс., ускоряясь в процессе. Хешрейт также быстро растет.
Сценарий 1 Сценарий 4С такой интенсивностью бычьего рынка даже майнерам со стратегией ежедневной продажи удается выйти в безубыток в течение 100-дневного моделируемого периода, при условии, что они работают на S9s. Рентабельность майнеров с S19 оказывается значительно ниже, но все же стратегия ежедневной продажи позволяет им вернуть большую часть первоначальных инвестиций.
Смоделированная стоимость позиций (25 прогонов, исторические параметры, стратегия ежедневной продажи, 3 ¢/кВт-ч)Майнеры, удерживающие лонг по BTC, в этих условиях невероятно прибыльны. Майнеры с S9s за моделируемый период практически удвоили первоначальные инвестиции. Майнерам с S19 также удалось получить значительную прибыль.
Смоделированная стоимость позиций (25 прогонов, исторические параметры, стратегия лонга по BTC, 3 ¢/кВт-ч)Сценарий 5: на медвежьем рынке насколько важную роль играет снижение операционных расходов?
В пятой и последней симуляции мы снова моделировали условия медвежьего рынка, на этот раз чтобы проанализировать роль затрат на электроэнергию в общей рентабельности. Для этого мы оценили эффективность майнеров, работающих с S9 и S19 в условиях медвежьего рынка при стоимости электроэнергии в 3, 4 и 5 центов за кВт-ч.
Рыночная ситуация аналогична сценарию #3: цена BTC резко падает, а хешрейт претерпевает неглубокую, но продолжительную коррекцию.
Сценарий 3 Сценарий 5Для майнеров с S9 стоимость электроэнергии имеет существенное значение. Хотя при любом уровне затрат на электроэнергию эффективность майнинга в этих условиях оставляет желать лучшего, майнеры, удерживающие лонг по BTC, с электричеством по 3 ¢/кВт-ч отбивают почти 40% от первоначальных инвестиций, в то время как их коллеги с электричеством по 5 ¢/кВт-ч возвращают лишь чуть менее 32%.
Смоделированная стоимость позиций (25 прогонов, параметры медвежьего рынка, Antminer S9, стратегия лонга по BTC)Такая чувствительность к стоимости электроэнергии объясняет, почему майнеры с S9 обычно работают в периферийных регионах с более дешевым электричеством.
Для майнеров с S19 эта разница не настолько выражена. Конечно, стоимость электроэнергии в любом случае влияет на прибыльность майнинга, однако при использовании S19 это влияние намного менее выражено.
Смоделированная стоимость позиций (25 прогонов, параметры медвежьего рынка, Antminer S19, стратегия лонга по BTC)Заключение
Многомерность — враг статистики, и моделирование биткойн-майнинга — задача непростая. Даже наша модель, при всех ее упрощающих допущениях, в результате оказалась значительно более сложной, чем мы предполагали изначально. Как и со всеми инструментами на основе Монте-Карло, ее прогностические способности принципиально ограничены предубеждениями пользователя, которые, через первоначальные вводные условия, отражаются на любых получаемых результатах.
Наша модель явным образом предполагает, что связь между ценой и хешрейтом является однонаправленной. Неявным образом она предполагает, отсутствие зависимости между, вероятно, коррелирующими между собой распределением моделей оборудования и затрат на электроэнергию. В сущности, все модели неправильны, но некоторые из них полезны.
Эта модель, по нашему мнению, полезна и должна найти свой путь в инструментарий разумного биткойн-майнера.
Подписывайтесь на BitNovosti в Telegram!
Делитесь вашим мнением об этой статье в комментариях ниже.
Источник