The German wiki is no longer maintained and is in read-only mode. Information contained within may be inaccurate or outdated. Please go to the English wiki for more up to date information.

Automatische Übersetzung aus dem Englischen: Das deutsche Wiki wird nicht mehr gepflegt und ist im Nur-Lese-Modus. Die darin enthaltenen Informationen können ungenau oder veraltet sein. Aktuellere Informationen finden Sie im englischen Wiki.

Einführung

Aus Bitcoin Wiki
Zur Navigation springen Zur Suche springen

Alice ist weit weg von Bob und möchte seine Alpaka Socken für 5 Euro kaufen. 5 Euro sind ein Papierschein, welcher von Leuten im Tausch von Wertsachen (z.B. Bob's Socken) oder Dienstleistungen in der realen Welt akzeptiert wird. Alice könnte nun die 5 Euro in einen Briefumschlag stecken und an Bob senden, und warten, dass Bob die Socken zu ihr sendet.

Oder Alice könnte die 5 Euro auch überweisen. Dies macht sie, indem sie ihren Euro erst einem Institut (Bank genannt) übergibt, welche auf ihr Geld aufpasst und Kontoauszüge ausstellt, wodurch Alice immer, wenn sie möchte, den selben Betrag abheben kann, den sie bei ihrer Bank eingelagert hat. Diese Geld gehört nun immer noch Alice, was bedeutet, sie mit ihrem Geld machen kann was sie möchte. Gegen eine kleine Gebühr kann die Bank die 5 Euro nun an Bob aushändigen, anstatt an Alice. Diese könnte nun geschehen, indem die Bank einen Mitarbeiter an Bob's Tür schickt, mit einem 5 Euro-Schein in der Hand (oder besser einem neuen, falls der Schein von Alice in einem schlechten Zustand ist), aber üblicherweise übergibt nun die Bank von Alice den Schein an die Bank von Bob, mit der Information, dass es für Bob ist. Diesen Betrag taucht dann auf Bob's nächsten Kontoauszug auf.

Da Banken viele Kunden haben und Mitarbeiter beschäftigen, welche Kundengespräche führen und Dokumente bearbeiten/unterschreiben, welche auch bezahlt werden wollen, setzen heutige Banken auf Geldautomaten und Webserver die anstatt den Mitarbeitern mit dem Kunden interagieren sollen. Diese Maschinen haben die Aufgabe zu lernen, was jeder Kunde, bis zu seinem möglichen Limit, mit seinem Geld anstellen möchte. So z.B. händigen Geldautomaten den Betrag Bar aus. Letztendlich gibt es in diesem Prozess meistens eine kleine menschliche Beteiligung. Den Leuten wurde zugesichert, dass die Zahlen auf ihren Kontoauszug und Bildschirmen für ihren Geldbetrag steht, den sie zu jeder Zeit abholen können. Sie können so sicher sein, dass sie die Zahlen genauso annehmen, wie den Euro selber.

Jedenfalls ändert der Fakt, das Maschinen genutzt werden nichts am Aufbau des Systems, welches auf einer zentralen Autorität (die Bank) basiert. Sie ist verantwortlich für die Dokumentation, wem wie viel Geld gehört. Jeder muss darauf vertrauen, dass die Bank verantwortungsbewusst ist (z.B. ob sie ehrlich angibt auf wie viel Geld insgesamt sie aufpassen, oder auf Verlangen des Kunden Geld ausbezahlt). Zudem muss sich jeder Person gegenüber der Autorität mit seinem Namen identifizieren, damit er Geld abheben oder überweisen kann.

Diebstahl verhindern

Um zu garantieren, dass kein Betrüger sich durch Transaktionen im Namen anderer Bitcoins erschleichen kann, nutzen wir ein Asymmetrisches Kryptosystem um digitale Signaturen zu erstellen. In diesem System hat jede Person ein Paar aus öffentlichen und privaten Schlüssel, welche in einer sicheren Geldbörse (wallet) liegen. Nur der User mit seinem privaten Schlüssel kann ein Dokument unterschreiben, wie die Transaktion seiner Bitcoins zu jemand anders, aber jeder andere kann dies anhand des öffentlichen Schlüssels bestätigen.

  • Bob schickt Alice sein öffentlichen Schlüssel
  • Alice fügt Bobs öffentlichen Schlüssel zusammen mit dem Betrag, den sie überweisen will, zu der Transaktion
  • Alice unterschreibt die Transaktion mit ihrem privaten Schlüssel

Es Ergebnis kann jeder, der die öffentlichen Schlüssel von Bob und Alice kennt, sehen, dass Alice einverstanden war den Betrag an Bob zu senden, denn kein anderer hat den privaten Schlüssel von Alice. Alice wäre dumm, ihren privaten Schlüssel jemand anders anzuvertrauen, da dieser jegliche Transaktion unterschreiben kann, welche den Kontostand von Alice reduzieren.

Später, wenn Bob das selbe Geld an Charley senden will, macht Bob das selbe. Er bekommt von Charley den öffentlichen Schlüssel, fügt eine Transaktion zu der Kette der Transaktionen hinzu und unterschreibt mit seinem (Bobs) privaten Schlüssel. Aber dies kann nur Bob machen, da nur Bob den privaten Schlüssel hat, der zu dem öffentlichen Schlüssel passt, welcher schon in der Kette ist.

Eve kann nicht einfach den Besitzer der Coins wechseln, wenn sie ihren öffentlichen Schlüssel mit dem vom Bob vertauscht, da Alice mit ihren privaten Schlüssel (welcher Eve nicht bekannt sein sollte) die Transaktion schon in Verbindung zu Bob unterschrieben hat. Also wenn Charley akzeptiert, dass der originale Coin in der Hand von Alice war, wird er auch akzeptieren, das der Coin an Bob weitergegeben wurde und nun zu Charley selber.

Doppelte Ausgaben verhindern

Folgend wird beschrieben, wie wir garantieren, dass Alice ihren Coin nicht nochmal in einer weiteren Transaktion nutzen kann (das ist die Haupteinovation hinter Bitcoin).

  • Details der Transaktion wird an alle oder so viel wie möglich andere Computer gesendet.
  • Eine konstant wachsende Kette an Blöcken, welche eine Aufzeichnung aller Transaktionen beinhaltet, wird gemeinsam von allen Computern gewartet (jeder hat eine volle Kopie)
  • Um in der Kette akzeptiert zu werden, müssen Transaktionsblöcke gültig sein und einen Beweis beinhalten (ein Block der vom Netzwerk alle 10 Minuten generiert wird)
  • Blöcke sind so aneinandergehängt, das alle folgenden neu berechnet werden müssen, falls einer modifiziert ist
  • Wenn mehrere gültige Weiterleitungen an der Kette auftreten, wird nur der längste akzeptiert und wird später weitergeführt

Wenn Bob sieht, das seine Transaktion in einem Block aufgenommen wurde, welcher nun Teil der einzig längsten und am schnellsten wachsenden Block-Kette (verlängert durch erheblichen Rechenaufwand) ist, kann er sicher sein, dass die Transaktion von Alice von den Computern im Netzwerk akzeptiert und für immer aufgezeichnet wurde. Dies verhindert das weitere Senden der selben Coins durch Alice.

Theoretisch könnte Alice versuchen gefälschte Blöcke zu erstellen, in denen ihre vorhergehende Transaktion nicht auftaucht, und als Beweis, dass die Coins nocht bei ihr sind, an alle senden. Wie auch immer, die vorhergehende Transaktion enthält eine Unterschrift von Alice, welche schon im Netzwerk bekannt gegeben und verteilt wurde, und ein Block mit dieser Transaktion wurde jemand generiert (ansonsten hätte der erste Empfänger des Coins keine Bestätigung erhalten). Da der Prozess, zum generieren eines gültigen Blocks, so ausgelegt wurde viel Zeit in Anspruch zu nehmen, wird Alice unmöglich einen Block schneller berechnen können als all die Rechner im Netzwerk. Bob wird inzwischen mehrere Blocke von anderen bekommen, als Alice je erstellen könnte, in welchen bereits die vorhergehende Transaktion Alice -> Bob notiert wurde. Der einzige Weg für Alice, ihre Transaktion zu löschen, ist, parallel eine längere Kette zu erstellen, als die, die von allen andern, da die längste Kette akzeptiert wird. Um die Längste zu bleiben müsste sie auch schneller wachsen als alle andern Ketten, so dass verhindert wird, dass die ungewollte Transaktion zu einem Block hinzugefügt wird. Um dies zu schaffen, müsste Alice die Mehrzahl der CPU-Leistung im Netzwerk befehligen können; etwas, wovon wird denken, dass dies keine Person oder Organisation schaffen würde. Daher wird die Transaktion von Alice permanent gespeichert und sie wird den Coin nicht noch einmal senden können, solange die Personen mit der meisten CPU-Leistung nicht mit Alice kooperieren.

Anonymität

Bitcoin-"Account" haben keine Namen und beziehen sich nicht auf Individuen. Jeder Kontostand ist einfach mit einem zufällig generierten Public-Privat-Schlüsselpaar verbunden und "gehört" wer auch immer den privaten Schlüssel hat (und kann auch Transaktionen unterschreiben). Die Transaktionen benötigen ebenfalls keinerlei Namen.

Eine Bitcoin-Adresse stimmt mathematisch mit einem öffentlichen Schlüssel überein und sieht wie dieser aus:

15VjRaDX9zpbA8LVnbrCAFzrVzN7ixHNsC

Jede Person kann viele solcher Adressen haben, jede mit einer eigenen Kontostand, und dies macht es schwieriger zu identifizieren, welcher Person welcher Betrag gehört. Um seine Privatsphäre zu schützen kann Bob für jede individuelle Transaktion ein neues public-private Schlüsselpaar erstellen. Also kann David, der den Coin von Charley erhalten hat, nicht sagen wer die zweite Person in der Liste der Transaktionen ist (außer er fragt Charley).

Erstellung der Coins

Wie wir sahen, müssen Bob und Charley beweisen das der original Coin von Alice gültig ist. Alice kann nicht einfach aus dem Nichts Coins erstellen, weil das Entstehen von Coins in Transaktionen liegt, die von anderen akzeptiert werden müssen.

In der jetzigen Software werden Coins wie folgt langsam in den Verkehr gebracht: Jeder Computer der es schaft ein neuen Block zu generieren darf eine Transaktion von 50 BTC hinzufügen, ohne das diese 50 BTC irgendwo herkommen muss. Dieser Betrag ist ein Anreiz, damit Leute die Berechnungen durchführen, die für die Erstellung neuer Blöcke nötig ist. Es ist festgelegt, das der Anreiz zum generieren von Blöcken jede 4 Jahre um die Hälfte reduziert wird. Dies bedeutet, die Mehrheit der CPUs wird aufhören aufhören Blöcke anzunehmen, welche eine Transaktion von 50 BTC für die Erstellung enthalten. Sie werden dann nur noch Blöcke annehmen, die die Hälfte hinzufügen. Dies wird auch in den Jahren 2017, 2021, 2025 etc. geschehen soweit nicht eine andere Client Software durchsetzt.

Da der Anreiz evtl. schrumpft Coins zu erhalten, kann Alice auch Transaktionsgebühren annehmen. Es gibt eine freiwillige Transaktionsgebühr, bei welcher der Sender des Geldes die Höhe und Betrag selber aussucht und entrichtet. Dieser Betrag erhält jener, der den "Proof-of-work"-Block generiert, in dem die Transaktion auftaucht (notwendig, damit die Transaktion akzeptiert wird). Da Alice selbst entscheiden kann, welche Transaktionen sie in ihren Block packt, kann sie sich für Transaktionen mit der höchsten Gebühren entscheiden. Wenn jeder so handelt, ist evtl. eine kleine Gebühr notwendig, damit eine Transaktion in der Block-Kette auftaucht.

Alles zusammen

Erlebe direkt das System mit einem Besuch des [| Bitcoin Block Explorer]. Diese Seite zeigt dir die letzten Blöcke der Block-Kette. Diese Block-Kette beinhaltet die festgesetzt Geschichte aller Transaktionen des Systems. Beachte wie viele Blocks in der letzten Stunde erstellt wurden, sollte so um die 6 sein. Beachte außerdem die Anzahl der Transaktionen und den, in der letzten Stunde transferierten, Gesamtbetrag. Dies sollte dir ein Indikator sein, wie aktiv das System ist.

Als nächstes: Die Blöcke. Beginnen wir mit dem Hash. Siehst du die vielen Nullen am Anfang? Deswegen ist es so schwer zu generieren. Der Rechner, der den Block errechnet, muss so viele Nonce-Werte (auch im Hash-Artikel erwähnt) berechnen, bis dieser einen Hash mit den vielen Nullen ergibt. Als nächstes kommt der Hash des Previous block (der Block, der zuvor kam), den jeder Block besitzt, so formt sich die Kette. Nun zu den Transaktionen in diesem Block. Der erste ist das Einkommen für den Rechner, der diesen Block errechnet hat. Es beinhaltet den festgelegten Wert für das erstellen solcher Blocks und zusätzlich mögliche Transaktionsgebühren.

Jetzt zu den Transaktionen. Du wirst sehen wie ein oder mehrere Inputs und Outputs behandelt werden. Der Fakt, das es mehrere Beträge ein- und ausgehen erlaubt es dem System, die Beträge in jede möglicher weiße zu trennen oder zusammenzufügen (meist in Cents). Jeder eintreffende Betrag ist ein zuvor ausgehende Transaktion (einsehbar durch den Link) von jemand und jeder ausgehende Betrag ist adressiert an jemand, es wird Teil einer zukünftigen Transaktion (auch einsehbar durch den Link, wenn schon stattgefunden hat).

Als letztes die Adresse. Hier kann man jede verfügbare öffentliche Information einsehen.

Um ein Bild der ganzen Aktivität des Netzwerks zu bekommen kann man sich Informationen über die Seiten Bitcoin Watch und Bitcoin Monitor besorgen. Die erste Seite zeigt eine generelle Statistik der Transaktionen während die zweite eine Visualisierung der Ereignisse zeigt.