“Konsens ist nicht, was einige Entwickler entscheiden, sondern etwas, das durch die Handlungen von Individuen entsteht.”

Andrew Stone „theZerg“ hat den neuen Bitcoin Client „Bitcoin Unlimited“ entwickelt. Im Interview erklärt er die Story hinter Bitcoin Unlimited, was die Software von anderen Clients unterscheidet und wie die Community darauf reagiert hat.

Das Interview hier gibt nicht die Preferenz des Bitcoinblogs zugunsten eines Clienten noch die Meinung des Bitcoinblogs hinsichtlich bestimmter Gruppen im Bitcoin-Raum wieder. Jeder, der sich von Aussagen in diesem Interview angegriffen fühlt oder diesen heftig widersprechen will, ist aufgerufen, dies mitzuteilen und sich selbst für ein Interview zur Verfügung zu stellen. 

Hallo Andrew, ich nehme an, du spielst gerne Starcraft?

Hehe, ja. Ich habe früher Starcraft gespielt, die Teile I und II. Warum ich mich “theZerg” genannt habe? Nicht, weil ich Starcraft so sehr liebe, sondern weil ich mir überlegt habe, wie Bitcoin die Welt erobern könnte. Früher habe ich in Starcraft gewöhnlich verloren, wenn ich Zerg [eine außerirdische Insektenrasse, CB] gespielt habe. Bis ich begriffen, dass es die effektivste Taktik mit Zerg ist, alles zu übernehmen, indem man den Zerg-Schleim langsam in das feindiche Territorium ausbreitet. Eine andere Sieg-Strategie ist der Zerg-Rush, indem man kleine, schwache Kreaturen in der Masse erzeugt. Ich denke, wenn Bitcoin nicht die Schleim-Taktik fährt, macht er einen Rush.

Hehe, interessant. Kannst du mehr über dich erzählen? Wie bist du zum Bitcoin gekommen?

Ich arbeite als Ingenieur für eine kleine Firma im Bereich Telekommunikation und Verteidigung. Wir stellen hoch-verfügbare und hoch-skalierbare Software her. Zum Bitcoin haben mich vor allem die Fehler des konventionellen Finanzsystems geführt.

Irgendwann 2012 habe ich eine Open Source Schaltplatte als Hobby gebaut und begonnen, sie international zu verkaufen. Nach allem – dem Import der Chips aus China, der Herstellung, dem internationalen Verkauf – wurde mir klar, dass PayPal 10 Prozent des Umsatzes kassiert. Oder, anderes Beispiel: Später beriet ich einen europäischen Top-Hersteller von Luxuswagen über Prototypen von Innenleuchten. Die Firma wollte nicht durch PayPal bezahlen, aber meine lokale Bank nahm keine internationale Überweisungen an. Die Kassierer haben nicht einmal gewusst, dass das nicht geht, weshalb ich schon eine ziemliche Mühe hatte, herauszufinden, was überhaupt los war. Am Ende habe ich ein Konto bei einer großen Bank eröffnet und bezahle jeden Monat 10 Dollar, um internationale Honorare bekommen zu können.

Ich schaute mich nach Alternativen um und entdeckte den Bitcoin. Geld habe ich über ihn leider noch nicht empfangen. Dazu ist er zu klein, und noch nicht offiziell genug für meine Geschäftspartner. Aber ich habe mich mit dem Bitcoin-Virus infiziert.

Du hast den Code von Bitcoin Unlimited geschrieben. Wann und weshalb hast du damit begonnen?

Lass’ mich ein wenig zurückgehen, um das zu beantworten. Im Grunde ist Bitcoin Unlimited das Produkt von einigen Kerlen, die sich im Thread “gold collapsing, bitcoin up” auf bitcointalk treffen. Der Thread begann vor langer Zeit, es ging längst nicht mehr nur um den Preis von Gold und Bitcoin, sondern um Bitcoin und Wirtschaft im Allgemeinen. Im Sommer 2015 begann die zügellose Zensur auf bitcointalk; jede Diskussion von etwas, das nicht Bitcoin Core war, wurde unterdrückt. Nachdem auch unser Thread zensiert wurde, sind wir auf bitco.in umgezogen. Dort wurden wir zu einer Art Echo-Kammer der Unzufriedenheit mit Core.

Ich weiß, “Echo-Kammer” ist eigentlich negativ besetzt, aber in unserem Fall hat das Echo unsere Ideen und Botschaften verstärkt und rationalisiert. Irgendwann wurde uns so klar, dass die Blocksize kein Thema des Konsens, sondern des Netzwerkes sind. Das ist, denke ich, eine mächtige Idee. Ich glaube, dass so wenig Bestandteile des Bitcoin wie möglich zum Konsens gehören sollten.

Und dann hast du damit begonnen, Bitcoin Unlimited zu entwickeln?

Ich dachte nach und kam zu der Idee, dass ein Node einen Block ablehnen können sollte, weil er ihn für zu groß hält, aber zugleich in der Lage bleiben sollte, den Block am Ende, wenn er vom Rest des Netzwerkes doch akzeptiert wurde, auch zu akzeptieren.

Ein Jahr früher hätte ich diese Idee in der Bitcoin Mailing Liste vorgestellt. Aber heute bin ich skeptisch. Ich lese oft die Mailing Liste, und ich habe oft gesehen, wie Leute wegen unschuldiger Vorschläge niedergemacht wurden. Daher war ich nicht mehr motiviert, an diesem exklusiven Club teilzunehmen und meine Ideen in diese feindliche Umgebung zu werfen. Im Sommer 2015 waren die Linien bereits gezogen.

In dieser Zeit wollte ich vor allem eine neue Umwelt schaffen, in der alle Leute, nicht nur Ingenieure, ihre Ideen präsentieren können. Peter Rizun zum Beispiel hat schon lange am “gold…”-Thread teilgenommen und ein Position Statement abgegeben, eine Art Manifest. Ich habe es gnommen, es mit den Ideen anderer Leute kombiniert und unsere Artikel der Föderation geschrieben. Bevor wir mit dem Code begannen, haben wir eine Menge Arbeit in unsere Philosophie gesteckt und in Details über die Organisation und den Rahmen, in dem der Code geschrieben werden sollte.

Was ist die Philosophie von Bitcoin Unlimited?

Es ist wichtig, dass die Artikel zum Ausdruck bringen, dass es nicht mein Projekt ist. Es haben viele Leute mitgewirkt. Der Zweck der Artikel ist es, die Philosophie von Bitcoin Unlimited zu bestimmen – eine Philosophie, von der wir glauben, dass sie die des Bitcoins an sich sein sollte. Das wichtigste ist: Lass’ Bitcoin eine Währung für Inviduen sein; eine Währung, die es ermöglicht, dass Leute sich gegenseitig Geld überweisen, ohne Settlement-Schichten oder dritte Parteien zu benötigen.

Alles andere leitet sich daraus ab. Nehmen wir zum Beispiel unbestätigte Transaktionen: Wir betrachten sie nicht als unsicher, sondern als tiefsten Punkt auf einem Kontinuum der Sicherheit. Sie einen Zweck, und wenn Leute sie nutzen, um diesen Zweck zu erfüllen, sollten wir das unterstützen.

Eine andere wichtige Idee von Bitcoin Unlimited ist, dass Nodes aktiv mitgestalten. Sie sollten tun können, was möglich ist, ohne dass sie den Rahmen des Protokolls sprengen. Konsens ist nicht etwas, das Entwickler entscheiden, sondern etwas, das aus den Handlungen von Individuen entsteht.

Ein Beispiel ist der Traffic Shaper, den ich für XT geschrieben habe. Als mein Bitcoin Node zuviel Bandbreite verbraucht hat, schrieb ich für mich selbst einen Traffic Shaper, mit dem ich entscheiden kann, wieviel Bandbreite ich spende. In XT wurde er sofort akzeptiert und implementiert. Core dagegen hätte ihn niemals akzeptiert. Sie haben früher einmal das Bandwith Shaping diskutiert, aber dann sagte ein einzelner Entwickler, nein, das ist schlecht für das Netzwerk, und damit war die Idee gestorben. Das ist nicht die Philosophie von Bitcoin Unlmited.

Kannst du in einfachen Begriffen erklären, was Bitcoin Unlimited, die Software, macht?

Das Problem in der Konsensfindung ist, dass wir nicht wissen, ob und wann es einen Konsens gibt. Kennst du die Roadmap für Scalability, die die Core Entwickler unterzeichnet haben? Sie tun so, als gebe es einen Konsens dafür, aber wie sollst du das wissen, wenn es nicht messbar ist? Plötzlich gab es einen Konsens, weil ein einziger Entwickler behauptet hat, dass es einen gäbe. Das ist eine versteckte Diktatur. Als ich die Ankündigung gelesen habe, fühlte ich mich wie ein Charakter aus einer Novelle von Kafka.

Bei Bitcoin Unlimited ist es grundsätzlich der User, der einen Konsens findet. Die Theorie ist, dass Nodes und Miner zusammen einen Konsens erschaffen und dass ein solcher Konsens besser geeignet ist, als einer, der durch einen Entwickler als Zentralplaner bestimmt wird.

Was ich gemacht habe, ist sehr einfach. Ich habe den Core Client so verändert, dass der User die Blocksize-Parameter selbst einstellen kann Miner können so große Blöcke minen, wie sie möchten. Der User kann jedoch eine “excessiv block size” einstellen – die Größe, ab der es für ihn zuviel ist. Veröffentlicht nun ein Miner einen Block, der diese Größe übersteigt, dann beobachtet der Node zwar diesen Block sowie die Kette, die auf ihm gebildet wird, aber diese wird nicht zur aktiven Kette, die für die Guthaben und die Weiterleitung entscheidend ist.

Der User kann eine “acceptance depth” einstellen. Wenn du sie auf, sagen wir 4 Blöcke einstellst, müssen die Miner vier weitere Blöcke auf den “excessive block” setzen, damit der Bitcoin Unlimited Client sagt: Ok, ich bin überzeugt, dass diese Blocksize für das Netzwerk in Ordnung ist. Ich akzeptiere diese Kette nun doch.

Das sind die Kernveränderungen. Es gibt zudem noch eine Dialog-Box und RPC-Calls, die es dem User ermöglichen, seine Konfiguration zu ändern und seinen Traffic zu shapen. Allerdings bleibt Bitcoin Unlimited ein sehr dünnes Set von Patches für Core. Wenn du Core magst, aber über die Blocksize abstimmen willst – dann ist Bitcoin Unlimited der richtige Client für dich.

Ich habe dafür nicht lange gebraucht. Bei Bitcoin Unlimited geht es mehr um Philosophie und das Konzept als um Code.

Aber ihr habt eine Menge Kritik einstecken müssen. Einige Core-Entwickler haben etwa gesagt, dass es nicht funktionieren kann …

Bisher hat noch niemand Bitcoin Unlimited formal kritisiert. Kennst du den Begriff der “Bro-gramer”? Es meint, dass man so coded wie man Football spielt: Remple deinen Gegner mit der Schulter an, nimm’ ihm den Ball weg, werf’ ihn zu den Boden. Auf bitcointalk haben solche Bro-gramer Bitcoin Unlimited kritisiert. Sie hatten keine Idee, was Unlimited macht, sondern einfach ihre eigene Idee genommen, wie es funktionieren könnte, und dann gesagt, es würde nicht gehen. Sie haben nicht die Arbeit gelesen, nicht den Code, nicht die Artikel und nicht Peter Rizun Paper über den Gebührenmarkt. Tatsächlich gibt es bisher noch keinen Core Entwickler, der Bitcoin Unlimited formal kritisiert hat.

Aber Adam Back – der ja ein Core Entwickler ist – hat offiziell gesagt, dass Bitcoin Unlimited einige Fehler hat …

Wenn du seine Mail liest, wirst du sehen, dass sie wie aus einem Lehrbuch für FUD ist (FUD bezeichnet eine Kommunikationsstrategie, um Furcht, Unsicherheit und Zweifel – fear, uncertainty, doubt – zu streuen). Als er gefragt wurde, was nun die Schwächen von Unlimited sind, hat er demonstriert, dass auch er nicht weiß, wie Unlimited funktioniert. In der ersten Diskussion auf bitcointalk habe ich nicht teilgenommen, wegen der Zensur. Später hat Adam bestätigt, dass bitcointalk kein neutraler Ort ist und einen Thread auf r/btc eröffnet. Ich war dort sehr aktiv für 48 Stunden, aber es gab niemanden, der eine echte Kritik vorbrachte.

Es gibt jedoch einen Angriff, den wir anerkennen. Wenn das Netzwerk einmal wirklich 8 MB an Blockgröße braucht und dein Client diesen Platz nicht verarbeiten kann, dann wird er zurückfallen. Das kann passieren, wenn du etwa einen Raspberry benutzt, dessen CPU die Transaktionen nicht länger validieren kann. Aber frage dich selbst: was ist besser – wenn einige Clienten zurückfallen, oder wenn das ganze Netzwerk hinter den Bedarf zurückfällt? Wir können nicht auf die langsamste Person warten. Vor allem nicht beim Bitcoin. Der große Vorteil des Bitcoins gegenüber neueren Kryptowährungen ist seine Verbreitung. Wenn man diese behindert, wird man andere Kryptowährungen befördern.

Sowieso – wer soll entscheiden, wer zurückgelassen wird? Wer entscheidet, ob Blöcke 500 Kilobyte oder 1 Megabyte oder 5 Megabyte groß sind? Keine Person und keine Organisation sollte diese Macht haben. Ich denke, nur das Netzwerk als ganzes hat die Macht, indem es Blöcke mit spezifischen Größen bildet. Die Miner stimmen darüber dann mit ihrer Hash-Power ab.

Leider ging uns in diesem Moment die Zeit aus. Ich hätte gerne noch länger mit Andrew geredet, da noch viele Fragen offen sind und für mich einige Angriffe, die von Kritikern aufgezeigt wurden, noch nicht ausgeräumt sind. Ebenfalls interessant wäre es gewesen, mehr über die zukünftigen Pläne von Bitcoin Unlimited zu reden. So ist etwa geplant, dass die User über die verschiedenen anderen Vorschläge für eine Blocksize-Erhöhung, für BIP101, BIP248 oder BitPays Ansatz abstimmen sollen können. Zudem gibt es eine lebendige Diskussion, wie Unlmited mit kommenden Updates wie RBF umgehen soll.

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

6 Comments on “Konsens ist nicht, was einige Entwickler entscheiden, sondern etwas, das durch die Handlungen von Individuen entsteht.”

  1. Wieso sollte ein raspberry keine 8mb Blocks validieren können?

    • Ich weiß es ehrlich gesagt nicht wirklich. Die Theorie ist, dass die Raspberry CPU irgendwann nicht mehr damit hinterherkommt, die Signaturen von Transaktionen zu verifizieren.

  2. Hmm, und wenn die User eine “acceptance depth” von 4 Blöcken einstellen wir die Validierung von Transaktionen um das 4-fache ausgebremst? Also für einen Laien scheint mir das ganze etwas kompliziert zu sein. Demokratie ist eine tolle Sache, aber theoretisch könnte man diese bei jedem Parameter verlangen, z.B. bei der Difficulty? Dort ist es nicht nötig weil von einem klugen Algorithmus autonom geregelt. Schlanke Lösungen gefallen mir persönlich immer am besten.

    • Ja, darüber habe ich auch schon gegrübelt, schade, dass wir im Interview nicht so weit gekommen sind.

      Ich stelle es mir so vor, dass die “Bremse” nur greift, wenn die erste Bestätigung in einem zu-großen Block landet. Da es für Miner immer riskant ist, größere Blöcke zu minen (so riskant, dass ich mir nicht mal sicher bin, ob BU jemals etwas bewirken würde), sollte dies relativ selten geschehen.

      Anstatt die User wäre ein schlanker, flexibler Algorithmus aber in der Tat eine mindestens ebenso geeignete, wenn nicht bessere Lösung.

  3. Wäre gut wenn der Artikel vom Author nochmal gelesen und korrigiert werden könnte. Teilweise war es echt schwer zu lesen da Wörter fehlten oder die Grammatik Banane war.

    Beispiel:
    “die Größe, aber der es für ihn zuviel ist.”

    WTF !!!!

    Da waren noch mehrere solcher Sätze. Hab jetzt aber keine Lust die raus zu suchen. Sollte ja nicht mein Job sein.

1 Trackbacks & Pingbacks

  1. Thinblocks und libsecp256k1 – echte Verbesserungen der Skalierbarkeit – 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