ОПРЕДЕЛЕНИЯ И СОКРАЩЕНИЯ 2
ВВЕДЕНИЕ 4
ОБЗОР ЛИТЕРАТУРЫ 6
ПРОБЛЕМЫ И ЗАДАЧИ 13
РЕАЛИЗАЦИЯ 22
Функциональные требования 22
Нефункциональные требования 23
Выбор технологий 23
ЗАКЛЮЧЕНИЕ 41
ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ 43
Последние несколько лет все более и более популярными становятся криптовалюты, основанные на технология блокчейн. В основном они известны как средство для платежей, однако реальная область их применения много шире. Существует большое количество децентрализованных приложений, для использования которых необходимо владеть какой-то криптовалютой.
Существует несколько вариантов добычи криптовалюты. Самый популярный для рядового пользователя - обменять криптовалюту на специальном обменнике. В данный момент на таких обменниках обмениваются все криптовалюты. Однако данный способ подразумевает, что у вас уже есть какая-то валюта, например Bitcoin или Ethereum.
Если у пользователя нет никакой криптовалюты, он может заняться майнингом с помощью своего оборудования. Майнинг - процесс подтверждения транзакций в блокчейне. Во время него участники сети решают криптографические задачи. Первый решивший получает награду в криптовалюте. Изначально предполагалось, что пользователи будут использовать мощности процессоров и видеокарт своих компьютеров для майнинга. Однако с ростом популярности криптовалют, росла и их стоимость. Сейчас огромное количество людей занимаются майнингом, многие из них закупают специализированное оборудование. Для них майнинг стал бизнесом, от которого они хотят получать максимальную отдачу.
В результате большого количества майнеров, вероятность того пользователь добудет сколько-то монет с помощью своего персонального компьютера стала мизерной. В виде решения этой проблемы появились майнинг-пулы. Суть их в том, что несколько майнеров объединяют усилия при
майнинге и делят награду пропорционально мощности своего оборудования. В свою очередь пул берет комиссию со всей криптовалюты, добытой его пользователями.
Чтобы привлечь пользователей, майнинг-пулы обещают увеличить их доходы. Прибыльность майнинга зависит от большого количество параметров, поэтому в разное время прибыльно добывать разные монеты. Предлагаемый мной алгоритм выбора наиболее прибыльной монеты поможет майнинг-пулам максимизировать доходность.
В результате данного исследования был разработан и реализован алгоритм вычисления прибыльности майнинга оптимизированный для новой задачи - вычисления прибыльности майнинга крупного майнера, мощность которого может серьезно изменить поведение сети.
Данный сервис был опробован одним из майнинг-пулов, результаты его работы наглядно видны на графиках ниже. Проблема данного исследования на графике выглядела так:
На нем видно, что сложность сети могла измениться в два раза всего за несколько минут. Происходило это потому что пул подключался к сети, блоки начинали майниться намного быстрее, сложность сети росла. Как результат, для того чтобы смайнить блок нужно в среднем подобрать больше хэшей, в результате падает прибыльность монеты и клиентов майнинг-пула переключает обратно на какую-то другую монету.
Вот как стала выглядеть аналогичная ситуация после перехода на новый алгоритм вычисления прибыльности монеты.
Сложность сети перестала колебаться с такой частотой, что было до этого - теперь до момента когда монета перестанет быть прибыльной, проходило несколько часов майнинга с оптимальной прибыльностью.
Таким образом, можно с уверенностью сказать, что данный алгоритм работает и действительно вычисляет прибыльность майнинга криптовалют более точно, чем если бы мы использовали традиционный вариант, особенно в случаях с очень мощным оборудованием.