Einführung
Skalierbarkeit bezieht sich im Allgemeinen auf die Fähigkeit eines Systems, zu wachsen, um steigenden Anforderungen gerecht zu werden. In der Computertechnik können Sie die Leistung Ihres Rechners steigern, indem Sie seine Hardware aufrüsten, sodass er bestimmte Aufgaben schneller ausführen kann. Wenn wir bei Blockchains von Skalierbarkeit sprechen, meinen wir damit die Steigerung ihrer Kapazität, mehr Transaktionen abzuwickeln.
Protokolle wie Bitcoin haben viele Stärken, aber Skalierbarkeit gehört nicht dazu. Wenn Bitcoin in einer zentral verwalteten Datenbank ausgeführt würde, wäre es für einen Administrator relativ einfach, Geschwindigkeit und Durchsatz zu erhöhen. Aber die Wertversprechen von Bitcoin (z. B. Zensurresistenz) erfordern, dass viele Teilnehmer eine Kopie der Blockchain synchronisieren.
Das Blockchain-Skalierbarkeitsproblem
Der Betrieb eines Bitcoin-Knotens ist relativ günstig und sogar einfache Geräte können dies tun. Da die Tausenden von Knoten jedoch auf dem neuesten Stand bleiben müssen, unterliegt ihre Kapazität gewissen Einschränkungen.
Die Anzahl der Transaktionen, die in der Kette verarbeitet werden können, ist begrenzt, damit die Datenbank nicht zu unhandlich wird. Wird sie zu schnell zu groß, können die Knoten nicht mithalten. Darüber hinaus können zu große Blöcke nicht schnell im Netzwerk weitergeleitet werden.
Infolgedessen befinden wir uns in einer Art Engpass. Eine Blockchain kann als Zug betrachtet werden, der in festgelegten Intervallen abfährt. In jedem Waggon gibt es nur eine begrenzte Anzahl an Sitzplätzen, und um eine Fahrkarte zu erhalten, müssen die Reisenden bieten, um sich einen Platz zu sichern. Wenn alle gleichzeitig in den Zug einsteigen wollen, ist der Preis hoch. In ähnlicher Weise wird ein Netzwerk, das mit ausstehenden Transaktionen verstopft ist, von den Benutzern höhere Gebühren verlangen, damit ihre Transaktion rechtzeitig ausgeführt wird.
Eine Lösung wäre, die Waggons größer zu machen. Das würde mehr Sitzplätze, einen höheren Durchsatz und günstigere Ticketpreise bedeuten. Aber es gibt keine Garantie dafür, dass die Sitzplätze nicht genauso voll werden wie früher. Die Waggons können nicht ständig verbreitert werden, genauso wie Blöcke oder Blockgas-Grenzen nicht unendlich skaliert werden können. Letzteres macht es für Knoten teurer, im Netzwerk zu bleiben, da sie teurere Hardware benötigen, um synchron zu bleiben.
Der Ethereum-Erfinder Vitalik Buterin prägte das Skalierbarkeits-Trilemma, um die Herausforderungen zu beschreiben, denen Blockchains gegenüberstehen. Er vertritt die Theorie, dass Protokolle Kompromisse zwischen Skalierbarkeit, Sicherheit und Dezentralisierung eingehen müssen. Diese stehen in gewissem Widerspruch zueinander – wenn man sich zu sehr auf zwei der Eigenschaften konzentriert, wird die dritte schlecht sein.
Aus diesem Grund sind viele der Ansicht, dass Skalierbarkeit außerhalb der Blockchain erreicht werden kann, während Sicherheit und Dezentralisierung auf der Blockchain selbst maximiert werden sollten.
Was sind Off-Chain-Skalierungslösungen?
Off-Chain-Skalierung bezieht sich auf Ansätze, die die Ausführung von Transaktionen ermöglichen, ohne die Blockchain aufzublähen. Protokolle, die in die Kette eingebunden werden, ermöglichen es Benutzern, Geld zu senden und zu empfangen, ohne dass die Transaktionen in der Hauptkette erscheinen. Wir werden uns zwei der bemerkenswertesten Fortschritte an dieser Front genauer ansehen: Sidechains und Zahlungskanäle.
Eine Einführung in Sidechains
Was ist eine Sidechain?
Eine Sidechain ist eine separate Blockchain. Sie ist jedoch keine eigenständige Plattform, da sie in gewisser Weise an die Hauptchain gekoppelt ist. Die Hauptchain und die Sidechain sind interoperabel, was bedeutet, dass Assets frei von einer zur anderen fließen können.
Es gibt eine Reihe von Möglichkeiten, um sicherzustellen, dass Gelder übertragen werden können. In einigen Fällen werden Vermögenswerte von der Hauptkette verschoben, indem sie an eine spezielle Adresse eingezahlt werden. Sie werden nicht wirklich übertragen – sie sind stattdessen an die Adresse gebunden und ein entsprechender Betrag wird auf der Nebenkette ausgegeben. Eine einfachere (wenn auch zentralisierte) Option besteht darin, Gelder an einen Verwahrer zu senden, der die Einzahlung gegen Gelder auf der Nebenkette eintauscht.
Wie funktioniert eine Sidechain?
Nehmen wir an, unsere Freundin Alice besitzt fünf Bitcoins. Sie möchte diese gegen fünf gleichwertige Einheiten auf einer Bitcoin-Sidechain eintauschen – nennen wir sie Sidecoins. Die betreffende Sidechain verwendet eine Zwei-Wege-Bindung, d. h. Benutzer können ihre Vermögenswerte von der Hauptchain auf die Sidechain übertragen und umgekehrt.
Denken Sie daran, dass die Sidechain eine separate Blockchain ist. Sie verfügt also über verschiedene Blöcke, Knoten und Validierungsmechanismen. Um ihre Sidecoins zu erhalten, würde Alice ihre fünf Bitcoins an eine andere Adresse senden. Diese könnte jemandem gehören, der ihrer Sidechain-Adresse dann fünf Sidecoins gutschreibt, sobald er die Bitcoins erhält. Alternativ könnte es sich um eine Art vertrauensminimiertes Setup handeln, bei dem die Sidecoins automatisch gutgeschrieben werden, nachdem die Software eine Zahlung erkennt.
Alice hat ihre Coins nun in Sidecoins umgewandelt, kann den Vorgang aber jederzeit rückgängig machen, um ihre Bitcoins zurückzufordern. Da sie nun die Sidechain betreten hat, kann sie auf dieser separaten Blockchain frei Transaktionen durchführen. Sie kann Sidecoins senden oder von anderen empfangen, genau wie auf der Hauptchain.
Sie könnte Bob beispielsweise eine Sidecoin für einen Binance-Hoodie bezahlen. Wenn sie zu Bitcoin zurückkehren möchte, könnte sie ihre restlichen vier Sidecoins an eine spezielle Adresse senden. Nachdem die Transaktion bestätigt wurde, werden vier Bitcoins freigeschaltet und an eine von ihr kontrollierte Adresse in der Hauptkette geliefert.
Warum werden Sidechains verwendet?
Sie fragen sich vielleicht, was das soll. Warum verwendet Alice nicht einfach die Bitcoin-Blockchain?
Die Antwort ist, dass die Sidechain möglicherweise Dinge kann, die Bitcoin nicht kann. Blockchains sind sorgfältig entwickelte Systeme von Kompromissen. Obwohl Bitcoin die sicherste und dezentralste Kryptowährung ist, ist sie in Bezug auf den Durchsatz nicht die beste. Obwohl Bitcoin-Transaktionen schneller sind als herkömmliche Methoden, ist es im Vergleich zu anderen Blockchain-Systemen immer noch relativ langsam. Blöcke werden alle zehn Minuten abgebaut und die Gebühren können erheblich steigen, wenn das Netzwerk überlastet ist.
Zugegebenermaßen besteht für kleine alltägliche Zahlungen wahrscheinlich kein Bedarf für dieses Sicherheitsniveau. Wenn Alice für einen Kaffee bezahlt, wird sie nicht warten, bis die Transaktion bestätigt ist. Sie würde die Schlange aufhalten und ihr Getränk wäre kalt, wenn man es ihr überreicht.
Sidechains unterliegen nicht denselben Regeln. Tatsächlich müssen sie nicht einmal Proof of Work verwenden, um zu funktionieren. Sie können jeden Konsensmechanismus verwenden, einem einzigen Validierer vertrauen oder eine beliebige Anzahl von Parametern anpassen. Sie können Upgrades hinzufügen, die in der Hauptkette nicht vorhanden sind, größere Blöcke erstellen und schnelle Abwicklungen erzwingen.
Interessanterweise könnten Sidechains sogar kritische Fehler aufweisen, ohne dass die zugrunde liegende Kette davon betroffen wäre. Dadurch können sie als Plattformen zum Experimentieren und zum Einführen von Funktionen verwendet werden, die ansonsten den Konsens der Mehrheit des Netzwerks erfordern würden.
Vorausgesetzt, die Nutzer sind mit den Kompromissen zufrieden, könnten Sidechains ein wesentlicher Schritt in Richtung effektiver Skalierung sein. Es ist nicht erforderlich, dass die Hauptkettenknoten jede Transaktion aus der Sidechain speichern. Alice könnte die Sidechain mit einer einzigen Bitcoin-Transaktion betreten, Hunderte von Sidecoin-Transaktionen durchführen und die Sidechain dann verlassen. Was die Bitcoin-Blockchain betrifft, hat sie nur zwei Transaktionen durchgeführt – eine zum Betreten und eine zum Verlassen.
Ethereum Plasma ist ähnlich, weist aber einige wesentliche Unterschiede auf. Lesen Sie mehr darüber: Was ist Ethereum Plasma?
Eine Einführung in Zahlungskanäle
Was ist ein Zahlungskanal?
Zahlungskanäle erfüllen in Bezug auf die Skalierbarkeit denselben Zweck wie Sidechains, unterscheiden sich jedoch grundlegend. Wie Sidechains verlagern sie Transaktionen aus der Hauptkette, um eine Aufblähung der Blockchain zu verhindern. Im Gegensatz zu Sidechains benötigen sie jedoch keine separate Blockchain, um zu funktionieren.
Ein Zahlungskanal verwendet einen Smart Contract, um Benutzern Transaktionen zu ermöglichen, ohne diese in der Blockchain zu veröffentlichen. Dies geschieht durch eine softwaregestützte Vereinbarung zwischen zwei Teilnehmern.
Wie funktioniert ein Zahlungskanal?
In Modellen wie dem beliebten Lightning Network würden zwei Parteien zunächst Münzen an eine Adresse einzahlen, die ihnen gemeinsam gehört. Dies ist eine Adresse mit mehreren Signaturen, die zwei Signaturen erfordert, damit Geld ausgegeben werden kann. Wenn Alice und Bob also eine solche Adresse erstellen würden, könnten Gelder nur mit der Zustimmung beider Parteien abgehoben werden.
Nehmen wir an, sie zahlen jeweils 10 BTC an eine Adresse ein, die nun 20 BTC hält. Es wäre einfach für sie, eine Bilanz zu führen, die mit der Aussage beginnt, dass Alice und Bob jeweils 10 BTC haben. Wenn Alice Bob eine Münze geben wollte, könnten sie sie aktualisieren und sagen: „Alice hat 9 BTC, Bob hat 11 BTC.“ Sie müssten nichts in der Blockchain veröffentlichen, während sie diese Bilanzen ständig aktualisieren.
Nehmen wir jedoch an, dass Alice zu gegebener Zeit 5 BTC und Bob 15 BTC hat. Sie könnten dann eine Transaktion erstellen, die diese Guthaben an die Adressen der Parteien sendet, diese signieren und übertragen.
Alice und Bob hätten zehn, hundert oder tausend Transaktionen in ihrer Bilanz verzeichnen können. Aber soweit es die Blockchain betrifft, haben sie nur zwei On-Chain-Operationen durchgeführt: eine für die anfängliche Finanzierungstransaktion und eine zur Neuzuweisung der Guthaben nach Abschluss. Abgesehen von diesen beiden sind alle anderen Transaktionen kostenlos und nahezu sofort, da sie außerhalb der Blockchain erfolgen. Es muss keine Miner-Gebühr bezahlt und auf keine Blockbestätigungen gewartet werden.
Natürlich erfordert das oben besprochene Beispiel die Zusammenarbeit beider Parteien, was für Fremde keine ideale Situation ist. Allerdings können spezielle Mechanismen verwendet werden, um jeden Betrugsversuch zu bestrafen, sodass die Parteien auch ohne Vertrauen sicher miteinander interagieren können.
Zahlungsrouting
Zahlungskanäle sind offensichtlich praktisch für zwei Parteien, die ein hohes Transaktionsvolumen erwarten. Aber es wird noch besser. Man kann ein Netzwerk dieser Kanäle aufbauen, sodass Alice beispielsweise eine Partei bezahlen kann, mit der sie nicht direkt verbunden ist. Wenn Bob einen Kanal mit Carol offen hat, kann Alice sie bezahlen, sofern genügend Kapazität vorhanden ist. Sie überweist Geld auf Bobs Seite des Kanals, der es wiederum an Carols Seite weiterleitet. Wenn Carol mit einem anderen Teilnehmer, Dan, verbunden ist, ist dasselbe möglich.
Ein solches Netzwerk entwickelt sich zu einer verteilten Topologie, in der jeder mit mehreren Peers verbunden ist. Oft gibt es mehrere Routen zu einem Ziel, und die Benutzer können die effektivste auswählen.
Abschließende Gedanken
Wir haben zwei Skalierbarkeitsansätze besprochen, die Transaktionen ermöglichen, ohne die zugrunde liegende Blockchain zu belasten. Sowohl Sidechains als auch die Zahlungskanaltechnologie sind noch nicht ausgereift, werden jedoch zunehmend von Benutzern genutzt, die die Mängel von Transaktionen auf der Basisebene umgehen möchten.
Mit der Zeit und wenn immer mehr Benutzer dem Netzwerk beitreten, ist es wichtig, dass die Dezentralisierung aufrechterhalten wird. Dies ist nur möglich, indem dem Wachstum der Blockchain Grenzen gesetzt werden, damit neue Knoten problemlos beitreten können. Befürworter von Off-Chain-Skalierbarkeitslösungen glauben, dass die Hauptkette mit der Zeit nur noch zur Abwicklung von Transaktionen mit hohem Wert oder zum Ein- und Aussteigen aus Nebenketten und zum Öffnen und Schließen von Kanälen verwendet wird.