цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Майнинг криптовалют на FPGA

Майнинг криптовалют на FPGA

Автор: Mike(admin) от 30-10-2018, 21:25

Технологии и финансы всегда были тесно связаны, однако с ростом популярности криптовалют и майнинга, сама технология стала финансами.


Майнинг криптовалют на FPGA

FPGA и криптовалюты


Вместо того, чтобы правительство и центральный банк контролировали создание и поставку валюты, криптовалютный подход реализует децентрализацию, основанную на распределенном реестре (блокчейне), принадлежащих целому ряду третьих сторон. Кроме того, в отличие от централизованного подхода, новые валютные единицы не могут производиться по желанию; вместо этого существует ограничение на общее количество единиц валюты.


Блокчейн содержит все транзакции и распространяется и поддерживается третьими лицами, некоторые из которых используют вычислительные ресурсы для проверки и записи в распределенном реестре.


Блокчейн самым простым образом состоит из блоков данных, имеющих цифровую подпись к определенному значению, причем каждый блок связан с предыдущим блоком путем включения сигнатуры предыдущего блока в вычисление подписи текущего блока. Затем эти блоки данных соединяются вместе. Если кто-то попытается вернуться назад и манипулировать предыдущим блоком, ошибка в сигнатуре будет очевидной и будет простираться через создающиеся блоки, указывая на коррупцию. Когда расщепляется цепочка, эта поврежденная копия может сравниваться с большинством неповрежденных копий и в итоге не учитываться.


Генерация блоков, которые будут добавлены в реестр, представляет собой активность, которая часто называется майнингом. Хотя никакая новая единица валюты на самом деле не создается с помощью майнинга, если вам удастся добавить блок в реестр, вам будет выделено вознаграждение.


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


Майнинг криптовалют на FPGA

Поэтому хэш действует как цифровой отпечаток пальца, который можно воссоздать только путем ввода одних и тех же точных данных.


Конкретный хеш, используемый в транзакциях биткойнов – SHA256, который создает 32-байтовое результирующее значение хэш-функции. Теперь хэш-значения легко вычисляются с использованием как традиционных процессоров, так и программируемых вентильных матриц (FPGA), и это то, что делает биткойн-майнинг настолько сложным.


Чтобы быть принятым как действительный биткойн-блок, вычисленный хеш должен быть ниже или равен целевому значению, установленному сетью биткойнов. По сути, это означает, что вычисленный хеш должен содержать несколько ведущих нулей. По мере уменьшения целевого значения сложность нахождения хэша ниже целевого значения возрастает. Вычисление этого значения хеширования часто называют доказательством работы (proof of work).


Чтобы генерировать хеш-значение, которое ниже целевого значения, мы должны иметь возможность изменять входные данные для хэша. Однако во время майнинга мы вычисляем значение фиксированного количества транзакций с фиксированным содержимым. Поэтому, чтобы изменить значение хэша блока, нам нужно добавить еще один параметр, который мы можем изменить по желанию, чтобы достичь значения ниже целевого. Мы называем этот дополнительный параметр Nonce или однократно используемое число.


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


Приложения FPGA в майнинге криптовалют


В результате нужна возможность распараллеливать алгоритм и одновременно проверять значения семи разных потенциальных nonce’ов. Именно здесь на первый план выходит FPGA с ее программируемой логической архитектурой.


Для тех, кто не знаком с FPGA, в отличие от традиционных процессоров, чьи программы определяют последовательность инструкций, которые должны применяться к арифметическим логическим блокам, FPGA-схемы описывают соединение логических вентилей, доступных в самой FPGA. Эти логические вентили включают в себя такие элементы, как таблицы поиска, используемые для реализации комбинаторной логики, регистров и блоков ОЗУ для хранения, а также элементы DSP для вычисления.


Таким образом, ресурсы ПЛИС FPGA позволяют реализовать действительно параллельные вычислительные конвейеры – именно то, что требуется, если вы хотите, чтобы несколько алгоритмов хеширования выполнялись параллельно.


Конечно, сегодня технология майнинга перешла от добычи биткойнов на основе FPGA к добыче на основе ASIC (специализированных микросхем). Однако рост и популяризация альтернативных криптовалют и время, связанное с получением ASIC на рынке, означает, что ПЛИС FPGA все еще играют значительную роль на криптовалютной арене.


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


Ключом к реализации на основе FPGA является высокая производительность, так как функции, такие как хеширование, лучше всего реализуются с использованием аппаратного описания на основе языка в VHDL или Verilog. Хотя для первоначальной разработки и очистки каналов алгоритмов можно было бы использовать подход синтеза на высоком уровне, чтобы получить наилучшую производительность и, следовательно, наивысшую вероятность определения правильного значения nonce, потребуется ручное создание кода для использования конкретных архитектур FPGA.


Конечно, это не просто определение правильного хеша для блока, который имеет решающее значение для майнинга; способность получать данные на микросхеме при нужной скорости имеет решающее значение. Хотя многие решения для майнинга будут использовать GigE или PCIe для передачи данных, использование FPGA обеспечивает очень гибкий путь обновления, поскольку дизайн может быть обновлен в любое время. Это делает решения на основе FPGA очень интересными для приложений альтернативных криптовалют (альткоинов), которые не являются биткойнными криптоконвертами, которые имеют несколько иные алгоритмы хэширования или проверки работоспособности.


Финансовые приложения, такие как криптовалюты и другие приложения blockchain, могут значительно выиграть от возможности использовать FPGA для высокопроизводительных вычислений. Хотя время разработки может занять немного больше времени, выгоды, получаемые от подхода на основе FPGA, безусловно, стоят инвестиций.




© digitrode.ru


Теги: FPGA, ПЛИС, майнинг, биткоин, криптовалюты




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий