Ich benutze testrpc und web3.Ist die Ethereum-Vertragsfunktion sicherbar?
verwenden ich das Idiom unten, um sicherzustellen, dass nur ein vorher definierte Benutzer in der Lage sein soll, etwas zu tun:
function doSomethingProtected() {
if (msg.sender != authorizedUser)
throw;
flagSomething = true;
}
Wenn die Funktion auf einen instanziiert Vertrag mit web3 Aufruf wie folgt:
myContract.doSomethingProtected({ from: "0x..." });
hat es funktioniert. Zuerst war ich zufrieden, aber dann erkannte ich, dass die Web3-API von mir keine Passphrase für einen privaten Schlüssel oder ähnliches benötigte.
Kann jemand mit der einfachen Kenntnis von jemandes öffentlichen Schlüssel/Adresse diese Funktion aufrufen?
Die Verwendung dieses Idioms in den Beispielen führte zu der Annahme, dass ein Vorteil der Ethereum-Verträge darin bestand, dass msg.sender dadurch kryptografisch gesichert wurde.
Ich führe es gegen einen Testerpc Knoten. Vielleicht ist das das Problem. – Interition