私はtestrpcとweb3を使用しています。
以下のイディオムを使用して、以前に定義されたユーザーのみが何かを実行できるようにしました。
function doSomethingProtected() {
if ( msg.sender != authorizedUser )
throw;
flagSomething = true;
}
次のように、web3 でインスタンス化されたコントラクトで関数を呼び出す場合:
myContract.doSomethingProtected( { from: "0x..." } );
出来た。最初は満足しましたが、web3 API では秘密鍵などのパスフレーズを提供する必要がないことに気付きました。
誰かの公開鍵/アドレスの簡単な知識を持つ人は誰でもこの関数を呼び出すことができますか?
例でこのイディオムを使用することで、Ethereum コントラクトの利点は、msg.sender が暗号的に保証されることであると信じるようになりました。