einfachIOTA

April 9, 2021 ~ 2 min read

Was ist die "Dust-Protection"?


Da IOTA "feeless", also gebührenfrei ist, und man Mikrotransaktionen senden kann also zum Beipsiel 1 IOTA, können Angreifer damit das Netzwerk sehr einfach "zuspammen". Dies bezeichnen wir als "Dust", also "Staub". Um dies zu vermeiden, erlauben wir nur Mikrotransaktionen unter 1Mi IOTA-Token an eine andere Adresse, wenn Sie bereits mit mindestens 1Mi aufgeladen wurde, wobei das auch ein spezieller "Dust allowance output" sein muss.

Wie funktioniert das?

Die Dust Protection ist fest im Kernprotokoll verankert.

Jede Node muss den Kontostand jeder einzelnen adresse (abgesehen von null wert adressen) - kennen. Ansonsten könnte man ja mehr Geld ausgeben als man hat, der klassische double spent.

Diesen Umstand könnte man jedoch als Angriffsvektor nutzen, in dem man einfach ganz viele Adressen mit jeweils 1i value "auflädt", denn dann müssten alle diese Adressen vom gesamten Netzwerk gespeichert werden, und so würde der Speicherbedarf den jede Node grundsätzlich braucht (selbst ohne die aktuelle Historie aller Transaktionen zu sichern) bereits ins Unermessliche wachsen. Um das Ganze noch einmal zu verdeutlichen, mit 1Mi (Gegenwert zum Zeitpunkt dieses Artikels in etwa 1,40$) - könnte man bereits eine Million adressen mit jeweils einem iota "Dusten", und diese müssten für immer alle von allen Nodes gesichert werden. Dies wird deutlich teuerer für einen Angreifer - und somit faktisch nicht "bezahlbar" mit der Einführung einer "minimum balance", also einem minimalem Guthaben das jede Adresse haben muss nach Chrysalis. Genau genommen liegt dieser Wert bei mindestens einem Mega Iota pro Adresse.

Jedoch wird es dadurch nicht unmöglich auch kleinere Beträge zu senden. Denn sobald eine Adresse diese minimale Anzahl an Wert besitzt, kann man damit 10 kleinere Transaktionen von beliebiger Höhe empfangen, bis man wieder den Mindestwert aufladen muss. Jedoch ist hierfür noch weiterer Handlungsbedarf nötig - man muss so genannte "SigLockedDustAllowanceOutputs" freischalten. Wenn man bei einer Adresse dann Dust hat, kann man den speziellen Output natürlich nicht einfach weg senden und den Dust auf der Adresse zurück lassen, weil es dann wieder < 1 Mi wären, was nicht erlaubt ist. Deswegen muss man in dem Fall den Dust vorher oder gleichzeitig senden.

RFC Link (auf English)


einfachIOTA

einfachIOTA - IOTA einfach erklärt.