我正在使用 testrpc 和 web3。
我使用下面的成语来确保只有以前定义的用户才能做某事:
function doSomethingProtected() {
if ( msg.sender != authorizedUser )
throw;
flagSomething = true;
}
当使用 web3 在实例化合约上调用函数时,如下所示:
myContract.doSomethingProtected( { from: "0x..." } );
有效。起初我很高兴,但后来我意识到 web3 API 并没有要求我为私钥等提供任何密码。
对某人的公钥/地址有简单了解的人可以调用这个函数吗?
在示例中使用这个成语让我相信以太坊合约的一个好处是它确保 msg.sender 得到加密保证。