Bitcoin Handbuch - Für Fortgeschrittene
| Proof-of-Work wird oft erklärt ohne die Probleme zu beschreiben warum es überhaupt existiert. Da kann man aber niemanden für verantworklich machen. Die Literatur zu Verteiltem Konsens und Byzantine-Fault-Tolleranz ist kryptisch, nur auf English und weit über das Internet und den akademischen Bereich verteilt, so dass selbst Blockchain-Entwickler wie Ethereums Vlad Zamfir in so manches Fettnäpfchen treten mussten. Dennoch sollten die groben Konzepte auch uns Normalos zugänglich sein. Hier wird es jedoch noch einiges an Umdenken brauchen. Vielleicht will man dort oben aber auch unter sich bleiben. |
|---|
Distributed Computing - wieso lässts sich überhaupt verteilen?
Bitcoin ist ein verteilter Rechner, ein Supercomputer. Ziel bei verteilten Rechnerarchitekturen kann es sein, effizient Rechenleistung zusammen zu bekommen. Solch ein verteilter Superrechner macht aber nur dann Sinn, wenn das Problem gut parallelisierbar/verteilbar ist. Manche Probleme lassen sich gut parallelisieren ("peinlich parallel" oder "embarrassingly parallel problems" genannt) manche lassen sich wiederum garnicht parallelisieren.
Peinlich parallel:
- Rendering für hässliche Computer Animationen
- BLAST (Biologen Gen-Kram)
- Bruteforce Angriffe auf verschlüsselte Passwörter (aha ;) z.B. PoW)
- Proof-of-Work (siehe Bruteforce) ✔️
das bedeutet, dass man für Forschungsfragen oder gemeinsame Angriffe auf Passwörter mit vielen Freiwilligen zusammen mehr erreicht als zentrale Serverfarmen. Ein weiteres bekanntes Projekt ist SETI@home wo Freiwillige mithelfen, Signale aus dem All auf Muster zu untersuchen. Ganz ohne finanziellen Anreiz ging es bei Bitcoin dann aber wohl doch nicht.
Alles in der Cloud ☁️
Der Resultierende virtuelle Rechner ist strenggenommen keine Cloud sondern ein sogenannter Grid-Rechner und hat ensprechend nicht Cloud-Speicher, sondern Grid-Speicher. Grid Computer sind eher lose gekoppelt und meist geographisch verteilt, also eine dezentrale Cloud.
Aber Bitcoin existiert ja nicht dafür, dass Miner zusammen (wenn auch in Konkurrenz) versuchen das Hash-Puzzle zu lösen.
Bitcoin - eine Replicated-State-Machine
Ein anderer recht offensichtler Grund ist Robustheit des Systems -> Mehr Rechner = ausfallsicherer. Das Interessante hierbei ist, dass die Ausfallsicherheit eines verteilten Rechners nicht einfach die Summe der Ausfallsicherheiten der einzelnen Rechner ist, denn der resultierende Superrechner ist mehr als die Summe seiner Teile ("1+1=3").
>>Ein zuverlässiges System aus potenziell unzuverlässigen Teilen<<
Die Technik wird als State-Machine-Replication bezeichnet. Ein Computer (oder "Prozess" wie es im Distributed-Computing heist) ist eine Zustands-Maschine. Eine Datenbank ist ja auch nichts als ein Zustand. Dieser Zustand existiert verteilt und dadurch auf höherer Ebene im verteilten Rechner - der replicated-state-machine, als verteilter Zustand.
Die Blockchain und die Coins sitzen also in der "Cloud" und sind keine Nullen und Einsen auf irgendjemandes Festplatte. Eine emergente Eigenschaft welche im einzelnen Bauteil nicht zu finden ist.
Die eizelne Ameise hält vermutlich auch keinen Bauplan für den Ameisenbau.
Ausfallsicherheit auf Protokoll-Ebene - Konsens und Byzantine-Fault-Tolerance
Flugzeuge und Raumschife sollten möglichst zuverlässig sein, also setzten einige Modelle (z.B. Boing 777 oder FalconX) auf Byzantine-Fault-Tolleranz. In größeren Höhen kommt es zu erhöhter kosmischer Strahlung. --> Diese Strahlung führt zu spontanen bit-Flips. --> Das führt zum Ausfall von Rechnern oder zu falschen Werten.
[FalconX (Abbildung: by NASA CC0 Wikipedia]: 6 Rechner mit insgesammt 18 Prozessoren und 3 Kernen Quelle]
Ein Byzantiner Rechner ist ein hinterhältiges Arschloch: er gibt falsche Werte oder sendet Daten nicht weiter...so im Prinzip. Natürlich kann eine Komponente in einem Flugzeug nicht hinterhältig sein, aber Byzantinen-Fehler-Tolleranz (BFT) impliziert auch normale Ausfälle und Falschmeldungen. Wenn man BFT ist, dann ist es einem schlicht egal warum ein einzelner Rechner nicht antwortet oder ob er falsche Werte gibt, denn man verlässt sich nur auf die Mehrheit.
| eine Mehrheit ist mindesten 51% aber kann auch eine Super-Mehrheit sein, denn 51% sind manchmal nicht genug. Siehe (Gün Sirer 2016 "Majority is not enaugh) |
|---|
Nicht nur das Rechnersystem sondern auch der Algorithmus soll machen wozu er angedacht ist. Im Falle des Bitcoinprotokolls ist es >>Konsens über den Zustand der Blockchain zu treffen<<. Die verteilte Blockchain ist der Zustand, sie ist Konsens.
Konsens 🙌
Konsens und Nonsens hängen in der Politik ja dicht beieinander und auch im Distributed-Computing muss der Konsens nicht dem entsprechen, was für die meisten am besten wäre. Hat ein Teilnehmer mehr als 50% der Hashpower, bestimmt dieser was Konsens ist. Das sind die Regeln.
[Wir haben hier drei ehrliche Teilnehmer: Konsens ist es also nur, wenn all drei einen identischen Zustand anzeigen]
[hier wäre entweder einer byzantin (unehrlich) oder es ist kein Konsens]
Natürlich kann man das was wir in der Politik als Konsens bezeichnen nicht 1:1 mit dem Konsens vergleichen, der bei verteilten Systemen gemeint ist. Konsens ist hier eine bestimmter Staz an Bedingungen und eindeutig definiert:
| Eigenschaft | Bedingungen |
|---|---|
| •Termination | jeder ehrliche Teilnehmer entscheidet sich eventuell |
| •Integrität | jeder korrekte Teilnehmer entscheidet sich zumindest einmal |
| •Übereinkunft | Wenn ein ehrlicher Teilnehmer v1 entscheidet und ein anderer ehrlicher Teilnehmer v2, dann v1=v2 |
| •Validität | Wenn sich ein ehrlicher Teilnehmer für v entscheidet, dann muss auch ein Teilnehmer v vorgeschlagen haben |
Konsens - das Zusammentreffen mit dem Dämon
["Der große rote Drache" William Blake 1803. CC0 Wikipedia]
[Konsens als Form der Ordnung/niedriger Entropie am beispiel des Magneten]
Physiker Shoucheng Zhang beschrieb Konsens als Form hoher Ordnung und somit niedriger Entropie. Wenn man lokal niedrige Entropie erzeugt, dann ist dies jedoch mit Kosten verbunden, man muss die Entropie irgendwo abladen. Bei Bitcoins PoW ist das ziemlich eindeutig in Form von Wärme welche in die Umgebung dissipiert.
| Form der Entropie | Eigenschaften |
|---|---|
| Thermodynamische Entropie | als Maß der nutzbaren Energie. Einmal in Wärme übergegangen ist Energie nicht mehr nutzbar |
| Informations- (Shannon-) Entropie | als Maß der Ignoranz, wie viel Information man nicht hat |
der Zusammenhang wird hier klar:
Zhang vergleicht den Fischer-Lynch-Paterson-Unmöglichkeits-Beweis mit Maxwells Dämon
[Von User:Htkym - Eigenes Werk, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=1625737]
Maxwells Dämon ist ein Gedanken-Experiment zu einem Perpetuum-Mobile. Wo davon ausgegangen wird, dass man mit einem zentralen Master-Algoritmus (der Dämon), welcher Teilchen sehen und sortieren kann, durch die Unterschiede der Teilchen die das Sortieren erzeugt, eine Wärmepumpe betreiben kann, die wiederum zur Energiegewinnung dient und das Sortieren via des Tors ermöglicht.
Hier geht es also um den Zusammenhang von der Kenntnis über den Zustand der Teilchen im System (als minimale Informations-Entropie) und dem thermodynamischen Zustand des Systems selbst.
| Beispiel | Entropie |
|---|---|
| SHA-2 Hash | 2256 bits = mögliche Zustände --> hohe Shannon Entropie |
| Gefundener Nonce | 1 bit, bekannter Zustand, niedrige Entropie] |
| Mining | steigender Anteil an Wärme --> Entropie wird anderswo abgeladen |
Der Dämon müsste für volle Kenntniss über die Mikro-Zustände der Teilchen, jedoch im Prinzip Mining betreiben und wie bei einem Memory-Spiel die Zustände aufdecken. Der Dämon steht also nicht über den Dingen. Daher gibt es kein Perpetuum Mobile und keine Lösung für das FLP-Unmöglichkeits-Problem in einem asynchronen Setup.
Thermodynamische Entropie und Informationsentropie hängen direkt zusammen. --> Ohne Arbeit kein Wissen - es muss einen Preis geben.
Dies könnte
´s lesenwerten Arktikel zum Zusammehang von Energie, Geld, Sicherheit und Wirtschaft beschreiben.
Correctness - der Heilige Grahl im Blockchain design
Wenn ein Algorithmus das macht was er machen soll, dann wird er als "correct" bezeichnet. Die Correctness eines Algorithmus lässt sich mathematisch beweisen (Correctness-Proof). Es lässt sich also sagen, dass ein Algorithmus unter bestimmten Umständen das machen wird, was er machen soll ("correct by construction"). Wenn man es drauf anlegt ohne einen correct-by-construction Ansatz zu starten, setzt man im Falle von Cryptowährungen Millionen und teilweise Milliarden aufs Spiel. So wurden die Entwickler von "the DAO" auch bereits vor dem Bug auf diese Schwäche hingewiesen. Correctness ist also nicht "joa mal schauen"/ etwas was sich zeigen wird, sondern etwas was bestenfalls von grundauf besteht.
Ethereum 2.0 wählte daher wie es mitlerweile Standard ist, einen correct-by-construction-Ansatz und machte dabei dennoch einen Fehler...
Correctness = Liveness + Safety
Correctness ist im Prinzip analog zu eurer Gesundheit bzw. Homöostase und besteht aus zwei Immun-Parametern die beide aufjeden Fall garantiert sein müssen, damit ein System unter allen denkbaren Umständen stabil bleibt.
Liveness: ("Terminierung") - alle ehrlichen (non-faulty) Knoten kommen eventuell zu einem Ergebniss
Safety: ("Übereinkunft") - alle ehrlichen (non-faulty) Knoten einigen sich auf den selben Wert
Für die Blockchain bedeutet liveness, dass einzelne Teilnehmer neue Blöcke hinzufügen, die Blockchain also garantiert wächst und safety, dass alle ehrlichen Knoten sich alle auf eine Blockchain einigen. Logisch, wenn zwei ehrliche Knoten auf zwei unterschiedliche Ketten zeigen, dann ist Konsens nicht eindeutig definiert und somit macht das Protokoll nicht was es machen soll - ist also nicht "korrekt".
Correctness-Proof = Liveness + Safety Beweis
Beide Eigenschaften müssen bewiesen werden, damit man das Wort "correct" überhaupt in den Mund nehmen darf. Sah Vlad Zamfir von Ethereum nicht so streng ("minimal" CBC Casper) und wurde von den alten Damen und Herren mit ihren 1000 Jahren Erfahrung im Bereich des Verteilten-Konsens und BFT in der Luft zerissen ("incorrect by design" Pyrofex 2018). Was diesen Punkt angeht sind viele Blockchain-Designer nach der Meinung vieler Oldschool-BFT-Typen, überfinanzierte Amateure, obwohl ihre Systeme großartige Erfindungen sind. Daher nehmen selbst die Topentwickler das Studium in diesem Breich mitlerweile sehr ernst und arbeiten eng mit Universitäten a la MIT und Cornells zusammen.
Klassischer Konsens
Konsens-Protokolle vor Bitcoin
Bevor es Bitcoin gab, gab es lediglich klassischen Konsens. Klassisch bedeutet, dass man eine bestimmte Menge an bekannten Validatoren hat, diese bilden das zugangsbeschränkte Konsortium. Klar, im Firmenkontext sind das die Teilnehmer die man einrichtet (irgendwelche Server), warum sollte auch jemand Fremdes Mitspracherecht haben?
Klassischer Konsens basiert auf jeder-mit-jedem-Absprache.
wie man hier schon sieht, skaliert diese Art von Konensprotokoll überhaupt nicht. All-to-All bedeutet, dass die Nachrichtenkomplexität mit n² wächst. 100 Teilnehmer bedeutet bereits 100² = 10.000 Kommunikationswege!
Und man schickt ja nicht nur eine Nachricht von A nach B um sich zu einigen. Man hat mindestens 3-Phasen Konsens: PRE-PREPARE, PREPARE, und COMMIT...--> 10.000 x 3 macht 30.000 Nachrichten nur um sich mit 100 Validatoren einmal zu einigen? <-- und genau das ist der Grund warum klassische Konsensprotokolle inklusive Hybriden wie dPOS nur wenige Witnesses haben können.
- Ark: 51
- EOS: 21
- BitShares: 101
- Steemit: 21
- Lisk: 101
Nakamoto-Konsensus hat hingegen Konsens revolutioniert und erstmals ein offenes Set an Validatoren ermöglicht. dPOS setzte wiederum auf einen Hybrid Ansatz welcher auf dem alten Paradigma basiert, welches die trusted Nodes hier aber nicht vorab definiert (so wie im Flugzeug oder SpaceX) sondern über die Witnesswahl wo es über den Stake der Wähler versucht sicherzustellen, dass die Validatoren sich an die Regeln halten. Die Wähler vertauen ihnen also sind es gute Typen und Typinnen
Warum Konsens in asynchronen Netzwerken nicht möglich ist
Was is denn nun schon wieder ein asynchrones Netzwerk?
Das Internet, E-Mail, Bitcoin... Asynchron bedeutet nur, dass jeder Rechner seine eigene Zeit hat. Online Zeit-zählt nicht da milli-Sekunden Abweichungen über längere Zeit zu Uhren-Drift (Clock-Drift) führen und die Abweichungen mit der Zeit immer größer würden (Lamport, L. 1978) Ja man mag es kaum glauben, sogar mit einer zentralen Atom-Uhr wäre es bei einem globalen System schwierig, denn es gibt da ja Netzwerkdellay und als letzte Bastion die Relativität der Zeit.
[Nach Lamport, L. (1978). "Time, Clocks and Ordering of Events in a Distributed System"] ... Ein Prozess ist einfach ein Computer die räumlich (was auch immer zeitlich bedeutet) getrennt sind
| Was richtig scheiße ist, ist dass Byzantinen-Fehler-Tolleranz in einem asynchronen System nicht möglich ist. Das wurde von Fischer, Lynch, Paterson 1985 in ihrem "Unmöglichkeits-Beweis" gezeigt (“Impossibility of Distributed Consensus with One Faulty Process") |
|---|
Wenn das System synchronisiert ist, dann alles kein Problem, weil man ja definieren kann, dass alles was innerhalb von z.B. 3 Sekunden nicht eingeht als ungültig gewertet wird. In einem Flugzeug oder in einem Datencenter sind Dellays und Relativität vernachlässigbar, daher sind diese synchron was BFT-einfach macht. Bitcoin kennt jedoch kein Konzept der Zeit.
Und hier wird Proof-of-Work zum ersten mal zentral wichtig. Es ist sogar die wichtigste Eigenschaft.
Proof-of-Works geheime Fähigkeit (die mal garnichts mit Goldschürfen zu tun hat)
Der Fischer,Lynch-Paterson-Unmöglichkeits-Beweis stellt das zentrale Problem dar, welches es verhindert in einem global verteilten System Ereignisse zu ordnen. Das Ordnen von Ereignissen mithilfe von Kryptographie a.k.a. die Blockchain wurde bereits 1991 von Harber und Stornetta erfunden. Ein einfacher Blick in die Refferenzen des Whitepapers verschafft hier Aufklärung.
Die älteste Blockchain
Die "Time-Chain" (später von Nakamoto in Blockchain umgetauft) wird mittels des Timestamping-Verfahrens erstellt. Blöcke werden mittels Hashes zu einer Kette verbunden.
Die am längsten aktive Blockchain wurde dazu genutzt Artikel der New-York-Times mit Zeitstempel zu archivieren.
Bitcoin ist allerdings ein weltweit verteiltes System, mehr oder weniger anonyme Teilnehmer, offen für jeden der teilnehmen möchte und hat keine zentrale oder dezentrale Uhr, wie löst man das Problem?...
Doch schauen wir uns doch zuerst einmal den Proof-of-Work und seine offensichtlicheren Funktionen an
Darum ist Proof-of-Work kein Konsensmechanismus...
es sei h= SHA256(ak)
i = > der Miner der einen Block hinzufügen will
o => die Transaktionen
i pub => Public Key von i
Anweisung: finde einen nonce so dass: SHA256 (h|i pub|o| nonce) < H
wobei H der Difficulty Parameter für das PoW-Puzzle ist, eine sehr kleine Nummer eben. Ca. so: 0,0000004575575. Je kleiner die Nadel im Heuhaufen desto schwerer zu finden.
oder auf Deutsch: "finde die Nadel im Heuhaufen, packe sie zusammen mit deiner Adresse und den Transaktionen in einem Umschlag/Block und klebe diesen an das Ende der Kette"
das ist der Proof-of-Work (nichts besonderes oder?), der Output ist offensichtlich kein Konsens über den Zustand der Blockchain also --> ist es kein Konsensmechnismus.
Proof-of-Work in der prä-Bitcoin-Ära
Die Idee zur Nutzung von Hashpuzzeln kam von Dwork und Noar 1992 und war zunächst als Spam-Filter für Junk-Mail angedacht. Adam Back entwickelte den darauf basierenden Hash-Cash (Back 1995) Algorithmus der über Spam-Schutz hinaus auch in vielen anderen Anwedungen eingesetzt wurde (Back 2002). Später kam man darauf Hash-Cash für dezentrale E-Cash Systeme und zur Ausgabe von Token in dezentralen File-Sharing-Systemen einzusetzen (Filesharing ohne Token-System führt dazu, dass sogenannte "Leacher" Datein ziehen aber selber nichts beitragen).
- MicroMint 1996 (Micro Payment)
- Mojo-Nation 2002 (File-Sharing)
- Karma 2003 (File-Sharing)
- RPOW (implementierte Software nah an Bitcoin)
- B-Money (Software nah an Bitcoin)
- Bit-Gold (Konzept nah an der Idee von Bitcoin, keine Software!)
Im Kontext von offenen Konensmechanismen gibt es auch Spamm, hier gibts das Problem mit "Sybils". Sybil war ein fiktiver Charakter in einem Roman, sie hatte multiple Persönlichkeiten - nichts ist leichter als im Netz multiple Accounts oder virtuelle Machinen zu erzeugen. Wenn Teilnahme am Konensprozess jedoch Teilnahme an der PoW-Berechnung erfordert, dann hat es so oder so Kosten, und Sybils verschaffen somit keinen Vorteil.
Costly Signaling, darum ist PoW ein Proof-of-Stake!
Proof-of-Work dient als etwas was in der Signal-Theory als Costly-Signaling (Kostspieliges-Signalisieren) bezeichnet wird. Jeder der ein Gesichts-Tattoo oder einen Knochen in der Nase hat weis, dass diese Zugehörigkeitssymbole zu Szenen oder Gangs allgemein gesehen auch ein teures Handicap sind. Viele Türen schließen sich, dafür das eine aufgeht. Die Evolution zeigt diese Strategie bei männlichen Tieren. Das überdimensionierte Geweih des Riesenhirsch oder das Rad des Pfau, die knalligen Farben der Fischmännchen, die langen Flossen all das signalisiert dass man trotz dieser offensichtlichen Nachteile immernoch am Leben ist, ergo die Gene gut sein müssen.
[costly signaling: Wenn ein Handicap Skin in the game signalisiert. Source: By lo.tangelini from Soliera / Modena, Italia - Tonos, CC BY-SA 2.0]
Bei der Straßen Gang MS-13 muss man jemanden vergewaltigen oder sich als Frau vergewaltigen lassen um in die Gang zu kommen. Bei Bitcoin muss man ein Daten-Center errichten, entsprechende Hardware kaufen die zu dem Zeitpunkt wo sie online geht nach dem Mooreschen-Gesetz schon verarltet sein kann und dann das ganze samt Personal unterhalten.
Dabei muss die Blockchain kontinuierlich validiert werden. Miner müssen also sogar dann validieren und dreimal soviel Strom verballern wie Dänemark, wenn gar niemand transaktionen vornimmt. Erinnert euch an die Safty- und Liveness-Eigenschaften. Teilnahme am Konsensverfahren hat immer einen Preis den es erst zu zahlen gilt und welcher hohe Anteilnahme abverlangt. Pay-to-play ja aber mal eben plug-and-play ist nicht.
Stake vs. Stack
Stake ist es dann wenn etwas auf dem Spiel steht, man "Skin-in-the-Game" hat. Ein einfacher Token Stack ist nur dann ein Stake wenn man diesen verlieren kann. Bestenfalls wenn ein total verlust möglich ist. Bei Ethereum nennt sich diese Option Slashing-Condition. Die Token gehen bei Ethereum 2.0 in einen Smartcontract und werden bei Fehlverhalten entzogen.
Dennoch sollte hier klar sein dass PoW die stärkste Form von Proof-of-Stake ist, da hier Schulden eingegangen werden müssen.
Proof-of-Work ⚒ ist ein kommunistisches System
[richtiger Bitcoin Marximalist]
Proof-of-Work kennt kein Konzept von Knoten, Teilnehmern, Accounts...Proof-of-Work kennt nur Arbeit 💪(angwandte Hashpower), das System ist öffentlich, wird von niemandem besessen und man hat nur soviel Einfluss auf den Konsensprozess wie man Arbeit verrichtet. (ob das wirklich Marx feuchter Traum war...bin da nicht so bewandert)
Natürlich ist das ganze in eine kapitalische Welt eingebettet aber das ändert nichts an der Funktionsweise auf Protokollebene.
Also wo ist nun der Konsens? :D
Bisher liefert PoW
- Sybil-Resistenz gegen die ganzen "Sock-Puppets", ✔️
- es dient als Costly-Signaling und beweist Bereitschaft für die Sache draufzugehen, ✔️
- es dient als Lotterie für den Blockreward ✔️
...
achja und es dient als Leader-Election-Oracle ✔️
Es entscheidet per Zufall wer den nächsten Block hinzufügen darf. Einen Block hinzufügen bedeutet zu bestimmten was die letzten 10 Minuten geschah. Bitcoin ist also ein retrospektives Protokoll.
was hat es eigentlich mit den 10 Minuten auf sich?
Synchroncity Assumption
Die 10 Minuten Blockzeit sind nicht genau 10 Minuten, da sie von der Schwierigkeit des Hashpuzzles abhängen, aber es sind ungefähr ~10 Minuten. Wie bereits erwähnt ist Bitcoin eigentlich ein asynchrones Netzwerk, wie soll es auch anders gehen ohne eine zentrale Uhr? Somit bediente sich Nakamoto eines Tricks, er nahm an dass ~10 Minuten ausreichend sind, dass genügend Teilnehmer bzw. strenggenommen %an Hashpower antwortet. Somit gab er dem Bitcoin einen Herzschlag 💓, das Konsens-System existiert nur alle 10 Minuten. Was dazwischen passiert, ob die einzelnen Rechner hinter der Hashpower ausfallen, nicht antworten, wie auch immer, das interessiert uns nicht. Wer bis dahin antworten möchte findet einen Weg, wer nicht antwortet hat halt nicht geantwortet.
Bitcoin hat also doch eine Uhr... Eine dezentrale Uhr!
Proof-of-Work ist eine dezentrale universelle Uhr
| Die schwierigkeit die Nadel im Heuhaufen zu finden ist für einen jeden Teilnehmer egal ob auf der Erde oder auf der Venus gleich, eine universelle Konstante. Es dauert mit gleicher Hashpower statistisch gesehen gleich lange. Es entsteht eine Uhr basierend auf der Entropie im SHA-256. |
|---|
Der Versuch des einen, egal wie lange er schon bruteforced, nimmt praktisch nichts von dem Heu beiseite. Rein theoretisch könnte man sich die bereits versuchten Zahlen durchstreichen aber bei einem Möglichkeitenraum von 2^256 ist das wohl ziemlich egal. Praktisch gibts für SHA also kein Gedächtnis. Es ist immer wieder die selbe Schwierigkeit, die erst in der nächsten Runde mit der Größe der Nadel im Heuhaufen angepasst werden kann, aber selbst dann ist es wieder für jeden gleich schwer Trubetskoy 2018.
Gleichschwer bedeutet, dass es statistisch gesehen gleich lange dauert. Hat jemand schnellere Hardware (zwingt somit andere aufzurüsten), passt sich die Schwierigkeit halt wieder an, so dass wir immer bei ~10 Minuten landen. Eine recht ungenaue Uhr könnte man meinen. "War das Problem nicht die Clock-Drift?" Nein, denn in diesem Falle sind zwar die "10 Minuten" immer etwas länger oder kürzer als die "10 Minuten" davor aber jede Runde ist für jeden Teilnehmer gleich lang.
Ganz wenige Menschen verstehen, dass hierdurch gewährleistet wird, dass das Fischer-Lynch-Paterson Impossibility-Theorem nicht verletzt wird. Ein augenscheinlich asynchrones System aus Rechnern die nicht mal voneinander wissen, werden geschickt synchronisiert.
Gratuliere jetzt weist du mehr als 99% der Bitcoin-Gurus!
...
da bliebe jetzt noch eine Kleinigkeit 😅...Wie kommen wir zum Konsens?
The longest and heaviest Chain-Rule
kennt ihr so Romane die einfach nen unzufriedenstellendes Ende haben. So Filme wie Tschernobyl Diaries, wo die Regisseure mit Tschernobyl das derbste Filmsetup haben und dann kommt all die Mystik und das Unerklärliche durch... langweilige CGI Zombies. 👀
TLDR...ach ne zu spät also:
Der Konsens nach all der Vorarbeit durch Proof-of-Work wird durch folgende Regel gebilded:
Nehme deinen Block und füge ihn an die längste und schwerste Kette (schwer in dem Sinne als dass die meiste Hashpower auf sie angewandt wurde) - die longest and heaviest chain Rule