06.11.2018
Под капотом 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 размером 6×6 мм. Второй корпус имеет более эффективную разводку цепей питания на плате. Чип за секунду решает 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 двойных слов, куда пишутся решения хешей. Для примера мы привели процесс обмена данными в чипе, происходящий во время вычисления хешей (в спойлере ниже):

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

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

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

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


Оригинал статьи

Под капотом 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 размером 6×6 мм. Второй корпус имеет более эффективную разводку цепей питания на плате. Чип за секунду решает 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 двойных слов, куда пишутся решения хешей. Для примера мы привели процесс обмена данными в чипе, происходящий во время вычисления хешей (в спойлере ниже):

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

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

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

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


Оригинал статьи