首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何/何时在构建合同中使用系统级变量

如何/何时在构建合同中使用系统级变量
EN

Ethereum用户
提问于 2019-01-12 13:18:39
回答 1查看 24关注 0票数 0

我是这个领域的新手,目前正在学习编写一些智能的合同程序。

我写这封信是为了询问在编写合同时使用这些系统级变量(如BLOCKHASHTIMESTAMPCOINBASE DIFFICULTYGASLIMIT )的最佳实践。

我从最佳实践手册中得到的印象是,我们应该尽量避免使用这些变量,因为它们可能被恶意的矿工操纵。但在什么情况下我们需要这样做呢?是否有人会对这些变量的“合法”和“安全”使用大加指责呢?谢谢!

EN

回答 1

Ethereum用户

发布于 2019-01-13 17:57:01

建议是谨慎使用它们,并了解它们的局限性。

你得问问自己。对这些参数的操作是否为事务的发送方提供了优势?

例如,使用keccak256(block.timestamp)作为随机性的来源并不好,因为矿工可以操纵它。尽管矿商冒着整块报酬的风险,所以如果利润比报酬小得多,那么矿商操纵它就没有多大意义。

不幸的是,没有任何规则可以覆盖100%的用例。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/65438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档