Einführung: Unterschied zwischen den Versionen

Aus Bitcoin Wiki
Wechseln zu: Navigation, Suche
K (Alles zusammen)
(weiterführende Weblinks hinzugefügt)
Zeile 61: Zeile 61:
  
 
[[en:Introduction]]
 
[[en:Introduction]]
 +
 +
==Weblinks==
 +
* [http://bitcoin-start.de/ Bitcoin-Start.de] – Einführung in die Kryptowährung Bitcoin
 +
* [http://bitcoin-einfach.de/erste-schritte erste Schritte mit Bitcoin] auf Bitcoin-Einfach.de
 +
* [http://mybitcoin.de/bitcoin-einfuehrung/ Bitcoin Einführung – In nur 4 Schritten zu Bitcoin] auf myBitcoin.de

Version vom 23. Juni 2014, 19:41 Uhr

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, an Bob senden und warten, dass Bob die Socken zu ihr sendet.

Alternativ könnte Alice die 5 Euro auch überweisen. Dies macht sie, indem sie ihre 5 Euro erst einem Institut (Bank genannt) übergibt, welches auf ihr Geld aufpasst und Kontoauszüge ausstellt, wodurch Alice immer, wenn sie möchte, denselben Betrag abheben kann, den sie bei ihrer Bank eingelagert hat. Dieses Geld gehört nun immer noch Alice, was bedeutet, dass 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. Dies 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 er für Bob ist. Dieser Betrag taucht dann auf Bob's nächstem 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 Zahl auf ihrem Kontoauszug oder Bildschirm 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 Umstand, dass Maschinen genutzt werden, nichts am Aufbau des Systems, welches auf einer zentralen Autorität (der 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 aufpasst oder auf Verlangen des Kunden Geld ausbezahlt). Zudem muss sich jede Person gegenüber der Autorität mit ihrem Namen identifizieren, damit er Geld abheben oder überweisen kann.

Diebstahl verhindern

Um zu garantieren, dass sich kein Betrüger 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) liegt. 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 seinen ö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

Als 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 anderem anzuvertrauen, da dieser dann jegliche Transaktion unterschreiben könnte, welche den Kontostand von Alice reduzieren.

Später, wenn Bob den empfangenen Betrag an Charley weiter senden will, macht Bob dasselbe. Er bekommt Charleys ö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 von Bob vertauscht, da Alice mit ihrem 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, dass 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 (darin besteht die Hauptinnovation hinter Bitcoin).

  • Details der Transaktion werden an alle oder so viele 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 vollständige Kopie).
  • Um in der Kette akzeptiert zu werden, müssen Transaktionsblöcke gültig sein und einen Beweis beinhalten (ein Block, der vom Netzwerk ca. alle 10 Minuten generiert wird). Dieses generieren wird auch als Mining bezeichnet.
  • Blöcke sind so aneinandergehängt, dass alle Folgenden neu berechnet werden müssen, falls einer modifiziert ist.
  • Wenn mehrere gültige Weiterleitungen an der Kette auftreten, wird nur die längste Kette akzeptiert und später weitergeführt.

Wenn Bob sieht, dass seine Transaktion in einen 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 derselben 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 noch 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 von jemandem 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, dass er viel Zeit in Anspruch nimmt, wird Alice unmöglich einen Block schneller berechnen können als all die Rechner im Netzwerk. Bob wird inzwischen außerdem mehr Blöcke 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 anderen zusammen erstellt wird, da immer nur die längste Kette akzeptiert wird. Um die längste Kette zu bleiben (und um damit zu verhindern, dass die ungewollte Transaktion zu einem Block hinzugefügt wird), müsste sie also schneller wachsen als alle anderen Ketten. Um dies zu schaffen, müsste Alice die Mehrzahl der CPU-Leistung im Netzwerk befehligen können; etwas, wovon wir 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-"Accounts" 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" demjenigen, der den privaten Schlüssel besitzt (nur der Besitzer kann 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 sehr viele solcher Adressen haben, jede mit einem 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, dass der originale Coin von Alice gültig ist. Alice kann nicht einfach aus dem Nichts Coins erstellen, weil das Entstehen von Coins durch Transaktionen, die von anderen akzeptiert werden müssen, erfolgt.

In der jetzigen Software werden Coins wie folgt langsam in den Verkehr gebracht: Jeder Computer, der es schafft einen neuen Block zu generieren, darf eine Transaktion von 50 BTC hinzufügen, ohne dass diese 50 BTC irgendwo herkommen müssen. Dieser Betrag ist ein Anreiz, damit Leute die Berechnungen durchführen, die für die Erstellung neuer Blöcke nötig sind. Es ist festgelegt, dass der Anreiz zum Generieren von Blöcken alle 4 Jahre um die Hälfte reduziert wird. Dies bedeutet, dass die Mehrheit der CPUs aufhören wird 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, falls sich 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, dessen Höhe der Sender des Geldes selbst bestimmt 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 den 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 festgesetzte Geschichte aller Transaktionen des Systems. Beachte wie viele Blocks in der letzten Stunde erstellt wurden; es sollten ca. 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 schwierig 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. Er 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, dass es mehrere Beträge ein- und ausgehen, erlaubt es dem System, die Beträge in jede möglicher Weise zu trennen oder zusammenzufügen (meist in Cents). Jeder eingehende Betrag ist eine zuvor ausgehende Transaktion (einsehbar durch den Link) von jemandem und jeder ausgehende Betrag ist adressiert an jemanden, er wird Teil einer zukünftigen Transaktion (auch einsehbar durch den Link, wenn diese 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 einzelne Ereignisse zeigt.

Weblinks