首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否可以避免在以太坊智能合约中进行验证以进行气体优化?

我是否可以避免在以太坊智能合约中进行验证以进行气体优化?
EN

Stack Overflow用户
提问于 2019-02-02 21:13:50
回答 1查看 101关注 0票数 0

在有些情况下,输入验证只是为了确保用户输入在适当的范围内,如果不是这样,就会导致运行时错误。为什么我要费心验证输入,并增加正常用户(大多数)的计算成本?为什么不让错误的输入导致运行时错误,而不进行验证,以防止它在不知情的情况下发生?

我所说的验证是指: require(),assert(),revert()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-06 03:06:24

有几个原因可以解释为什么你想要使用你所说的验证。下面我已经概述了其中的一些。

1)确保您的合同不会进入意外状态。预测用户应该如何与约定交互要比预测如何误用约定容易得多,因此,避免意外状态的检查有助于限制代码路径和由此产生的攻击向量。

2)调试并反馈给用户。如果您的合同代码有问题,使用require()可以为合同的用户(通常是前端代码)提供有用的反馈。

3)与误用和/或再入相关的潜在成本相比,这些操作的成本相当小。

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

https://stackoverflow.com/questions/54493408

复制
相关文章

相似问题

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