Wenn Sie geth auf localhost ausführen und eine von mir bereitgestellte Webseite verwenden, um mit dem Ethereum-Netzwerk zu interagieren, kann ich dann nicht einfach das Konto entsperren und das Geld mit web3js und Javascript auf ein anderes Konto überweisen? Ich bin ein wenig verwirrt darüber, wie das Sperren und Entsperren von Wallets funktioniert und wie ich eine eigenständige Web-App erstellen kann, ohne Geth/Infura zu verwenden?
Ist es auch möglich, eine Web-Dapp mit einer Web-Wallet zu verbinden und die Web-Wallet irgendwie zu verwenden, um mit dem Vertrag zu interagieren?
Wenn Sie geth auf localhost ausführen und auf meine Webseite stoßen, kann ich dann nicht einfach das Konto entsperren und das Geld mit web3js und Javascript auf ein anderes Konto überweisen?
Wenn Sie mit meiner Webseite gemeint haben, dass Sie einen Wallet-ähnlichen Service anbieten, ja, das können Sie.
Angenommen, Sie haben eine Webseite bereitgestellt und der Benutzer kann über seinen eigenen lokalen Knoten interagieren, und Sie bitten ihn, das Kennwort zum Entsperren des Kontos anzugeben. Sie können das Kennwort daraus abrufen und irgendwie einen Weg finden, auf das Dateisystem der Benutzer zuzugreifen Computer (genauso wie ein Hacker einen Weg findet, in ein System einzudringen) und die Keystore-Datei erhalten.
Aber das Hauptproblem ist, warum die Leute Ihrer Webseite oder Ihrem Service vertrauen sollten?
Wenn Sie anderen zeigen möchten, dass Ihre Webseite vertrauenswürdig ist, kann ich etwas vorschlagen wie , dass Sie die Schnittstelle zur Interaktion mit dem Ethereum bereitstellen, wenn der Benutzer sein Konto auf einem lokal ausgeführten Knoten oder Metamasken-ähnlichen Dienst entsperrt hat. Obwohl Sie also Zugriff auf die Keystore-Datei erhalten, ist es schwierig, sie zu entschlüsseln, um private Schlüssel zu finden, da Sie das Passwort/die Phrase nicht kennen.
Wallets funktionieren so, dass sie ein kryptografisches Schlüsselpaar generieren und Ihren privaten Schlüssel lokal verschlüsselt speichern. Wenn Sie also das Passwort angeben, wird der Schlüssel entschlüsselt und zum Signieren von Transaktionen verwendet. Sie können diesen Beitrag für weitere Details lesen .
Allerdings sind die Wallets nicht 100% vertrauenswürdig. Dass man den Wallet-Dienstleistern manchmal noch vertrauen muss. Hier lässt es sich gut lesen .
Abschließend kann ich Ihnen vorschlagen, einen Metamasken -ähnlichen Dienst zu verwenden, um eine vertrauenswürdige DApp zu erstellen. Diese Frage wird auch für Sie nützlich sein.
web3.eth.accounts.wallet[0]['address']
nach dem Entschlüsseln auf Standard zu setzen. Ohne die ['address']
Eigenschaft wird ein Fehler ausgegeben. Vielen Dank.
Achala Dissanayake
Manan Metha
Achala Dissanayake
Manan Metha
Achala Dissanayake