Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:kryptographie:blockchain:start [23.10.2024 07:23] – Marco Kuemmel | faecher:informatik:oberstufe:kryptographie:blockchain:start [12.02.2025 07:36] (aktuell) – [Wie funktioniert die Blockchain? Am Beispiel von Bitcoin!] Marco Kuemmel | ||
---|---|---|---|
Zeile 8: | Zeile 8: | ||
Mit der Veröffentlichung von Bitcoin im Jahr 2009, der ersten und bekanntesten Cryptowährung, | Mit der Veröffentlichung von Bitcoin im Jahr 2009, der ersten und bekanntesten Cryptowährung, | ||
- | Wenn es um Finanzsysteme geht, dann geht es in erster Linie um Vertrauen: Man muss Banken vertrauen, dass das eigene Geld dort gut aufgehoben ist und dass Buchungen korrekt vermerkt sind. Mit Blockchain-basierten Cryptowährungen wird dieser Punkt eliminiert. Denn anstatt fremden Menschen zu vertrauen, muss man nur noch den mathematischen, | + | Wenn es um Finanzsysteme geht, dann geht es in erster Linie um Vertrauen: Man muss Banken vertrauen, dass das eigene Geld dort gut aufgehoben ist und dass Buchungen korrekt vermerkt sind. Mit Blockchain-basierten Cryptowährungen wird dieser Punkt eliminiert. Denn anstatt fremden Menschen zu vertrauen, muss man hauptsächlich |
===== Aufbau ===== | ===== Aufbau ===== | ||
Zeile 16: | Zeile 16: | ||
Alle 10 Minuten entsteht ein neuer Block. In einem Block sind alle Transaktionen (" | Alle 10 Minuten entsteht ein neuer Block. In einem Block sind alle Transaktionen (" | ||
- | Aus allen Transaktionen wird ein SHA-256 Hash berechnet und im Header des Blocks gespeichert (dünne schwarze Pfeile). Ebenso wird dort der Hash des vorherigen Blocks gespeichert (dazu gleich mehr!). Aus allen Informationen im Header wird wiederum ein Hash generiert. Dieser wird im jeweils darauffolgenden Block im Header gespeichert. | + | Aus allen Transaktionen wird ein SHA-256 Hash berechnet und im Header des Blocks gespeichert (dünne schwarze Pfeile). Ebenso wird dort der Hash des vorherigen Blocks gespeichert (dazu gleich mehr!). Aus allen Informationen im Header wird wiederum ein Hash generiert |
+ | |||
+ | Durch die Nutzung der Hashfunktionen bietet dieser simple Aufbau einen unschlagbaren Vorteil: Sollte jemand später in einem alten Block eine Buchung fälschen wollen, so wird daraufhin der bisherige Transaktionshash ungültig und müsste neu berechnet werden. Daraufhin wird auch der Headerhash ungültig und muss ebenso neu berechnet werden. In diesem Moment würde das Netzwerk aller Blockchains weltweit Alarm schlagen, da der Headerhash des veränderten Blocks nicht mehr mit dem verlinkten Hash des nächsten Blocks übereinstimmt. Man könnte genau sehen, in welchem Block eine Manipulation stattgefunden hat. | ||
+ | |||
+ | {{: | ||
+ | === (A1) === | ||
+ | |||
+ | Öffne das interaktive Blockchain-Tool und experimentiere mit den Einträgen. Du kannst neu berechnete Headerhashes auch kopieren und im nächsten Block einfügen. Aktiviere dabei __noch nicht__ das Block-Mining! | ||
+ | https:// | ||
+ | |||
+ | ===== Verteiltes Netzwerk ===== | ||
+ | Jetzt könnte man denken, dass ein Angreifer dann doch einfach alle weiteren Blöcke iterativ korrigieren und alle Hashes bis zum neuesten Block neu berechnen könnte. Ja, im Prinzip kann er das auch. Allerdings stünde er dann mit seiner eigenen, manipulierten Blockchain ganz allein auf weiter Flur. Denn von der Blockchain gibt es zahlreiche Kopien auf tausenden Rechnern weltweit. Auch du kannst eine Kopie der Blockchain hosten (" | ||
+ | |||
+ | ===== Stabilität, | ||
+ | Prinzipiell kann also jeder eine Kopie der Blockchain speichern und auch neue Blöcke generieren/ | ||
+ | |||
+ | //Easy//, kann man jetzt denken: Dann müssen die Angreifer also einfach nur 70.000 Kopien der manipulierten Blockchain besitzen? Jein, denn wir haben noch nicht über das **Block-Mining** gesprochen. | ||
+ | |||
+ | ==== Mining ==== | ||
+ | Um genau solche 51%-Angriffe abzuwehren wird bei Bitcoin das **Proof-of-Work**-Verfahren eingesetzt. Ein neuer Block gilt nicht einfach direkt als valide, sobald die Hashes wie oben gezeigt berechnet sind. Vielmehr war das obere Bild noch nicht vollständig, | ||
+ | |||
+ | Sobald ein neuer Block entsteht, machen sich hunderttausende Bitcoin-Mining-Rechner weltweit daran, den Headerhash immer wieder neu zu berechnen. Dabei verändern sie jedes Mal den Wert der Nonce um 1 und probieren damit alle möglichen Nonce-Werte durch. Ziel ist es, einen **Headerhash** zu erhalten, **der mit einer bestimmten Anzahl an 0en beginnt**. Wie viele 0en nötig sind, das wird regelmäßig im weltweiten Blockchain-Netzwerk so angepasst, dass die durchschnittliche Berechnung des korrekten Hashes (**weltweit!**) 10 Minuten benötigt - dies ist auch als // | ||
+ | |||
+ | Für Angreifer genügt es also nicht, die Werte und Hashes einfach nur neu zu berechnen. Vielmehr müssten sie durchschnittlich mehr als 51% der weltweiten Bitcoin-**Rechenkapazität** aufweisen, um einen eigenen, manipulierten Block vor allen anderen Rechnern korrekt zu berechnen und damit in die weltweite Blockchain einfliesen lassen zu können. Dies ist glücklicherweise kaum möglich. | ||
+ | |||
+ | {{: | ||
+ | === (A2) === | ||
+ | |||
+ | Gehe wieder zum [[https:// | ||
+ | |||
+ | |||
+ | ===== Andere Einsatzzwecke der Blockchain ===== | ||
+ | Alle Einsatzgebiete nutzen insbesondere die Fähigkeit der Blockchain, dass ältere Einträge nicht mehr (einfach) nachträglich manipuliert werden können. | ||
+ | |||
+ | * Dokumentation der Lieferkette: | ||
+ | * Ausstellung und Verwaltung von Zertifikaten: | ||
+ | * Zeitkapsel: Sobald jemand etwas (oder dessen Hash) in einer Blockchain einträgt, ist beweisbar, dass dies zu diesem Zeitpunkt bereits vorhanden war. Forscher können damit z. B. ihre Entdeckungen speichern und man kann auch Jahre später noch nachweisen, wer der erste war, der dies entdeckt hat. | ||
+ | * Bei Wahlen könnte jeder Wähler nachvollziehen, |