智能合约语言 传统编程语言 异同
  DJsdk34H4Gbu 2023年11月02日 115 0


一方面,由于区块链具有不可篡改性,因此智能合约是无法更新的。

当我们将智能合约与传统软件相比时我们会发现,如果软件中存在漏洞,我们可以修复该软件并发布新版本,而智能合约的漏洞却很难修复,只能通过硬分叉来实现。考虑到智能合约平台上通常附加着大规模的区块链经济,因此智能合约无法更新是一个很大的发展限制。

另一方面,智能合约在支付计算成本上的燃料机制(gas mechanism)上也区别于传统编程语言。

因此,在编写智能合约时,开发者必须确保其中的每个功能都能不受燃料限制按预期运行。不恰当的资源分析可能会导致智能合约代码的一部分因燃料限制而无法执行,从而出现资金卡住的情况,而在传统的软件系统中却不存在这种约束。

因此,确保部署在区块链上的智能合约是无缺陷且安全的尤为重要。智能合约的安全性特别重要,因为它们是运行在拜占庭式的环境中的,每一个合约参与方都可能是拜占庭的即恶意的。例如,一个参与合约的恶意用户可能想要盗取资金;一个矿工可能在一个区块中刻意排序一些交易,以产生一些意想不到的结果;或者最糟糕的情况是用户在调用合约时引发调用其他合约(比如调用一个库合约),而后者却是由攻击者控制的,因此产生恶意行为等。


作者:Zilliqa爱好者中文社区

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
DJsdk34H4Gbu