Author

Topic: Sidechains, Drivechains und Co: (Fast) vergessene Scalinglösung (Read 242 times)

legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
Ich hol den Faden mal aus der Versenkung, er war eh als Long-Term-Thread gedacht. Inzwischen gibt es einige Neuigkeiten.

Zum einen gibt es mit Rollups ein neues Sidechain-Modell, das aus der Ethereum-Community kommt (hab es im OP hinzugefügt) und auch für Bitcoin diskutiert wird.

Rollups unterscheiden sich von anderen Sidechains dadurch, dass sie über einen speziellen Transaktionstyp alle Informationen in die Mainchain übertragen, die für die Validierung von Sidechain-Transaktionen notwendig sind. Es werden also quasi Transaktionen "komprimiert". (Eine ganz einfach zu verstehende Variante könnte etwa darin bestehen, dass die Sidechain-Miner in jedem Block der Mainchain eine komprimierte Datei des entsprechenden Sidechain-Blocks an eine Mainchain-Transaktion hängen. Reale Rollups sind natürlich etwas komplexer.).

Das bedeutet natürlich ein geringeres Skalierungspotenzial (von 4x bei einem UTXO-basierten Modell ohne Adressen-Wiederverwendung bis zu 10-100x bei einem Modell, bei dem Adressen-Wiederverwendung gefördert wird). Dafür ist das Modell wesentlich einfacher zu implementieren und hat kaum bis gar keine Einbußen bei der Sicherheit (je nachdem, wie sie implementiert wird).

In zwei Formen ("optimistische" und "validierende" Rollups) sind Rollups bereits auf Ethereum verfügbar, allerdings mit einer Ausnahme (Fuel [1]) noch in einer "föderierten" Multisig-Struktur ähnlich Liquid/RSK.

Mitte 2022 hat Trey Del Bonis ein Modell für Bitcoin-Rollups vorgestellt. [2] Es benötigt mindestens zwei neue Funktionen in Bitcoin Script (besser 4), eine davon könnte kontrovers sein (sogenannte "rekursive Covenants"). Interessant ist, dass die renommierte Human Rights Foundation die Entwicklung von Bitcoin-Rollups sponsert. [3] Bitcoin-Skalierung wird also wohl als relevant für Menschenrechte gesehen, finde ich cool. Es gibt inzwischen auch eine Info-Seite für Bitcoin-Rollups, die gut nachvollziehbar die Geschichte und mögliche Herausforderungen von Rollups im Bitcoin-Ökosystem darstellt. [4]

Zum anderen wird Drivechain (siehe Erklärung oben) weiterentwickelt und getestet (z.B. mit Klonen von Zcash und Ethereum mit BIP-300), wenn auch noch keine Roadmap für die Integration ins Bitcoin-Protokoll (es werden neue Opcodes benötigt) in Sicht ist. Hier gibt es z.B. ein Video von Adam Back mit Paul Sztorc über das Thema, bei dem vorgeschlagen wird, Drivechains über die Skriptsprache Simplicity [5] zu integrieren, die gerade von Blockstream getestet wird und eventuell bald auf Liquid/Elements freigeschaltet wird. [6]

Es sieht also so aus, als könnte sich mittelfristig durchaus wieder was tun - was imo auch notwendig ist, da Lightning alleine wohl nicht für eine wirklich massive Bitcoin-Anwendung ohne "trusted parties" ausreicht.

[1] Fuel
[2] Del Bonis, Trey: Bitcoin ZK Rollups
[3] Human Rights Foundation: ZK Rollups
[4] Light, John: Bitcoin Rollups
[5] Github: Simplicity
[6] Video: The Future of Sidechains w/ Adam Back, Paul Sztorc, and Aaron van Wirdum
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
Ob es nur drei Sidechain Varianten gibt, bin ich noch nicht sicher.
Es gibt neben Drivechains noch Konzepte für mindestens eine weitere Art von Sidechains: solche, die für den Peg "Proofs of Proofs of Work" nutzen. Damit soll von Mainchain-Nodes überprüft werden können, ob ein Sidechain-Coin "verbrannt" wurde, ohne dass sie die Sidechain-Blockheader downloaden müssen. Dies würde geschehen mit Hilfe von Beweis-Hashes, dass auf der Sidechain Proof-of-Work-Confirmations ausgeführt wurden.

Diese Art von Sidechains wurde aber meines Wissens nie realisiert, es scheint fundamentale, schwierig zu lösende Probleme zu geben; aber es wird daran in geringem Maße geforscht, z.B. vom Cardano-Team. Drivechain gibt es immerhin als Entwicklerversion.

Inkompatible Features als Vorteil wurden schon genannt.

I don't believe a second, compatible implementation of Bitcoin will ever be a good idea.  So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network.
Ich bin da jetzt auch nicht der große Experte, aber würde dies auch dann gelten, wenn man Sidechains einfach - wie auch LN - nur als "Methode zur Bündelung vieler Transaktionen in eine bzw wenige" ansehen würde, die also auf die Hauptchain keinen Einfluss hat? Dass also eine klare Hierarchie Hauptchain > Sidechain bestünde und die Sidechain im Zweifel aufgegeben werden kann? Ich interpretiere jedenfalls Paul Sztorcs Argumentation auf https://drivechain.info in diese Richtung.

Quote
Die Eigenschaften von LN sind derart fundamental unterschiedlich, dass ich es weniger als Alternative sehe, denn als parallele Möglichkeit, evtl. sogar unabdingbare Notwendigkeit.
Stimme ich zu. Sidechains - wenn sie funktionieren - wären für LN sehr nützlich, da dann wesentlich günstiger Channels erstellt werden könnten, ohne auf Altcoins zurückgreifen zu müssen.

Quote
@d5000: Bist Du noch am Thema? Für welches Einsatzgebiet?
Ich verfolge es rein aus Interesse. Müsste aber mal wieder den Stand der letzten Monate (falls sich etwas geändert hat) abfragen Wink
newbie
Activity: 3
Merit: 2
Gute Zusammenfassung. Ein weiterer wichtiger Vorteil ist, dass man in der Sidechain mit neuen Features experimentieren kann, für die sich in der Mainchain Governance - warum auch immer - keine Mehrheit findet. Sozusagen eine (theoretische) Lösungsoption für das Christensen'sche Innovator's Dilemma. Ob es nur drei Sidechain Varianten gibt, bin ich noch nicht sicher.

Und Satoshi's Warnung ist ein starkes Gegenargument:

I don't believe a second, compatible implementation of Bitcoin will ever be a good idea.  So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network.

Die Eigenschaften von LN sind derart fundamental unterschiedlich, dass ich es weniger als Alternative sehe, denn als parallele Möglichkeit, evtl. sogar unabdingbare Notwendigkeit.

@d5000: Bist Du noch am Thema? Für welches Einsatzgebiet?
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
Update 02/2023: Rollups ergänzt

Hi,

Lightning dürften die meisten ja inzwischen als Scaling-Technologie kennen. Ich verfolge aber etwas die Entwicklung eines alternativen Mechanismus namens Sidechains. Der Ansatz wurde bisher nur in einer halbzentralen Variante realisiert und es ist recht schwer, Infos zu bekommen, da die Technik kaum hier im Forum und den Bitcoin-Medien angesprochen wird.

Dennoch finde ich die Technologie sehr interessant, da sie meiner Meinung nach als "Zwischenlayer" zwischen der Main Chain und Lightning-ähnlichen Offchain-Lösungen dienen könnte. Deshalb dachte ich, mache ich mal einen Thread dazu auf - vielleicht kommen auch andere Beiträge.

Für die, die Sidechains noch nicht kennen:

Es handelt sich kurz gesagt um unabhängige Blockchains, auf denen eine Währung zirkuliert, die an Bitcoin (oder eine andere "Haupt-Kryptowährung") gebunden ("gepeggt") ist. Also quasi um einen Altcoin, der immer genauso viel wert ist wie Bitcoin.

Damit das funktioniert, gibt es bei echten Sidechains einen Mechanismus, der es erlaubt, stets einen Coin der Sidechain-Währung 1:1 mit der Hauptchain-Währung auszutauschen.

Das impliziert natürlich, dass die Geldmenge der Sidechain nicht einfach zur Bitcoin-Geldmenge hinzugefügt werden kann. Stattdessen gilt bei "echten Sidechains" die Regel, dass ein Sidechain-Coin nur existieren darf, solange er auf der Bitcoin-Hauptchain entweder per "Proof of Burn" zerstört ("One-Way-Peg") oder so lange eingefroren und nicht verwendet wird, bis er auf der Sidechain zerstört wird, damit er wieder in der Hauptchain verwendet werden darf ("Two-Way-Peg"). Die Geldmenge von 21 Mio. bleibt also gleich.

Was sind die Vor- und Nachteile?

Vorteile:
  • Die Hauptchain wird entlastet, indem Transaktionen auf Sidechains stattfinden. Theoretisch könnten fast unbegrenzt viele Sidechains existieren und somit die "Skalierbarkeit" gegen unendlich tendieren (praktisch sind natürlich einige Grenzen gesetzt, siehe unter Nachteile)
  • Im Gegensatz zu LN handelt es sich um eine "echte" Blockchain, die Transaktionen haben also den gleichen Charakter und sind (abgesehen von der Möglichkeit von Double Spends, wie auch auf der Hauptchain) unumkehrbar. Man braucht also z.B. nicht online zu sein, um eine Transaktion zu empfangen.
  • Sidechains können Features bieten, die bei Bitcoin zu experimentell oder gefährlich wären - beispielsweise kürzere Block-Intervalle oder eine erweiterte Skriptsprache für Smart Contracts (wie bei Rootstock/RSK).
  • Sollte eine Sidechain "scheitern", da sie erfolgreich angegriffen wird, ist die Hauptchain nicht betroffen.
  • Um die Sidechain zu nutzen, braucht ein User keine On-Chain-Transaktion durchzuführen wie bei LN. Er kann die Sidechain-Coins sofort akzeptieren oder bei einer die Sidechain unterstützenden Börse kaufen.

Nachteile und mögliche Probleme:

  • Es ist eine Herausforderung, einen sicheren Konsensmechanismus für die Sidechain zu finden. Das liegt daran, dass die Sidechain-Währung nicht als Reward ausgezahlt werden kann, da sich ja dann das Angebot gegenüber der Hauptchain erhöhen würde - es können allerdings Transaktionsgebühren erhoben und "eingesammelt" werden. Deswegen gehen die meisten Vorschläge von "merged mining" aus (d.h. die gleichen Miner, die Bitcoin minen, können als Bonus Sidechain-Gebühren einsammeln).
  • Im Gegensatz zu LN sind die Transaktionen nicht sofort bestätigt, sondern wie auf der Hauptchain erst, nachdem ein Miner sie in einen Sidechain-Block aufnimmt. Damit hängt die Bestätigungsgeschwindikeit vom Sidechain-Blockintervall und der Kapazität ab.
  • Ein weiterer Nachteil gegenüber LN ist bei den meisten Modellen, dass die LN-Sicherheit auf die Sicherheit der Hauptchain zurückgreifen kann. Bei Sidechains kann dagegen die Sidechain einzeln angegriffen werden, um z.B. einen Double Spend zu erreichen.
  • Wie LN brauchen auch Sidechains Speicherplatz und Bandbreite auf der Haupt-Blockchain, vor allem dann, wenn Transaktionen zwischen Haupt- und Sidechain ausgeführt werden. Wird die Sidechain breit akzeptiert, ist jedoch der Speicherplatzverbrauch vermutlich geringer als bei LN, da nicht jeder User zum Nutzen der Sidechain eine On-Chain-Transaktion (wie beim Channel-öffnen) benötigt.

Arten von Sidechains

Es gibt drei grundsätzliche Arten von Sidechains: solche mit einem "zentralen" Peg, "föderierte" Sidechains und "dezentrale" Sidechains, von denen bisher nur das "Drivechain"-Modell zumindest in die Alpha-Phase gekommen ist. Kommerziell eingesetzt werden bisher nur zentrale und föderierte Chains.

Zentralisierte Sidechains: Hier wird der "Peg" von einem einzigen Akteur verwaltet. Das heißt, dieser Akteur sorgt dafür, dass Bitcoins auf der Hauptchain eingefroren werden und in Sidechain-Coins umgewandelt werden. Dieses Modell ist natürlich nur begrenzt interessant zur Skalierung von Bitcoin, da man dem zentralen Akteur vertrauen muss.

Föderierte Sidechains: Funktionieren im Prinzip wie zentrale Sidechains. Aber hier gibt es mehrere Akteure, die mit Hilfe von Multisig-Transaktionen gemeinsam über das "Einfrieren" und das Umwandeln in Sidechain-Token entscheiden. Wenn die "vertrauenswürdigen Entitäten" gut ausgewählt werden, kann damit die Abhängigkeit gegenüber einer zentralen Entität verringert werden. Dieses Modell wird bei den bisher wichtigsten Sidechain-Projekten Liquid (Blockstream) und Rootstock/RSK eingesetzt.

Drivechains: Dieses Modell ist dezentral und damit das wohl interessanteste. Es sind hier die Bitcoin-Miner, die über das "Einfrieren" und "Auftauen" von Coins entscheiden, indem sie entsprechende Signale in die Blöcke einbauen. Grundsätzlich müssen die Miner zuerst das Einfrieren bestätigen, bevor auf der Sidechain der Coin kreiert wird. Wird auf einer Sidechain ein Coin zerstört, der auf die Hauptchain zurück soll, so müssen die Miner ebenfalls zustimmen, dass die eingefrorenen Coins wieder "aufgetaut" werden können. Damit die Angriffswahrscheinlichkeit minimiert wird, müssen die Miner das "Auftauen" einer Transaktion mehrmals - laut Vorschlag mehrere Wochen oder sogar Monate lang - kontinuierlich bestätigen. Erst dann kann der Coin auf der Hauptchain wieder genutzt werden. Drivechains befinden sich zur Zeit in der Entwicklung, ein Testnet gibt es seit September 2018, siehe drivechain.info. Zu News siehe den Twitter-Account von Paul Sztorc.

Sidechains mit "Proofs of Proof of Work" (PoPoW/NiPoPoW): Bei diesen Chains wird ein Beweis erstellt, dass eine bestimmte Transaktion einer Sidechain von einer bestimmten Menge Proof of Work abgesichert wurde. Diese Sidechain-Art ist bisher noch ein theoretisches Konzept, Research gibt es u.a. vom Cardano-Team.

Sidechain Headers on Mainchain (SHOM): Ein 2017 auf der Bitcoin-Mailingliste vorgeschlagenes Konzept, bei dem die Header der Sidechain auf der Mainchain gespeichert werden und somit die "gebündelten" Transaktionen der Sidechain sozusagen auch auf der Mainchain "nachverfolgt" werden können. Erinnert auf den ersten Blick etwas an das Konzept des Altcoins Ardor.

Extension Blocks: Diese sind technisch gesehen mit Sidechains sehr eng verwandt. Es handelt sich um Blöcke, die zum Mainchain-Protokoll gehören, aber nicht von allen Nodes verfolgt werden müssen. Quasi eine sehr eng mit der Mainchain integrierte Sidechain.

Rollups: Rollups sind Sidechains, bei denen jeder Block in einer stark komprimierten Form auch auf die Mainchain geschrieben wird. Der Status der Sidechain ergibt sich also jederzeit aus den Daten der Mainchain, was "Abhebungen" von der Sidechain auf die Mainchain wesentlich vereinfacht, da jederzeit nachgewiesen werden kann, wenn jemand zu betrügen versucht. Es handelt sich also weniger um eine "unabhängige Chain" die selten mit der Mainchain interagiert, als um eine Möglichkeit, Transaktionen weniger Bytes belegen zu lassen (Studien sprechen je nach Typ von ca. 4 bis 100facher Blocksize-Ersparnis). Auch können Rollups neue Features (z.B. expressivere Skriptsprachen) bieten, sind aber dabei etwas limitierter als das "traditionelle" Sidechain-Modell. Rollups sind bisher das (neben "föderierten" Modellen) am weitesten entwickelte Sidechain-Modell und bei Ethereum gibt es bereits einige Implementierungen, die jedoch fast alle noch zentralisierte Elemente aufweisen.

Es gibt zwei Grundformen: "validierende"  (bei denen bei Abhebungen ein kryptographischer Beweis erbracht werden muss, dass die Regeln beachtet wurden) und "optimistische" Rollups (hier wird per Default davon ausgegangen, dass alles korrekt abläuft, wenn dies jedoch nicht der Fall ist, kann dies von jedem Teilnehmer per kryptographischem Beweis belegt und somit die Abhebung rückgängig gemacht und der Betrüger bestraft werden, ähnlich wie bei Lightning).

Soviel erstmal, bei Interesse später mehr Wink Wer weitere Sidechain-Modelle und Aspekte kennt - nehme ich gerne auf.

 
Jump to: