这些智能合约漏洞,可能会影响你的账户安全!

【摘要】 区块链联盟链智能合约形式化验证揭秘,解释了我们为什么要对区块链上的智能合约进行形式化验证,以及形式化验证的分类和业界针对每种分类所推出的形式化验证工具,最后作者描述了一下目前形式华验证的种种方法所面临的问题及对于这个领域技术发展的展望。

什么是形式化验证?

维基百科对形式化验证的解释是这样的: 在计算机硬件(特别是集成电路)和软件系统的设计过程中,形式化验证的含义是根据某个或某些形式化规范或属性,使用数学的方法证明其正确性或非正确性。传统上在硬件设计领域比较常用。主要原因就是硬件设计周期长,成本高,一旦生产出来就很难改动了。例如一个 CPU 设计如果已经出芯片了,那么出了问题就是大事。形式验证可以分为三大类:抽象解释(Abstract Interpretation)、形式模型检查(Formal Model Checking,也被称作特性检查)和定理证明(Theory Prover)。

区块链智能合约为什么需要形式化验证?

在区块链系统中可以编程且自动运行的程序被称为智能合约。智能合约最早在以太坊区块链平台上应用,如Solidity就是一种智能合约编程语言,以使传统应用程序开发人员能够编写智能合约。初期会Solidity语言的全球只有几百人,后来随着以太坊与区块链的火热,参与Solidity智能合约的人才开始逐渐增加,但是跟整个IT市场的从业人群比起来,会编写智能合约的人还是太少,大量的IT从业者要想开发智能合约只能去学习Solidity。为了让更多的 IT从业者可以参与智能合约的编写与业务规则的实现,智能合约平台在原有Solidity的基础上扩展了对更多主流语言,甚至高级语言的支持,这样可以让多普通It从业人员也有了可以进行智能合约编写的可能性,大量熟悉Java、Go、Php等技术编程的开发人员都可以参与智能合约的开发。

然而,由于区块链交易是不可变的,智能合约代码中的错误会产生毁灭性的后果,破坏了对底层区块链技术的信任。例如,臭名昭著的TheDAO漏洞导致价值近6000万美元的以太损失,奇偶校验钱包漏洞导致价值1.69亿美元的以太永远被锁定。解决这些事件的唯一补救办法是硬分叉区块链,并将其中一个分叉恢复到事件发生前的状态。然而,这种补救办法本身是毁灭性的,因为它摧毁了区块链的核心价值,如不可变性和分散信任。但是智能合约的编写目的是为了行业应用,一旦应用到实际中必须考虑智能合约的安全性,智能合约要达到机器可信,就必须首先排除掉因人为因素而造成的智能合约破坏情形。智能合约形式化

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值