-
Notifications
You must be signed in to change notification settings - Fork 1
browser mining
- Категория: PPC
- Стоимость: 350
- Автор: Михаил Гнедашев, Александр Белёв
- Репозиторий
По оценкам экспертов количество сайтов, запускающих майнинг криптовалют на компьютере втайне от пользователя, возросло за последний месяц на 150%. При открытии такого сайта в фоновом режиме начинает исполняться программа, не меняющая внешний вид и поведение сайта, но своими вычислениями приносящая прибыль владельцу сайта.
Такие программы повышают нагрузку на процессор, из-за чего компьютер может медленно работать, сильно греться и потреблять больше электроэнергии. Обычно пользователь не получает за это ни копейки, однако некоторые сайты отдают пользователю часть прибыли: например, интерфейс сайта QCTF Coin позволяет явно запустить майнинг криптовалюты, за который пользователю перечисляется вознаграждение.
Несмотря на то, что практика добросовестного майнинга набирает популярность, большинство сайтов всё-таки никак не возмещают пользователю его дополнительные расходы. Будьте внимательны на незнакомых сайтах: понять, что ваш компьютер недобросовестно используют, можно по резко возросшей нагрузке на процессор.
После регистрации попадаем на страницу с кнопкой "Start mining!".
На странице выполняется код из обфусцированного miner.js. После деобфускации несложно понять, что код вычисляет первое простое число, большее аргумента. Делает он это перебором до корня.
Измерив примерную скорость майнинга, можно понять, что за время контеста получить нужное количество монет невозможно.
Нужно искать какой-то алгоритм факторизации больших чисел, который быстрее простого перебора. (Например, на сервере для проверки использовался next_prime из библиотеки gmpy2, реализующий вероятностный тест Миллера-Рабина).
P.S. Начать майнить с нескольких компьютеров на одной учётной записи - плохая идея. Сервер сделан так, что подобные способы наоборот замедляют майнинг. Сервер при выдаче нового задания перетирает в базе данных старое. Если 2 человека начинают майнить с 1 аккаунта, то последовательность действий будет такая:
- I получает задание. Оно записывается в БД.
- II получает новое задание. Таск I перетирается.
- I сдаёт ответ. Сервер сравнивает ответ I на задание II. Т.к. ответ неправильный, не добавляет монету и генерирует новое задание, перетирая задание II.
- II сдаёт ответ. Сценарий аналогичен пункту 3.
Таким образом 2 человека только мешают друг другу.