Zum Inhalt springen

Regeln einer Kryptowährung, Protokoll, Skript


Empfohlene Beiträge

Hallo Leute,

ich hätte mal eine technische Frage zu Kryptowährungen (das habe ich bisher nicht verstanden): Wie wird sichergestellt, dass die Regeln der Währung eingehalten werden? Ich erläutere mal am Beispiel Bitcoin: Ein Block besteht aus dem seinem Header, dem Hash des vorherigen Blocks, einer Liste an Transaktionen, die Transaktion mit der Belohnung für das Minen an sich selbst ()also den Miner) (aktuell 6,25 Bitcoin) und der Nonce. Nun, wenn jemand einen sehr kleinen Hashwert findet, kann er den jeweiligen Block veröffentlichen und er wird über das Netzwerk weitergereicht. Der Block lässt sich leicht überprüfen und durch die spezielle Transaktion an den Miner kann ihn auch niemand anders für sich beanspruchen. So weit, so gut. Die sehr simple Erklärung von Bitcoin. Mir entgeht dabei doch noch etwas, denn sonst macht es keinen Sinn: 1. Wie ist festgelegt, dass die Belohnungeine bestimmte Menge an Bitcoin ist?

Von den Erschaffern von Bitcoin wurde eine Belohnung von 50 Bitcoin pro Block festgelegt, die sich alle 4 (oder waren es zwei?) Jahre halbiert. Dadurch dass jedesmal genau diese Belohnung erwartet wird, würde sich der Hashwert sofort ändern, wenn jemand sich zum Beispiel 51 Bitcoin als Belohnung auszahlen möchte. Und dadurch würde der Hashwert nicht mehr mit dem übereinstimmen, was die anderen Miner erwarten. Es wird inkonsistent. Okay, doch was passiert nach Ablauf des besagten Zeitraums? Stellen nach exakt vier Jahren dann alle zum gleichen Zeitpunkt auf 25 Bitcoin um und erwarten genau das, weil die Erschaffer von Bitcoin das so wollten? Ich nehme an, die Anzahl der bereits gefundenen Blöcke fließt in den Hashwert ein ... Aber wie genau funktioniert das?

2. Wie kann die Difficulty angepasst werden? Bitcoin zielt darauf ab, dass in regelmäßigen Abständen ein neuer Block gemined wird und dies dezentral erfolgt. Doch die verwendete Rechenleistung könnte beinflussen in welcher Geschwindigkeit neue Blöcke entstehen. Also muss die Difficulty verändert werden. Doch wenn die Wärhrung dezentral ist, kann ich mir das noch noch nicht erklären.

3. Wie wird bei proof-of-stake-basierten Währungen zufällig der zu belohnende Coin ausgewählt, wenn die Währung dezentral ist?

 

Ich habe im Internet dazu nichts gefunden außer das White-Paper. Das will ich mir aber noch nicht antun. Es gibt auf Youtube und so weiter so viele Fraks die behaupten sie könnten Bitcoin und Kryprowährungen generell "einfach erklären", doch mir erschließt sich das Ganze noch nicht im Detail. Es muss doch eine Quelle geben, die es wirklich detailliert erklärt und zwar verständlicher als das White Paper und auf deutsch. Und ja: ich habe mir zu dem Thema bereits Bücher besort. Die ´gehen meist auch nur oberflächlich an an das Thema heran und erklären lieber was mit Kryptowährungen alles möglich ist, anstatt diese fundamentalen Dinge genau zu erklären. Da dürft ihr mir gerne einen Link senden, aber bitte nur wenn die Quelle dazu wirklich eine Erklärung ist und nicht ("das steht im Protokoll von Bitcoin" oder so).

4. Gutes Stichwort: ich verstehe eigentlich nicht warum es einen Source Code gibt, wenn es doch dezentral ist ...

Vielen Dank schon mal und bis dahin :)

 

 

 

 

 

 

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Edit: Nachfolgendes ist vereinfacht dargestellt, weil dein Text danach klingt, dass dir noch einiges an Grundlagen fehlt.

15 hours ago, Raphaelo317 said:

Wie wird sichergestellt, dass die Regeln der Währung eingehalten werden?

Dadurch, dass alle das gleiche "Programm" verwenden, und in diesem Programm die Regeln drinstehen. Und dadurch, dass das Programm kontrolliert, ob neue Blöcke diesen Regeln genügen - und wenn das ein neuer Block nicht tut, dann wird er verworfen und nicht an die lokale Kopie der Blockchain auf der eigenen Festplatte angehängt.

Aus diesem Grund kann auch kein einzelner anderer das Programm "türken", um sich einen Vorteil zu verschaffen. Wenn seine Blöcke nicht den Regeln entsprechen, dann verwerfen (d.h. ignorieren) alle anderen seine Blöcke. Getürkte Blöcke zu erzeugen hilft also nichts - das ist wie deutlich sichtbar gefälschtes Geld, das nimmt auch keiner an.

Einschränkung: Das ganze funktioniert nur, solange die Mehrheit ehrlich bleibt und das originale Programm verwendet. Wäre sich die Mehrheit einig, gleichermaßen zu bescheißen und diese Blöcke gegenseitig anzuerkennen, dann könnten die Regeln der Währung erfolgreich gebrochen werden.
Allerdings wird dadurch das Vertrauen in diese Währung ruiniert, ihr Wert fällt massiv - man gewinnt folglich abermals nichts durch das Betrügen.

15 hours ago, Raphaelo317 said:

4. Gutes Stichwort: ich verstehe eigentlich nicht warum es einen Source Code gibt, wenn es doch dezentral ist ...

Jedes Programm muss ja irgendwie erst mal erstellt werden - folglich muss es dazu einen Sourcecode geben. Das fertige Programm kann man dann ohne Sourcecode weitergeben.

Aber:
Zum einen muss jedes Programm gepflegt werden - immer mal wieder werden kleinere oder größere Bugs entdeckt, und immer mal wieder kommen Verbesserungen oder Erweiterungen dazu. Dafür braucht mal jedesmal den Sourcecode.


Zum zweiten stellt das Bereitstellen des signierten Sourcecodes auf Github o.ä. sicher, dass man die Möglichkeit hat, an die Originalversion des Programms zu kommen, indem man den Source herunterlädt, die Signatur prüft und das Programm selber kompiliert. Denn - wenn man einer Kryptowährung größere Geldmengen anvertrauen möchte, dann sollte man schon sicher sein, dass man das saubere Originalprogramm hat und keine mit Viren oder Trojaner verseuchte Version, die z.B. deine Coins an einen anderen weiter überweist.


Aus dieser Vorgeschichte ergeben sich die Antworten für deine Fragen 1 und 2:

Im Source und damit im Programm steht genau drin, bei welchem Block wieviel als Minerbelohnung erzeugt werden soll, und wann sich das wie ändert. Genauso ist enthalten, dass nach einer festen Blockzahl gemessen wird, wie lange die Erzeugung dieser Blöcke gedauert hat, und ob abhängig davon die Difficulty gleich bleiben soll oder erhöht oder erniedrigt werden muss - hier kommt wieder zum Tragen, dass alle das gleiche Programm verwenden und somit alle gleichermaßen in einheitlicher Weise die nächste Difficulty ermitteln und damit Blöcke mit niedrigerer Difficulty erkennen können und ablehnen.


Zur Frage 3, wie das bei Power of Stake funktioniert, kann ich selber nichts genaues sagen - nur, dass das deutlich schwieriger und komplizierter ist. Nicht umsonst braucht Ethereum so lange, um das ordentlich hinzukriegen.

Bearbeitet von PeWi
Ergänzung
  • Love it 1
  • Thanks 3
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 22 Minuten schrieb PeWi:

Zum zweiten stellt das Bereitstellen des signierten Sourcecodes auf Github o.ä. sicher, dass man die Möglichkeit hat, an die Originalversion des Programms zu kommen, indem man den Source herunterlädt, die Signatur prüft und das Programm selber kompiliert.

Es gibt kein "Original" im Sinne von "zentral kontrolliert", eher im Sinne von "mehrheitlich supportet".

Es gibt lediglich das "am häufigsten verwendete" Regelwerk.

 

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

6 minutes ago, Jokin said:

Es gibt kein "Original" im Sinne von "zentral kontrolliert", eher im Sinne von "mehrheitlich supportet".

Es gibt lediglich das "am häufigsten verwendete" Regelwerk.

Zugegeben. Das war zu sehr vereinfacht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 14 Stunden schrieb Raphaelo317:

4. Gutes Stichwort: ich verstehe eigentlich nicht warum es einen Source Code gibt, wenn es doch dezentral ist

"Dezentral" bedeutet nicht, dass sich jeder Bitcoin selbst programmiert.

vor 15 Stunden schrieb Raphaelo317:

2. Wie kann die Difficulty angepasst werden? Bitcoin zielt darauf ab, dass in regelmäßigen Abständen ein neuer Block gemined wird und dies dezentral erfolgt. Doch die verwendete Rechenleistung könnte beinflussen in welcher Geschwindigkeit neue Blöcke entstehen. Also muss die Difficulty verändert werden. Doch wenn die Wärhrung dezentral ist, kann ich mir das noch noch nicht erklären.

Die Mining-Rechner ermitteln den Hashwert eines Blocks.

Die Konsensusregeln legen fest wie groß der Hashwert mindestens sein muss. Je niedriger er sein muss, also je mehr führende Nullen er haben muss, desto "unwahrscheinlicher" ist es einen passenden Hashwert zu ermitteln.

Wenn die 2016 Blöcke zu schnell gefunden werden, dann erkennen das alle Nodes und ermitteln den neuen niedrigeren Hashwert gem. der Rechenregeln.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 16 Stunden schrieb Raphaelo317:

1. Wie ist festgelegt, dass die Belohnungeine bestimmte Menge an Bitcoin ist?

Das legen die Konsensregeln fest, an die sich die Mehrheit der Nodes richten und halten. Jede Node, egal ob Miner oder "einfache" Node, könnte ihre eigene Software verwenden, solange diese Software die Konsens- und Protokollregeln korrekt implementiert. Die Konsensregeln besagen u.a., daß sich die Blockbelohnung alle 210000 Blöcke (ca. 4 Jahre bei 10-Minuten-Blockintervall) durch eine binäre Verschiebung halbiert (die binäre Verschiebung stellt sicher, daß z.B. keine Bruchteile von Satoshis zu berücksichtigen wären; jetzt noch nicht relevant, sehr viel später aber schon).

vor 2 Stunden schrieb PeWi:

Dadurch, dass alle das gleiche "Programm" verwenden, und in diesem Programm die Regeln drinstehen.

Das wäre nicht zwingend notwendig, ist aber sicherlich die verbreitetste oder bequemste Lösung. Es genügt, wenn die Mehrheit der verwendeten Programme dieselben Konsens- und Protokollregeln korrekt umsetzen und anwenden. Meines Wissens legen die Konsensregeln auch fest, die Kommunikation mit Nodes zu blockieren, die sich offensichtlich nicht an die Konsensregeln halten, um den/die "Störer" möglichst zu isolieren und den Einfluß auf das Bitcoin-Netzwerk gering zu halten.

 

vor 17 Stunden schrieb Raphaelo317:

4. Gutes Stichwort: ich verstehe eigentlich nicht warum es einen Source Code gibt, wenn es doch dezentral ist ...

Mir scheint, deine Interpretation von "dezentral" unterscheidet sich vom Krypto-Konsens. Für Bitcoin bedeutet "dezentral", daß keine Instanz/Entität bestimmen kann, wer mitmacht und wer nicht. Jede/r kann eine Node "ins Netzwerk" hängen, jede/r kann sich am Minen von Blöcken beteiligen, jede/r kann valide Transaktionen ins Bitcoin-Netzwerk senden.

  • Love it 1
  • Thanks 1
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 17.4.2022 um 20:20 schrieb Raphaelo317:

Hallo Leute,

ich hätte mal eine technische Frage zu Kryptowährungen (das habe ich bisher nicht verstanden): Wie wird sichergestellt, dass die Regeln der Währung eingehalten werden? Ich erläutere mal am Beispiel Bitcoin: Ein Block besteht aus dem seinem Header, dem Hash des vorherigen Blocks, einer Liste an Transaktionen, die Transaktion mit der Belohnung für das Minen an sich selbst ()also den Miner) (aktuell 6,25 Bitcoin) und der Nonce. Nun, wenn jemand einen sehr kleinen Hashwert findet, kann er den jeweiligen Block veröffentlichen und er wird über das Netzwerk weitergereicht. Der Block lässt sich leicht überprüfen und durch die spezielle Transaktion an den Miner kann ihn auch niemand anders für sich beanspruchen. So weit, so gut. Die sehr simple Erklärung von Bitcoin. Mir entgeht dabei doch noch etwas, denn sonst macht es keinen Sinn: 1. Wie ist festgelegt, dass die Belohnungeine bestimmte Menge an Bitcoin ist?

Von den Erschaffern von Bitcoin wurde eine Belohnung von 50 Bitcoin pro Block festgelegt, die sich alle 4 (oder waren es zwei?) Jahre halbiert. Dadurch dass jedesmal genau diese Belohnung erwartet wird, würde sich der Hashwert sofort ändern, wenn jemand sich zum Beispiel 51 Bitcoin als Belohnung auszahlen möchte. Und dadurch würde der Hashwert nicht mehr mit dem übereinstimmen, was die anderen Miner erwarten. Es wird inkonsistent. Okay, doch was passiert nach Ablauf des besagten Zeitraums? Stellen nach exakt vier Jahren dann alle zum gleichen Zeitpunkt auf 25 Bitcoin um und erwarten genau das, weil die Erschaffer von Bitcoin das so wollten? Ich nehme an, die Anzahl der bereits gefundenen Blöcke fließt in den Hashwert ein ... Aber wie genau funktioniert das?

2. Wie kann die Difficulty angepasst werden? Bitcoin zielt darauf ab, dass in regelmäßigen Abständen ein neuer Block gemined wird und dies dezentral erfolgt. Doch die verwendete Rechenleistung könnte beinflussen in welcher Geschwindigkeit neue Blöcke entstehen. Also muss die Difficulty verändert werden. Doch wenn die Wärhrung dezentral ist, kann ich mir das noch noch nicht erklären.

3. Wie wird bei proof-of-stake-basierten Währungen zufällig der zu belohnende Coin ausgewählt, wenn die Währung dezentral ist?

 

Ich habe im Internet dazu nichts gefunden außer das White-Paper. Das will ich mir aber noch nicht antun. Es gibt auf Youtube und so weiter so viele Fraks die behaupten sie könnten Bitcoin und Kryprowährungen generell "einfach erklären", doch mir erschließt sich das Ganze noch nicht im Detail. Es muss doch eine Quelle geben, die es wirklich detailliert erklärt und zwar verständlicher als das White Paper und auf deutsch. Und ja: ich habe mir zu dem Thema bereits Bücher besort. Die ´gehen meist auch nur oberflächlich an an das Thema heran und erklären lieber was mit Kryptowährungen alles möglich ist, anstatt diese fundamentalen Dinge genau zu erklären. Da dürft ihr mir gerne einen Link senden, aber bitte nur wenn die Quelle dazu wirklich eine Erklärung ist und nicht ("das steht im Protokoll von Bitcoin" oder so).

4. Gutes Stichwort: ich verstehe eigentlich nicht warum es einen Source Code gibt, wenn es doch dezentral ist ...

Vielen Dank schon mal und bis dahin :)

Das wird dir alles beantworten.

https://github.com/bitcoinbook/bitcoinbook

https://github.com/ethereumbook/ethereumbook

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...
Am 17.4.2022 um 18:20 schrieb Raphaelo317:

-3. Wie wird bei proof-of-stake-basierten Währungen zufällig der zu belohnende Coin ausgewählt, wenn die Währung dezentral ist?

Du meinst wahrscheinlich, wie wird zufällig der zu belohnende Netzwerkteilnehmer ausgewählt, oder? Ansonsten verstehe ich die Frage nicht. Da ja nirgendwo im Prozess ein Coin ausgewählt wird, sehr wohl aber ein Netzwerkmitglied, welches für das Abarbeiten der Transaktionen mit Coins "belohnt" wird.

Das ist ne hervorragende Frage und genau der Knackpunkt zwischen PoW und PoS. Bei PoW wird durch den Trick des "Hash-findens" sichergestellt dass unter allen Netzwerkteilnehmern zufällig gewählt wird, mit einer Wahrscheinlichkeit die exakt dem Anteil an Rechenleistung an der Gesamt-Rechenleistung entspricht. Dies geht voll dezentral, jeder Teilnehmer hasht so vor sich hin, bis er zufällig(!!) die richtige Lösung findet. Die von allen geteilten Konsensregeln stellen sicher dass jeder unter gleichen Bedingungen sucht...

Bei Proof of Stake basierten Währungen muss dieser voll dezentrale Auswahlmechanismus irgendwie reproduziert werden, ohne dass von den einzelnen Teilnehmern ein Arbeitsaufwand verrichtet wird. Dies dezentral zu ver-coden ist nicht trivial. Im Prinzip muss ein zuverlässiger dezentraler!! Zufallsmechanismus implementiert werden, der sicherstellt das zufällig unter den Nodes ausgewählt wird und dabei keine Manipulationsmöglichkeit besteht, denn die würde Tür und Tor für Missbrauch öffnen.

Ich hab auf die schnelle keinen guten Link zum Thema gefunden, meistens werden nur oberflächlich shards, comitees, validators erwähnt, und das wars dann. Hab vor paar Monaten mal paar Links geposted, die auf das Thema und potentielle Angriffsvektoren eingehen. Kannst du dir ja mal reinziehen, da schlacker ich zumindest mit den Ohren und bin dann auch irgendwann raus...

Unterm Strich ist die Geschichte jedenfalls die: Eine voll dezentrale, echt zufällige Netzwerkdynamik wie sie bei PoW automatisch entsteht im Sinne von PoS zu reproduzieren ist hochkomplex, nur von wenigen im Detail verstanden (im Gegensatz zum extrem simplen PoW), beinhaltet eine Vielzahl von Instanzen, Regeln und Hierarchien, und ist dadurch prinzipiell schonmal viel fehleranfälliger als das BTC Dinosaurier-PoW.

Was nicht bedeutet dass es nicht möglich ist, das hoffen wir alle, die meisten werden etwas ETH im Portfolio haben. In diesem Sinne seien auch die ganzen Ethereum-Killer zu betrachten, jeder Ansatz der hier die Super-Lösung präsentiert, skalierend, sicher, mit Millionen von Tps, ist mit gesunder Skepsis zu betrachten. Ich nehm das ganze nur in den Augenwinkeln wahr, aber zB Solana war ja dieses Jahr ein riesen Thema, und siehe da, alle paar Monate gibtsn solides Problem, letztens ist die komplette Blockchain sogar für 7 Stunden eingefroren und abgestürzt, und war nur durch ZENTRALE Massnahmen reaktivierbar...

Ich persönlich halte eine echt dezentrale PoS Lösung für sehr schwer umzusetzen, und würde da tendenziell Ethereum den grössten Entwicklungsstand zuschreiben, einfach aufgrund seiner Rolle im Markt und der Dauer mit der bereits intensivst daran gearbeitet wird. Alleine wie oft Deadlines und Timelines hier verschoben wurden ist ein guter Hinweis darauf, wie schwer die Sache ist. Der ganze Rest sind Hypes, super um zu Zocken, aber Vorsicht mim feuchten Traum des Long-Term-Investments.

 

  • Love it 1
  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.