“Wir haben ausgerechnet, was passiert, wenn wir immer größere Blöcke haben. Ab einem bestimmten Wert kommt es zu Problemen.”

Christian Decker ist wohl der erste Wissenschaftler weltweit, der eine Doktorarbeit über Bitcoin geschrieben hat. Sein Thema ist die Skalierbarkeit. Im Interview erklärt er, welche Flaschenhälse es gibt und wie man die Bitcoin-Blockchain dennoch skalieren kann.

Es gibt Fälle, in denen sich ein Hobby bezahlt macht. Etwa bei Christian Decker. Der Schweizer hat schon vor einigen Jahren begonnen, sich mit Bitcoin auseinanderzusetzen. Während seines Masters in “Verteiltes Rechnen” an der ETH Zürich hat er sich mit Konsensprotokollen beschäftigt, ist auf den Bitcoin gestoßen und hat schon 2009 mit Mining begonnen. Das hat ihm eine Stange Bitcoins eingebracht, die bis heute anhält.

Wertvoller ist für ihn aber, dass er sich schon sehr früh wissenschaftlich mit Bitcoin auseinandergesetzt hat. Nun, einige Jahre später, ist er wohl der weltweit erste Forscher, der eine Doktorarbeit über Bitcoin geschrieben hat. Auf dem Arbeitsmarkt macht sich das gut. “Einen Job suchen musste ich nicht. Zwischendurch hatte ich 13 oder 14 Firmen, die in Frage kamen, und wurde von weiteren Firmen gefragt, ob ich auf ihre Kosten zu ihnen fliege, damit sie sich vorstellen. Ich habe denen dann gesagt, dass sie sich das Geld und die Zeit sparen sollen.”

Mittlerweile hat sich Christian Decker entschieden. Sein künftiger Arbeitgeber ist ein internationales Unternehmen, so viel verrät er, und er kann direkt mit dem Thema weitermachen, mit dem er sich die vergangenen Jahre beschäftigt hat: der Skalierbarkeit von Blockchains. Über dieses Thema, das die Bitcoin-Szene seit gut einem Jahr heftig bewegt, haben wir uns im Interview intensiv unterhalten.

Natürliche Grenzen

Du hast mit anderen Wissenschaftlern weltweit ein Paper zur Skalierbarkeit geschrieben. Wie kam das?

Mit Skalierbarkeit habe ich mich schon früh beschäftigt. Nachdem ich angefangen habe, Bitcoin zu erforschen, und das Protokoll verstanden habe, stellte sich mir die Frage: jeder speichert alles und verifiziert alles – das skaliert doch nicht, oder?

Als es dann drum ging, ein Thema für Doktorarbeit zu finden, dachte ich mir, ok, ich frage einfach, ob und wie wir Bitcoin skalieren können. In den letzten Jahren habe ich daher mehrere Paper über Skalierbarkeit geschrieben. Ich habe mich auch mit anderen Themen beschäftigt, aber die Skalierbarkeit finde ich am spannendsten.

Du schreibst, “Bitcoin skaliert nicht”. Kann man nicht einfach die Größe der Blöcke erhöhen, um mehr Transaktionen durchzulassen?

Das geht schon, aber nur bis zu einer bestimmten Größe. Man stößt dabei relativ flott an Grenzen, und zwar Grenzen, die Naturgesetze sind. Ab einer bestimmten Blockgröße bekommt man die Daten nicht mehr durchs Netz gepumpt.

Mit skalieren meint man im Allgemeinen, dass man keine solche Grenze vor Augen hat. Die perfekte Skalierbarkeit ist, dass man grenzenlos neue Nutzer aufnehmen und diese Menge an Daten verarbeiten kann.

Die Blockgröße ist also schon ein Parameter, an dem man drehen kann. Es wurde lange diskutiert, wie man das macht, ohne dass wir zu einer Lösung gekommen sind, was für viel Frust gesorgt hat. Aber im Endeffekt stößt man damit an natürliche Grenzen.

Wo liegen diese natürlichen Grenzen?

Mein allererstes Paper ging darum, wie sich Informationen im Bitcoin-Netzwerk ausbreiten. Wir haben ausgerechnet, was passiert, wenn wir immer größere Blöcke haben. Ab einem bestimmten Wert kommt es zu Problemen.

Um das zu verstehen, muss man sich überlegen, was passiert, wenn ein Miner einen Block findet: Er beginnt, diesen Block im Netzwerk zu verteilen. Während sich der Block verbreitet, von Knoten zu Knoten, gibt es zwei Gruppe im Netzwerk: In der einen weiß man, dass es es diesen Block gibt, und in der anderen weiß man das nicht.

Ein Miner, der im unwissenden Teil des Netzwerks sitzt, wird weiter an einem Block rechnen, obwohl dieser von einem anderen schon gefunden und verteilt wurde. Während ein Block durchs Netzwerk wandert, wird der unwissende Teil immer kleiner, weil wir ja den gefundenen Block weiter verteilen, und der Teil des Netzwerks, der ihn kennt, wird größer.

Je größer ein Block ist, desto länger braucht er aber, um alle im Netzwerk zu erreichen. Ab einer bestimmten Größe schrumpft der Teil, der den Block noch nicht kennt, so langsam, dass die Konkurrenz schon einen neuen Block gefunden hat, bevor die Miner im unwissenden Teil von dem alten Block erfahren haben. In so einer Situation kommt es zu vielen Forks, die das Netzwerk in viele kleine Inseln verteilen.

Ab welcher Blockgröße würde das passieren?

Als wir das 2012 ausgerechnet haben, lag diese Grenze bei 13,5 MB. Heute liegt sie vermutlich höher, weil das Netzwerk effizienter wurde. Wir haben das Relay-Netzwerk, die Mining-Pools arbeiten effizienter, und die Anzahl der Knoten wurde geringer. Man müsste die konkrete Größe neu schätzen.

Das ist aber keine Schwarz-Weiß-Frage. Als Miner muss man annehmen, dass, wenn man einen Block findet, ein konkurrierender Miner diesen Block mit einer bestimmten Wahrscheinlichkeit schon gefunden hat. Der Erwartungswert sagt, wieviele konkurrierende Blöcke vermutlich in Umlauf sind. Derzeit ist er 0,015. Als wir das damals ausgerechnet haben, ist er bei 13,5 MB auf über 1 gestiegen, was für uns bedeutet, dass das Netzwerk zerteilt wird. Bei Blöcken mit 1 GB wäre der Erwartungswert etwa 50, das heißt, ein Miner müsste annehmen, dass der Block, den er eben gefunden hat, schon 50-Mal im Netzwerk unterwegs ist.

Flaschenhälse & Hops

Das ist aber nur einer der Flaschenhälse. In eurem Paper habt ihr weitere Faktoren, an denen die Skalierung hängt, beschrieben. Welche sind das?

Es ging hier vor allem um die Kapazität der Knoten. Die CPU validiert Transaktionen, die Festplatten speichern die Blockchain, die Bandbreite leitet Blöcke weiter. Wir sind dabei von ganz normalen Laptops ausgegangen, um auszurechnen, wie weit man die Blockgröße erhöhen kann, ohne dass ein Durchschnitts-Knoten rausgeworfen wird.

Diese knotenspezifischen Limits sind aber gar nicht so wichtig. Viel wichtiger ist, was sich durch die Verbindung der Knoten ergibt. Und da stoßen wir auf Limits, die zeigen, dass die effiziente Durchsatzrate des Netzwerks wesentlich geringer ist als das, was der einzelne Knoten leisten kann. Denn wir müssen über mehrere Hops kommunizieren.

Stell dir vor, ich sage zu dir, hei, ich habe einen Block, und du schaust, ob du den Block schon kennst, und wenn du ihn nicht kennst, sagst du zu mir, hallo, ich habe Interesse. Ich schicke dir den Block dann, aber bis es soweit ist, haben wir schon zweimal kommuniziert. Dann beginnst du, den Block zu verifizieren, dafür brauchst du Festplatte und CPU, und erst danach kannst du ihn an deine Nachbarn weitergeben. All das führt zu Latenzen.

Wir haben das für ein anderes Paper nochmal genau ausgerechnet, und kamen dazu, dass man bei etwa 27 Transaktionen je Sekunden an ein Limit stößt.

Hört sich an, als sei die Anzahl der Hops der entscheidende Faktor bei der Skalierbarkeit. Weißt du, wieviele das gewöhnlich sind?

Ja, das kann man so sagen. Ich habe eine Webseite, bitcoinstats.com, auf der ich zeige, wie lange die Blöcke und Transaktionen brauchen. Da kann man vielleicht auch die Hops erkennen.

Auf bitcoinstats.com verbinden wir uns mit jeder Menge Knoten im Netzwerk und messen, wie lange wir brauchen, um 50 oder 90 Prozent des Netzwerks zu erreichen. Wie lange dauert es, bis sie uns sagen, hei, wir haben diesen Block, wollt ihr ihn auch haben? So sehen wir die allgemeine Latenz des Netzwerks. Bei 50% ist das super, aber bei 90% dauert es oft länger. Wir haben eine lange tail.

Wie viele Hops es sind, lässt sich schwer schätzen. Bei einer Abdeckung von 100 % kann es eine Kette von bis zu 20 Hops geben, aber ich denke, 90% sind in vier bis fünf Hops erreichbar.

Das heißt, mit dem Netzwerk, das wir jetzt haben, werden wir nie die Kapazität erreichen, die wir uns wünschen …

Ja, wir können zwar noch ein wenig an der Blocksize herumschrauben, ich denke, 2, 4, vielleicht sogar 8 MB sollten machbar sein, auch wenn das vermutlich mit Abstrichen im Sicherheitsgrad von Bestätigungen einhergeht, da größere Blöcke zu mehr Forks führen. Aber selbst damit sind wir noch bei einer zweistelligen Anazhl von Transaktionen je Sekunde. Momentan haben wir 3-7, wenn wir das mal acht rechnen, ist das immer noch relativ wenig im Vergleich mit Visa oder PayPal. Das Potenzial, das man sich heute ausrechnet, kann man damit nicht verwirklichen, etwa ein Micorpayment, um für Inhalte zahlen. Das funktioniert onchain nicht.

Du meinst, nicht auf der Bitcoin Blockchain, oder generell onchain? Ihr habt ja Vorschläge gemacht, wie man das Netzwerk verbessern könnte …

Ja, Emin Gur Sürer, von der Universität Cornell, hat Bitcoin NG vorgeschlagen. Damit kann man sicherlich einiges machen, und wir an der ETH haben unser eigenes Protokoll entwickelt, peersensus. Die beiden Systeme sorgen dafür, dass man Blöcke nicht mehr benutzt, um Transaktionen zu bestätigen, sondern nur noch, um den Einfluss der einzelnen Teilnehmer im Netzwerk zu beschränken. Dadurch kann man die Kapazität etwa um den Faktor 10 steigern, aber diese beiden Systeme basieren weiterhin darauf, dass man den globalen Zustand erhält – dass also alle Knoten alle Transaktionen speichern müssen. Hier stößt man weiterhin recht schnell an eine Grenze.

Duplex und Lightning

Gibt es auch Möglichkeiten, Blockchains so aufzubauen, dass nicht jeder alles speichern und validieren muss?

Es gibt verschiedene Ideen, aber noch keine, die reif genug ist. Sie leiden alle darunter, dass sich einzelne Teilnehmer womöglich isolieren können und dann den Teil, den sie exklusiv bearbeiten, manipuliert ans Netzwerk zurückgeben. Man sucht derzeit noch nach Methoden, das so aufzubauen, dass sich ein Teilnehmer nicht mehr so positionieren kann. Aber bisher hat jeder Vorschlag noch Probleme. Man weiß noch nicht mal, ob es überhaupt machbar ist.

Daher geht der trend dahin, es offchain zu versuchen. Du hast ja auch ein Modell gebaut, die Duplex-Microchannel …

Ja, unsere Duplex-Microchannel funktioniert ähnlich wie Lightning. Das war etwas ungünstig, weil Lightning nicht durchs wissenschaftliche peer review musste, war das schneller öffentlich als die Duplex-Microchannel.

Das Konzept der Microchannel ist, dass wir Geld beseite legen, die Transaktionen offchain übertragen und sie danach auf der Chain settlen. Die ganze Idee basiert darauf, dass wir diese Verhandlungen, die wir onchain machen, so strukturieren, dass automatisch verhindert wird, dass jemand betrügen kann.

Wenn ich jetzt sage, ich schicke dir 0,1 Bitcoin, dann gebe ich dir die Werkzeuge, um diese Entscheidung auf der Bitcoinblockchain durchzusetzen, auch wenn ich mich weigere oder verschwinde.

Was ist der Unterschied zum Lightning Network?

Wir haben dieselben Ziele und ein ähnliches Setup, aber es gibt kleine, strukturelle Unterschiede. Die beiden Systeme sind auch kompatibel, man kann wohl ein Netzwerk aufbauen, das beide verbindet. Da sowohl Lightning als auch Duplex Hashed Timelock Contracts verwenden, sollten die Transaktionen des einen Systems auch vom anderen erkannt werden.

Was meinst du, wie lange es noch dauern wird, bis es diese Netzwerke gibt?

Es gibt schon ein paar Prototypen, und neben den Lightning-Leuten arbeiten Rusty Russel von Blockstream und ich an Implementierungen. Ich habe auch schon einen halbfertigen Microchannel Prototypen, der am Laufen ist. Die Protokolle sind kompliziert, aber Leute arbeiten daran, sie umzusetzen. Das ist nicht das Problem.

Wichtiger ist derzeit, dass wir die Grundarbeit machen. Etwa dass wir Segregated Witness bekommen. Das brauchen beide Netzwerke, weil sie darauf beruhen, dass sie offchain Transaktionen verketten, und dafür müssen wir die Transaction Malleability lösen. Das ist das, was Segregated Witness macht.

About Christoph Bergmann (1105 Articles)
Das Bitcoinblog wird von bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder. Wenn Ihnen das Blog gefällt, freuen wir uns über Spenden an 1BvayiASVCmGmg4WUJmyRHoNevWWo5snqC. Jeder Satoshi wird dazu verwendet, um das Blog besser zu machen. Weitere Infos, wie Sie uns unterstützen können, finden Sie HIER. Gastbeiträge sind ebenfalls willkommen. Meinen öffentlichen PGP-Schlüssel sowie den Bitmessage-Schlüssel finden Sie HIER

16 Comments on “Wir haben ausgerechnet, was passiert, wenn wir immer größere Blöcke haben. Ab einem bestimmten Wert kommt es zu Problemen.”

  1. Coinling // 14. June 2016 at 10:08 // Reply

    Sehr gutes Interview. Nun habe ich einen ganz anderen Blick auf die blocksize Debatte.
    Wenn das stimmen sollte gehen wir mit bitcoin ja vielleicht doch den richtigen, vorsichtigen Weg.
    Warum haben eigen. So viele Leute Probleme mit blockstream Lightning und offensiv Lösungen ?

  2. Mir ist Vorsicht auch lieber, als eine (unprofessionelle) Hauruck-Aktion auf 2MB.

  3. Schöner Salat. Die Blöcke sind randvoll, und der Mempool gegenwärtig bei 21 MB. Hoffentlich kommt Segwit bald, und hoffentlich wird das Versprechen einiger Core-Entwickler die Blockgrösse auf 2 MB zu erhöhen eingelöst. So wie es aussieht wird die Blockchain zu einem verdammt teuren Geld-Speicher, wenn die Miner in nicht allzuferner Zukunft von Transaktionsgebühren leben müssen… heute wären es rund 10 USD pro Transaktion, mit Segwit vielleicht noch 5. Wer will (kann) das bezahlen?

  4. Christoph // 14. June 2016 at 20:50 // Reply

    Mit 2MB erkauft man sich ganz einfach X Jahre Zeit, eine bessere Lösung zu finden.
    Aktuell geht es ja noch aber in Kürze wird es mit dem 1MB zum Problem kommen!

  5. Ich frage mich als jemand der nicht wirklich tief in der Materie steckt was an den genannten Flaschenhälsen wie Bandbreite, CPU Leistung… neu sein soll. Diese Grenzen sind doch alle hardwarebedingt!?. Könnte man im Umkehrschluss die Behauptung aufstellen das der Bitcoin schneller gewachsen ist als der technische Fortschritt im IT Bereich und der Bitcoin somit in einem zukünftigen Szenario mit besserer Hardware/IT-Technologie weniger Probleme hätte?
    So gesehen würde der zu schnelle Aufstieg des Bitcoin auch sein Ende besiegeln?

    • Name required // 15. June 2016 at 8:56 // Reply

      Man muß den Bitcoin eben als das sehen, was er ist: ein Geld- bzw. Wertspeichersystem ohne staatlichen Zugriff. Weniger ein schnelles Transaktionssystem. Dazu ist ja z.B. schon ab Werk ein Coin wie LTC besser geeignet, einfach weil die Bestätigungszeiten deutlich kürzer sind.
      Dei Lösung liegt vermutlich darin, alle Altcoins mit in das System einzubeziehen, weil man so weiter dezentralisiert.

      Auf jeden Fall zeigt die Problematik auch sehr schön auf, dass Coins wie ETH, die alles Mögliche in der Blockchain speichern wollen und diese dadurch noch viel mehr aufblasen, zum Scheitern verurteilt sind.

      • Anonymous // 15. June 2016 at 15:34 //

        Das ist leider alles nicht so einfach. Die limits der Knoten sind halt nicht ausschlaggebend fuer die Skalierbarkeit sondern viel eher das Netzwerk und dessen Limits.

        Dass Litecoin fuer den taeglichen Gebrauch besser geeignet ist stimmt auch nicht, denn die Aussagekraft einer Confirmation haengt davon ab wie unwahrscheinlich es ist dass sich ein Blockchain Fork bildet. Das mag in dem kleinen Litecoin Netz noch unwahrscheinlich sein, aber bei gleich grossem Netzwerk erhoeht die hoehere Blockrate auch die Forkrate und dann braucht man mehr Confirmations fuer die gleiche Sicherheit. Es gleicht sich alles aus.

  6. @name required

    Absolute Zustimmung! sehe ich genauso, da es m.E. auch kein Problem darstellt, dass Bitcoin eben mehr als “digitales Gold” statt als reines Cash-System eignet (auch wenn Satoshi das vorrangig wohl so sehen wollte).
    Aber die Alternativen als Cash-System stehen ja schon längst bereit (s.Altcoins)

  7. Bitcoin wächst nicht schneller als der technische Fortschritt, weil sich der technische Fortschritt sich am Bedarf orientiert.

    http://winfuture.de/news,86013.html
    http://www.chip.de/news/73-7-Terabit_s-Neue-Glasfaser-bricht-alle-Rekorde_61258305.html
    http://de.ubergizmo.com/2016/02/12/rekord-forscher-uebertragen-daten-mit-1-125-tbps.html

    Daher finde ich es richtig, dass man an Alternativen , einem Plan B entwickelt.
    Wiederum finde ich es unabgebracht, dass den Plan B voreilig versucht zu gehen, obwohl man Plan A noch nicht mal ansatzweise hat ausgeschöpft.

    Allein eine Erhöhung auf 2 MB würde vermutlich wieder ein Jahr Zeit bringen, eine Erhöhung auf 4 MB zwei Jahre, 8 MB vermutlich 3 Jahre.
    Und in 3 Jahren kann man genügend on-chain-Möglichkeiten entwickeln, wie z.B. ThinBlocks und zudem auch erstmal schauen, inwieweit sich die Bandbreiten und Geschwindigkeiten weiterentwickeln.

    Am Ende wird man feststellen, dass man die vielen Tx dann doch onchain abwickeln kann.

  8. Mit Duplex gibt es dann ja auch nen Mitbewerber zu Lightning was das Problem der Zentralisierung an die Core Entwickler die an Lightning zumindest wieder etwas aufhebt.

    Also für mich ist das auch der erste Artikel nachdem ich das mit dem Core Team nicht mehr ganz so eng sehe.

  9. solange ich als Bitcoiner zwischen offchain und onchain-Tx wählen kann, soll mir Lightning & Co. egal sein. Doch ich befürchte, dass man an einem Punkt gelangen könnte, an dem ich nicht mehr darüber entscheiden kann und meine Tx einfach offchain behandelt wird.
    Das wäre dann für mich der Punkt um mich perspektifisch von Bitcoin zu trennen.

    Wiegesagt, es ergibt für mich keinen Sinn, Offchain-Systeme einzuführen, obwohl man die OnChain-Möglichkeiten nicht mal ansatzweise hat ausgeschöpft.
    Dies macht die Blockchain nur unnötig komplex und letztendlich auch anfälliger für Bugs.

    Z.B. Xtreme Thinblocks, kommt in dem Beitrag oben gar nicht vor, würde aber allein schon das Problem der Propagierung von Blöcken deutlich entschärfen, weil Miner eben nicht volle Blöcke ans Netzwerk senden müssten, sondern die Blöcke selbst die Nodes bereits vorher untereinander austauschen und die Miner quasi nur den Kopf des Blocks propagieren müssen.
    https://bitcoinblog.de/2016/02/20/thinblocks-und-libsecp256k1-echte-verbesserungen-der-skalierbarkeit/

    Man sollte deshalb lieber an OnChain-Lösungen arbeiten, statt gefühlt den Schwerpunkt nahezu vollständig auf OffChain-Lösungen zu setzen.

    • Dito…
      “Dies macht die Blockchain nur unnötig komplex und letztendlich auch anfälliger für Bugs”
      …sieht man gerade bei DAO… will nicht voreilig sein, aber bei SegWit wünschte ich mir ein Vorgehen welches die Blockchain schlanker macht, und all den Firlefranz welcher Sidechains und Lightning ermöglicht erst mal aussen vor gelassen wird. Eventuell erlebt Ethereum mit der DAO nun tatsächlich das MtGox von Bitcoin. Schade eigentlich, aber ein schlanker Code hat nun mal eine gewisse Esthetik. Hoffen wir das Beste!

    • Bin ganz deiner Meinung. Wenn man sich von vorneherein auf Off-Chain Lösungen konzentriert, dann ist klar, dass wir keine On-Chain Lösung finden. Die Blockchain wird dann wahrscheinlich systematisch von Off-Chain Anwendungen auseinander genommen. Ist verständlich warum seitens einiger Leute daran Interesse besteht. Der Einstieg für private, rein profit orientierte Anwendungen ist damit geebnet.

  10. Danke für die ganze Information, auch wenn ich als Crypto Neuling mit der ganzen Info Flut ein wenig überfordert bin :-).
    Aber es dauert halt bis man sich in die Materie eingearbeitet hat….

  11. Insbesondere für Neulinge ist das ein super Artikel mit vielen wertvollen Informationen über den Bitcoin und die Grenzen dieser Kryptowährung.
    Vielen Dank für den tollen Artikel.
    Mit besten Grüßen,
    Robert

  12. für neulinge ist das top, und es wird nicht lange dauern bis du dich da eingearbeitest hast

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s