Blockchain in C# | Komentor

Blockchain
BlockChain C#-Implementierung, BlockChain mit c#

Das Problem Im Moment können wir sehr schnell Blöcke erstellen und sie unserer Blockchain hinzufügen. Und das schafft 3 Probleme:

Zunächst einmal: Menschen können unglaublich schnell Blöcke erstellen und unsere Blockchain spammen. Eine Flut von Blöcken würde unsere Blockchain überlasten und unbrauchbar machen.

Zweitens, weil es so einfach ist, einen gültigen Block zu erstellen, könnten Leute einen der Blöcke in unserer Kette manipulieren und dann einfach alle Hashes für die Blöcke danach neu berechnen. Sie würden am Ende eine gültige Blockchain haben, obwohl sie sie manipuliert haben.

Und drittens können Sie die beiden oben genannten Probleme kombinieren, um effektiv die Kontrolle über die Blockchain zu übernehmen. Blockchains werden von einem Peer-to-Peer-Netzwerk betrieben, in dem die Knoten Blöcke zur längsten verfügbaren Kette hinzufügen. Sie können also einen Block manipulieren, alle anderen Blöcke neu berechnen und dann so viele Blöcke hinzufügen, wie Sie möchten. Sie werden dann mit der längsten Kette enden und alle Peers werden sie akzeptieren und beginnen, ihre eigenen Blöcke hinzuzufügen.

Wir brauchen eindeutig eine Lösung für diese Probleme. Geben Sie ein: Arbeitsnachweis.

Was ist ein Arbeitsnachweis? Proof-of-Work ist ein Mechanismus, der existierte, bevor die erste Blockchain erstellt wurde. Es ist eine einfache Technik, die Missbrauch verhindert, indem sie einen gewissen Rechenaufwand erfordert. Dieser Arbeitsaufwand ist der Schlüssel zur Vermeidung von Spam und Manipulation. Spamming lohnt sich nicht mehr, wenn es viel Rechenleistung erfordert.

Bitcoin implementiert den Arbeitsnachweis, indem es verlangt, dass der Hash eines Blocks mit einer bestimmten Anzahl von Nullen beginnt. Dies wird auch als Schwierigkeit bezeichnet.

Aber Moment mal! Wie kann sich der Hash eines Blocks ändern? Im Fall von Bitcoin enthält ein Block Details zu einer Finanztransaktion. Wir wollen sicher nicht mit diesen Daten herumspielen, nur um einen korrekten Hash zu erhalten!

Um dieses Problem zu beheben, fügen Blockchains einen Nonce-Wert hinzu. Dies ist eine Zahl, die erhöht wird, bis ein guter Hash gefunden wird. Und da Sie die Ausgabe einer Hash-Funktion nicht vorhersagen können, müssen Sie einfach viele Kombinationen ausprobieren, bevor Sie einen Hash erhalten, der die Schwierigkeit erfüllt. Die Suche nach einem gültigen Hash (um einen neuen Block zu erstellen) wird in der Kryptowelt auch als „Mining“ bezeichnet.

Bei Bitcoin stellt der Proof-of-Work-Mechanismus sicher, dass nur alle 10 Minuten 1 Block hinzugefügt werden kann. Sie können sich vorstellen, dass Spammer es schwer haben, das Netzwerk zu täuschen, wenn sie so viel Rechenleistung benötigen, nur um einen neuen Block zu erstellen, geschweige denn, die gesamte Kette zu manipulieren.

Implementieren von Proof-of-Work Wie setzen Sie es um? Beginnen wir damit, unsere Blockklasse zu ändern und die Nonce-Variable in ihrem Konstruktor hinzuzufügen. Ich werde seinen Wert initialisieren und auf 0 setzen.

Similar Posts

Leave a Reply

Your email address will not be published.