Проекти

  •                
  • Апаратний акселератор криптовалюти IOTA

    Автор  Євген Короткий 

    IOTA - це криптовалюта для мікроплатежів та захищеного обміну повідомленнями у пристроях Інтернету Речей. Ми розробили апаратний акселератор на FPGA, що дозволяє пришвидшити відправлення IOTA транзакцій у 1000 разів порівняно з програмною реалізацією

    Криптовалюта IOTA

    Криптовалюта IOTA дозволяє створити захищене з’єднання між пристроями Інтернету Речей для обміну даними і мікроплатежів з нульовою комісією.

    В основі технології лежить не класичний блокчейн, а Directed Acyclic Graph (DAG), який в IOTA називається Tangle. Додавання нових транзакцій можливе одразу до кількох вершин графа за рахунок чого збільшується пропускна здатність мережі. Пристрої IOTA самі підтримують роботу системи перевіряючи транзакції один одного. Для здійснення кожної транзакції необхідно перевірити і підтвердити дві інших транзакції. Це дозволяє отримати хорошу масштабованість і нульову комісію, оскільки виключає необхідність сторонніх майнерів.

    IOTA знаходиться зараз на стадії перевірки ідеї і має дуже цікаві перспективи. Багато чого ще не реалізовано і відкриваються широкі можливості для досліджень.

    Проблема

    В IOTA використовується нова геш функція Curl, нібито стійка до квантових обчислень. В IOTA Curl використовується для виконання операції Proof-of-Work (POW). Під час POW для додавання нової транзакції до мережі IOTA необхідно ітеративно обчислювати геш функцію Curl від цієї транзакції змінюючи певне поле транзакції, доки результат обчислень не задовольнить потрібну умову. Проблема полягала у тому, що раніше геш функція Curl та операція POW не були реалізовані апаратно і тому відправлення нових транзакцій криптовалюти IOTA на малопотужних пристроях Інтернету Речей займало десятки хвилин.

    Запропонований проект апаратного акселератора криптовалюти IOTA

    Наша команда створила апаратний акселератор на FPGA для розрахунку геш-функції Curl та операції POW криптовалюти IOTA. Це дозволило пришвидшити відправлення IOTA транзакцій з embedded пристроїв в середньому в 1000 разів! Рішення може бути використане в пристроях Інтернету Речей для побудови захищених каналів зв’язку з можливістю мікроплатежів без комісій.

    Розроблений FPGA акселератор інтегровано в систему-на-кристалі на основі ARM процеcора вбудованого в чіп Cyclone V. У якості мови опису використали Verilog. Також розробили Linux драйвер для доступу до акселератору з користувацьких програм та інтегрували виклики драйверу в IOTA бібліотеку на мові Go. На довершення створили тестбенч для верифікації акселератора на мові System Verilog з використанням бібліотеки класів UVM.

    Структура розробленої системи:

    Створений апаратний акселератор має параметризовану мікроархітектуру, де кількість обчислювальних модулів задається параметром мови Verilog. Апаратурні витрати одного обчислювального модуля 1 125 ALMs, 2 177 flip-flops. Гешрейт розрахунку геш функції Curl для одного обчислювального модуля складає 1 204 819 гешів/сек на частоті 100 МГц.

    Реалізували працюючий прототип для відлагоджувальної плати DE10-nano на 11 обчислювачів. Отримали гешрейт 13 253 012 гешів/сек. Апаратурні витрати склали порядку 30% ресурсів обраної FPGA. Цілком реально для цього чіпа збільшити гешрейт до 20-25 Мгеш/сек.

    А ось структура UVM тестбенчу для верифікації розробленої системи:

    Вихідний код проекту

    Детальний опис проекту знаходиться тут

    Вихідний код проекту зберігається на GitHub

    Для зручності створили образ sd карти для плати De10-nano з усім необхідним для використання акселератора. Тому якщо маєте таку плату, можете одразу потестити рішення.

    Підсумок

    Ось такий цікавий проект вийшов! Над проектом працювали Євген Короткий та Сергій Сачов. За результатами плануємо зробити ще кілька наукових статей. До речі, з цим проектом ми перемогли в Європейськму етапі міжнародного конкурсу InnovateFPGA Завоювали Бронзу, отримали приз 800$, а також налагоджувальні плати DE10-Lite та DE10-Nano. Всі охочі можуть безкоштовно користуватися цими платами в нашій лабі.



    comments powered by Disqus

    Партнери