Под капотом Bitfury Clarke — как устроен наш новый чип для майнинга

    В конце сентября мы представили новый ASIC-чип, разработанный специально для SHA256-майнинга в сети биткоин. Сегодня расскажем, что у него внутри.


    Изображение: Bitfury Group

    Пара слов о биткоин-майнинге


    Цель майнинга — защита блокчейн-сети. Майнеры используют свое железо для решения сложных вычислительных задач, которые гарантируют целостность транзакций в сети и исключают атаки типа double spending. Параллельно майнинг выступает механизмом генерации криптовалюты, которую майнеры получают в качестве вознаграждения (сейчас — 12,5 биткоинов за один блок).

    Вычислительные задачи, о которых идет речь, связаны с подбором хеша, который совпадет с транзакциями в блоке. Искомое значение формируется на основании хеша предыдущего блока, случайного числа (называемого nonce) и суммы хешей транзакций за последние десять минут. При этом должны выполняться два условия: хеш обязан соответствовать заявленной сложности майнинга и иметь строго определенное количество нулевых битов в начале. Для оценки сложности используют разложение в модифицированный ряд Тейлора.

    Хеши в биткоин-блокчейне вычисляются по алгоритму SHA256. Он включает 64 итерации, во время которых происходит «перемешивание» битов транзакций в блоке с помощью операций сдвига и «сложения по модулю 2». Результат применения функции SHA256 считается необратимым, именно по этой причине целевой хеш находится путем грубого перебора. Подробнее о майнинге и майнинговых пулах, в которые объединяются участники блокчейн-сетей с целью ускорить решение блоков, мы писали в нашем блоге.

    Раньше для перебора значения nonce и подбора хеша использовали CPU и GPU, но со временем из-за постоянно увеличивающейся сложности майнинга (она меняется в зависимости от совокупной вычислительной мощности всех участников биткоин-сети) были спроектированы специализированные интегральные схемы ASIC.
    Мы в Bitfury тоже занимаемся разработкой таких решений. Всего мы создали пять поколений майнинговых чипов, а в сентябре представили шестое — речь об ASIC Clarke, заточенном специально под решение хешей SHA256.

    Как устроен Clarke


    Clarke изготовлен по 14-нм техпроцессу и реализован в форм-факторе FC-LGA 35L размером 6x6 мм. Второй корпус имеет более эффективную разводку цепей питания на плате. Чип за секунду решает 120 гигахешей, но дает возможность регулировать производительность в зависимости от того, что сейчас нужно майнеру — больший хешрейт или низкое энергопотребление. В частности, можно добиться коэффициента энергоэффективности в 55 мДж/гигахеш, так как для питания чипа достаточно 0,3 вольта. Структура Clarke выглядит так:


    Генератор тактовых сигналов. Он задает синхроимпульсы для работы чипа. Уровни напряжения: VSS = 0, VDD = 1.

    Последовательный управляющий интерфейс, соединенный с внешним контроллером последовательной шиной. Он похож на шину SPI с контактами передачи данных MOSI и MISO (служат для передачи данных от ведущего устройства к ведомому и наоборот), объединенными линией SDATA.

    Интерфейс отвечает за передачу команд. Вот некоторые из них: task write для записи нового задания, force task switch для принудительного переключения буфера, read nonces для чтения значения nonce и др. Все команды имеют один шаблон и содержат код, длину, поле данных, байт состояния чипа, данные из буфера nonce и контрольные суммы.


    Контрольные суммы представляют собой арифметическую сумму байтов, начиная с нулевого. Например, checksum команды 04 03 03 8c 18 00 будет равняться AE.

    Система управления nonce. Управляет процессом вычисления хеша с учетом маски. Маска «лежит» в буфере задач и используется для установки диапазона вычислений. Она определяет биты в nonce, которые останутся неизменными при поиске нового значения.

    Буферы задач. Нужны для вычисления хешей (их длина 20 двойных слов). Всего буферов два, что позволяет быстро переключаться между задачами. Пока первый буфер занят решением хеша, во второй пишутся данные для следующих вычислений.

    8154 ядра кольцевого хеша. Они используют двойной алгоритм SHA256.

    Буфер nonce. Это кольцевой буфер длиной в 12 двойных слов, куда пишутся решения хешей. Для примера мы привели процесс обмена данными в чипе, происходящий во время вычисления хешей (в спойлере ниже):

    Обмен данными в чипе (на англ)
    // Program clock generator to value 0x20 and prescaler=1 (disabled) Send: 0803038c1800
    Recv: f0b200b2
    // Set nonce mask to 0x00000000
    Send: 200300000000 Recv: f0230023
    // Force task switch Send: 020000
    Recv: f0020002
    // Send task
    Wi 0=CD3F992C 1=037F8197 2=A58E091A
    MS0 A=0CAD7CD1 B=CBE38FD9 C=D14DC164 D=F90EB10B E=819621CF F=358D45CD G=8C14CAE3 H=538EF887 MS3 A=5FF18CDD B=8CDA24A4 C=180266F9 D=0CAD7CD1 E=B0CA39FA F=DD30B962 G=36D2CBC6 H=819621CF NONCE=D5D0E8B9
    Send:_014fa607d67b614925737be76bce53a41ba12b3c8b659f27ef6726be6049f924522d2b3c8b659c78616c779 a13c81a609
    35067953386a9d52b3d0f24a3b0a607d67bb2a8cc5326708e0ef55b267700000000 Recv: 0fb200b2
    // Force task switch
    Send: 020000
    Recv: 0f020002
    // Read nonce buffer
    Send: 040000 Recv:_0f04000000000000000000000000000000000000000000000000000000003ffffffc7f7a42132ffffffc 1ffffffc0001ffbf8c
    FIFO[0] = aaaaaaaa
    FIFO[1] = aaaaaaaa
    FIFO[2] = aaaaaaaa
    FIFO[3] = aaaaaaaa
    FIFO[4] = aaaaaaaa
    FIFO[5] = aaaaaaaa
    FIFO[6] = aaaaaaaa
    FIFO[7] = 3ffffffc
    FIFO[8] = d5d0e8b9 < — nonce value
    FIFO[9] = 2ffffffc < — task switch marker
    FIFO[A] = 1ffffffc < — task switch marker
    FIFO[B] = aaab5515



    Где будет использоваться чип


    Сейчас мы устанавливаем новые устройства в собственные майнинговые серверы и мобильные дата-центры BlockBox. Мы также модифицируем биткоин-фермы в Канаде, Исландии, Грузии и Норвегии (запустили в начале года).

    Чипы Clarke будут доступны и как коммерческий продукт. В частности, они поставляются вместе с майнерами Bitfury Tardis, разработанными для крупных организаций. В Tardis влезают 5–8 плат, способные вычислять до 80 терахешей за секунду. Этот майнер можно будет модернизировать — в будущем установленные в нем ASIC Clarke получится заменить новыми чипами.



    Это — наш небольшой видеоролик, представляющий концепцию нового чипа:

    Bitfury Group
    0.00
    Cофтверные и хардверные решения на Blockchain
    Share post

    Comments 16

      +2
      По ценам сориентируете?
        –12
        Спасибо за интерес. Пожалуйста, напишите нам через форму на страничке Bitfury Clarke ASIC.
          0
          Мне по роду деятельности часто приходится заказывать начинку шкафов автоматики. Надпись «Уточняйте цену у менеджера» — 100% закрытие сайта. Я лучше переплачу. Принцип такой. Так что даже не стал форму заполнять.
          Тогда другой вопрос. Выпустите ли вы Arduino-совместимое устройство с 1, 2, 3+ чипами на борту? Что бы я мог воткнуться в свою Nucleo и разрабатывать софт?
            0
            100% закрытие сайта
            я даже открывать не стал
        +3
        Ролик великолепен. Отлично получилось.
          0
          Интересует ли вас ядро ethereum? Знаю у кого есть наработки.
            0
            Перепроверьте свою информацию — на данный момент не похоже чтобы Dagger-Hashimoto поддавался оптимизациям. Память и всё.
              0
              Я знаю, что там только память, фишка в том, как организовать доступ к памяти, пересортировать запросы к памяти, чтобы они лучше попадали в один банк/страницу, и т.д.
              Я в этом проекте делал только малую часть, а именно testbench verilog для тестирования хэшера на эмуляторе контроллера памяти. Ну вот как-то так:


            0

            При всем к вам уважение не стоит голосовно заявлять о невозможности апгрейда майнеров разработанных на стороне. Это не очень хорошо смотрится для публики, а по отношению к тем кто разрабатывал майнеры на BF8162 вообще звучит некорректно как с технической стороны так и со стороны будущего развития отношений.

              0

              Молча исправили, и то хорошо

              +1
              0,3В -напряжение питания? Что-то уж очень фантастически звучит, примерно такое падение напряжения на переходе Шоттки.
                –1
                Вскоре ваши чипы начнут использовать для ИИ… =))
                  0
                  Когда читаю такие статьи, сразу ловлю себя на непонимании. Если вы создали чипы, которые окупаются при майнинге криптовалюты на них, то наштампуйте их стопятьсот штук, намайньте баблишка и станьте миллиардерами. Зачем эти чипы продавать? Это как скатерть-самобранку обменять на вагон курятины.
                    0
                    А нет в мире бесконечного ничего. И выхлоп от майнинга тоже конечен. Так что если правильно прикинуть цену, то можно продать скатерть самобранку, в которой есть пол вагона курятины за вагон курятины и на эти деньги сделать ещё две такие же скатерти-самобранки. Причём сразу, не вытаскивая курятину по сотне килограмм за месяц.
                      –1
                      Потому, что майнинг живет за счет хайпа. Если не продавать чипы, не создавать хайп — то и зарабатывать будет не на чем. Это такой цикл перекладывания денег, который вытягивает деньги из одних карманов и перекладывает в другие. Представьте что вы изобрели свой биткоин, и сами сделали комп для его расчетов, и сидите и считаете, и всю зарплату вкладываете в наращивание мощности. Выгоды — нет. А вот если одним продавать биткоины, вторым продавать устройства, третьим еще что-то…
                      Собственно все деньги такие — пока они не ходят, они ценности не имеют. И станки для их печати — так-же.
                        0
                        Зачем продают яйцо, а не бройлера? Зачем продают станки для машиностроения? Зачем предоставляют хостинг?

                        КМК с чипами стратегия примерно такая. Объявляем новый чип, собираем предзаказы, делаем партию, продаем по предоплате. Собираем новые заказы и предоплаты. Покупатели первой волны включили свои майнеры, сложность сети выросла, доход упал — но мы уже продали первую и вторую волну.

                      Only users with full accounts can post comments. Log in, please.