Die Idee für SegWit wurde 2015 erstmals von Pieter Wuille auf einer Bitcoin-Konferenz vorgestellt. Wuille ist ein Bitcoin-Entwickler und Mitbegründer von Blockstream, einem Software-Unternehmen, das sich auf digitale Sicherheit für Finanzdienstleistungen spezialisiert hat.
Wuille schlug SegWit als Lösung für einen Fehler im Bitcoin-Protokoll vor. In der Softwareentwicklung werden Lösungen für Fehler als Patches bezeichnet. Das Problem, das er beheben wollte, heißt Transaktionsformbarkeit. Transaktionsformbarkeit ist eine verworrene Art zu sagen, dass Bitcoin von Benutzern gestohlen werden kann, indem winzige Transaktionsinformationen geändert werden. Keine Sorge, ich werde das alles im nächsten Abschnitt detaillierter behandeln.
Wuilles SegWit-Vorschlag löste eine große Debatte in der Bitcoin-Community aus und es dauerte fast zwei Jahre, bis er live ging. Es wurde schließlich am 23. August 2017 aktiviert. Der gleiche Patch wurde am 10. Mai 2017 auf das Litecoin-Protokoll angewendet.
SegWit hat das Problem mit der Formbarkeit von Transaktionen behoben und auch einige andere Verbesserungen des Bitcoin-Protokolls ermöglicht. Es gibt jedoch immer noch viele Kritiker und nicht alle Benutzer des Bitcoin-Netzwerks haben die Änderungen begrüßt. Einige Mitglieder der Bitcoin-Community stimmen SegWit so wenig zu, dass sie ihre konkurrierenden Kryptowährungen erstellt haben!
Bevor wir darauf eingehen, wollen wir das Problem der Formbarkeit von Transaktionen genauer untersuchen. Was ist Transaktionsformbarkeit und was unternimmt SegWit, um sie zu stoppen?
Die Formbarkeit von Transaktionen ist ziemlich kompliziert. Um dies zu verstehen, müssen Sie zunächst verstehen, wie Bitcoin-Transaktionen funktionieren.
Die Grundlagen der Blockchain
Bitcoin ist ein riesiges Netzwerk, das aus Tausenden von Computern besteht, die als Knoten bezeichnet werden. Jeder Knoten zeichnet jede jemals getätigte Bitcoin-Transaktion vollständig auf. Dieser Datensatz wird als Blockchain bezeichnet.
Die meiste Arbeit bei der Verarbeitung neuer Transaktionen wird von speziellen Knoten erledigt, die Miner genannt werden. Die Benutzer zahlen für die von ihnen geleistete Arbeit Transaktionsgebühren für Bergleute. Neue Transaktionen können nur dann zur Blockchain hinzugefügt werden, wenn sie von Minern in Gruppen von Transaktionen eingeteilt wurden, die als Blöcke bezeichnet werden. Jeder Block in der Bitcoin-Blockchain enthält 1 MB Transaktionsinformationen.
Es sollte ungefähr 10 Minuten dauern, bis das Netzwerk einen Transaktionsblock verarbeitet, aber es kann viel länger dauern. Das Bitcoin-Netzwerk kann zwischen 3-7 Transaktionen pro Sekunde (Tx/s) verarbeiten. Wenn das Netzwerk ausgelastet ist, kann sich dies jedoch erheblich verlangsamen.
Nun werde ich anhand von zwei Beispielen zeigen, wie einfache Bitcoin-Transaktionen funktionieren. Die erste ist eine Standard-Bitcoin-Transaktion. Die zweite Transaktion ist eine Transaktion, bei der ein Benutzer die Formbarkeit von Transaktionen ausnutzt, um einem anderen Benutzer Bitcoin zu stehlen.
Transaktionen für Anfänger
Petra möchte 10 Bitcoin (BTC) an Jürgen senden. Dazu benötigen Petra und Jürgen zwei Arten von Informationen:
- Eine öffentliche Adresse: Dies ist wie eine Bitcoin-E-Mail-Adresse. Eine öffentliche Adresse ist ein digitaler Ort, an den Petra Bitcoin senden kann. Jürgen hat eine öffentliche Adresse, um Bitcoin zu erhalten. Öffentliche Adressen sind für das gesamte Netzwerk sichtbar.
- Ein privater Schlüssel: Wenn öffentliche Adressen wie E-Mail-Adressen sind, dann sind private Schlüssel wie Passwörter. Sie beweisen, dass die öffentlichen Adressen – und damit die Bitcoin selbst – Petra und Jürgen gehören. Nur Petra kann den privaten Schlüssel von Petra sehen und nur Jürgen kann den privaten Schlüssel von Jürgen sehen.
Wie kommen 10 BTC von Petra zu Jürgen?
- Petra sendet eine Anfrage an das Netzwerk. Die Anfrage enthält die öffentliche Adresse von Jürgen, den zu sendenden Betrag (10BTC) und eine Transaktionsgebühr für die Miner. Es enthält auch Petras private Schlüsselsignatur, mit der sie nachweist, dass sie 10 BTC zu senden hat. Diese Signaturinformationen werden Zeugeninformationen genannt.
- Miner verarbeiten die Transaktion. Sie setzen Petras Informationen mit denen von Jürgen zusammen und verschlüsseln sie. Dies bedeutet, dass sie die Informationen in eine Zeile Computercode umwandeln. Dieser Code wird als Transaktions-ID bezeichnet.
- Die Transaktionswarteschlangen warten darauf, verarbeitet zu werden. Wenn Petra eine niedrige Transaktionsgebühr angehängt hat, könnte sie lange anstehen! Es ist wie Essen in einem Restaurant zu bestellen. Wenn Sie dem Kellner kein Trinkgeld geben, kann es lange dauern, bis Ihr Essen eintrifft! Petra kann den Vorgang beschleunigen, indem sie die Transaktion mit einer höheren Gebühr erneut sendet. Die Transaktions-ID wird nun zu den Transaktions-IDs anderer Benutzer hinzugefügt und erneut verschlüsselt. Dieser Vorgang wird fortgesetzt, bis das Limit von 1 MB Transaktionsinformation erreicht ist und ein Block gebildet wird.
- Der Block wird bestätigt. Der Block wird an das Netzwerk gesendet, und wenn mehr als die Hälfte aller Knoten zustimmt, dass die darin enthaltenen Informationen gültig sind, können sie bestätigt und der Blockchain hinzugefügt werden. Jürgen erhält 10 BTC von Petra.
So laufen die meisten Bitcoin-Transaktionen ab. Als Nächstes möchte ich Ihnen zeigen, wie sich die Formbarkeit von Transaktionen auf Transaktionen auswirkt, und dann können wir fragen, was SegWit dagegen unternimmt.
Funktionsweise von Transaction Malleability
Anhand des Beispiels zeige ich Ihnen, wie Jürgen mithilfe der Formbarkeit von Transaktionen Petra dazu verleitet, ihm 20 BTC anstatt 10 zu senden. So funktioniert es …
Der Fehler bei der Formbarkeit der Transaktion im Bitcoin-Code ermöglicht es Jürgen, Petras Zeugeninformationen zu ändern, bevor die Transaktion bestätigt wird. Dies ändert die Transaktions-ID, ohne die Transaktion selbst zu ändern (die immer noch 10 BTC von Petra an Jürgen gesendet wird).
Wenn diese geänderte Transaktion vom Netzwerk bestätigt wird, wird die ursprüngliche Transaktion abgebrochen. Jetzt kontaktiert Jürgen Petra, um sich zu beschweren, dass er 10 BTC nicht erhalten hat, obwohl er es hat!
Petra prüft und stellt fest, dass die ursprüngliche Transaktion nicht durchgeführt wurde. Sie fügt jetzt eine höhere Transaktionsgebühr hinzu und sendet sie erneut. Diese neue Transaktion wird vom Netzwerk verarbeitet. Jürgen erhält 10 weitere Bitcoins!
Petra, die Miner und der Rest des Netzwerks haben keine Möglichkeit zu wissen, dass dies geschieht. Sobald die Transaktionen bestätigt und der Blockchain hinzugefügt wurden, können sie nicht mehr geändert oder gelöscht werden.
Die durch die Transaktionsformbarkeit getätigten Transaktionen werden rot angezeigt.
Was ist SegWit und wie kann das Problem der Formbarkeit von Transaktionen gelöst werden?
Patchen der Transaktionsformbarkeit
Wie bereits erwähnt, ist SegWit ein Patch, der von Pieter Wuille entwickelt wurde, um die Formbarkeit von Transaktionen zu verhindern. Die Art und Weise, wie es funktioniert, ist ziemlich einfach. Um zu verhindern, dass Zeugen-Daten zum Ändern von Transaktions-IDs verwendet werden, schlug Wuille vor, diese aus der Transaktion zu entfernen! Einfach, richtig?
Der vollständige Name von SegWit ist ein getrennter Zeuge. Segregieren bedeutet Entfernen oder Trennen. SegWit bedeutet also, die Zeugendaten zu entfernen.
Ein getrennter Zeuge erstellt eine Sidechain, in der Zeugendaten außerhalb der Hauptblockchain gespeichert werden. Dies verhindert, dass Transaktions-IDs von unehrlichen Benutzern wie Jürgen!
Das Schlaue an Bitcoin SegWit ist, dass es abwärtskompatibel ist. Dies bedeutet, dass Knoten, die mit dem SegWit Bitcoin-Protokoll aktualisiert wurden, weiterhin mit Knoten arbeiten können, die noch nicht aktualisiert wurden. Diese Art von Update wird als Soft Fork bezeichnet. Aktualisierungen, die nicht abwärtskompatibel sind, werden als Hard-Forks bezeichnet. Hardforks können Netzwerke aufteilen und dazu führen, dass neue Kryptowährungen erstellt werden.
Pieter Wuille wollte, dass SegWit abwärtskompatibel ist, und daher ein Soft-Fork-Update. Zu diesem Zweck musste er es so gestalten, dass die Daten der Zeugen noch in der Hauptblockkette aufgezeichnet waren. Die Lösung, die er fand, bestand darin, alle Zeugendaten eines Blocks in der SegWit-Sidechain zu verschlüsseln und diesen Root-Code in der Hauptblockchain zu speichern. Dies ermöglichte Bitcoin SegWit das Patchen der Transaktionsformbarkeit, ohne zu einem Hard-Fork-Update zu werden.
Jetzt wissen Sie, wie getrennte Zeugen die Formbarkeit von Transaktionen verhindern, aber die Geschichte von SegWit Bitcoin endet hier nicht. SegWit hat das Bitcoin-Netzwerk auf eine Weise beeinflusst, an die Pieter Wuille bei seiner Erstellung gar nicht gedacht hat!
Als Nächstes werde ich Ihnen die Skalierbarkeit und das Lightning-Netzwerk erläutern. Ich beginne mit der Skalierbarkeit…
Was ist SegWit-Skalierbarkeit?
Lassen Sie mich zunächst erklären, was Skalierbarkeit ist. Skalierbarkeit ist die Fähigkeit eines Netzwerks, große Transaktionsmengen zu verarbeiten, ohne dass die Transaktionsgeschwindigkeit sinkt. Wenn ein Netzwerk skalierbar ist, kann es Transaktionen mit zunehmender Größe so schnell oder sogar noch schneller verarbeiten. Leider verarbeiten die meisten Kryptowährungen Transaktionen umso langsamer, je größer sie werden.
Kryptowährungen weisen ein Skalierbarkeitsproblem auf, da Transaktionen im Konsens verarbeitet werden. Wie bereits erwähnt, muss mehr als die Hälfte der Knoten im Bitcoin-Netzwerk zustimmen, dass eine Transaktion gültig ist, bevor sie zur Blockchain hinzugefügt werden kann. Je mehr Knoten im Netzwerk vorhanden sind, desto länger dauert es, eine Einigung oder einen Konsens zu erzielen.
Die Bitcoin-Community hat lange über verschiedene Möglichkeiten zur Skalierung des Netzwerks diskutiert. Das Problem verschlimmert sich, da die Plattform immer beliebter wird und die Zeit knapp wird, um eine Lösung zu finden.
Als Pieter Wuille Bitcoin SegWit erstellte, verbesserte er versehentlich auch die Skalierbarkeit des Netzwerks! Zeugenaussagen belegen 65% jedes Bitcoin-Blocks. Durch das Entfernen von Zeugeninformationen bieten SegWit-Bitcoin-Blöcke jetzt viel mehr Platz für Transaktionsinformationen.
Jeder Block hat jetzt ein festgelegtes Blockgewicht, das auf 4 MB begrenzt ist. Das Gewicht eines Blocks ist eine Kombination aus 1 MB Information, die in der Hauptblockkette gespeichert ist, und den Zeugendaten, die in einer Seitenkette gespeichert sind. Ein getrennter Zeuge ermöglicht es dem Netzwerk, mehr Transaktionen zu verarbeiten, ohne die Gesamtgröße der Bitcoin-Blockchain zu ändern.
Wenn Sie jemand fragt: „Was ist SegWit-Skalierbarkeit?“, Können Sie ihm mitteilen, dass auf diese Weise mehr Transaktionen im Bitcoin-Netzwerk verarbeitet werden können. Das Netzwerk wird dadurch leichter, dass Zeugeninformationen aus Transaktionen entfernt werden, ohne dass die Bitcoin-Blockchain-Größe beeinträchtigt wird.
Jetzt möchte ich Ihnen von einer weiteren aufregenden Entwicklung erzählen, die SegWit ermöglicht. Wofür wird SegWit derzeit verwendet?
Das Lightning Network
Das Lightning-Netzwerk ist eine weitere Lösung für das Bitcoin-Skalierbarkeitsproblem und würde ohne getrennten Zeugen nicht funktionieren.
Über das Lightning-Netzwerk können Benutzer Zahlungskanäle für Mikrozahlungen einrichten. Verwenden wir Petra und Jürgen für ein anderes Beispiel:
Jürgen arbeitet für Petra. Sie zahlt ihm 1BTC pro Tag. Anstatt die Transaktion in der Hauptblockchain zu verarbeiten, haben Petra und Jürgen einen privaten Zahlungskanal eingerichtet, über den Petra Bitcoin direkt an Jürgen senden kann. Sie schickt ihm eine Micropayment von 1BTC pro Tag. Jede Micropayment muss sowohl von Petra als auch von Jürgen unterschrieben werden. Sie werden aus diesem Grund als Transaktionen mit mehreren Signaturen bezeichnet.
Jürgen arbeitet zehn Tage für Petra. Am Ende der zehn Tage schließen Petra und Jürgen den Zahlungskanal. Zu diesem Zeitpunkt werden alle Mikrozahlungen als eine Transaktion für 10BTC an das Netzwerk gesendet.
Solche Zahlungskanäle bilden die Grundlage für ein blitzschnelles Netzwerk von Tausenden von Mikrozahlungen, die außerhalb der Hauptblockchain erfolgen. Transaktionen werden nur dann zur Hauptblockchain hinzugefügt, wenn Benutzer den Zahlungskanal schließen. Was macht SegWit, um dies zu ermöglichen?
Mikrozahlungen sind unbestätigte Transaktionen, die erst gültig werden, wenn der Zahlungskanal geschlossen ist und der gesamte Transaktionssaldo vom Netzwerk verarbeitet wird. Ohne Bitcoin SegWit könnten Benutzer die Transaktions-IDs in Transaktionen mit mehreren Signaturen mithilfe der Formbarkeit von Transaktionen ändern. Dies würde Chaos für das System bedeuten und es völlig unbrauchbar machen.
Sie wissen jetzt, was SegWit ist, wie es funktioniert und was es für das Bitcoin-Netzwerk bedeutet. Bevor ich fertig bin, werde ich Ihnen einen kurzen Rückblick auf die Vorteile von SegWit geben. Ich erzähle Ihnen auch etwas über die Kritik, die es hatte, und einige der Probleme, die es verursacht hat …
SegWit: Pro & Kontra
PRO: Formbarkeit von Transaktionen war gestern. SegWit ist eine einfache und kreative Lösung für ein großes Problem im Bitcoin-Protokoll.
- Bitcoin-Transaktionen schneller. SegWit macht die Bitcoin-Blockchain leichter. Dadurch können mehr Transaktionen verarbeitet werden, ohne die Gesamtgröße der Bitcoin-Blockchain zu erhöhen.
- Bitcoin-Transaktionen billiger. Höhere Transaktionsgeschwindigkeit bedeutet niedrigere Transaktionsgebühren. Bitcoin-Transaktionsgebühren können unglaublich hoch sein, so dass Änderungen, die sie senken, von der Community begrüßt werden sollten.
- Neue und spannende Entwicklungen möglich. Wenn Bitcoin ein Netzwerk von Millionen von Menschen bedienen soll, muss das Problem der Skalierbarkeit gelöst werden. Mit SegWit lassen sich Skalierbarkeitsprojekte wie das Lightning Network realisieren.
KONTRA: Es wird nicht von genügend Knoten verwendet. Viele Miner mögen SegWit nicht. Niedrigere Gebühren wirken sich auf ihre Gewinne aus und sie schätzen es auch nicht, die Zeugen-Daten-Sidechain unterstützen zu müssen, die überhaupt keine Gebühreneinnahmen bietet. Andere Bitcoin-Dienste – wie Wallets – haben die SegWit-Änderungen ebenfalls nur langsam unterstützt. Im Februar 2018, fast ein halbes Jahr nach der Aktivierung, wurden nur 14% der Bitcoin-Transaktionen mit SegWit Bitcoin getätigt. Die Zahlen haben sich seitdem verbessert, aber das Netzwerk ist noch weit davon entfernt, vollständig aktualisiert zu werden.
- Es ist eine kurzfristige Lösung für langfristige Probleme. Einige Bitcoin-Entwickler haben sich beschwert, dass das SegWit-Protokoll nicht weit genug reicht, um das Skalierbarkeitsproblem zu lösen. Sie behaupten, dass nur größere Änderungen an der Bitcoin-Blockchain-Größe und der Art und Weise, wie Transaktionen verarbeitet werden, der Plattform helfen werden, in Zukunft skaliert zu werden.
- SegWit hat zu Spaltungen in der Bitcoin-Community geführt. Die Meinungsverschiedenheiten um SegWit haben mehrere Hard Forks verursacht. Das bekannteste davon ist Bitcoin Cash (BCH).
Jetzt haben Sie alle Fakten und können selbst antworten: „Was ist SegWit?“.
Fazit
Als Pieter Wuille SegWit entwarf, wollte er die Probleme beheben, die durch die Formbarkeit von Transaktionen verursacht wurden. SegWit hat jedoch noch viel mehr getan und eine massive Diskussion über die Zukunft der Bitcoin-Plattform selbst angestoßen. Bitcoin ist fast zehn Jahre alt. Es ist immer noch die größte Kryptowährung der Welt, aber einige fragen sich, ob es die beste ist.
Es gibt Hunderte neuer Blockchain-Projekte, die einige der fortschrittlichsten Kryptotechnologien anbieten, die es je gab. Einige sehen in SegWit Bitcoin eine positive Veränderung für das Netzwerk. Andere sehen es jedoch als Symbol für die Einschränkungen von Bitcoin.
Die SegWit-Debatte wird in der gesamten Bitcoin-Community fortgesetzt, und jetzt wissen Sie genug, um mitreden zu können. Was ist Segwit für dich? Ist es eine aufregende Neuentwicklung, die Bitcoin in die Zukunft führen wird? Oder ist es eine vorübergehende Lösung für die viel größeren Probleme, mit denen das Bitcoin-Netzwerk konfrontiert ist? Denken Sie darüber nach und wir sehen uns beim nächsten Mal!
Mit freundlichen Grüßen