Welche Beziehung besteht zwischen einem Bitcoin Private Key/Public Key/Adresse? Ich sehe, dass ein Paar aus privatem Schlüssel und öffentlichem Schlüssel generiert wird, aber gibt es eine Möglichkeit, einen bereits verwendeten privaten Schlüssel zu generieren? Und ich gehe auch davon aus, dass eine Wallet-Adresse eine Bitcoin-Adresse ist? Hat jede Wallet-Adresse eine Eins-Eins-Beziehung mit einem privaten Schlüssel?
Danke
Alte Brieftaschen verwendeten einen privaten Schlüssel, der beim ersten Ausführen zufällig von der Brieftasche generiert wurde.
In modernen "Hierarchical Deterministic" (HD) Wallets. Ein privater Schlüssel wird entweder zufällig generiert oder von einer Phrase abgeleitet, die als Seed-Phrase oder Recovery-Phrase bezeichnet wird, die selbst aus einer Zufallszahl generiert wird. Daraus werden dann über einen „Ableitungspfad“ viele weitere Private Keys generiert, die sich je nach Wallet-Marke unterscheiden können. Der Ableitungspfad wird von den Entwicklern gewählt und einige verschiedene Entwickler wählten unterschiedliche Ableitungspfade. Dies wirkt sich auf die Wallet-Wiederherstellung aus.
Aus (zusammen mit?) jedem privaten Schlüssel wird ein öffentlicher Schlüssel generiert.
Adressen werden aus öffentlichen Schlüsseln für bestimmte allgemeine Arten von Transaktionen konstruiert. Nicht alle Transaktionen beinhalten Adressen.
Die gängigsten Transaktionstypen erstellen Adressen als Präfix, gefolgt von einem Hash eines öffentlichen Schlüssels, gefolgt von einer Prüfsumme (damit Tippfehler erkannt werden können).
Da HD-Wallets für jede Transaktion eine neue Adresse generieren, verwenden sie hinter den Kulissen den festen Ableitungspfad, um neue private Schlüssel und öffentliche Schlüssel zu generieren, aus denen die Adresse erstellt wird.
HD-Wallets haben also viele Adressen, es ist nicht sinnvoll, an eine "Wallet-Adresse" zu denken.
Welche Beziehung besteht zwischen einem Bitcoin Private Key/Public Key/Adresse?
Etwas, das dem nicht ganz unähnlich ist:
entropy --> random number --> phrase --> private key --> public key --> address
| ^ |
'------------------------' +--> private key --> pubkey --> addr
+--> private key --> pubkey --> addr
:
'--> private key --> pubkey --> addr
Gibt es eine Möglichkeit, einen bereits verwendeten privaten Schlüssel zu generieren?
Es ist ungefähr so wahrscheinlich, als würde sich Ihr Zuhause spontan in einen Topf mit Petunien verwandeln. Was Physiker Ihnen sagen könnten, ist theoretisch möglich, wird aber aufgrund seiner Unwahrscheinlichkeit niemals eintreten. Der Punkt ist, dass wir über statistische Wahrscheinlichkeiten sprechen, die Zahlen beinhalten, die viel größer sind, als die meisten von uns zu begreifen hoffen, weil sie viel größer sind als alle Zahlen, denen wir routinemäßig begegnen oder die wir uns vorstellen können.
Und ich gehe auch davon aus, dass eine Wallet-Adresse eine Bitcoin-Adresse ist?
Ja.
Hat jede Wallet-Adresse eine Eins-Eins-Beziehung mit einem privaten Schlüssel?
So weit ja.
Neue Arten von Transaktionen können erfunden werden, und ich stelle mir vor, dass neue Arten von Adressen erfunden werden könnten.
Unter Verwendung des Elliptical Curve Digital Signature Algorithm (ECDSA) wird der private Schlüssel verwendet, um den öffentlichen Schlüssel zu generieren, eine sichere Hash-Funktion wird dann auf den öffentlichen Schlüssel angewendet und eine Prüfsumme angehängt, um eine Base58-formatierte Bitcoin-Adresse zu erzeugen.
Eine Kollision privater Schlüssel ist theoretisch möglich, aber aufgrund der schieren Anzahl von ihnen, die im Netzwerk verfügbar sind (Billiarden+), praktisch unmöglich.
Welche Beziehung besteht zwischen einem Bitcoin Private Key/Public Key/Adresse?
Der öffentliche Schlüssel (ein Kurvenpunkt) ist gleich dem Generator (ein fester Kurvenpunkt) multipliziert mit dem privaten Schlüssel (eine ganze Zahl).
Es gibt mehrere verschiedene Arten von Adressen. Ein üblicher Adresstyp ist jedoch ein verschlüsselter Hash des öffentlichen Schlüssels. (In der Praxis ist das, was gehasht wird, die Byte-Darstellung der x-Koordinate des öffentlichen Schlüssels, wobei entweder 0x02 oder 0x03 vorne angehängt wird, um das Vorzeichen der y-Koordinate zu berücksichtigen, und zusätzlich gibt es einige Prüfsummendaten - nur andere Hash-Typ – vor der Codierung angehängt).
Gibt es eine Möglichkeit, einen bereits verwendeten privaten Schlüssel zu generieren?
Ja da ist. Wenn Sie beispielsweise Ihren privaten Schlüssel mit der Nummer 1 wählen, haben Sie einen schlechten privaten Schlüssel gewählt (der private Schlüssel 1 wird bereits verwendet – sehen Sie nach, ob Sie ihn finden können!).
However, if you choose your private key at random from integers greater than zero and less than 115792089237316195423570985008687907852837564279074904382605163141518161494337, then you will have a valid key and the chance of a key collision is very very low (because 115792089237316195423570985008687907852837564279074904382605163141518161494337 is very very large).
Ein privater Schlüssel ist eine Ganzzahl k
aus dem Bereich (0, n ), 0 und n ausgeschlossen, wobei n die Reihenfolge des Generators ist G
, die 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 ist, eine Zahl, die etwas kleiner als 2 256 ist . Der öffentliche Schlüssel K
ist der entsprechende elliptische Kurvenpunkt auf secp256k1: K = k×G
, wobei G
der Basispunkt oder Generator von secp256k1 ist.
Eine P2PKH-Adresse (Pay to Public Key Hash) wird aus dem öffentlichen Schlüssel abgeleitet, indem zuerst ein SHA256-Hash und dann ein RIPEMD-160-Hash angewendet wird. Die Adresse wird dann mit Base58Check verschlüsselt. Das bedeutet, dass es nur 2.160 Adressen für etwa 2.256 private Schlüssel gibt. Daher werden jeder Adresse etwa 2 96 private Schlüssel zugeordnet. Da es keine zentrale Registrierung von Adressen gibt, nachdem sie generiert wurden, gibt es keinen Mechanismus, um Schlüsselkollisionen zu verhindern, aber wie Travis bereits erklärt hat , macht die schiere Größe des Nummernraums das Auftreten von Kollisionen astronomisch unwahrscheinlich. Die Frage Ist jede Bitcoin-Adresse einzigartig? geht näher ins Detail.
Inzwischen gibt es eine Reihe unterschiedlicher Adresstypen, die aus denselben privaten Schlüsseln abgeleitet werden können. Genau genommen können mehrere Adressen mit demselben privaten Schlüssel verknüpft sein, aber für die meisten praktischen Zwecke können Sie davon ausgehen, dass jede Adresse einzigartig ist und in einer Eins-zu-eins-Beziehung zu einem privaten Schlüssel steht.
Ohne weiteren Kontext würde ich „Wallet-Adresse“ und „Bitcoin-Adresse“ tatsächlich so nehmen, dass sie sich auf dasselbe Konzept beziehen.
Murch