20-летний немецкий программист Джейк описал свой эксперимент по майнингу на микроконтроллере ESP32.

ESP32 — серия недорогих микроконтроллеров, которые используются в некоторых гаджетах, например, в браслетах, умных лампах и одноплатных компьютерах. Майнинг на таких устройствах имеет мало смысла, но интересен как концептуальный эксперимент. Теоретически, можно представить, что в будущем количество умных устройств в мире кардинально увеличится. Возможно, кто-то уже сейчас продумывает технологию для создания гигантского многомиллиардого ботнета.

Джейк говорит, что на этот проект его вдохновила инициатива коллеги по майнингу на микроконтроллере ESP8266. Тот рассчитал вероятность успешного нахождения блока как 1 из 1e16. Блоки появляются каждые десять минут, так что это своеобразная лотерея, только шансы на выигрыш исчезающе малы.


Майнинг на микроконтроллере ESP8266

Так или иначе, но для проверки концепции Джейк взял уже найденный блок 56333 и вычислил такие начальные параметры, чтобы микроконтроллер «нашёл» этот блок через небольшое количество раундов вычисления двойного SHA256, как в реальной сети Bitcoin.

Код опубликован на Github. Он использует TLS-библиотеку mbed (см. руководство), осуществляет хеширование, проверяет каждый полученный хеш, затем останавливается в случае валидного результата или увеличивает значение nonce в противном случае — и продолжает считать. Когда программа останавливается на валидном хеше, то выдаёт результат в консоль:

Started mining...
Valid Block found!
Hash: 0000000000000000000740ba375bbafbb871e0e201ded9c260a8b6aa1537c3f0
With nonce: 423644052 | 0x19404b94
In 10000 rounds, 831.635000 ms
Hash Rate: 12.024506 kH/s


Как можно видеть, микроконтроллер майнит со скоростью 12 kH/s, то есть в десять раз быстрее, чем ESP8266. И это только одно ядро ESP32, пишет автор, так что потенциально скорость можно увеличить до 24 килохешей/с.

Впрочем, даже десятикратное ускорение не позволит обогатиться. Сам автор подсчитал, что ботнет даже из 100 млн устройств намайнит всего лишь $150 в год.

Если же майнить на единственном микроконтроллере, то он должен найти блок через 24 ZH / 24 kH/s = 1018 секунд = 277 777 млрд часов = 11 574 млрд дней = 31 млрд лет, что в два с половиной раза превышает возраст Вселенной.

Комментарии (11)


  1. linux_id
    20.03.2019 04:49

    Интересно с чем будет связан следующий криптобум?


    1. TerraHominem
      20.03.2019 09:58
      -1

      Я, к примеру, думаю, что чем больше крипта будет втягивать пользователей с реальной торговлей, тем сильнее она будет стабилизироваться и расти. Скорее всего бум с искусственным ростом, когда на крипте активно торговали на криптобиржах, уже прошел. И теперь, мало-по-малу она будет уже возводить фундамент реального средства торговли товарами и услугами. Скорее я верю в это.


  1. Trullis1
    20.03.2019 09:27

    С таким же успехом можно мейнить на калькуляторе) Очень понравилась статья)


    1. DrGluck07
      20.03.2019 10:43

      Ждём пост «исследователь попробовал майнить на калькуляторе Электроника Б3-34». Это я чтоб банальные 52 или 61 не упоминать.


      1. ixamilion
        20.03.2019 19:50

        боюсь этого парня никто не переплюнет


  1. eStellar
    20.03.2019 09:53

    Что-то мне подсказывает: не поднимется больше биткойн и все форки…
    Во всяком случае такого бума как в январе-феврале 2018 мы не увидим.
    Сергей Мавроди умер и после его смерти криптовалюта пошла на спад. Совпадение?


    1. IgorPie
      20.03.2019 10:22
      +1

      Пока за биткоин что-то можно купить, он будет существовать.


      1. teecat
        20.03.2019 10:55

        Биткойны будут держаться киберпреступностью. Им она выгодна


  1. Mykola_Von_Raybokobylko
    20.03.2019 10:16

    Интересный эксперимент. Таким способом можно вычислить разумные границы сего мероприятия.


  1. piligrim130
    20.03.2019 10:26

    Мой выключать умного дома заработал на электричество :))


  1. saloid
    21.03.2019 06:15

    Тот рассчитал вероятность успешного нахождения блока как 1 из 1e16.

    Кто это рассчитал, простите? Это точно не та величина, которая называется «текущая сложность» и ее можно нагуглить (а так же она не зависит железа). Еще, как я понял из статьи, ESP ничего не майнит, просто перебирает хеши по заранее заданной (вручную) строке с содержанием хеша предыдущего блока. Для майнинга ему не хватает синхронизации с сетью.