Crypto Core FPGA (Field Programmable Gate Array)

Die IOTA-Kernfunktionen wie Adressgenerierung, Signierung und Proof of Work (PoW) benötigen viel Rechenleistung, was es praktisch unmöglich macht, dass diese Funktionen von den Ressourcen armen kleinen *embedded Systemen im IoT ausgeführt werden können. Zudem ist die derzeitige Hardware auf binäre Datenverarbeitung ausgelegt (ändert sich hoffentlich bald, Stichwort: JINN) und daher nicht völlig kompatibel zu dem ternären Softwaredesign von IOTA. Es wird noch eine lange Zeit binäre Systeme geben, daher wird eine effiziente Lösung gesucht um das ternäre IOTA Protokoll mit binären Asics ausführen zu können.

Ein Asic (application-specific integrated circuit) ist eine anwendungsspezifische integrierte Schaltung auch Kunden Chip genannt. Asics unterscheiden sich von anderen Mikrochips, da sie in der Regel nach Kundenanforderung und speziell für ein embedded System gefertigt werden. Bei der Herstellung eines Kunden Asic, entstehen durch die Kundenspezifischen Anforderungen zunächst hohe Einmalkosten, dafür sind die Herstellungskosten pro Stück in der Massenproduktion geringer. Die Funktion eines Kunden ASICs wird bei der Herstellung fest programmiert und kann im nachhinein nicht mehr ohne weiteres verändert werden. 

*Ein embedded system ist ein binärwertiges digitales System (auch Computersystem genannt), das in ein umgebendes technisches System verbaut ist und mit diesem in Wechselwirkung steht. Dabei übernimmt der Rechner meist Überwachungs-, Steuerungs- oder Regelungsfunktionen, ist oft aber auch für eine Form der Daten- bzw. Signalverarbeitung zuständig.

 

Das Projekt „Crypto Core FPGA“, welches auch aus dem IOTA Ecosystem Fonds mit 59.100$ unterstützt wird möchte das Problem der ternären Ansteuerung von binären Asics beseitigen. Federführend bei diesem Projekt ist der Hard- und Softwarespezialist Thomas Pototschnig (in der Community als MicroEngineer bekannt). Er hat bereits den PoW Hardware-Beschleuniger für den Raspberry‑Pi entwickelt und dokumentiert, zudem ist er Mitbegründer des PoWaaS-Startups powsrv.io (PoW-as-a-Service).

Ziel seines Projekts ist es, mehrere Module zu entwickeln, um bestehende oder neue Embedded-Systeme (mit Asics) in die Lage zu versetzen, IOTA-Kernfunktionen auf eine schnelle, sichere und energieeffiziente Weise auszuführen. Weil der gleiche Code später als ASIC bereitgestellt werden kann, werden bei der Entwicklung von Asics, dessen Funktionen zuvor in Testsystemen geprüft, dass sind zumeist FPGAs.

Das aktuelle Vorhaben teilt sich auf drei Module auf, das erste ist ein IOTA Core FPGA-Modul, das die meisten IOTA-Kernfunktionen mit Hardwarebeschleunigung bereitstellt. Es bietet eine High-Level-API, die einfach zu bedienen ist, während rechenintensive Low-Level-Berechnungen in eine spezielle Logik ausgelagert werden, was einen erheblichen Geschwindigkeitsvorteil gegenüber einer reinen Softwarelösung bietet (perfekt für Embedded-Anwendungen). Darüber hinaus implementiert das FPGA-Modul mehrere Sicherheitsmechanismen, die es Angreifern sehr schwer machen, sich unbefugt Zugang zu den auf dem Modul gespeicherten Seeds zu verschaffen.

 

Das zweite Modul wird ein System-on-Module (SoM) sein, dass dieses FPGA-Modul verwendet. Dieser SoM wird über genügend Ressourcen verfügen, um ihn für eine Vielzahl von Anwendungen zu nutzen. Es könnte sogar Linux laufen. Das SoM könnte als Integrationsbeispiel für das FPGA-Modul angesehen werden. Es kann unverändert für eigene Anwendungen verwendet werden, aber auch andere Mikrocontroller könnten das FPGA-Modul problemlos nutzen.

 

Das dritte Modul ist ein Application Board mit dem SoM, dass ein IOTA-Sensor-Gateway für einfache und kostengünstige Sensoren sein wird.

 

Fazit: Dies ist ein sehr wichtiger Baustein und wird den Weg für reale IoT-IOTA-Anwendungen ebnen, die vorher (im praktischen Sinne) nicht umsetzbar waren.

Für Nerds empfiehlt sich der Blog von Thomas Pototschnig (Englisch), dort wird auch der Fortschritt dokumentiert.