Was ist „Segregated Witness“ und wie kann es die Netzwerkskalierbarkeit verbessern?

Ich habe gerade davon gehört, und es wird behauptet, dass es ein „Wendepunkt“ in der Blockgrößendebatte sei.

Was ist „ getrennter Zeuge “? wie funktioniert es?

Wie kann es zur Verbesserung der Netzwerkskalierbarkeit verwendet werden?

Ist dies die Antwort auf alle Bedenken hinsichtlich der Skalierbarkeit des Netzwerks?

Können Sie einen Link hinzufügen, wo Sie etwas über dieses Konzept gelesen haben?

Antworten (1)

Es ist keine Wunderlösung, aber es ist ein wirklich guter Anfang.

Wie Gavin Andresen sagte, ist Segregated Witness ein schlechter Name. Der „getrennte“ Teil des Namens soll anzeigen, dass eine Trennung durchgeführt wird. Der „Zeugen“-Teil des Namens rührt daher, dass digitale Signaturen oft als Zeugen bezeichnet werden.

Der getrennte Zeuge teilt Transaktionen in verschiedene Teile auf, die separat behandelt werden können, anstatt wie bisher in einen einzelnen Datenblock. Insbesondere nimmt es die digitalen Signaturen aus Transaktionen und legt sie in einem separaten Merkle-Baum ab, der die gleiche Struktur wie der Transaktions-Merkle-Baum hat. Wenn Sie also vollständig implementiert sind, um zu überprüfen, ob eine Eingabe ihre vorherige Ausgabe legal ausgibt, würden Sie die Signatur aus dem Signaturbaum anstelle des Standardfelds erhalten scriptSig.

Dies sind einige der Vorteile dieser Idee:

  • Da Signaturdaten (Zeugendaten) außerhalb der Transaktion (und außerhalb des Standardblocks) gespeichert werden, bedeutet dies, dass diese Daten nicht auf die Blockgröße angerechnet werden müssen. Pieter Wuille schlägt einen Rabatt von 75 % auf den von Signaturdaten belegten Speicherplatz vor, was bedeutet, dass Sie viermal so viele Signaturdaten in Blöcke packen können. Dies führt effektiv zu einer weichen Fork-Erhöhung der Blockgröße.
  • Löst vollständig Formbarkeitsprobleme. Die Verwendung von Transaktionen mit den Signaturdaten außerhalb der Transaktion bedeutet, dass TXIDs die Signaturdaten nicht hashen, was bedeutet, dass sie nicht veränderbar sind (vorausgesetzt, Sie verwenden das Standard-SIGHASH-Flag). Technisch gesehen sind die Signaturen immer noch formbar, es ist nur so, dass ihre Änderung keine Transaktionsketten ungültig macht, da die Signaturen die modifizierbaren Teile nicht signieren.
  • Ermöglicht ein langsames Upgrade. Die Software muss sich für die Verwendung von Segregated Witness entscheiden, nachdem sie vollständig im Netzwerk bereitgestellt wurde, aber in der Zwischenzeit (und danach) können Transaktionen weiterhin wie gewohnt ohne Segregated Witness durchgeführt werden.
  • Alle zukünftigen Skriptaktualisierungen werden zu Soft Forks. Wenn der getrennte Zeuge vollständig implementiert ist, enthält er in den Ausgaben ein Versionsbyte für die verwendete Skriptversion. Und das Verhalten von Clients, die ein Skript mit einer nicht erkannten Versionsnummer sehen, ist, dass sie es als Ausgabe behandeln, die jeder ausgeben kann.
  • Unterschriften beweisen nur, dass eine Transaktion autorisiert ist, sie beschreiben nicht, wohin die Gelder gehen oder woher sie kamen. Nachdem sie überprüft wurden, können sie verworfen werden. Das Einfügen der Signaturen in eine separate Datenstruktur macht es viel einfacher, diese Daten zu beschneiden, was dazu führt, dass viel weniger Blockchain-Daten auf Ihrer Festplatte gespeichert werden müssen.

Dadurch wird die Blockgröße jedoch nicht vollständig erhöht, sondern nur die Menge an Signaturdaten, die ein Block speichern kann. Da Transaktionen zu etwa 60 % aus Signaturdaten bestehen, ist dies immer noch ein ziemlich großer Gewinn.

Der Nachteil ist, dass es ein nicht triviales Upgrade für das Netzwerk ist, um mit der Verwendung von getrennten Zeugen zu beginnen. Das Format der Transaktionsserialisierung ist anders, und Code überall, der Bitcoin-Transaktionen durchführt, muss aktualisiert werden. Da es sich jedoch um einen Opt-in-Prozess handelt, kann das Upgrade im Laufe der Zeit langsam erfolgen.

Sie können sich Pieter Wuilles großartigen Vortrag über Segregated Witness ansehen unter:

https://www.youtube.com/watch?v=fst1IK_mrng&feature=youtu.be&t=37m12s .