Ist es möglich, mit dem Standard-Client den öffentlichen Schlüssel einer Bitcoin-Adresse zu erhalten, für die ich keine privaten Schlüssel habe?

Es ist möglich, es von hier zu bekommen: https://blockchain.info/de/q/pubkeyaddr https://blockchain.info/q

Geht das mit dem Standardclient? Wie?

Mir ist bewusst, dass die Blockchain nur den Pubkey nach einem tx von dieser Adresse enthält.

Antworten (3)

Es ist unmöglich, den öffentlichen Schlüssel einer Adresse zu berechnen, da die Adresse aus dem Hash des öffentlichen Schlüssels berechnet wird. Sie können den öffentlichen Schlüssel von der Adresse mit dem Referenzclient mithilfe des validateaddressRPC-Aufrufs (oder im Debug-Fenster von Bitcoin-Qt) abrufen, aber das holt ihn einfach aus der Brieftasche und funktioniert nur, wenn die Adresse Ihnen gehört.

Update: Sie müssen getaddressinfojetzt anstelle von verwenden validateaddress.

Ich möchte Nachrichten verschlüsseln, indem ich Bitcoin/Namecoin-Signaturschlüssel als Verschlüsselungsschlüssel missbrauche. siehe: bitcointalk.org/index.php?topic=145098 Mir ist bewusst, dass es periphere Risiken geben kann, wenn dieselben Schlüssel zum Signieren und Verschlüsseln verwendet werden.
Genauer gesagt ist ein öffentlicher Schlüssel 33 Byte lang, während eine Adresse ein 20-Byte-Hash des öffentlichen Schlüssels ist. Da die Informationen kleiner sind, ist es daher unmöglich, den richtigen öffentlichen Schlüssel aus einer Adresse zu berechnen.
Benötige ich nicht den vollständigen Pub-Schlüssel für eine Adresse, die ich NICHT besitze, wenn ich eine neue Multisig-Adresse mit "addmultisigaddress" erstelle?
Es IST jedoch möglich, den öffentlichen Schlüssel aus der Signatur wiederherzustellen (so dass Sie den öffentlichen Schlüssel einer Adresse wiederherstellen können, die bereits in der Blockchain zu sehen ist), siehe die Antwort unten.
Warten Sie, sollte es nicht möglich sein, in der Blockchain nachzuschauen und zu sehen, ob diese Person von dieser Adresse ausgegeben hat, und dann den öffentlichen Schlüssel zu erhalten, der zum Signieren der Transaktion verwendet wird?
@PieterWuille : aber Zahlungstransaktionen werden an einen Pubkey durchgeführt ... Richtig ?
Was sind „Zahlungsverkehr“?
@ user2284570 Bitcoin-Transaktionen haben eine Eingabe- und Ausgabeadresse und werden normalerweise an einen "Pubkey-Hash" gesendet, nicht an einen "Pubkey". Eine Bitcoin-Adresse ist nur ein Pubkey-Hash mit einem Header und angehängten Prüfsummen-Bytes, die dann mit base58checked codiert werden. Sie können also problemlos von einer Bitcoin-Adresse zu einem Pubkey-Hash wechseln.

Um ehrlich zu sein, es IST möglich, aber Sie benötigen eine Unterschrift von dieser Adresse. Ab diesem Zeitpunkt können Sie den öffentlichen Schlüssel erhalten.

Siehe dieses Stück Code: https://github.com/bitcoinjs/bitcoinjs-message/blob/master/index.js#L57

Es ist unmöglich. Ausgehend von einem ECDSA-Public-Key K (komprimiert 65 Bytes oder nicht 33 Bytes) wird eine Bitcoin-Adresse unter Verwendung der kryptografischen Hash-Funktionen SHA-256 und RIPEMD-160 generiert. Der öffentliche Schlüssel wird zweimal gehasht: HASH160 = RIPEMD-160(SHA-256(K)). Die Bitcoin-Adresse wird direkt aus diesem HASH160-Wert als berechnet

base58(0x00 || HASH160 || bSHA-256(SHA-256(0x00 || HASH160))/2224c). "||=concatenation"

Geben Sie hier die Bildbeschreibung ein

Daher ist es unmöglich, den Hash umzukehren, um den öffentlichen Schlüssel zu erhalten.

@PieterWuille : aber Zahlungstransaktionen werden an einen Pubkey durchgeführt ... Richtig ?
es hängt von der Transaktionsart ab
Ich habe dies in dem Sinne geschrieben, dass dies eine Anforderung ist.
Der Pub-Schlüssel wird mit dem Netzwerk geteilt, sodass keine Adresse umgekehrt werden muss, um den Pub-Schlüssel zu erhalten
@user2284570 Was ist eine "Zahlungstransaktion"?
@PieterWuille eine werthaltige Transaktion mit einem Empfänger, der kein Miner ist.
In diesem Fall nein; Es gibt fast überhaupt keine Pay-to-Pubkey-Ausgaben.
@BadrBellaj - Sie haben geschrieben: "Der Pub-Schlüssel wird mit dem Netzwerk geteilt, sodass keine Adresse umgekehrt werden muss, um den Pubkey zu erhalten" - Kann der öffentliche Schlüssel also aus dem Netzwerk abgerufen werden?
Ich habe heute angefangen, Bitcoin zu lernen. Durch sokratische Schlussfolgerung habe ich gelesen, dass ein Hash stellvertretend für den öffentlichen Schlüssel steht, um den öffentlichen Schlüssel zu verbergen. Daher schließe ich, dass der öffentliche Schlüssel niemals aus seinem Hash abgerufen werden kann.