Weitere Gedanken zur BlockChain und BitCoin

Im meinem letzten Artikel habe ich erklärt, dass mir die BC (BlockChain) nun klar ist, weil ich dank des erwähnten Buchs vor allem die Konzepte zur "Fehlerbehandlung" dargelegt bekommen habe.

Weitere Punkte, die ich zur Betrachtung anbiete, die ich nicht ausreichend geklärt oder noch nicht behandelt fand, möchte ich hier kurz darlegen.

  • Die Datenmassen einer BC, speziell der BTC (BitCoin)
    Hier fokussiere ich auf die Datenmengen: Es ist mir immer noch nicht klar, wie die BTC ihre zu erwartenden Datenmengen speichert / speichern wird. Sagen wir mal, dass in der Bankenwelt die heutige IT pro Tag 1 Milliarde Transaktionen machen, so fallen da doch einige Daten an pro Jahr. Da die Transaktion zwei Partner hat, fallen die Datenmengen bei zwei Teilnehmern an - Banken eben. Die haben genug Kohle, um die Daten sicher und schnell zu verstauen - eben WEIL sie gross und stark sind. Die BTC hingehen soll solche Peers unnötig machen. Das tut sie ja auch in autoritativer Hinsicht. Aber: Sie tut es nicht bezüglich der Resourcen: Da die BTC alle Transaktionen vorhalten muss für das Kontrollieren der Integrität der BTC, müssen also alle Transaktionen bei jedem Teilnehmer der BTC gespeichert sein. Die BTC ist global. Es gibt keinen BTC-Teilnehmer mit weniger Datenmassen.

    Gemäss Statistik habe die BRD in 2016 etwas mehr als 6 Milliarden Bank-Transaktionen gemacht, so liege ich mit der täglichen 1 Mia. für die ganze Welt nicht ganz falsch, ich runde das mal auf ca. 500 Milliarden pro Jahr. Wenn wir mal mit einer Transaktionsgrösse von 1000 Bytes ausgehen, dann sind das also 500 TBytes pro Jahr an Zuwachs. Das ist natürlich nicht so schlimm, das schaffen die Banken schon, das schafft auch eine Firma. Aber wie gesagt, jeder Teilnehmer der BTC muss das tun. Ist das nachhaltig? Zusammen mit der "Geschwindigkeit" der Transaktionen, ist das Speichern das kleinste Problem, eine BC hat ja gerade das Paradigma, dass sie nicht schnell sein kann, weil das zur Integritätskonzeption gehört.

    So also noch etwas zur Transaktionen / Sekunde Zahl: Es gibt eine News-Meldung, die die Unverträglichkeit mit High-Speed-Transaktions schon mal mehr als nur andeutete und das schon im März 2016 ... https://www.heise.de/newsticker/meldung/Kapazitaetsgrenze-erreicht-Bitcoin-Transaktionen-in-der-Warteschlange-3132893.html

    Diese Meldung veranlasste jemanden, die weltweite Transaktionsgeschwindigkeit auf 7 TpS zu berechnen. Das ist natürlich ein mehr als lächerlicher Wert. Es ist schlichtweg ein absolutes NoGo.

  • Geschwindigkeit des Commits
    In der Welt der RDBMS ist ein abgeschlossener Commit das Zeichen des Systems, dass etwas verarbeitet und gespeichert wurde - mit allen Konsequenzen und Nebeneffekten. Für den Entwickler ist eine Speicherung damit abgeschlossen. Der Programmierer darf sich also guten Gewissens weiteren Dingen zuwenden. Doch wie erklärt, die BC kennt keine zentrale Stelle, die ein Commit ausgeben könnte. Im Gegenteil, es kann konzeptionell eigentlich beliebig lange gehen, denn wenn die BC Diskrepanzen aus der Welt schaffen muss, bedeutet das, dass ein Quorum der Teilnehmer sich einig werden muss, welchen Ast einer Verzweigung sie nun als autoritativ ansehen will. Für den Programmierer heisst das, dass er Programme schreiben muss, die sich rückwirkend(!) mit einer Annullierung der Transaktion und deren Konsequenzen rumschlagen müssen. Es ist sogar noch schlimmer: Es könnte zu einem Totalausfall kommen, wenn die BC es nicht schafft, einen autoritativen Ast zu finden.

    Das kann je nach Anwendungszweck natürlich verschieden gravierend sein. In der NoSQL-Welt sagt man dann "eventually committed" und meint, dass es schon Dinge gibt, die man nicht per sofort committed haben muss, dass sich ein Commit aber einstellt. Tja, aber es gibt Konfliktfälle. Ob diese ein Showstopper für den Anwendungsfall der BC sein könnte, ist wohl eben von eben diesem abhängig.

    Was wäre, wenn ein Angreifer, der die BC einfach lahmlegen will, sich also als Teilnehmer anmeldet, bei der Kontrolle von errechneten Blöcken einfach an die anderen meldet: "ich habe was anderes" ... und das via Botnet nicht einfach von nur einem Teilnehmer, sondern von Tausenden? Er muss sich ja nicht mit der Historie der BC rumschlagen, er will ja nur stören, also hat er nicht einmal eine grosse Rechenlast zu bewältigen.

    Die Datenmengen müssen bewältigt werden, denn nur so ist garantiert, dass die BC im Problemfall eine Chain total durchrechnen kann. Eine Art von Caching des letzten als absolut gültig betrachteten Block kann natürlich jeder bei sich vorhalten. Er könnte sagen, dass dieser Referenzblock immer dem aktuellen Tagesdatum um eine Woche hinterher läuft, um eine Verzweigung der BC optimal schnell handhaben zu können. D.h. die Validierung der von anderen errechneten Blöcken ist einfach und schnell. Sicher ist es ja auch, denn wenn die gesamte BC an eigenen, vertrauenswürdigen Orten gespeichert ist, ändert sie dort niemand und man könnte sie jederzeit komplett nachrechnen, um den Referenzblock zu validieren. Es könnte also sein, dass der Commit einer Transaktion konzeptionell schon recht schnell erreicht werden kann.

  • Wegelagerei, sprich Transaktion-Fees
    Das führt dazu, das die Miners, die ja eine Belohnung fürs Betreiben der BC bekommen wollen, sich bei den vielen Transaktionen die auswählen, die ihnen am wahrscheinlichsten eine Belohnung einbringen. Im Ethereum-Projekt nennen sie das Gas. Der Ersteller einer Transaktion gibt da eine Obergrenze an Gas mit, die er den Minern als Belohnung zur Berechnung des BC-Blocks für seine Transaktion anbietet. Ein Ethereum-BC-Teilnehmer kann sich also entscheiden, ob er diese Transaktion rechnen will. Und er kann sich sogar entscheiden, wieviele Resourcen er dafür einsetzen will, denn das Gas gibt ihm ja ein Entscheidungskriterium mit.

    Für den Transaktionserzeuger hat das diese Konsequenzen: Er weiss nicht, wie schnell seine Transaktion in die BC gelangt. Und es kostet ihn was und er weiss nicht einmal, wie sicher der Block nun ist ... denn wie erklärt, die BC kann manipuliert werden, es ist nicht unmöglich. Wenn er also einen Zahlungsvorgang über diese BC einspeisen möchte, und das in Real-Time, so kann ihm die BC diese garantierte Antwortzeit nicht erbringen. Wie im realen Leben kann er aber ein "Guter Kunde" werden, wenn er zuviel Gas anbietet. Das kann zu einer bevorzugten Behandlung führen. Ein Widerspruch zur Konzeption der BC.
  • Ökologie und Geldwäsche
    Wie es sich trifft, hat auch André Kramer im Editorial der c't einen Punkt aufgegriffen, der mir natürlich schon seit Anbeginn der BC ein Dorn im Auge ist: Die Ökobilanz der BCs. Das Mining kostet ja aufgrund des Hash-Puzzles enorme Mengen an Energie, denn wer schnell sein will, muss klotzen, nicht kleckern. Kramer:

    “Denn der Stromverbrauch des Bitcoin-Mining ist immens. Die Nachrichtenseite Digiconomist hat eine einzige Bitcoin-Transaktion mit 215 Kilowattstunden Strom berechnet, dem Jahresverbrauch eines Kühlschranks. Einer Studie zufolge entsprach der Stromverbrauch für Bitcoin-Mining im Jahr 2017 dem von 159 Ländern. Die Rechnung ist kaum überprüfbar; ihr Kern bleibt aber wahr: Bitcoin-Mining trägt in hohem Umfang zur Klima-Erwärmung bei.

    Der Großteil davon findet in China statt, das seinen Energiebedarf aus fossilen Energien speist. Miner der Währung Ethereum haben Boeings des Typs 747 gechartert, um Grafikkarten an ihren Einsatzort zu fliegen. Wer sich solche Stunts leistet, betreibt höchstwahrscheinlich Geldwäsche, nicht Geldanlage.”

    Mit dem letzten Satz reisst er an, wofür die BC natürlich ideal geeignet ist - um so mehr, je mehr Business an einer BC wie der BTC hängt, denn dann ist die BC fast ideal geeignet, Geldwäsche zu betreiben. Und wenn man die Kursexplosion von BTC beobachtet, so ist das Spekulieren bei ihr angekommen und im gleichen Masse wohl auch die ebenso massive Geldwäscherei. Beide schrauben sich wohl in die Höhe.

    Denn die BTC ist zwar voll transparent, aber es war auch noch nie so leicht, ein Portemonnaie zu erzeugen - vollautomatisch von einem Computer, der im Darknet auf seinen Besitzer wartet, den er nicht mal kennt. Da muss man sagen, dass die Strafverfolgungsbehörden ja immer noch nach der "Folge dem Geld" Regel verfahren können, denn irgendwann muss das virtuelle Geld in reales gewechselt werden - für reale Genussfreuden. Noch. Wenn BTC eine von den Staaten und Gesellschaften akzeptierte Währung würde, fällt auch das weg. Das wird die Geldflussverfolgung sicherlich noch um 1-2 Grössenordnungen schwieriger und vielleicht aus ökonomischen Gründen unmöglich machen.

Es gibt ja den Text, dass je komplizierter ein System ist, es um so anfälliger sei. Die BC ist konzeptionell einfach, aber die Implementationen sind anfällig.

Hacker müssen sich ja nicht um die Konzeption kümmern, sondern sie kümmern sich um die jeweiligen Implementationen: Wenn sie da reinkommen, dann kann alles noch so gesichert sein, wenn sie im Code sind, ist alles möglich, was die Konzeption zulässt.

Die BTC-Börsen und andere wurden schon oft um mehrere Tausend BTC erleichtert. Von Hackern. Während das Geldwäschern vielleicht egal sein kann, so ist der Verlust des Portemonnaies einem Geschäftstreibenden überhaupt nicht egal. Und da es in der BC konzeptionell keinen Verantwortlichen gibt ... keine Kulanz von niemandem ... keine Schuldigen ... Schwarzpeter-Rumgeschiebe ... denn jeder wird eine Walletsoftware nutzen müssen. DAS Angriffsziel für Hacker und Malware-Programmierer ... eventuell grad schon auch grad geliefert mit Hintertüren für Geheimdienste, Finanzamt, Hacker etc. etc. In Zeiten von schnellem Internet – wer ist schon in der Lage, den Verkehr zu inspizieren, zu verstehen und Gegenmassnahmen zu ergreifen? Die Masse sicherlich nicht. Schöne neue Welt.

Gerade aktuell wieder ein BC-Hack: https://www.heise.de/newsticker/meldung/Kryptogeld-Mining-Marktplatz-Nicehash-gehackt-und-bestohlen-3913041.html

Ist die BC also einfach eine Spielwiese für Technik-Nerds, IT-Profilierer, Real-Geld-Spekulanten, Geldwäschern? Es hiess ja schon beim Gold-Rush: "Reich werden nicht die Schürfer, sondern die Verkäufer von Equipment wie Schaufeln etc."

Wir werden sehen ...

PS: Ich bin derzeit kein aktiver Benutzer von BCs. Ich habe mich nur schlau gemacht und etwas weniges probiert. Gerne lese ich Korrekturen von Euch zu meinen Gedanken, sollten diese falsch oder unstimmig sein. Danke dafür.

PPS: Noch was zur Übertragungssicherheit von BTC. Eine Transaktion ist ja de facto dann auch eine Benachrichtigung an eine Email-Adresse, an ein anonymes Wallet. Kein Wunder, gibt es bereits Malware, die solche Transaktionen erkennen und auf andere Wallets umleiten: https://www.heise.de/security/meldung/Schnueffeltrojaner-Evrial-tauscht-im-Windows-Clipboard-Bitcoin-Adressen-aus-3947596.html

Wofür also die BlockChain ...

So, nun habe ich mal alle meine Fragen zu BlockChain (BC) ausreichend beantwortet gefunden. Ein einziges Buch half dabei, das nicht mal technisch war. Aber genau das wollte ich. Es ist von Daniel Drescher und lautet "Blockchain Basics" und ist in englisch.

Denn als Kryptografie-Experte war mir das Technische eh klar. Allerdings hatte ich genau deswegen meine knackigen Fragen, die mir zufällige Gesprächspartner nicht beantworten konnten. Weil mir allerdings ein Projekt fehlte, blieben meine Fragen ungeklärt.

Nun, nach Lektüre dieses Buchs, ist das nun nicht mehr so. Es beschreibt in 25 Schritten wirklich ohne eine einzige Zeile Code, geschweige denn Mathematik, worum es sich bei der BC handelt und wieso diese Begriff derzeit so ein Hype ist. Und üblicherweise deswegen, weil die meisten wohl nur vage davon was verstehen. Jeder der 25 Schritte beginnt mit einer Metapher aus der realen, uns allen bekannten sozialen Welt. Danach folgt die daran angelehnte Konzeption in der BC.

Die Kryptografie, die Technik also, ist einfach bzw. wir benutzen sie unter der Haube bei jedem (verschlüsselten) Internetzugriff sowieso schon. Das also kann den Hype nicht ausmachen.

Die BC macht es aus, dass sie konzeptionell viele Punkte adressiert, die eine Datenbank - und mehr ist es nicht - je nach Anwendungsbereich immer adressieren muss. In Merkworten:

  1. Kein Single Point of Failure
    die BC ist eine verteilte Datenbank, die bei jedem Teilnehmer vollständig vorhanden sein muss. Damit ist sie automatisch dupliziert und redundant. Ist sie einmal in Betrieb mit mehr Teilnehmern als ein Aggressor auf einen Schlag lahmlegen kann, ist sie nicht zu zerstören.
  2. Jeder kann an der BC mitmachen
    die BC ist ein Computeralgorithmus, so dass jeder netzwerkfähige Computer mitmachen und jede in ihr gepeicherte Transaktion nachkontrollieren kann. Dadurch ist sie in höchsten Masse transparent und bietet keinerlei Privatsphäre zur Geschichte einer Transaktion. Eine Anonymität ist nur dann gegeben, wenn die in der BC zu speichernden Transaktion aus anonymen Daten besteht. Es gibt einen quasi demokratischen Entscheidungsprozess, eine Konsensfindung, die dafür sorgt, dass der Versuch einer Einspeisen von gefälschten Transaktionen umgehend entdeckt wird.
  3. Niemand kann die BC in seinem Sinne manipulieren
    zumindest fast niemand, Geheimdienste, Google etc. könnten es wohl, denn die BC wird nur sicher, wenn sie eine gewisse Grösse erreicht hat. Die Grösse ist nämlich die Herausforderung, die ein möglicher Manipulator zu meistern hat, wenn er Einträge fälschen möchte. Er muss neben dem zu fälschenden Block alle nachfolgenden Blöcke nachrechnen und er muss das sogar noch schneller tun, als die anderen Teilnehmer, die ja auch an der BC arbeiten und sie legitim verlängern. Ein genug potenter Manipulator kann das aber, erst recht, wenn die BC legitimerweise spärlich genutzt wird. Die Manipulationssicherheit entsteht durch pro Block durchzuführende, resourcenhungrige Berechnung des Hash-Puzzles (dazu später).
  4. Jeder kann an der BC etwas "verdienen"
    da die BC physische Resourcen braucht, diese nicht gratis sind, ist in der BC ein Mechanismus zur Belohnung für Mitwirkende drin. Eine automatische Bestrafung ist ebenfalls eingebaut, denn es kann passieren, dass erledigte Arbeit eben nicht belohnt wird. Die Belohnung selbst kann wohl aber nur in der "Währung" erfolgen, mit der die BC "handelt", denn der Teilnehmer wird nur an der BC mitmachen, die ihn thematisch interessiert und der er sicher nicht schaden will und seine Belohnung riskieren würde.
  5. die BC kann irgendeine digitale Resource speichern
    die BC ist ein Programm. So kann sie grundsätzlich auch Programmcode speichern, der revisionssicher und nachvollziehbar ist. Aufgrund der abwesenden Privatsphäre gibt es allerdings keinen Schutz vor unbefugten Einsichten.

Das sind so die Eckdaten. Wieso die Banker etwas Schiss vor der BC haben, ist die Tatsache, dass sie als dezentrales System die Sicherheit von Transaktionen gewährleisten kann für alle irgendwo mitwirkenden Computer. Wenn wir heute zur Bank gehen, damit die für uns einen Betrag von hier nach da überweisen, dann tun wir das, weil es sich nicht lohnt, selbst hinzufahren, weil es unsicher ist etc. etc.

Da Geographie und Distanzen in Computernetzwerken aber keine grossen Sachen mehr sind, fallen die Bank-Services ja weg. Es fallen im Prinzip überall dort die Mittelleute weg, wo es um reine digitale Daten geht - und das ist heute viel: Geldäquivalente, Videos, Musik, Zertifikate, Urkunden, Pläne, Patente, Berechtigungen etc.

Doch die BC hat eben auch eklatante Schwächen: Das Belohnungssystem nützt nur der Teilnehmergruppe. Das kann dazu führen, dass nur wenige Teilnehmer an einer BC mitmachen, was wiederum dazu führt, dass eine Manipulation eines genug potenten Teilnehmers möglich ist, wenn er mit seinen Resourcen die Konsensfindung zu seinen Gunsten beeinflussen kann.

Die BC basiert derzeit auf einem mathematischen Problem, der Einwegfunktion. In der IT heissen diese Digests oder Hashes. Die wohl bekanntesten Hashes sind MD5 und alle Varianten von SHA. Sie berechnen aus einer beliebig grossen Datenmenge einen 128 - 512 Bit langen Wert, eine Zahl also.

Es ist wohl klar, dass man aus nur 512 Bit niemals herausfinden kann, welche 10, 1000, 100000 Megabytes genau einen bestimmten Wert erzeugt haben. Es ist allerdings von der Qualität des Hash-Algorithmus abhängig, wieviele der möglichen Eingangsvarianten man überhaupt durchprobieren muss, bis man einen Hash-Wert findet, der identisch ist zu dem Wert einer anderen Eingangsvariante. Für den bekannte SHA-1 Algorithmus ist das Erzeugen einer sog. Kollision schon gelungen, so dass man dem Spruch "es gibt keine gleichen Ausgangswerte für unterschiedliche Eingangswerte" nicht einfach für bare Münze nehmen kann. Trotz der Kollision ist ein SHA-1 natürlich immer noch gut, denn man kann immer noch nicht in nützlicher Frist eine Eingangsvariante so verändern, dass ein bestimmter Hash-Wert erzeugt wird. Wäre dies möglich, müsste man SHA-1 per sofort also geächtet betrachten.

Google und andere haben aber trotzdem schon begonnen, die Verwendung von SHA-1 in den Web-Protokollen anzumahnen. Man solle mindestens SHA-256 oder den neuen SHA-3 nutzen.

Diese Hashes sind das Fundament der BC. Denn logischerweise kann man auch "Hashes über Hashes bilden" wie der ITler sagt. Das bedeutet, man kann Ketten (Chains) bilden, in der Blöcke zusammengehängt werden, wo jeder Block einen Hash über eine Transaktion beinhaltet. Kann man nachträglich jederzeit die Transaktionsangaben hashen, so kann man den selbst berechneten Hash-Wert auch mit dem im Block gespeicherten Hash vergleichen. Kommt man nicht auf denselben Wert, wurde irgendwas verändert, die Transaktionsangaben oder/und der Hash-Wert sind also - neutral gesagt - ungültig. Ein Block kann aber nur an den vorherigen angehängt werden, wenn der neue Block den Vorgänger verifiziert hat und in sich selbst den Hash der Verifikation speichert. Mit dieser Regel kann die BC nur wachsen, wenn beim Einspeisen einer neuen Transaktion die BC verifizierbar unverändert geblieben ist. Um das nachzuprüfen, müssen BC-Teilnehmer, die eine neue Transaktion in die BC einspeisen möchten, die ganze Kette bis zur ersten Transaktion rückwärts rechnen.

Diese Fakten bedingen die eingangs erwähnte Transparenz und Unveränderlichkeit aller gespeicherten Transaktionen, also die Integrität.

So einen einzigen Block einer Transaktion zu fälschen, ist natürlich Peanuts. Wenn an eine Transaktion nun eine weitere anhängt, weil beispielsweise eine Geldüberweisung von A nach B von diesem B aufgeteilt an C, D und E weitergeleitet wird, so ist die Kette auch noch nicht schwierig zu berechnen, denn man hat ja alle Eingangsdaten: Die ursprüngliche Transaktion, die einen ersten Block ergab - Die Überweisung von A nach B. Sollen nun Blöcke angehängt werden für die Transaktionen B⇒C, B⇒D, B⇒E, so wird bei jedem Anhängen der zuvor letzte Block (Kopf der BC) versiegelt. Eine Manipulation der Ausgangstransaktion wird also nicht nur die Berechnung dieses Blocks auslösen, sondern auch diejenige aller nachfolgenden Blöcke. Der Manipulator rennt also dem Kopf der BC hintennach und muss erst noch die anderen Teilnehmer von seinen Berechnungen überzeugen.

Die Hash-Funktion hat nun als Eigenschaft, dass sie sehr schnell berechnet werden kann. Im Wesentlichen ist die Berechnungszeit nur von der Grösse der Eingangsdaten abhängig. Ein SHA-256 kann auf einem handelsüblichen PC heute durchaus schon knapp 10 MByte pro Sekunde durchrechnen, oder andersrum: Wenn die Eingangsmenge etwa 100 Bytes sind, sind das etwa 100'000 Hashes pro Sekunde. Die genauen Daten sind da gar nicht so wichtig, es geht nur um die Veranschaulichung der Grössenordnungen.

Die Fälschung der Überweisung von A nach B wäre also wohl in wenigen Mikrosekunden gemacht - wenn da nicht noch etwas wäre: Das Hash-Puzzle. Das ist das Geniale an der BC: Für einen gültigen Block muss noch ein Wert gefunden werden, der von der Transaktion gar nicht betroffen ist. Das ist die Lösung des oben erwähnten Hash-Puzzles. Da jede Hash-Funktion eben die Eigenschaft hat, dass man nicht von ihrem Resultat auf den Eingabewert schliessen kann, gilt natürlich auch das andere: Man kann nicht wissen, was man der Hashfunktion füttern muss, um einen bestimmten Wert herauszubekommen. Wollte man das, muss man halt fast unendlich viele Varianten als Eingaben durchprobieren und jedesmal das Resultat auf die gewünschte Wert-Kategorie prüfen.

Unendlich ist ja schon viel. Kleine rechnerische Betrachtung: Selbst wenn also Spezialhardware zum Mining benutzt wird, die pro Sekunde (derzeit) 100 Billionen Hashes (1014) rechnen kann, so ist das immer noch wenig, denn ein SHA-256 Wert ist irgendeine Zahl zwischen 0 und 1077 ... das Jahr hat 31'536'000 Sekunden, das Universum ist ca. 500 Billiarden Sekunden alt, aufgerundet also nicht mal 1018. Mal die 1014 Hashes pro Sekunde, gibt also schlappe 1032 Hashes für das Alter des Universums bei aktueller Hardware. Da ist 1077 immer noch 1045 mal mehr. Beim "unsicheren" SHA-1 wären es immer noch 10 Universumsalter.

Gemäss einer Info haben die Chinesen derzeit etwa 15 Exahash (15 x 1018) pro Sekunde zur Verfügung. Das macht den Braten immer noch nicht feiss, denn bei SHA-256 ist es dann halt nur noch 1041 mal so viel die das gegenwärtige Universumsalter ... Wie auch immer, man kann also getrost sagen, dass man niemals für einen bestimmten Hash-Wert durch reines Variieren der Eingangsdaten diese herausfinden kann. Man kann also nur Variieren und das Resultat begutachten. Herauskommen tut immer nur eine simple Zahl. Könnte sogar mal 42 sein ...

Das Hash-Puzzle verlangt nun, dass der Hash-Wert ein bestimmtes Kriterium erfüllt. Es sagt: "Zu den Eingangsdaten für die Hash-Funktion nimm noch eine davon unabhängige Zahl (Nonce = number used once) hinzu, und hashe das. Der Hash-Wert muss dabei einfach kleiner als 1 Quadrillion sein. Wenn du eine Nonce gefunden hast, die gehashed mit dem Block einen Hash-Wert unter 1 Quadrillion ergibt, dann darfst Du diesen Block an die BC anhängen.".

Man kann das Puzzle sogar in der Schwierigkeit variieren, indem man diese Regel einfach weiter oder enger schnürt. Das passiert bei der BC alle ca. 14 Tage und nennt sich Difficulty Adjustment So sorgt die BC dafür, dass es keine Inflation von Blöcken gibt, nur weil die Hash-Rate aus irgendwelchen Gründen steigt oder sinkt.

Die BC hat also diese Regeln. Wieso soll sich diese Rechnerei überhaupt ein Teilnehmer antun, wenn es doch wohl absolut zufällig ist, ob er jemals einen Block anhängen darf? Das ist eben unter anderem abhängig vom Belohnungssystem. Und eben, die Regel kann ja so gestaltet werden, dass es immer etwa dieselben Chancen pro Zeit gibt.

Diese ganze Rechnerei ist das, was man Mining nennt, was also sehr, seeehr, seeeeeehr resourcenintensiv ist. Rechnen kostet ja auch Strom und anderes. Mining ist also weder gratis, noch einfach noch von jedermann erfolgreich zu betreiben. Da spielt es auch keine Rolle, wenn sich mehrere Miner zu Gruppen zusammenschliessen.

Man sieht, die Einspeisung von Transaktionen in eine BC ist beileibe nicht schnell. High-Speed Trading wie es die Banken vorantreiben, ist so m.E. kein Thema für die BC. Es ist daher unwahrscheinlich, dass eine BC vorhersehbar in der Lage ist, ein aktuelles Buchungssystem zu ersetzen.

Die Hashing-Power ist als jederzeit in der Lage, alle 10 Minuten einen neuen Block zu finden. Der Block beinhaltet natürlich nicht nur eine Transaktion, sondern mehrere, etwa 3-4000. Derzeit sei die Blockgrösse in der BTC 1 MByte. Das macht die BC natürlich langsam, zu langsam für die Menge an Transaktionen, die ein leistungsfähiges Transaktionssystem bearbeiten können muss in der heutige Zeit.

Die Vergrösserung der Blockgrösse wäre ein Weg da raus, aber nur sehr kurzfristig und vor allem zur Idee von Bitcoin kontraproduktiv. Denn grosse Datenmengen verlangen nach potenter Hardware. Irgendwann zuviel für kleine BC-Teilnehmer. Die Folge wäre, dass weniger Leute mitmachen könnten, oder wenn doch, die Hardware mieten - in Rechenzentren von Amazon, Google, Microsoft etc. Ein Ausfall so eines Rechenzentrums aus welchen - gerne auch sehr gewollten - Gründen legte dann zu grosse Teile der BC lahm.

Zudem ist die BC so, dass es noch lange kein Garant auf Einspeisung gibt, wenn meine Computeranlage einen gültigen Block berechnen kann. Denn, wenn mich niemand kontrolliert, berechne ich den ganzen Kram auch nicht, sondern sage einfach "der Hash-Wert ist xyz, basta.".

Nun kommt eben eine andere BC-Konzeption hinzu, die Kontrolle durch die anderen. Wenn ich einen Block für eine Transaktion gefunden (=errechnet) habe, dann muss ich das den anderen BC-Teilnehmern mitteilen, die meinen Block natürlich nicht einfach "glauben". Sie werden die Berechnung prüfen. Das ist ja nun einfach und schnell, denn es geht nicht mehr ums Finden einer Hash-Puzzle-Lösung, sondern nur noch ums Nachrechnen, ob alle Hashes seit der ersten Transaktion zu den Blockdaten passen.

Wenn ich also die BC bescheissen möchte, die Daten einer bereits in die BC eingehängten Transaktion ändern möchte, so muss ich aufgrund der Dezentralisierung der BC allen Teilnehmern meine Blöcke ab der manipulierten Transaktion bekanntmachen. Und diese Blöcke müsste ich ja zuerst berechnen, also pro Block eine Nonce finden. Und wie schwer das sein kann, habe ich oben ja gerade dargelegt.

Dass es zu Differenzen bezüglich der Hashes unter den Teilnehmern kommen kann, ist in der BC miteinbezogen. Die Gründe für der Erscheinen der Differenzen ist völlig unerheblich für die BC, die muss nur einen klaren Weg haben, Diskrepanzen zu bereinigen. Und die hat sie.

Ein Manipulator könnte die BC manipulieren, wenn er die Power hätte, schneller neue Blöcke zu berechnen als die legitimen BC-Teilnehmer die BC selbst erweitern, denn eines der Kriterien ist, dass im Zweifelsfalle (Teilnehmer berechnen verschiedene Hashes zu einer Transaktion, was einer Verzweigung der BC gleichkommt) der längere BC-Ast als der autoritative gilt. Denn die BC erachtet mit der Zeit denjenigen Ast als wohl korrekt, in dem mehr Rechenpower steckt - ganz einfach deshalb, weil dort mehr Teilnehmer dieselben Daten berechnet haben.

Der langen Rede kurzer Sinn ist also, dass die BC sowohl im Fundament wie auch im Eskalationsprozess auf dem Kriterium der Rechenpower beruht.

Nach heutigem Ermessen ist das ausreichend. Dennoch: Was auch der Drescher nicht behandelte, ist die mögliche Gefahr der Quantencomputer. IBM hat erst grad neulich eine Maschine mit 50 QBits in Betrieb genommen. Wenn die Quantencomputer wirklich so sind, dass sie Hash-Geschichten auf einen Schlag unsicher machen, dann fällt die gesamte BC in sich zusammen. Nicht für uns, aber für diejenigen, die sich einen Quantencomputer leisten können. Und wenn die das können, dann verlieren auch wir das Vertrauen in die BC. Und Vertrauensverlust kann eine Technologie abwürgen oder gar nicht erst aufkommen lassen. Mathematiker seien zwar dran, sich Quantencomputer-resistente Algorithmen zu überlegen.

Nun, die Möglichkeiten der Quantencomputer sind derzeit noch etwas Spekulation. Sollten diese dennoch gerade hier zuschlagen, dann ist die BC natürlich gefährdet, mit ihr allerdings die gesamte andere angewandte Kryptografie auch.

Drescher hat aber die anderen Schwächen der BC angesprochen und die möglichen Lösungsansätze. Interessant ist das, was er meint, was die Geschichte dereinst zeigen könnte: Dass die BC per se zwar nur ein Hype war, dass aber die Konzeptionen sich schon irgendwie festsetzen.

Er nimmt dazu ein Zitat von Tim Berners-Lee heran, der ein demokratisches, unkontrolliertes Internet vor sich sah. Heute wissen wir, dass das Internet nicht demokratisch ist, dass die Netzneutralität gefährdet ist, dass Staaten die physischen Transportkanäle sehr wohl unter Kontrolle haben, dass NSA und andere den Verkehr abhören etc.

Die BC soll auch ein unkontrolliertes, demokratisches, selbst-regulierendes System sein. Die BC kann das sein, aber nicht offen für jedermann, nicht offen für die gigantischen Massen an Transaktionen. Sektorspezifische BCs können jedoch sicher eine überregionale Bedeutung kriegen. Die IT pusht das schon ... denn wenn man mal die prominenteste BC, Bitcoin (BTC), heranzieht, so könnte man sagen, dass BTC die digitale Version von alternativen Lokalwährungen ist. Davon gibt es auch viele, die funktionieren auch, weil sie eben regional sind, weil Produzenten und Nutzniesser im selben Perimeter damit umgehen und weil sich keine Staaten da einmischen, die juristische Lage ist klar.

Interessant ist an BTC ja auch, dass der Kurs erst durch die Decke ging, als die BTC für diejenigen mit jetzigem, überflüssigem Realgeld zum Spekulationsobjekt wurde. BTC hat noch keinen realen Einfluss, aber die Emotionen pushen schon den Kurs. Ist das nicht grad entgegen des heeren Zieles, demokratisch zu sein ...

Wenn Facebook einen FaceCoin entwickelt, so wird diese Währung innerhalb der Community Facebook funktionieren. Da diese gross ist, wird sie eine gewisse Attraktion ausstrahlen, weil viele mit FB interagieren. Doch Brot und Butter, kann ich die beim Bauer mit FaceCoin bezahlen? Es ist also das bekannte Henne-Ei Problem.

Solange Staaten die Oberhoheit haben über Geldflüsse, die Gesetzeslage etc. und sie sich nicht mit BTC beschäftigen, solange wird BTC eben nur eine lokale Währung sein, die der Net-Citizens. Für die allerdings in der gesamten physischen Welt, für die digitalen Nomaden also.

Für mich war das Lesen von Dreschers Buch jedenfalls sehr klärend. Dafür bin ich dankbar. Der lange Artikel jetzt ... eine Art Lernkontrolle ... :-)

PS: Wer mal im Browser mit etwas SHA-xxx rumspielen will, hier geht's sehr einfach, bequem und mit etwas Erklärung:

https://www.freeformatter.com/sha256-generator.html

_UNKNOWNTRANSLATION_

BlogCFC was created by Raymond Camden. This blog is running version 5.9.8.012. Contact Blog Owner