Ich kann kaum glauben, dass so etwas nicht möglich ist, da die Verwendung von öffentlichen/privaten Schlüsseln ein großer Vorteil digitaler Identitäten ist.
Ich muss eine Javascript-Funktion schreiben, um eine Ethereum-Adresse aufzunehmen und ihren öffentlichen Schlüssel zurückzugeben. Ich weiß, wie man den öffentlichen Schlüssel aus einer Signatur erhält, aber es ist schwieriger als ich dachte, eine Transaktionssignatur zu erhalten, web3 kann meines Erachtens keine zurückgeben.
Kann ich etwas in ParityJS verwenden, um einen Transaktions-Hash aus dem Eingabeadresskonto abzurufen und die Signatur davon zu erhalten?
Bitte sagt mir jemand, dass das möglich ist, ich verliere die Hoffnung...
Sie können einen öffentlichen Schlüssel nur wiederherstellen, wenn Sie eine Signatur haben. Der häufigste Ort, um eine Signatur zu finden, ist von einer Transaktion, also müssten Sie eine Transaktion finden, die von diesem Konto durchgeführt wurde. Dies ist der schwierige Schritt, da es meines Wissens nach keine einfache API zum Abrufen der Transaktionsliste von diesem Konto gibt. Sie müssten die Transaktionen in einer Reihe von Blöcken durchsuchen, um eine Transaktion zu finden.
Von dort würden Sie einfach aufrufen eth_getTranscationByHash
und dann den öffentlichen Schlüssel aus der Signatur ( Werte , und ) r
wiederherstellen s
.v
Die Adresse wird aus dem öffentlichen Schlüssel generiert und ist ein Einwegprozess. Es ist also nicht möglich, aus einer Adresse einen öffentlichen Schlüssel zu generieren
1Taschen1
Benutzer19510
curl https://mainnet.infura.io -d '{"json_rpc": "2.0", "method": "eth_getTransactionByHash", "params": ["0x1ac7fead8f71a41c9aad091c92e76947a35c4a5fd3aa27e67d7db85b14b1dbd6"], "id": 0}'
. (Nur eine zufällige Transaktion, die ich gerade auf etherscan.io gesehen habe.)Benutzer19510
web3.eth.getTransaction('0x1ac7fead8f71a41c9aad091c92e76947a35c4a5fd3aa27e67d7db85b14b1dbd6', console.log);
wenn Sie web3.js verwenden.Benutzer19510
eth_getTransactionByHash
a ausreichen.ethereumjs-util
ecrecover
1Taschen1
Benutzer19510
Benutzer19510
getTransaction
wird Ihnen die Signatur besorgen.