Wie hängen öffentliche und private Schlüssel mit dem Wallet zusammen?

Ich verstehe, dass das gesamte Bitcoin-Protokoll auf einer asymmetrischen Kryptographie basiert.

Ein Benutzer erhält 2 Schlüssel (öffentlich und privat). Wie verbinden sich diese Schlüssel mit den Bitcoins?

Wie hängen die Schlüssel mit der Geldbörse zusammen? Wie kann ich entscheiden, wie viele Bitcoins ich übertragen möchte, wenn ich meinen privaten Schlüssel verwende?

Antworten (2)

Die Antwort von Thomas ist richtig, aber ich denke, eine einfache Version kann auch geschätzt werden.

Ich nehme an, Sie kennen das Konzept der Public-Key-Kryptographie ? Wenn Sie dies nicht tun, hier ist eine sehr kurze Erklärung (oder lesen Sie die Wikipedia-Seite): Kryptografie mit öffentlichen Schlüsseln (wie in Bitcoin verwendet) ermöglicht es Ihnen, Personen einen öffentlichen Schlüssel zu übergeben und den entsprechenden privaten Schlüssel zu verwenden, um den Besitz zu beweisen. Sie können also einen beliebigen privaten Schlüssel erstellen (geheim halten) und den entsprechenden öffentlichen Schlüssel berechnen (zur Verifizierung öffentlich machen). Mit diesem privaten Schlüssel können Sie eine Nachricht signieren und andere Personen können anhand Ihres öffentlichen Schlüssels überprüfen, ob Sie der private Schlüssel sind.

Also auf Bitcoin angewendet.

Eine Bitcoin-Adresse ist nur eine Kurzschreibweise für einen öffentlichen Schlüssel. Wenn jemand eine Transaktion an eine Adresse durchführt, sagt er: "Ich gebe das Recht, dieses Geld auszugeben, an die Person, die den privaten Schlüssel besitzt, der dieser Adresse entspricht . " Die Person, die diese Transaktion erhalten hat, kann die Transaktion wiederum ausgeben, indem sie die Transaktion mit ihrem privaten Schlüssel signiert. Mit dieser Unterschrift kann er nachweisen, dass ihm der Schlüssel gehört, ohne ihn preiszugeben. Andere können die Signatur mit dem öffentlichen Schlüssel verifizieren.

Der zweite Teil Ihrer Frage wird etwas fortgeschrittener. Eine einfache Sichtweise ist, dass jede Transaktion eine Reihe von Eingaben benötigt und eine Reihe von Ausgaben erzeugt. Inputs sind in diesem Fall Outputs aus früheren Transaktionen. Für jede Eingabe muss der Benutzer bestätigen, dass er diese Ausgabe ausgeben darf, indem er eine Signatur hinzufügt.

Eine einfache Bitcoin-Brieftasche besteht aus einem oder mehreren Paaren öffentlicher und privater Schlüssel (ich sage hier einfach, da einige Brieftaschenstrukturen deterministische Generierungen von öffentlichen Schlüsseln und privaten Schlüsseln ermöglichen, die nur einen Teil der Brieftasche ausgeben können, aber das Prinzip mit öffentlichen/ private Schlüssel bleiben gleich). Die „Verknüpfung“ mit Bitcoin erfolgt zunächst während der Blockgenerierung, bei der eine bestimmte Menge Bitcoin generiert und an die öffentliche Adresse des Miners gesendet wird; dies ist lediglich ein Datensatz in der Blockchain. Dann können diese Coins über Transaktionen an andere öffentliche Adressen gesendet werden.

Die einfachste Transaktion hat eine Eingabe und eine Ausgabe; dh es gibt Münzen von einer Quelladresse zu einer Zieladresse aus. Um gültig zu sein, darf die Menge der ausgegebenen Coins die Menge der eingegebenen Coins nicht überschreiten, und um verifiziert zu werden, wird der Hash der Ausgangsadresse mit dem privaten Schlüssel der Eingangsadresse signiert.

In der realen Welt werden die Guthaben der Brieftaschen jedoch zur Summe aller Eingaben in diese Brieftasche. Wenn Sie also eine Transaktion durchführen, wählt die Software die gewünschte Anzahl von Eingaben aus, um eine Summe zu erhalten, die der gewünschten Transaktionsausgabe + Gebühr entspricht oder größer ist. Wenn der Betrag das übersteigt, was Sie ausgeben möchten, kann der Rest an eine der eingegebenen Adressen oder sogar an eine neue Adresse Ihrer Brieftasche zurückgeschickt werden, sodass Sie sich im Grunde die überschüssige Menge an Bitcoins senden. Jeder nicht ausgegebene Betrag in der Transaktion gilt als Gebühr und wird von dem Miner eingezogen, der den Block generiert.

Transaktionen können auch viel komplexer sein; Bitcoin ermöglicht ein sehr leistungsfähiges Skriptsystem, das Transaktionen in vielerlei Hinsicht ausgabefähig machen kann. Hier können Sie mehr über Bitcoin-Transaktionen und das Skriptsystem lesen:

https://en.bitcoin.it/wiki/Transaktionen

https://en.bitcoin.it/wiki/Script

Wenn Sie eine Transaktion versenden, wird sie zur Aufnahme in einen Block an das Netzwerk weitergeleitet, wenn sie die allgemeinen Regeln für Transaktionen (Gültigkeit, Gebühr, Größe usw.) erfüllt. Ein Miner wählt schließlich Ihre Transaktion aus und fügt sie in einen Block ein (die Transaktionen sind tatsächlich in einem Merkle-Baum enthalten, dessen Root-Hash im Block-Header enthalten ist – der Block-Header-Hash ist der Arbeitsnachweis, der der Schwierigkeitsanforderung für entsprechen muss Block).