Stärke dieser Datenstruktur

Jetzt, da Sie die Blockstruktur gesehen haben, wird es einfacher. Die Blockchain würde so aussehen:

Die Stärke dieser Datenstruktur besteht darin, dass Sie, wenn Sie die Daten eines Blocks ändern, den Hash des Blocks neu berechnen müssen, was den Wert previousHash des nächsten Blocks ungültig macht. Du kannst es in der folgenden Abbildung sehen.

Beachten Sie, dass es einen sehr speziellen Block gibt, den ersten Block, er hat keinen previousHash, er heißt GenesisBlock.

Die Blockchain-Datenstruktur wird von den meisten Coins wie Bitcoin, Litecoin oder Ethereum verwendet. Wir werden im Konsensteil andere Kryptowährungen sehen, die unterschiedliche Datenstrukturen verwenden, zusammen mit anderen Konsens.

Dank dieser Struktur in Verbindung mit einem guten dezentralen Konsens ist es fast unmöglich, Daten aus der Blockchain zu ändern. Alle in der Blockchain gespeicherten Daten bleiben dort für immer . Es kann kaum entfernt werden.

Darüber hinaus können mit dieser Datenstruktur beliebige Daten gespeichert werden. Wenn Sie sich wie ich fragen, mit welcher Technologie diese Datenstruktur gespeichert wird, kann alles verwendet werden. Da Blöcke durch ihren Hash identifiziert werden, ist die beste Lösung ein Key-Value-Speicher. Bitcoin verwendet LevelDB, eine Key-Value-Speicher-Bibliothek.

Indem Sie Transaktionen zu den Blöcken einer Blockchain hinzufügen, können Sie diese in ein Ledger verwandeln.

Transaktionen und Kryptographie
Jetzt wissen wir, was eine Blockchain ist, lassen Sie uns maenner-magazin.net über die Transaktionen sprechen und wie sie verarbeitet werden.

Transaktionen
Hier ist die Struktur einer Transaktion, bevor sie durchgeführt wird:

transactionInputs[] → Array von transactionInput
transactionOutputs[] → Array von transactionOutput
id → Hash berechnet aus dem Inhalt von transactionInputs[] und transactionOutputs[].
Nun die Struktur von transactionOutput und transactionInput.

transactionOutput:

Adresse – Adresse des Empfängers der Transaktion
amount – Betrag der Kryptowährung, der an die Adresse gesendet werden soll.
transactionInput:

transactionOutputId → id / hash einer vorherigen Transaktion, bei der die Ausgabe übernommen wird und als Eingabe verwendet wird.
transactionOutputIndex → Index der Ausgabe, um die richtige Ausgabe aus dem transactionOutputs[] Array zu finden.
Die Regel ist die folgende: In jeder Transaktion sollte die Summe der Eingänge gleich der Summe der Ausgänge sein! Was also getan werden sollte, ist: Wenn Alice, sagen wir mal, 30 erhalten hat und sie 10 schicken will, muss sie auch 20 zu sich selbst schicken! So funktioniert Bitcoin, um Transaktionen schneller zu überprüfen. Es wird vermieden, bei jeder Ausgabe einer Transaktion den vollständigen Verlauf zu überprüfen.