Ich poste dies, nachdem ich die Antworten darauf gelesen habe: Wo wird die Signatur in einer SegWit-Transaktion gespeichert?
Ich habe durch das Lesen herausgefunden, dass in Segwit die "Zeugen" (oder Signaturen), die die Authentizität einer Transaktion bestätigen, immer noch in der Blockchain gespeichert sind. In diesem Fall sollte die gleiche Menge an Bits von einer bestimmten Transaktion verbraucht werden, als ob Segwit nicht verwendet würde. Wenn die Blockgröße gleich bleibt, sagen wir 1 MB, dann sollte sie genau die gleiche Anzahl von Transaktionen enthalten.
Ich habe eine alternative Möglichkeit. Nehmen wir an, was tatsächlich an die Knoten gesendet wird, ist eine Transaktion mit einem leeren Signaturfeld (ich denke, dass ein solches Feld aufgrund von Multi-Sig-Sachen und Skripten nicht wirklich existiert, aber ertragen Sie mich). Dann können die Unterschriften über einen separaten Kanal gesendet werden. Was tatsächlich auf die Blockchain gestempelt wird, ist eine Transaktion mit einem leeren Signaturfeld. Und dann akzeptieren die Nicht-Segwit-Knoten wegen der längsten Blockchain-immer-gewinnt-Regel einfach, dass die Blockchain mit der größten Anzahl von Transaktionen, die einige lustige signaturlose Transaktionen enthält, die maßgebliche Blockchain ist.
Aber anscheinend ist die Realität komplizierter.
Außerdem stellt sich die Frage, inwieweit die längste Blockchain-immer-gewinnt-Regel missbraucht werden kann. (Das Wort „missbraucht“ impliziert keine negative Meinung). Nehmen wir zum Beispiel an, ich erfinde FoobarWit. FoobarWit ist das gleiche wie Bitcoin, aber mit einer größeren Blockgröße (kein Segwit). Sobald genügend Knoten FoobarWit übernehmen, werden mehr solcher Knoten das Mining-Rennen gewinnen, und andere Knoten werden effektiv größere Blöcke akzeptieren, da die Historie länger ist. Ich weiß, dass dem nicht so ist, aber warum?
Die Antwort auf die Frage „Sind die Segwit-Zeugen Teil der Blockchain“ hängt davon ab, was Sie als Blockchain definieren:
Laut alten Pre-Segwit-Knoten ist die Antwort nein , da sie sich nicht darum kümmern oder die Zeugen empfangen.
Laut neuen Segwit-Knoten lautet die Antwort ja ; die Zeugen sind ebenso Teil der Kette wie alles andere und unterliegen ebenso vielen Validierungsregeln.
Segwit erhöht also den Durchsatz leicht, auf Kosten der Vergrößerung der Blockchain. Hier gibt es keine Wunderwaffe, und dieser Aspekt von Segwit ist einfach eine Erhöhung der Blockgröße. Es handelt sich nicht um eine Skalierbarkeitsverbesserung.
Segwit war in erster Linie eine Lösung für das Problem der Formbarkeit von Transaktionen und öffnete die Tür für verschiedene Protokolle auf höherer Ebene, die dadurch behindert wurden, dass sie nicht in der Lage waren, über zukünftige On-Chain-Transaktionen nachzudenken, die noch nicht veröffentlicht wurden. Darüber hinaus hat es auch die Anreizstruktur ein wenig verbessert (was die Ausgaben relativ billiger macht, wenn es um die Schaffung von Ergebnissen geht). Als letzten Nebeneffekt hat es auch die Blockgröße abwärtskompatibel etwas erhöht.
Was Ihre Frage zu einem anderen Fork betrifft, die noch weiter geht: Was Ihre Software tut, hat keine Auswirkungen auf diejenigen, die sie nicht übernehmen. Selbst wenn es die gesamte Hashrate der Welt an Bord hat, werden sich alte Nodes nicht darum kümmern oder Ihre zusätzlichen Daten sehen.
Das Blocklimit von 1 MB gilt nach der Segwit-Aktivierung weiterhin, bezieht sich jedoch ausschließlich auf die im Pre-Segwit-Format serialisierten Blocktransaktionen, die keine Zeugen enthalten. Diese 1 MB sind heute noch Konsens.
Wenn Segwit aktiviert ist, gibt es eine zusätzliche Blockgrößenbeschränkung, die für Segwit-Daten gilt: Es ist eine „Gewichts“-Grenze von 4 MB pro Block.
Das Gewicht errechnet sich wie folgt:
Wenn der Zeugenanteil der gesamten Transaktionsdaten auf 100 % zunimmt, nähert sich die effektive Blockgrößenbegrenzung in Byte 4 MB.
op_return
Feld nicht zur klassischen 1MB Blockgröße?
Murch
wlad