Wie verifiziert ein SegWit-Knoten einen Block?

Ich weiß, dass Nicht-SegWit-Knoten einen Block ohne witness.

Muss für den SegWit-Knoten witnessein Block verifiziert werden? Weil ich weiß , dass witnesssie als wtxidMerkle-Knoten in Coinbase festgelegt sind. Was ist der Zweck des wtxidMerkle-Knotens?

Wenn witensses für den SegWit-Knoten notwendig ist, kann ich dann sagen, dass witnesses aus Sicht des SegWit-Knotens ein Teil der Blockchain ist?

Antworten (2)

Muss für den SegWit-Knoten witnessein Block verifiziert werden? Weil ich weiß , dass witnesssie als wtxidMerkle-Knoten in Coinbase festgelegt sind. Was ist der Zweck des wtxidMerkle-Knotens?

Wenn ein Block Transaktionen mit Zeugen enthält, wenn der Block dann keinen Zeugen hat, wird der Segwit-Knoten ihn trotzdem validieren, aber er wird feststellen, dass er ungültig ist. Da Segwit ein Soft Fork ist, wissen Segwit-Knoten immer noch, wie Blöcke ohne Zeugen aussehen, und können sie als solche verifizieren. Dies liegt daran, dass sich die Blockstruktur eigentlich nicht geändert hat, was sich geändert hat, war die Transaktionsstruktur.

Wenn witensses für den SegWit-Knoten notwendig ist, kann ich dann sagen, dass witnesses aus Sicht des SegWit-Knotens ein Teil der Blockchain ist?

Ja.

Miner werden also alles behalten witnessund niemals wegwerfen, nicht wahr? Die Leute sagen immer, dass sich die Blockgröße witnessnach der Implementierung von Segwit nicht geändert hat und kein Teil der Blockchain ist. Aber jetzt habe ich es. Es ist nur für die Ansicht des Nicht-SegWit-Knotens. Deine Antwort macht mich klar. Vielen Dank!

Nun, ein Segwit-Knoten wird tatsächlich einen Block mit Transaktionen ohne Zeugen als „ungültig“ klassifizieren.

Siehe diese Antwort, Transaktionsüberprüfung durch Miner VS Full Node mit und ohne SegWit

Ich glaube, es beantwortet den größten Teil Ihrer Frage besser / eingehender als ich könnte.

Eine Blockgröße von 1 MB gilt also nur für Nicht-SegWit-Knoten und mehr als 1 MB für SegWit-Knoten, richtig?
Das ist nicht wirklich wahr. Es gibt einfach eine neue Einheit „Gewicht“, die als 4*Nicht-Zeugen-Größe + Zeugen-Größe definiert ist, die auf 4000000 beschränkt ist. Wenn ein Block 1000000 Bytes Nicht-Zeugen-Daten enthält, gibt es keinen Platz mehr für Zeugen-Daten.