Wie kann ein Wechsel zu einem neuen POW umgesetzt werden, falls SHA256 zu scheitern droht? Wie wechseln ohne wieder auf ganz niedrige Difficulty aufzubauen da das Netzwerk dann ja wieder leichter angreifbar wäre?
Durch eine Hardfork.
Das ist das grössere Problem. Entweder man nimmt einen anderen Hash-Algo für den es schon ASICs gibt (z.B. von einem Altcoin) oder man started bei „0“ mit CPU und/oder GPU Mining.
Ich sehe aber aktuell kein Problem mit SHA256.
Zuerst einmal würde ich den Übergang auf eine neue Hashfunktion nicht als neuen Konsensmechanismus bezeichnen.
Man muss unterscheiden, wie SHA-256 scheitert. Die Bezeichnung „Bruch“ wird in der Kryptographie allgemein für jede Art von ungewollter Beschleunigung durch andere, bessere Rechen-Verfahren verwendet.
Konkret sehe ich diese Fälle eines „Scheiterns“:
-
1) Beschleunigtes Würfeln/Losen durch neue Technologien und/oder bessere Verfahren
-
2) Direktes Zurückrechnen durch mathematischen Bruch:
2a) Bruch wird plötzlich überraschend entdeckt
2b) Bruch zeichnet sich langfristig ab
Für Fall 2) bleibt noch zu sagen, dass es nicht reicht, auf irgendeinen Input zurückrechnen zu können, der einen gewünschten Hash-Bereich ergibt. Da die Struktur und der Inhalt des zu hashenden Blockheaders in großen Teilen vorgegeben ist, muss man unter dieser Randbedingung auf die variablen Anteile zurückrechnen können.
Wenn ein allgemeines Zurückrechnen irgendwann also möglich sein sollte, heißt das noch nicht, dass im Bezug auf das Mining schon Fall 2) eingetreten ist. Spätestens dann sollte man aber wie in Fall 2b) reagieren.
Lösungsansätze
Fall 1)
Dieser Fall kann durch unterschiedliche Ursachen eintreten. Beispielsweise neue Rechner-Technologien oder algorithmisch/mathematisch beschleunigte Verfahren. Oder auch beides, da neue Verfahren evtl. erst auf neuen Technologien einsetzbar sind (z.B. Quantencomputer).
Ich stecke wirklich nicht im Thema drin. Aber ich würde die bisher bekannten „Brüche“ von SHA-256 für geringere Rundenzahl als 64 eher als ungewollte Beschleunigungen des Verfahrens einordnen, also diesem Fall 1).
Zum Beispiel hier haben wir das nur kurz angerissen:
→ Wann gilt sha256 als gescheitert?
Sollte eine solche Beschleunigung eintreten, gehe ich trotzdem von einem fließendem Übergang zu neuen Hashrate-Größenordnungen aus. Außerdem wäre keine Änderung auf einen neuen Hashalgorithmus notwendig, da das immer noch nur einem beschleunigten Würfel-/Los-Verfahren entspricht, was durch Difficulty-Adjustments ausgeglichen wird.
Siehe hierzu:
→ Kommentar zu: Quantencomputer, BITCOIN und Bugs | Jörg Hermsdorf im Interview
→ Big News for Quantum Computing: First Scalable Platforms
Fall 2)
Sollte dieser unwahrscheinliche Fall eintreten, wäre es wiederum nicht unwahrscheinlich, dass das überraschend und plötzlich passiert.
Ein SHA-256 Hash wird in 64 identischen „Runden“ aus dem Input berechnet. Es wäre denkbar, dass ein echter mathematischer Bruch zuerst für geringe Rundenzahlen entdeckt wird und dann erweitert wird. Die Frage ist, wie schnell dieser Erweiterungs-Prozess dann vonstatten geht.
Ich würde die Wahrscheinlichkeiten von 2a) und 2b) als Nicht-Experte aus dem Bauch heraus in ähnlichen Größenordnungen einschätzen.
Fall 2a)
Es bliebe nicht genügend Zeit, um mit einer Änderung des Bitcoin-Protokolls zu reagieren. Die einzige Möglichkeit, das in den Griff zu bekommen, ist also präventiv zu handeln.
Deshalb bin ich schon mehrfach bei solchen Überlegungen zum Ergebnis gekommen, dass man an allen derartig sicherheitsrelevanten Stellen auf mindestens zwei kombinierte Verfahren setzen sollte, um Einzelfehler-fest zu sein.
Siehe z.B. Diskussion im verlinkten Quantencomputer-Thread.
Fall 2b)
Nur das ist der Fall, auf den du dich mit deiner Frage eigentlich bezogen hast.
Wir befinden uns dann in einer Phase, in der SHA-256 noch sicher ist, aber bald nicht mehr sein wird.
Da sehe ich wie @Cheesebaron tatsächlich ein größeres Problem.
Wichtige Anforderungen an eine Lösung wären:
-
Der Übergang zum neuen Verfahren darf nicht zu einem Einbruch der Hashrate bzw. des Sicherheitsbudgets führen!
Ansonsten würde man sich phasenweise wieder in dem leicht angreifbaren Zustand befinden, in dem sich Bitcoin und andere PoW-Netzwerke zu Beginn befunden haben. -
Die Umsetzung muss trotzdem so implementiert sein, dass ein Marktincentive die Miner vom alten zum neuen Verfahren treibt.
Ansonsten hätte man nichts gewonnen, wenn der Großteil der Miner weiterhin SHA-256 bevorzugen würde.
Eine direkte Konsequenz aus der ersten Anforderung ist, dass man nicht einfach zum Block N auf eine neue Hashfunktion wechseln könnte. Man braucht einen fließenden Übergang von SHA-256 zu einer neuen Hashfunktion.
In diesem Fall muss man das wegen der zweiten Anforderung so hinkriegen, dass die Miner freiwillig langsam zum neuen Verfahren wechseln.
Wahrscheinlich sollte man sich mal bei anderen Coins umsehen, die so einen Wechsel schon durchgeführt haben.
Ein Ansatz könnte sein, dass man über einen Hard Fork beide Verfahren zulässt, also SHA-256 und die neue Hashfunktion. Ein Block ist dann gültig, wenn man mit einer der beiden Hashfunktionen einen gültigen Hash erreicht, wobei auch für beide separat regelmäßig die Difficulty angepasst wird.
Damit man zu Beginn mit dem neuen Verfahren keine Double Spends oder DOS Angriffe (leere Blöcke) durchführen kann, müsste es eine weitere Anforderung geben. Beispielsweise dass mindestens jeder zweite (oder n-te) Block ein SHA-256 Block sein muss.
Das würde dazu führen, dass sich die Miner zu Beginn auf die neue Hardware stürzen würden. Es gäbe phasenweise mehr Blöcke als gewünscht. Allerdings nicht so viele, dass der Konsens gefährdet wäre, wenn es die SHA-256-Bedingung von oben gäbe.
Dieser Mechanismus sollte zu einem Gleichgewicht führen, in dem sich das Sicherheitsbudget, also die Mining-Kosten für das neue Verfahren dem alten Verfahren annähert. Irgendwann kann man dann in einem zweiten Hard Fork das alte Verfahren SHA-256 komplett rauswerfen.
Keine Ahnung ob das funktioniert. War nur ein erster Gedanke…
Sehr ausführliche Schilderung deiner Ideen, das mit dem soften Übergang durch 2 Algos hatte ich auch schon für mich angedacht. Auf jedenfall wird das nochmal ne spannende und hoffentlich nicht zu unsichere Zeit für Bitcoin. Bis dahin ist Bitcoin vlt. schon bei einer Trillion Marketcap und es sollte nichts anbrennen🔥
Dass das keine unsichere Zeit für Bitcoin wird kann man getrost ausschließen. Der Kurs dürfte dann brutalst Achterbahn fahren.
Du meinst: „keine sichere Zeit“ ?
Eine dreifache Verneinung, Respekt!
Er meint es wird auf jeden Fall eine unsichere Zeit.
So verstehe ich es auch. Und das trifft nur zu, wenn nichts getan wird bis es mit SHA-256 irgendein Problem gibt. Das wäre aber völlig unverantwortlich, insofern denke/hoffe ich auch, dass es irgendwann mal einen Übergang zu einem Hybrid-Hash-Algorithmus gibt. Dass 2 Algos gleichzeitig brechen, ist doch noch mal ne Ecke unwahrscheinlicher.