Proof of Work (PoW)

Proof of Work (PoW) ist die Antwort auf ein mathematisches Problem, das schwer zu berechnen, aber leicht zu überprüfen ist. In IOTA bietet der Proof of Work einen Schutz gegen Spam Transaktionen.

PoW wird nach Versuch und Irrtum berechnet und erfordert daher Rechenleistung.

Ursprünglich wurde PoW als ein Konzept eingeführt um die großen Mengen an E-Mail-Spams zu reduzieren. Dieses Konzept wird als Hashcash bezeichnet und ist eine Methode zum Verhindern von E-Mail-Spam, indem ein Arbeitsnachweis (PoW) für den Inhalt jeder E-Mail verlangt wird.

Ähnlich wie bei Hashcash muss jede IOTA-Transaktion PoW enthalten, um überprüft zu werden. Dieses PoW bietet Spamschutz für ein IOTA-Netzwerk, da es Zeit und Rechenleistung erhöht, die benötigt wird um eine gültige Transaktion zu erstellen.

Empfängt eine IRI-Node eine Transaktion ohne PoW, wird diese Transaktion ignoriert. Dadurch wird der Effekt von Spam-Transaktionen auf das Netzwerk reduziert.

PoW kann direkt von Clients ausgeführt werden, oder durch den Aufrufen des attachToTangle API-Befehls an eine IRI-Node ausgelagert werden (remote-proof-of-work).

Clients möchten möglicherweise Remote-PoW verwenden, wenn das Gerät, das sie zur Erstellung von Transaktionen verwenden, nicht über die erforderliche Rechenleistung verfügt, um PoW in angemessener Zeit zu berechnen.

Proof of Work für Transaktionen

Um den PoW für eine Transaktion zu berechnen, werden die folgenden Inhalte der Transaktion von Trytes in Trits konvertiert. Diese Trits werden dann gehasht:

  • Bundle-Hash: Hash, der aus den Adressen, den Zeitstempeln, den Tags, des Wertes und den Bundle-Indexes aller Transaktionen im Bundle berechnet wird
  • Signatur: Unterschrift der Transaktion, wenn IOTA-Token ausgegeben werden
  • Trunk-Transaktion und Zweig-Transaktion: Zwei vorherige Transaktionen, die von der Transaktion referenziert und genehmigt werden

Wenn der Hash mit einer bestimmten Anzahl von 0'ern (minimales Gewicht) endet, wird er als gültig betrachtet.

Wenn der Hash nicht mit der korrekten Anzahl von 0'ern endet, wird der Wert des nonce Felds der Transaktion erhöht und der Hash erneut gehasht.

Dieser Prozess wird fortgesetzt bis ein Hash gefunden wird, der mit der richtigen Anzahl von 0'ern endet.

Das nonce Feld einer Transaktion enthält eine Zeichenfolge von 27 Trytes, die von IRI-Nodes zum Überprüfen der PoW verwendet werden. Beispiel:

{
...
nonce: "POWSRVIO9GW99999FMGEGVMMMMM"
...
}

Da der Hash mit dem Inhalt der Transaktion erstellt wird ändert sich der Hash, sobald sich der Inhalt ändert und der Proof of Work wird ungültig.

Hinweis: Die Funktion, die den PoW berechnet, wird PearlDiver genannt.

Mindestgewicht (MWM = Minimum Weight Magnitude)

Die Minimum Weight Magnitude (MWM) ist eine Variable welche die Anzahl der Nullen definiert, die ein Transaktionshash am Ende haben muss, damit er gültig ist.

Jedes Inkrement des MWM erhöht den Schwierigkeitsgrad des PoW um das Dreifache.

Das MWM wird in der Node-Software (IRI) jedes IRI-Nodes in einem IOTA-Netzwerk festgelegt.

IRI-Nodes werden dazu angehalten die MWM nicht zu ändern, weil wenn jeder IRI-Node eine andere MWM hätte, wären Transaktionen nur für solche mit derselben MWM gültig. Diese Situation würde die Rate der Transaktionsbestätigungen verringern.


Anmerkung:

Der Inhalt kann durch die Übersetzung verfälscht sein. Im Zweifel gilt das englische Original von der IOTA Foundation (Quelle).

Quelle: https://docs.iota.org/docs/the-tangle/0.1/concepts/proof-of-work

Mindestgewicht (MWM)

Die Mindestgewichtsgröße (MWM) ist eine Variable, die die Anzahl der Nullen definiert, die ein Transaktionshash beenden muss, damit er gültig ist.

Jedes Inkrement des MWM erhöht den Schwierigkeitsgrad des PoW um das Dreifache.

Das MWM wird in der Knotensoftware (IRI) jedes IRI-Knotens in einem IOTA-Netzwerk festgelegt.

IRI-Knoten werden dazu angeregt, die MWM nicht zu ändern, da, wenn jeder IRI-Knoten eine andere MWM hätte, Transaktionen nur für solche mit derselben MWM gültig wären. Diese Situation würde die Rate der Transaktionsbestätigungen verringern.


Anmerkung:

Der Inhalt kann durch die Übersetzung verfälscht sein. Im Zweifel gilt das englische Original von der IOTA Foundation (Quelle).

Quelle: https://docs.iota.org/docs/the-tangle/0.1/concepts/proof-of-work

  • Zuletzt geändert: 2019/02/12 14:54
  • von vrom