Dezentralität und die Frage, ob Bitcoin skalieren kann

"Network" von montillon.a via flickr.com. Lizenz: Creative Commons

Wer sich heute  entscheiden muss, braucht Prognosen, wie die Zukunft ausschaut. In der Blocksize-Debatte laufen zwei Visionen, wie der Bitcoin werden soll, zusammen und gegeneinander. In beiden spielt die Dezentralität eine wichtige Rolle.

Wenn es ein heiliges Wort im Bitcoin-Universum gibt, ein Wort, das angebetet und vergöttert wird, dann ist es die “Dezentralisierung.” Sie macht den Unterschied zwischen PayPal und Bitcoin, sie sorgt dafür, dass Bitcoin seine eigene, exotische, uneinreissbare Sicherheit hat. Die Dezentralisierung ist das heilige Strukturprinzip des Bitcoins, und keiner darf es wagen, etwas gegen sie zu sagen oder zu schreiben.

Nur … was bedeutet Dezentralisierung? Und gibt es eine Marke, an der man erkennen kann, ob etwas noch dezentral ist oder schon zentralisiert? Diese Fragen sind wichtig, wenn wir über die Zukunft des Bitcoins sprechen, und im Grunde kann man ohne sie gar nicht verstehen, worum es im Blocksize-Streit geht und warum dieser so erbittert und zornig geführt wird.

Im Blocksize-Streit geht es auch um Dezentralisierung. Und damit um alles.

Kapazität und Dezentralisierung

Die Blocksize-Diskussion dreht sich um die Frage, ob man das Limit der maximalen Größe der Blöcke anheben darf, kann und soll. Der eine Teil der Community meint, man müsse, da Bitcoin dringend mehr Kapazität benötig, während die andere Seite sagt, man kann nicht, da größere Blöcke weniger Dezentralisierung bedeuten und das wiederum den Bitcoin zerstört.

Dagegen lässt sich zunächst nichts einwenden. Größere Blöcke bedeuten, dass die Knoten mehr Daten empfangen, speichern, versenden, validieren können, dass ihre CPU mehr rechnen, ihre Festplatte mehr schreiben und ihre Internetverbindung mehr Traffik durchlassen muss. Und wenn die Anforderungen an die einzelnen Knoten steigen, wenn sie bessere Hardware und bessere Verbindungen brauchen, dann geben Knoten auf und der Bitcoin zentralisiert sich. Ohnehin kann ein System wie der Bitcoin, das alle Daten an alle Knoten verteilt, nicht skalieren.

Diese Aussage ist in der Tendenz richtig. Aber eine Tendenz ist nie genug, um Entscheidungen zu treffen. Was genau meint Dezentralität? Wo passiert sie im Bitcoin-Netzwerk, warum ist sie wichtig? Und gibt es einen Grad, ab dem Bitcoin zentralisiert anstatt dezentralisiert ist? Und, vielleicht am wichtigsten: Wenn Bitcoin nicht skalieren kann – wie soll man sich dann die Zukunft des Netzwerkes vorstellen? Hat ein Bitcoin, der nicht skalieren kann, als Währung überhaupt einen Wert?

Wir werden zu den verschiedenen Visionen kommen, die es derzeit von der Zukunft des Bitcoins gibt, und die sich grob gesagt in “onchain scaling” und “offchain scaling” unterscheiden lassen. Zunächst müssen wir aber noch über Dezentralisierung reden

Jeder Knoten hat dieselben Pflichten und Rechte

Im Kern bedeutet Dezentralisierung, dass es kein Zentrum gibt. Bitcoin ist ein P2P Netzwerk. Jeder Knoten ist gleich. Er hat die gleichen Rechte und Pflichten: er speichert die Blockchain und prüft Transaktionen. Ein Knoten kann sich von anderen dadurch unterscheiden, dass er mehr Verbindungen hat. Je nach verfügbarer Bandbreite und Laufzeit haben manche Knoten 8-10 und andere hunderte peers. Aber an sich macht das keinen Unterschied. Es gibt keinen Knoten, desssen Ausfall das System kaputtmacht, keinen Knoten, in den man falsche Transaktionen reinschieben und erfolgreich verteilen kann, keinen Single-Point-of-Failure, keinen einzelnen-Punkt-des-Scheiterns. Es gibt keinen Knopf oder Schalter, mit dem man den den Bitcoin ausknippsen kann, und falls eine Regierung beschließt, dass es Bitcoin nicht geben darf, weil er gegen Gesetze verstößt, gibt es keine Adressen, an die sie Männern oder Frauen mit Waffen schicken kann.

Im Prinzip haben wir damit schon unsere Definition von Dezentralisierung: Alle Knoten im Netzwerk haben dieselben Rechte und können sich mit allen verbinden. Wenn man einen Knoten wegnimmt, macht es nichts, da keiner eine zentrale Funktion erfüllt. Im Grunde wäre das Bitcoin-Netzwerk bereits dezentral, wenn es drei Knoten gibt, da es kein Problem wäre, wenn einer davon ausfällt. Aber natürlich wäre dies eine riskante Wette.

Wann hört Bitcoin auf, dezentral zu sein?

Die großen Fragen sind: Wie viele Knoten braucht das Netzwerk, um “dezentral” zu sein? 100? 1000? 10.000? Und: wie viele Knoten sterben, wenn man die Blöcke um wie viele MB größer macht? Es gibt, fürchte ich, darauf keine Antworten, sondern nur Meinungen. Was mit das Problem dieses Streits ist.

Wenn wir 200 Knoten haben, die auf privaten Computern von irgendwelchen Leuten auf der ganzen Welt verteilt sind, dürfte das ein höheres Maß an dezentraler Sicherheit bedeuten, als wenn wir 1000 Knoten haben, die aber durchweg in einem einzigen Land, sagen wir in Österreich, liegen, und dort auch noch auf den Computern registrierter Firmen. Ob das Bitcoin-Netzwerk mit den ca. 7.000 ständig verfügbaren Knoten derzeit zu wenig dezentral oder über-dezentralisiert ist, ist demnach schwer zu sagen.

Auch die zweite Frage ist schwer zu beantworten. Eine durchschnittliches Computersystem im Jahr 2016, gekauft für vielleicht 500 Euro, mit einem durchschnittlichen Internetanschluss auf Erste-Welt-Niveau, sollte ausreichen, um sehr viel größere Blöcke zu verarbeiten. Aber was hängt am Netz dran? Wie viele Knoten sind Raspberry Pis, die vielleicht wirklich schon am Limit arbeiten? Und wieviele Leute sind bereit, einen Knoten auf ihrem Top-System zu bilden? Auch auf diese Frage findet man keine Antwort.

Dementsprechend gehen die Bewertungen auseinander. Während einige Bitcoin-Kernentwickler finden, dass das Blocklimit mit 1 MB bereits zu hoch liegt, um dauerhaft Dezentralität zu gewährleisten, finden die Entwickler von Classic und Unlimited, dass das Limit sehr viel höher liegen darf.

“Bitcoin kann nicht skalieren – und jetzt?” Visionen, wie Bitcoin einmal groß werden kann

Ob man nun für Core oder Classic ist, man muss eines anerkennen: Bitcoin hat seine Probleme mit der Skalierung. Derzeit fahren wir mit Blöcken, die knapp 1 MB groß sind und in die ca. 2-3 Transaktionen je Sekunde passen. Das ist nicht so wenig, wie es sich anhört, aber doch zu wenig, um Bitcoin als ernstzunehmendes globales Zahlungssystem anzusehen. Wenn wir hier bleiben, wird Bitcoin nicht sehr viel weiter wachsen, wenn überhaupt. Aber was soll sonst passieren, wenn Bitcoin, wie Kernentwickler Peter Todd sagt, nicht skalieren KANN?

An dieser Stelle scheiden sich nun die Visionen der beiden Entwickler-Lager.

Core meint, dass man dringend “offchain” skalieren muss. Die Blockchain soll klein gehalten werden und das Limit soll einen Leidensdruck erzeugen, der dabei hilft, neue Methoden der Skalierung voranzubringen. Der große Hoffnungsträger ist das Lightning Network, das ein Netzwerk aus Payment-Channels werden soll, in denen mehrere Parteien mit Smart Contracts Payment Channel eröffnen und dann nicht länger Transaktionen in die Blockchain schreiben, sondern die Transaktion anpassen, die später den Channel schließen soll.

Die Vision von Core ist es, die Blockchain so klein zu halten, dass sie weiterhin (und idealerweise für immer) auf einen Home-PC passt. Diese kleine Blockchain wird dann nicht mehr zum echte Bezahlen benutzt, sondern ist ein Settlement Netzwerk. Transaktionen auf der Blockchain selbst sind teuer, da der Platz knapp ist. Banken benutzen die Blockchain, um ihre Verpflichtungen zu löschen, Privatleute, um alle 6 Monate einen Payment-Channel zu eröffnen. Das ist nicht ganz die Vision, die Satoshi mal hatte, aber es erhält den dezentralen Charakter des Bitcoins und legt zugleich die Weichen, um mehr oder weniger alle Transaktionen dieser Welt mit dem System abzuwickeln.

Classic hingegen meint, dass man sowohl offchain als auch onchain skalieren sollte. Die Blöcke sollen größer werden, zumindest so lange, bis offchain-Lösunge wie Lightning in regem Gebrauch sind. Wenn dabei einige schwache Nodes rausfliegen, wenn man am Ende anstatt 8.000 nur noch 3.000 Knoten hat, ist dies in Kauf zu nehmen. Man kann, so Classic, sehr weit skalieren, ohne die Dezentralität zu verlieren.

Während die meisten Entwickler von Classic durchaus für offchain-Lösungen wie Lightning oder Sidechains sind, vertreten manche Anhänger von onchain-Skalierungen die Ansicht, dass man alle Zahlungen, die jemals anfallen, in die Blockchain pressen kann. Zum einen, weil Lighning weder entwickelt noch notwendig ist. Und zum anderen weil “big nodes”, also Knoten, die nur noch in Datenzentren passen, nicht per se schlecht sind. Wenn genügend von ihnen da sind, ist das Netzwerk weiter dezentral, und da die User weiterhin die privaten Schlüssel für ihre Bitcoins behalten können, wären es gegenüber dem heutigen System ein großer Fortschritt.

Welche dieser Visionen ist zukunftsfähig? Was meint ihr?

About Christoph Bergmann (1006 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

11 Comments on Dezentralität und die Frage, ob Bitcoin skalieren kann

  1. Die Diskussion beschränkt sich leider alleine auf die Dezentralität hinsichtlich der Anzahl der Knoten, gefürchtete Auswirkungen größerer Blöcke auf die Dezentralisierung beim Mining wurden leider nicht erwähnt. Absicht?

    • Darüber können wir gerne mal diskutieren.

      Da Mining-Pools nichts anderes machen, als die Hashpower der individuellen, auf der ganzen Welt verstreuten Miner zu bündeln, so ähnlich wie die Wahlmänner in den USA, mache ich mir darum relativ wenig Sorgen. In der Vergangenheit hat sich oft gezeigt, dass Miner sehr schnell einen Pool verlassen, wenn der Verdacht besteht, dass dieser dem Netzwerk schadet (z. B. Ghash.io, innerhalb weniger Wochen von 51% auf 5%). Irgendwo habe ich letztens gelesen, dass es 10-20.000 Miner gibt, aber dazu habe ich ehrlich gesagt kein besonderes Wissen. Die Arbeit der Miner an sich ist von größeren Blöcken überhaupt nicht betroffen.

      • Die Auswirkungen größerer Blöcke auf die Anzahl der einzelnen Miner meinte ich, durch Verstärkung exisiterender Nachteile und entsprechende Verdrängung von Minern, die zum Beispiel aufgrund ihrer Größe und/oder ihres Sitzes weniger effizient arbeiten können als andere. Je größer die Hashpower einzelner Miner, desto zentraler wird das Netzwerk.

      • Nattydraddy // 29. March 2016 at 19:36 //

        Umgekehr sagt man aber auch, dass die großen Mining-Pools die Block-Größe auf 1 MB belassen wollen, weil ihnen das mehr Geld einbringt. Vorallem die Transaktionsgebühren werden hier erwähnt, die bei vollen Blöcken steigen.

    • Das Thema ist zu komplex für einen Blog und seine Leser. Hier wird sogar behauptet, dass es an sich keinen Unterschied macht, ob ein Knoten nur acht oder mehr als peers hat…

      • “an sich” und bezogen auf die Frage, ob es “dezentral” ist. Dass die Anzahl der Peers einen Unterschied macht, ist mir durchaus bewusst. Auch, dass ich hier vereinfachen muss.

      • “Jeder Knoten hat dieselben Pflichten und Rechte”.

        😦

        Jeder Knoten hat dieselben Rechte, aber nicht dieselben Pflichten. Miner dürfen Daten nicht nur entgegennehmen, sondern müssen sie auch weiterleiten. User müssen keine Daten weiterleiten und deren Bereitschaft dazu sinkt mit zunehmender Datenlast. Was hat das Netzwerk von einem Knoten, der abgesehen von den eigenen keine anderen Daten weiterleitet? Nichts, ein solcher Knoten ist sogar schädlich, weil er durch Entgegennahme der Daten Anderer die Datenlast des Netzwerks noch erhöht.

      • Sehr guter Punkt! Man sollte einmal eine Topographie des Netzwerkes machen.

        Wegen der “unnützen” Knoten, die den Port gesperrt haben, frage ich mich, wie hoch der Anteil solcher Ego-Schatten-Nodes ist und wieviel Datenlast sie saugen. Viele Leute wissen gar nicht, dass man einen Port öffnen muss.

        Gerne mehr von solchen Anmerkungen. Jede Ergänzung / Korrektur des Beitrags ist eine Bereicherung.

  2. Die beste Lösung ist meiner Meinung nach eindeutig das adaptive Block Size Limit, wie es von Bitpay vorgeschlagen wurde. Mittlerweile auch schon implementiert siehe : https://github.com/bitpay/bitcoin/commit/e9f48e0babc25de9b3bf3c0f767d5ed4524bcae8 .

  3. Ist nicht das einzige, was zählt, die Anzahl und Gewichtung der Miner? Jeder kann die Blockchain 10000 mal auf AWS replizieren. Ne IP kostet 2€ im Monat oder so. Das ändert rein gar nichts. Es geht bei der Dezentralisierung nur um Mining.

    Wie viele Miner gibt es? Ist das bekannt?

  4. Die Größe der Blöcke spielt bezüglich Dezentralität nicht wirklich eine Rolle, weil egal ob eine Tx offline oder online getätigt wird, diese Tx unter gleichen dezentralen Sicherheitsniveaus die gleiche Speicher- sowie Rechenleistung benötigen.

    Beispiel:
    Wenn 10 Tx auf der Bitcoin-Blockchain erfolgen, benötigt es den Aufwand von 10.
    Fallen Tx zunehmend auf Lighting, Sidechains, etc. ab, so liegt der Aufwand bei der Bitcoin-Blockchain geringer, stattdessen steigt aber der Aufwand bei Lighting und Sidechains, so dass unterm Strich eben kein Aufwand gespart wird bzw. werden kann.

    Die Ersparnis des Aufwands geht letztendlich mit dem Verlust an …
    1. Dezentralität
    2. Sicherheit
    einher.
    D.h. Lightning verzichtet auf Sicherheit und auf Dezentralität um weniger wichtige Tx auslagern zu können. Denn Lightning wird von einem Bruchteil der Power getragen wie es die Bitcoin-Blockchain sein wird und man kann davon ausgehen, dass es vermutlich vorwiegend von ein paar wenigen großen Spielern getragen wird, denn warum sollte ein Miner seine Rechenleistung bei Lightning zur Verfügung stellen, wenn er dafür keinen Reward oder Fee erhält?
    Ebenso Sidechains wie Blockstream, auch hier wird eine Sidechain primär von Blockstream selbst vorgehalten werden. Eine annähernd attraktive Power wird eine Sidechain nicht erreichen, hierzu fehlt schlichtweg der Reward.

    Deshalb ist die Frage Offchain oder Onchain irreführend, weil sie den Eindruck vermittelt, dass man durch Auslagerung von Tx den Aufwand reduzieren bzw. klein halten könne.

    Die Frage müsste vielmehr lauten…

    Bin ich als Bitcoiner bereit, dass meine Tx bewertet und evt. gar ohne meine Einflussnahme auf vergleichsweise unsere Sidechains ausgelagert werden können?

    Dies wäre so als würde man im Internet die Informationen nach wichtig und unwichtig aufschlüsseln und entsprechend Bandbreite zur Verfügung stellen.

    Nicht ohne Grund ist Netzneutralität enorm wichtig. Deshalb ist es auch wichtig, dass Tx eben NICHT einfach ausgelagert werden und Tx eben NICHT bewertet und unterschiedlich behandelt werden, nach dem Motto die arme Sau mit seinen paar Bitcoins darf sich ruhig in die Hände einer von wenigen Teilnehmern getragenen Sidechain begeben.

    Die Lösung kann meiner Meinung nach nur sein, die Bitcoin-Blockchain durch verschiedene Maßnahmen beherrschbar und auch dezentral zu halten.
    Z.B. durch ThinBlocks oder einer systematischen Verteilung der Blockchain auf mehrere Peers, so dass eben statt weniger tausend fullNodes hunderttausende an sharedNodes eingesetzt werden.

    Sidechains, d.h. sogenannte Offchains ergeben meiner Meinung nach nur einen Sinn, wenn man neue Felder abdecken will, wie z.B. SmartContracts a la Ethereum wie sie unter rootstock.io als Bitcoin-Sidechain angestrebt wird.

1 Trackback / Pingback

  1. Scaling Bitcoin in Mailand – BitcoinBlog.de – das Blog für Bitcoin und andere virtuelle Währungen

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