Warum lehnen Nicht-SegWit-Knoten den SegWit-Block nicht ab, da es keinen Zeugen gibt?

SegWit soll abwärtskompatibel sein. Wenn ein SigWit-Block an einen Nicht-SegWit-Knoten weitergeleitet wird, wird der Zeugenteil entfernt. Wenn dies der Fall ist, wäre es nicht ungültig, da der Nicht-SegWit-Knoten keinen Zeugen/Unterschrift in der Transaktionseingabe sieht?

Die Ausgabe wird also in eine Ausgabe geändert, die jeder ausgeben kann? Wenn ja, was hindert sie daran, von jemandem ausgegeben zu werden, der nicht der beabsichtigte Empfänger ist?

Antworten (2)

Die Ausgabe wird also in eine Ausgabe geändert, die jeder ausgeben kann? Wenn ja, was hindert sie daran, von jemandem ausgegeben zu werden, der nicht der beabsichtigte Empfänger ist?

Nein, es wird nicht geändert.

Eine SegWit-Ausgabe ist aus der Sicht alter Nodes jeder-kann-ausgeben . Dies bedeutet, dass es für sie legal ohne Unterschrift ausgegeben werden kann.

Für neue Knoten hat es eine andere Bedeutung und erfordert, dass ein (gültiger) Zeuge ausgegeben wird. Knoten, die sich um SegWit-Ausgaben kümmern, erzwingen diese Regel und akzeptieren keine Blockchain, die ohne einen solchen Zeugen ausgibt.

Wenn dies der Fall ist, würde eine Transaktion nicht als ungültig angesehen werden, da der Nicht-SegWit-Knoten keinen Zeugen/Unterschrift in der Transaktionseingabe zum Entsperren des Guthabens sieht?
Die Definition eines „Jeder-kann-Ausgaben“-Outputs ist, dass für die Ausgabe keine Unterschrift oder Zeugen erforderlich sind.
Was passiert mit einer Transaktion mit der Ausgabe „Nur jemand kann Geld ausgeben“, die von einem SegWit-Knoten an einen Nicht-SegWit-Knoten gesendet wird?
Der Nicht-SegWit-Knoten interpretiert es als etwas, das jeder ausgeben kann, und akzeptiert es.
Um die UTXO-Ausgabe zu entsperren scriptPubKey, benötigt der alte Nicht-SegWit-Knoten immer noch scriptSig/witness in der Eingabe, was fehlt. Die Transaktion wird also als ungültig behandelt, oder? Wird scriptPubKeyaus der Ausgabe entfernt, wie Zeuge aus der Eingabe?
Nein, lesen Sie meine Antwort noch einmal: Es hat sich nichts geändert. Die scriptPubKeyAusgaben für SegWit können mit einem leeren ausgegeben werden scriptSig. Für SegWit-Knoten ist jedoch ein gültiger Zeuge zum Ausgeben erforderlich. Alte Knoten kennen oder kümmern sich nicht um Zeugen und akzeptieren überhaupt keine Unterschrift (das ist die Definition von „jeder kann Geld ausgeben“).
Ich kann gerade nicht im Chat antworten, aber Ihre letzte Nachricht ist genau richtig: SegWit-Ausgaben verwenden ein spezielles Sperrskript, das ohne Entsperrskript (zu alten Knoten) ausgegeben werden kann.

Wenn ja, was hindert sie daran, von jemandem ausgegeben zu werden, der nicht der beabsichtigte Empfänger ist?

Die meisten Knoten (diejenigen, die aktualisiert haben) würden diese Transaktion ablehnen. Jeder Miner würde diese Transaktion aus Angst ablehnen, dass sein Block (und seine Blockbelohnung) abgelehnt würden.

Sie können sich jedoch in eine Kette verzweigen, die diese Ausgaben ausgibt, wenn Sie möchten.