Я использую testrpc и web3.Защищена ли контрактная функция Ethereum?
Я использовал ниже идиому, чтобы гарантировать, что только определенный ранее пользователь должен быть в состоянии сделать что-то:
function doSomethingProtected() {
if (msg.sender != authorizedUser)
throw;
flagSomething = true;
}
При вызове функции на реализованном контракт с Web3 следующим образом:
myContract.doSomethingProtected({ from: "0x..." });
это сработало. Сначала я был доволен, но потом понял, что API-интерфейс web3 не требовал от меня предоставления какой-либо парольной фразы для закрытого ключа или подобного.
Может ли кто-нибудь с простым знанием кого-то публичного ключа/адреса назвать эту функцию?
Использование этой идиомы в примерах заставило меня поверить в то, что контракты Ethereum заключаются в том, что он обеспечил криптографическую уверенность в том, что msg.sender был зашифрован.
Я запускаю его против узла testrpc. Возможно, в этом и проблема. – Interition