我能避免写在密实气体优化复仇智能合同验证?

问题描述 投票:0回答:1

有这样的情况:输入验证是只是为了确保用户的输入是在适当的范围内,而如果不将导致运行错误。我为什么要打扰验证输入和增加适当的用户的计算成本(这是大多数)为什么不应该只是让坏的输入导致运行时错误,我没有验证,以防止它发生不明就里?

并通过验证我的意思是:需要(),断言(),恢复()

ethereum solidity smartcontracts
1个回答
1
投票

有几个原因,你可能需要使用你指的是什么验证。下面我列出其中的一些。

1)确保你的合同不能进入意外状态。预测用户应该如何与合同互动比预测的合同如何被滥用这样的检查,以避免意外状态有助于限制代码路径,以及所产生的攻击向量容易得多。

2)调试和提供反馈给用户。如果你在你的合同代码中的问题,使用要求()允许你给有用的反馈你的合同(通常是您的前端代码)的用户

3)相比于用误用和/或重入相关联的潜在成本这些操作的成本是相当小的。

© www.soinside.com 2019 - 2024. All rights reserved.