SegWit uses an “AnyOneCanSpend” address so that transactions will be validated and recorded into blocks, even though the sender/receiver signature data is separated
Das ist ein Missverständnis von Wright.
Es gibt aktuell kein Segwit Client der auf dem P2P Layer die Signaturen separat überträgt, es gibt nur Clients, wie Bitcoin Unlimited die Segwit Signaturen überhaupt nicht übertragen.
Die Witness Daten sind trotzdem dem Namen Segregated Witness nicht einfach abgetrennt, sondern werden immer mit der Transaktion übertragen, jedoch niemals separat.
Sobald Segwit aktiv ist, kann Bitcoin Core ab 0.13.1 auf dem P2P Layer bei einem Block der Segwit Transaktionen enthält entweder den ganzen Block und die Transaktionen inklusive Witness Daten, oder gar nicht empfangen.
Das Vorenthalten von Witness Daten ist zumindest mit Bitcoin Core nicht möglich.
Damit fällt die ganze Argumentation in sich zusammen.
Den Mining-Pools steht es bereits jetzt frei für normale Transaktionen die Signaturen nicht zu überprüfen oder ein anderen P2P Layer zu nutzen, der auch für normale Transaktionen die Signaturen nicht verarbeitet.
Mining-Pools benutzen bereits jetzt eigene P2P Netze und Technologien um die Blöcke mit sehr niedriger Latenz untereinander zu übertragen -> Spy-Mining, FIBRE, Xthin-Xpedited, Cornell Falcon Network, etc.
Durch ökonomische Anreize werden die Miner sich aber hüten invalide Blöcke zu produzieren, weil Sie die Bitcoins ja nirgendwo verkaufen können, weil Sie dann einen neuen Altcoin erschaffen hätten.
Die Blöcke erreichen die ökonomischen Nodes und ein normales Wallet jedoch niemals, wenn die Miner ungültige Blöcke produzieren.
Die Miner können sich also nur gegenseitig kurzfristig schaden.
Ein normaler Bitcoin-Nutzer wird davon nicht betroffen sein.
Das Risiko besteht insofern grundsätzlich, dass wenn Miner die ökonomische Mehrheit überzeugen können auch ungültige Blöcke anzunehmen, also dass Sie irgendwelche Bitcoins auch ohne Signaturen senden (klauen) können.
Das ist aber unabhängig von Segwit.
Und es ist sehr unwahrscheinlich, weil dann kein Bitcoin mehr sicher wäre und somit alle Bitcoins wertlos, was sicher nicht im Interesse von den Minern ist.
Zudem geht das immer nur mit einem Hard-Fork und jedem steht es frei sich zu entscheiden, ob er einem Hard-Fork folgen will.
Der einzig mir bekannte theoretische Angriff ist es die Blockchain mehrere Wochen neu zu schreiben.
Also alle Blöcke neu zu errechnen, die in den zwei Wochen erstellt wurden, welche zur Aktivierung von Segwit geführt haben.
So würde man praktisch Segwit nachträglich deaktivieren und könnte dann einen Replay-Angriff starten.
Weil Segwit dann nie aktiv war aus der Sicht der Blockchain, wären Segwit Transaktionen bei einem Replay-Angriff Anyonecanspend.
Das heißt aber, dass alle Transaktionen mit mehreren Tausend Bestätigungen auf einmal wieder ungültig würden, was ebenfalls zu einem Zusammenbruch von Bitcoin führen würde, also auch nicht im Interesse der Miner liegen kann.
Zudem könnte man sich gegen den Angriff mit einem UASF schützen, denn Segwit Transaktionen haben kein einfaches Anyonecanspend, sondern ein Witness-Program, welches Segwit Transaktionen von absichtlichen Anyonecanspend unterscheidet.
Somit hat man eine leichte Unterscheidungsmöglichkeit um den Angriff auszuhebeln.
Meine Meinung ist genau das Gegenteil:
Je mehr Bitcoins wir in Segwit Outputs haben, desto sicherer wird Segwit, denn mehr Leute haben ein Interesse daran, dass diese Segwit Coins nicht gestohlen werden.
Ihr solltet berücksichtigen, dass Wright der Meinung ist, dass ausschließlich die Miner festlegen, welche Regeln für Bitcoin gelten. Das stimmt allerdings nur, wenn man das so zulässt.