Das alles hört sich, genauso wie dein kompletter restlicher Beitrag, sehr plausibel an und hat mich doch ein bisschen zum Grübeln gebracht.
Auch wenn sich die ganzen spieltheoretischen Überlegung sinnvoll anhören, finde ich eine ausschließliche Abhängigkeit davon unbefriedigend. Ich habe selbst im Forum immer wieder geschrieben, dass man durch ECC, SHA256 und RIPEMD160 eine dreifache Sicherheit hat.
Aber das ist ganz offensichtlich entweder Bullshit, oder ich übersehe etwas. Ich fasse es nochmal mit meinen Worten zusammen.
Der Bruch eines kryptographischen Verfahrens findet nicht immer schön kontinuierlich statt, so dass man heute noch 100 Mrd, morgen 10 Mrd und übermorgen 1 Mrd Jahre braucht, um Keys zurückzurechnen.
Es gibt sehr wohl eine absolut nicht vernachlässigbare Wahrscheinlichkeit, dass ein neues Angriffsverfahren von heute auf morgen die Sicherheit auf praktisch 0 reduziert. Das ist keine FUD, sondern die Erfahrung der letzten Jahrhunderte, bis zu aktuellen Verfahren wie RSA. Nehmen wir also mal den schlimmsten Fall an.
Natürlich kommt erst einmal niemand an meine Coins wenn ECC morgen komplett gebrochen wird, was ich bisher als sehr beruhigend empfunden habe. Aber wenn man so wie du einen Schritt weiterdenkt, hat man davon nicht viel.
Sagen wir alle hätten ihre Coins auf PublicKeyHash oder ScriptHash Adressen, was bei Taproot schon nicht mehr der Fall wäre.
Die Coins sind sicher, aber niemand könnte sie mehr transferieren, da im Moment der Transaktions-Übermittlung an das Netzwerk der PublicKey veröffentlicht wird.
Was macht man nun?
Selbst wenn man innerhalb kürzester Zeit auf eine neues Verfahren umsteigen würde, bringt das nichts:
-
Bis zum Update auf eine neue Software vergehen sicher mindestens Wochen. Sollte solange der Zahlungsverkehr in einem Bitcoin-Standard stillstehen?
→ Mögliche Lösung (?):
Man bleibt bis dahin in Second Layern. Allerdings bin ich mir nicht sicher, ob man die fehlende Möglichkeit für onchain Transaktionen in dieser Phase als Sicherheitslücke missbrauchen könnte.
Insbesondere Lightning arbeitet ja auch noch mit vor-signierten Transaktionen, was wohl ein Problem wäre. Es könnte sein, dass alle Bitcoin in Lightning dann schon direkt unsicher wären. -
Sobald die neuen Adress-/PublicKey-Typen implementiert sind, müsste man seine Coins dorthin transferieren.
→ Mögliche Lösung (?):
Über diesen Punkt habe ich nun etwas nachgedacht, aber mir fällt nicht ein wie das funktionieren sollte.
Ich leake durch die Transaktion schließlich meinen PublicKey. Dann dürften diese Transaktionen nur direkt an Miner übermittelt werden, was in einem P2P Netzwerk schwierig ist. Und man müsste diesen Minern vertrauen, dass sie aus Eigeninteresse in dieser schweren Zeit niemandem die Coins stehlen, sondern für einen reibungslosen Übergang sorgen.
Gerade der zweite Punkt erscheint mir sehr unrealistisch.
Falls ich nichts übersehe komme ich zu dem Ergebnis, dass man eine solche Abhängigkeit von Einzelfehlern bei einer Weltwährung nicht haben darf.
Mögliche Lösung:
Man verwendet in Zukunft neue PublicKey-Typen, bei denen der PublicKey durch zwei kryptographische Verfahren gebildet wird. Diese beiden Verfahren sollten möglichst diversitär sein, dürfen also durch denkbare Angriffe nicht beide betroffen sein (Common Cause Failure).
Die Schwierigkeit dabei ist üblicherweise, dass man sich nicht alle möglichen CCF im Voraus überlegen kann. Man muss also einfach auf möglichst viele unterschiedliche Grundprinzipien der beiden Verfahren achten. Dabei würden die ganzen komfortablen Schnorr-Features wahrscheinlich wegfallen, aber das wäre mir nach der Abwägung egal.
Bei der Bildung des PublicKeys gäbe es wahrscheinlich mehrere Möglichkeiten. Entweder er setzt sich schlicht aus den PublicKeys der beiden Verfahren zusammen, was allerdings den Speicherbedarf auf der Blockchain erhöhen würde. Oder man findet eine elegante Möglichkeit wie man die beiden Verfahren kombinieren kann.
So oder so bräuchte man wahrscheinlich etwas mehr Speicher und mehr CPU-Aufwand bei der Validierung der Transaktionen. Das wäre es aber m.E. absolut wert.
Was hältst du, oder auch jeder andere davon? Das hat man doch sicher irgendwann in der Vergangenheit schon einmal diskutiert?