Nun, lassen Sie uns von Infocoin weggehen und zu einem echten Bitcoin-Protokoll wechseln. Bitcoin unterscheidet sich nicht viel von Infocoin, das wir gerade Schritt für Schritt aufgebaut haben, außer in einer deutlichen Änderung.
Um Bitcoin zu verwenden, müssen Sie zuerst eine Brieftasche auf Ihrem Computer installieren. Um es besser zu verstehen, sehen Sie im Bild unten einen Screenshot einer Brieftasche namens Multibit. Sie können in der oberen linken Ecke einen Bitcoin-Guthaben von 0,06555555 Bitcoins sehen, was bei dem damaligen Handelspreis des Screenshots fast 70 US-Dollar entspricht.

Angenommen, Sie sind ein Händler, haben einen Online-Shop und Sie haben beschlossen, Kunden in Bitcoin bezahlen zu lassen. Alles, was Sie tun müssen, ist, eine neue Bitcoin-Adresse mit Ihrem Wallet-Programm zu generieren. Es generiert automatisch ein Paar öffentlicher und privater Schlüssel und hashet Ihren öffentlichen Schlüssel, um Ihre Bitcoin-Adresse zu erstellen.

Dann schickst du deine Bitcoin-Adresse an die Person, die dir Geld zahlen soll. Du kannst sie per Post oder direkt auf deiner Webseite posten. Das ist sicher, denn deine Adresse ist nur der öffentliche Schlüssel des Hashes, den du mit Sicherheit an irgendjemanden weitergeben kannst (und niemand kann deinen privaten Schlüssel damit bekommen). Ich werde später erklären, warum die Bitcoin-Adresse den Hashwert des öffentlichen Schlüssels verwendet und nicht den öffentlichen Schlüssel selbst.
Nun muss derjenige, der bereit ist zu zahlen, eine neue Transaktion erstellen. Sehen wir uns eine echte Transaktion mit 0,319 Bitcoins an. Das ist fast die ursprüngliche Daten, die hier an drei Stellen geändert wurden: 1) die Daten sind nicht sequenziert; 2) die Zeilenummern wurden hinzugefügt, um sie besser zu verstehen; 3) eine lange Reihe von Zahlen aus dem Hash-Daten wurden weggelassen und nur die ersten 6 Zahlen wurden behalten.
1. {"hash":"7c4025...",
2. "ver":1,
3. "vin_sz":1,
4. "vout_sz":1,
5. "lock_time":0,
6. "size":224,
7. "in":[
8. {"prev_out":
9. {"hash":"2007ae...",
10. "n":0},
11. "scriptSig":"304502... 042b2d..."}],
12. "out":[
13. {"value":"0.31900000",
14. "scriptPubKey":"OP_DUP OP_HASH160 a7db6f OP_EQUALVERIFY OP_CHECKSIG"}]}
Lassen Sie uns das eine nach dem anderen erklären.
In der ersten Zeile, der Hashwert des Transaktions ([16]), ist er das einzige Kennzeichen, das verwendet wird, um den Transaktionswert zu repräsentieren.
Die zweite Zeile sagt uns, dass die Transaktion mit der ersten Version des Bitcoin-Protokolls durchgeführt wurde.
Zeilen 3 und 4 zeigen uns, dass es einen Eingang und einen Ausgang gibt.
Die fünfte Zeile ist die Lock_time, mit der man kontrollieren kann, wann die Transaktion abgeschlossen wird. Die meisten Bitcoin-Transaktionen haben eine Lock_time von 0, was bedeutet, dass die Transaktion sofort abgeschlossen wird.
Zeile 6 gibt uns die Größe dieser Transaktion in Byte an, aber beachten Sie, dass dies kein Geld für Transaktionen ist.
Die Zeilen 7 bis 11 definieren die Eingaben dieses Transaktions. Die Zeilen 8 bis 10 zeigen uns, dass der Eingabewert, den wir übertragen wollen, aus dem Eingabewert des vorherigen Transaktions stammt. 2007ae… ist der Hashwert des vorherigen Transaktions, der auf die 16-Zahlen-Eingabewerte verweist.
Bemerkenswert ist, dass im Input-Bereich nicht erwähnt wird, wie viele Bitcoins aus dem vorherigen Transaktionsergebnis an den nächsten übertragen werden. Tatsächlich wurden alle Bitcoins aus dem Ausgang des vorherigen Transaktionsergebnisses mit n = 0 übertragen. Zum Beispiel, wenn der erste Ausgang des vorherigen Transaktionsergebnisses mit n = 0 2 Bitcoins enthält, werden diese beiden Bitcoins in dem neuen Transaktionsergebnis ausgegeben.
Die Zeilen 12 bis 14 definieren den Ausgang der Transaktion. In der Zeile 13 wird die Menge des ausgegebenen Geldes angegeben, also 0,319 Bitcoins. Die Zeile 14 ist etwas komplizierter, da die Zeichenfolge a7db6f… die Adresse ist, an der die Bitcoins abgeholt werden.
Nun können Sie sehen, wie Bitcoin die Frage löst, woher die von uns erwähnte Silber-Seriennummer stammt. Erstens ist Bitcoin kein einzelner Silber-Serien-Satz, sondern eine lange Reihe von Transaktionen, die in der Blockchain existieren.
Wir können die Bitcoin-Kette immer wieder durchgehen. Wenn wir am Ende kommen, gibt es zwei Möglichkeiten. Erstens, Sie können zu der ersten Bitcoin-Transaktion gelangen, die in einem Block existiert, den wir den Genesis-Block nennen. Es ist eine spezielle Transaktion, die keine Eingaben hat und nur 50 Bitcoins ausgegeben hat.
Das zweite Ergebnis, das man durch die ganze Transaktionskette hin und her durchsuchen kann, ist, dass man zu einem so genannten Coinbase-Transaction kommt. Jeder Block außer dem Genesis-Block beginnt mit einem speziellen Coinbase-Transaction. Diese Transaktion wird verwendet, um die Miner zu belohnen, die den Handel in diesem Block bestätigen.
Die oben beschriebene Beschreibung ist nicht sehr klar, was in den 11 Zeilen digital signiert wird. Am offensichtlichsten ist, dass der Zahler die gesamte Transaktion digital signieren soll. Es wird derzeit nicht so gemacht, einige Transaktionen werden ignoriert.
Im letzten Abschnitt haben wir über eine Transaktion gesprochen, bei der es nur eine Eingabe und eine Ausgabe gibt. Tatsächlich haben die meisten Bitcoin-Transaktionen mehrere Eingaben oder mehrere Ausgänge.
1. {"hash":"993830...",
2. "ver":1,
3. "vin_sz":3,
4. "vout_sz":2,
5. "lock_time":0,
6. "size":552,
7. "in":[
8. {"prev_out":{
9. "hash":"3beabc...",
10. "n":0},
11. "scriptSig":"304402... 04c7d2..."},
12. {"prev_out":{
13. "hash":"fdae9b...",
14. "n":0},
15. "scriptSig":"304502... 026e15..."},
16. {"prev_out":{
17. "hash":"20c86b...",
18. "n":1},
19. "scriptSig":"304402... 038a52..."}],
20. "out":[
21. {"value":"0.01068000",
22. "scriptPubKey":"OP_DUP OP_HASH160 e8c306... OP_EQUALVERIFY OP_CHECKSIG"},
23. {"value":"4.00000000",
24. "scriptPubKey":"OP_DUP OP_HASH160 d644e3... OP_EQUALVERIFY OP_CHECKSIG"}]}
Wie zuvor haben wir es in einer Reihe erklärt, die zum größten Teil die gleichen sind wie die vorherigen.
Zeile 1, Hashwert der Transaktion, als einziges Kennzeichen für diese Transaktion.
Zeile 2, Version des Bitcoin-Protokolls, erste Ausgabe.
In Zeilen 3 und 4 heißt es, dass es 3 Eingänge und 2 Ausgänge gibt.
Zeile 5, Zeitlocker ((und wie vorher) )
Zeile 6 zeigt die Byte-Größe der Transaktion.
Die Zeilen 7 bis 19 definieren alle Eingänge, die jeweils dem Ausgang des vorherigen Transaktions entsprechen. Die erste Eingabe ist die Zeile 8 bis 11. Ihre Inhaltsform ist die gleiche wie die vorherige. Die zweite Eingabe ist die Zeile 12 bis 15, die dritte die Zeile 16 bis 19.
Die Zeilen 20 bis 24 definieren alle Ausgänge. Die ersten Ausgänge sind die Zeilen 21 und 22, und wie zuvor sagt die Zeile 21, dass es 0,01068 Bitcoins gibt. Die Zeile 22 ist eine Schreibsprache für Bitcoins.
Es scheint ein wenig seltsam, dass bei jeder Ausgabe die Anzahl der Bitcoins aufgezeichnet ist, während bei der Eingabe dies nicht der Fall ist. Natürlich kann jede Eingabe mehr Bitcoins aus der vorherigen Transaktion erhalten. In einer normalen Bitcoin-Transaktion ist die Summe aller Eingabewerte größer als die Summe der Ausgänge (mit Ausnahme der oben genannten Genesis-Block- und Coinbase-Transaktionen).
Angenommen, ich möchte dir 0,15 Bitcoins geben. Ich kann die 0,2 Bitcoins, die ich zuvor erhalten habe, ausgeben. Natürlich möchte ich dir nicht die ganzen 0,2 Bitcoins geben, also ist die Lösung, dass ich dir 0,15 Bitcoins schicke und dann meiner eigenen Bitcoin-Adresse 0,05 Bitcoins schicke.
Die grundlegenden Konzepte hinter Bitcoin sind bereits beschrieben. Natürlich habe ich viele Details übersehen, denn es ist keine offizielle Anleitung. Aber ich möchte die allgemein verwendeten Konzepte hinter Bitcoin beschreiben.
Obwohl die Regeln hinter Bitcoin einfach und leicht verständlich sind, bedeutet das nicht, dass alle möglichen Ergebnisse, die diese Regeln erzeugen, leicht verständlich sind. Es gibt noch viel mehr über Bitcoin zu sagen, von dem ich in einem späteren Artikel etwas erläutern werde.
Wie anonym ist Bitcoin? Viele Leute behaupten, dass Bitcoin anonym verwendet werden kann. Diese Behauptung entstand auf einem Schwarzmarkt wie Silk Road. Diese Behauptung ist jedoch fiktiv. Die Blockchain ist öffentlich, was bedeutet, dass jeder alle Bitcoin-Transaktionen sehen kann. Obwohl die Bitcoin-Adresse nicht direkt mit der Identität von Personen in der realen Welt übereinstimmt, haben Computerwissenschaftler bereits viel Arbeit geleistet, um die anonymen sozialen Netzwerke zu entschlüsseln.
Kannst du mit Bitcoin reich werden? Vielleicht ja, Tim O’Reilly hat einmal gesagt, Geld zu verdienen ist wie ein Tank in einem Auto, auf den du aufpassen musst, sonst stehst du am Straßenrand fest, aber das Leben dreht sich nicht um eine Tankstelle! Oh, die meisten Interessen an Bitcoin scheinen von Leuten zu kommen, deren Lebensziel nur darin besteht, eine große Tankstelle zu finden.
Details, die ich übersehen habe: Obwohl der Artikel die Hauptkonzepte hinter Bitcoin beschreibt, gibt es viele Details, die ich nicht erwähnt habe. Eines davon ist die großartige Speicherplatz-Technik im Protokoll, basierend auf einer Datenstruktur namens Merkle tree. Es ist ein Detail, aber es ist ein extrem toller Detail, der einen Blick wert ist, wenn Sie sich für die Datenstruktur interessieren.
Bitcoin-Skript: In diesem Artikel erkläre ich Bitcoin als eine elektronische Währung online. Aber das ist nur ein kleiner Teil einer größeren und interessanteren Geschichte. Wie wir sehen, gibt es in jedem Bitcoin-Geschäft eine Bitcoin-Skriptsprache.
Wenn es hilfreich ist, schicken Sie einen Tip an Michael Nielsen, den Autor dieses Artikels, 17ukkKt1bNLAqdJ1QQv8v9Askr6vy3MzTZ, oder folgen Sie ihm auf Twitter. Oder folgen Sie dem ersten Kapitel seines bevorstehenden Buches über Neural Networks and Deep Learning.
Wenn etwas schief läuft, dann bitte entschuldigen Sie.
Das ist ein Artikel von Jean-Luc Godard.