
Streams ist eine Weiterentwicklung von Masked-Authenticated-Messaging (MAM), es ist ein kryptografisches Framework zum Senden sicherer Nachrichten und Datenströme. Dies bietet eine universelle Methode für Geräte, um auf dem Tangle sicher und privat zu kommunizieren. Streams verfügen über eine integrierte Methode (über Kanäle) zum Senden von Nachrichten an IOTA-Nodes. Sie sind jedoch auch so flexibel, dass Sie sie erweitern können, um Nachrichten auf andere Weise zu senden, z. B. in HTTP-URLs. Das Protokoll wurde von Grund auf neu in der Programmiersprache Rust geschrieben, um viel mehr Flexibilität, Funktionalität und Benutzerfreundlichkeit zu ermöglichen, zudem wurden Verbesserungen aus dem Feedback von Partnern und der Community implementiert.
Bei IOTA Streams handelt es sich um ein multifunktionales Second Layer Datenübertragungsprotokoll, welches für verschiedene Arten der Datenübertragung (z.B. Streaming-Daten) verwendet werden kann, es ermöglicht Entwicklern Protokolle für ihre spezifischen Bedürfnisse zu erstellen. Beispielsweise ermöglicht es Sensoren und anderen Geräten, ganze Datenströme zu verschlüsseln und im IOTA-Tangle zu verankern. Die IOTA Technologie fügt diesen Nachrichtenströmen Integrität und Authentizität hinzu. Angesichts dieser Eigenschaften erfüllt IOTA Streams ein wichtiges Bedürfnis in Branchen, in denen Integrität, Datenschutz und Unveränderlichkeit aufeinander treffen.

Die wichtigsten Eigenschaften von IOTA Streams:
Kanalanwendung
Vereinfacht dargestellt funktionieren die Kanäle bei IOTA Streams wie ein Funkgerät, bei dem nur diejenigen mit der richtigen Frequenz zuhören können, übertragen auf das Protokoll bedeutet dies, dass nur autorisierte Personen mit der richtigen Kanal-ID (Adresse) Zugriff auf den gesamten Datenstrom bekommen und diesen lesen und rekonstruieren können.
Die Nutzung der Kanäle selbst lässt sich anhand von YouTube sehr gut erklären, wie bei YouTube wird auch bei IOTA Streams einen Kanal geöffnet, in dem der Eigentümer seine Daten veröffentlicht, dieser Datenkanal kann von anderen Nutzern abonniert werden, um alle Daten des Kanalbesitzers empfangen zu können.
Die Eigentumsverhältnisse der Daten wird mit Hilfe des IOTA Seed geregelt, mit ihm werden die Datenströme vom Autor signiert und veröffentlicht. Wenn der Seed-Inhaber anderen Nutzen den Seed weitergibt, können diese ebenfalls beliebigen Nachrichten auf diesem Kanal veröffentlichen. Aber auch hier gilt: Der Seed hält alle Datenschutz- und Eigentumsrechte, dieser darf niemals an unberechtigten Personen weitergegeben werden und sollte sicher aufbewahrt werden.
Die Kanalanwendung von IOTA Streams ermöglicht es zudem, dass Abonnenten auch nicht signierte Nachrichten veröffentlichen können. In der alten Version MAM v0 konnten nur Kanalbesitzer Nachrichten veröffentlichen.
Die Kanalanwendung kann auf unterschiedliche Weise eingesetzt werden:
- Der öffentliche Kanal: Nur unter Verwendung der Adresse kann jeder Nutzer die Nachrichten lesen. Dieser Modus ähnelt der Übertragung im Amateurfunkbereich. Diese Übertragungsmodus könnte für öffentliche Nachrichten verwendet werden und ein möglicher Anwendungsfall wäre ein Twitter-Klon, nur das dieser Klon die zusätzlichen Eigenschaften der Unveränderlichkeit und der Datenintegrität hätte.
- Der private Kanal kann für verschlüsselte Daten-Streams verwendet werden, die nicht für den öffentlichen Gebrauch bestimmt sind. Dieser Übertragungsmodus ähnelt eher einer verschlüsselten Funknachricht, nur der Seed-Inhaber (privat-key) kann diese Daten entschlüsseln. Der Privatmodus ist nützlich für eigene Geräte, die privat miteinander kommunizieren.
- Der eingeschränkte Kanal fügt dem privaten Modus einen Authentifizierungsschlüssel hinzu. Ein Nachrichtenversender könnte die Verwendung des Authentifizierungsschlüssel einstellen, so dass er ggf. dem Abonnenten den Zugriff entziehen könnte. Wenn ein Schlüsseländerungsereignis eintritt, muss der neue Authentifizierungsschlüssel an alle Parteien neu verteilt werden, die dem Stream folgen dürfen.
Kryptografisches Framework
Bei IOTA Streams geht es nicht nur um Kanäle. IOTA Streams ist ein Framework für kryptografische Anwendungen. Die Kanalfunktionalität ist nur ein Beispiel für eine Anwendung, die über IOTA-Streams implementiert werden kann. Für Zwecke, bei denen die Kanalanwendung nicht die ideale Lösung ist, kann mithilfe des IOTA Streams-Frameworks eine andere Anwendung erstellt werden.
Nachrichtentypen
In IOTA-Streams haben die Nachrichten eine Struktur, die auf einer Kopfzeile basiert. Das Nachrichtenformat ist nicht festgelegt, wenn ein Anwendungsfall unterschiedliche Nachrichtenstrukturen erfordert, werden nicht mehrere Kanäle für jede Struktur benötigt. Beispielsweise können unterschiedliche Nachrichtentypen für die Überwachung von Nachrichten und Warnmeldungen existieren. In IOTA-Streams können beide im gleichen Kanal veröffentlicht werden, die Anwendungen, die diese Nachrichten lesen, werden diese anhand ihrer spezifischen Kopfzeilen unterscheiden.
Zugriffskontrolle
In IOTA Streams können Sie auf jede Nachricht basierend auf ihrem Nachrichtentyp einen anderen kryptografischen Mechanismus anwenden und dies in einem einzigen Kanal. Das bedeutet, dass unterschiedliche Nachrichten je nach Typ unterschiedliche Zugriffssteuerungsregeln haben und verschiedene Parteien (Abonnenten) greifen nur auf die Informationen zu, auf die sie Zugriff haben.
Verknüpfen von Nachrichten
In IOTA-Streams können Nachrichten miteinander verknüpft werden. Dies bedeutet, dass eine Nachricht mit einer anderen Nachricht verknüpft werden kann, die zusätzliche Informationen zur aktuellen Nachricht enthält.
Nachrichtenabfolge
In IOTA-Streams können frühere Nachrichten in einem bestehenden Kanal geändert werden, während die ältere Nachricht im Tangle verbleibt, um die Integrität zu gewährleisten, können Anwendungen nur die neueste, gültige Nachricht direkt abrufen. Dies vereinfacht das Ersetzen und Ändern von Informationen wie z.B. Anmeldeinformationen. Digitale Identitäten, die mit Anmeldeinformationen verknüpften sind, können so auf einfache Weise aktualisiert werden ohne eine neue Identität erstellen zu müssen.
Sequenzierung
Dabei handelt es sich um eine neue Funktion, die zuvor bei MAM nicht aktiviert war, die aber dazu beiträgt, viele der Dienstprogramme von MAM abzudecken und gleichzeitig weitere Funktionen hinzuzufügen. Sequenzierung ist eine Methode zur Abbildung und Anordnung von Daten in einem Kanal. Es gibt zwei Kernversionen der Sequenzierung:
Single Branch (dt. Einzelner Zweig) – In einem Kanal mit einem einzigen Zweig werden alle Nachrichten von allen Publishern innerhalb des Kanals inkrementell an einen einzigen Zweig gesendet. Jedes Mal, wenn ein Publisher eine Nachricht in die Kette sendet, inkrementieren alle Teilnehmer den Sequenzstatus einheitlich. Dies ermöglicht eine einfache Übertragung von Daten zwischen direkt angeschlossenen Geräten (d.h. ein Abonnement von Sensorströmen), wobei alle geposteten Daten für alle beteiligten Parteien relevant sind. Bei der Suche nach der nächsten Nachricht kann für jeden öffentlichen Schlüssel unter Verwendung des nächsten erwarteten Sequenzstatus eine Nachrichtenkennung generiert werden. Wenn die Nachricht gefunden und verifiziert ist, wird dieser Sequenzstatus aktualisiert und nach der nächsten Nachricht gesucht. Wie das aussieht, können Sie im untenstehenden Diagramm sehen.

HINWEIS: Dies ist für ältere MAM-Designs relevant, da wir jetzt in einer Nachrichtenkette auf frühere Nachrichten verweisen können.
Multi-Branch – Bei komplexeren Kanalkonfigurationen wird ein Zweig als Bezugspunkt verwendet, der als Sequenzierungszweig bezeichnet wird, um einzelne Publisher auf einen oder mehrere Messaging-Zweige abzubilden, die sich im Kanal befinden. Auf diese Weise können Verleger/Abonnenten den Sequenzierungszweig als Referenz verwenden, um durch den/die Nachrichtenzweig/e zu navigieren und die Nachrichten eines bestimmten Verlegers leicht zu finden.

Schlussfolgerung
IOTA Streams eröffnet viele neue Anwendungsfelder, die Integrität der Daten zu sichern und die Zugriffsverwaltung kontrollieren zu können, hier sind nur einige Ideen, was Sie mit Streams erstellen können:
- Ein API-Service, der Daten verschlüsselt, wenn sie sich hinter einer Paywall befinden
- Ein Marketing-Abonnementdienst, der eine überprüfbare Aufzeichnung der Abonnements im Tangle führt
- Ein sicheres Messaging-Protokoll, das sich auf kryptografische Schlüssel stützt, um Benutzer zu identifizieren
Dies sind Voraussetzung für Over-The-Air-Updates (OTA), Datenmarktplätze, Fog Analytics, durchgängig überprüfbare Lieferketten, automatisierte Versicherungen, Banking, Messaging, Industrie 4.0. und vieles mehr.
Informationen zum Testen einiger Funktionen finden Sie im Streams- Repository auf dem IOTA Github. https://www.youtube.com/embed/zwtskxxLWOE?wmode=transparent&wmode=transparent https://www.youtube.com/embed/jDCMuML1QBo?wmode=transparent&wmode=transparent
Zuletzt bearbeitet am 18.09.2020
Quellen
https://blog.iota.org/introducing-masked-authenticated-messaging-e55c1822d50e
https://blog.iota.org/iota-streams-alpha-7e91ee326ac0
https://github.com/iotaledger/streams
https://blog.iota.org/iota-streams-update-september-2020-c3b8668e231e