I am a newbie to this field and currently learning to write some smart contract programs.
I am writing to inquire the best practice to use those system-level variables, such as BLOCKHASH
, TIMESTAMP
, COINBASE
DIFFICULTY
, and GASLIMIT
when writing my contract.
I got the impression from the best practice manual that we should try to avoid using such variables, since they may be manipulated by malicious miners. But then in which situation do we need this? Could anyone shed some lights on a "legit" and "secure" usage of such variables? Thanks!