Ist SegWit eine Erhöhung der Blockgröße oder eine effizientere Nutzung von Blockspace?

Diese Frage wird häufig auf reddit gestellt, und ich denke, es wäre von Vorteil, hier eine kanonische Antwort zu haben:

Ist SegWit eine Erhöhung der Blockgröße oder eine effizientere Nutzung von Blockspace?

Antworten (1)

Ja und nein. Es kommt darauf an, wie man die Frage formuliert.

  1. Es handelt sich um eine Erhöhung der Blockgröße, da Sie eine größere Anzahl nützlicher Transaktionen in einen Block einfügen können.

    Wenn Sie eine nützliche Bitcoin-Transaktion durchführen möchten, muss diese signiert werden, damit niemand sie ändern kann. Wenn Sie einen Weg finden, dass die Blockgrößenbegrenzung die Signatur nicht zählt, können Sie mehr Transaktionen in einen Block packen. Daher ist Segwit eine Erhöhung der Blockgröße.

  2. Es handelt sich nicht um eine Erhöhung der Blockgröße, da eine Erhöhung der Blockgröße ein Hard Fork wäre, was Segwit nicht ist.

    Es gibt eine Konstante in Bitcoin:

    static const unsigned int MAX_BLOCK_SIZE = 1000000;
    

    Wenn Sie dies auch nur ein wenig erhöhen, wird es möglich, eine Sperre zu erstellen, die neue Kunden akzeptieren, alte jedoch nicht. Dies wird allgemein als Hard Fork bezeichnet.

    Segwit ist keine Hard Fork. Es werden keine Regeln geändert oder entfernt; es fügt nur neue Regeln hinzu. Das Erhöhen der Blockgröße erfordert das Ändern einer Regel, und Segwit ändert keine Regel, daher ist Segwit keine Erhöhung der Blockgröße.

  3. Es handelt sich um eine Erhöhung der Blockgröße, da ein Block mehr Speicherplatz zum Speichern und Senden benötigt.

    Sie haben einen Segwit-Block mit 800 KB Transaktionsdaten und 800 KB Zeugendaten. Dies sind 1,6 MB, was größer ist als das vorherige Limit. Da Segwit Full Nodes diese Daten haben müssen, um einen Block zu validieren, ist Segwit eine Erhöhung der Blockgröße.

  4. Es handelt sich nicht um eine Erhöhung der Blockgröße, da ein Knoten weniger oder die gleiche Menge an Speicherplatz zum Speichern und Senden von Blöcken benötigt, wenn er Segwit nicht versteht.

    Sie haben denselben Block wie im vorherigen Beispiel, aber er wird an einen Knoten gesendet, der Segwit nicht versteht. Es empfängt nur die 800 KB an Transaktionsdaten. Das ist alles, was es zum Speichern braucht. Da dies nicht größer als 1 MB ist, ist Segwit keine Erhöhung der Blockgröße. Wenn es die Zeugendaten jedoch nicht speichert, kann es den Block nicht sinnvoll validieren.

Also, TL;DR: Es ist eine Erhöhung der Blockgröße, wenn Sie auf Software aktualisieren, die SegWit versteht, aber nicht, wenn Sie sich entscheiden, nicht auf Software zu aktualisieren, die SegWit versteht. Komisch, wie das die vorherrschenden Meinungen in bestimmten Bitcoin-Benutzergemeinschaften widerspiegelt.
Sehr schöne Antwort.
Wenn alte Clients den Block nicht sinnvoll validieren können, welche Probleme verursacht das?
@BT Diese Clients arbeiten effektiv auf einer SPV-Sicherheitsebene.
Auch hier muss der epische SegWit-Thread die Politik ignorieren: bitcointalk.org/index.php?topic=1398994.20