TRANS:想保护自己的数字资产安全?形式化验证给你答案_ANS

导读

继上篇对当前数字资产领域的安全形势进行了深度分析后,本文将介绍区块链数字资产领域的安全措施与相关的解决方案。

区块链技术是数字资产的新兴载体。相较传统互联网,区块链因其不可篡改、不灭失的特征,对安全性的事先验证等程序机制提出了极高要求。

智能合约是新一代区块链技术的标志性设计,它利用事先定义的接口和协议自动完成合约步骤。以太坊图灵完备的特点在给了智能合约广阔舞台的同时,也背负了巨大的安全压力。如何保证合约本身的可控性、可调度性,以及执行过程中的可信性,成为软件安全和资产安全层面亟待解决的问题。

智能与安全无关

智能合约这个术语由密码学家尼克·萨博在上世纪九十年代中期首次提出。他将其定义为:能够自动执行合约条款的计算机程序。

合约语言的图灵完备意味着,理论上,智能合约可以具备任何功能,执行所有计算。对合约功能的宽松限制不可避免地引入了更多危险。

传Pico将在4个月内发布新品,直接对标Meta Project Cambria:金色财经报道,据业内传闻,Pico计划在9月之前发布一款高端VR头显。据悉,字节跳动旗下的新品计划与Meta的新品具备极高的相似性,发布时间早于Meta的Project Cambria项目。与Cambria一样,Pico的高端头显显然将使用pancake镜头以实现更轻薄的外形,并具有更高的分辨率、眼动追踪、面部追踪和先进的控制器。环状跟踪手柄有利于搭载摄像头捕捉交互的方案。据悉,该产品的硬件成本将“远高于”Pico Neo3,后者于上周宣布以449欧元向欧洲消费者推出。(网易)[2022/4/21 14:38:25]

先回放一段经典案例。TheDAO事件可以说是智能合约发展史上的一场狂风暴雨。截止到2016年6月17日被攻击之前,该众筹合约已经募集了一亿五千万美金,攻击者利用合约漏洞发动攻击,导致300多万以太币资产被分离出TheDAO资产池。

金色晨讯 | SEC设置ICO筹资上限 谷歌BTC搜索量达新高:1.SEC专员认为未来比特币ETF绝对会推出

2.BitPay首席执行官:Fidelity和Bakkt将成为推动比特币上涨的重要因素

3.BTC上涨至4000USDT

4.SEC规定允许通过ICO筹集最多5000万美元

5.巴拉圭支持建立世界上最大的比特币采矿农场

6.ETH跌破110USDT

7.俄亥俄州将成为美国第一个接受比特币纳税的州

8.谷歌的BTC搜索量目前处于八个月高位

9.法律专家:比特币可能不属于合法“所有物”[2018/11/26]

这一切,都源于TheDAO智能合约中一个splitDAO函数的小小漏洞,攻击者通过该漏洞,不断的从资金池中分离资产给自己。

在该案例中,攻击者仅利用了智能合约的不完备性,就成功窃取了资金池内近三分之一的资产。可见,在智能合约框架下,事先检查合约本身是否存在机制漏洞,是安全问题的关键。一份安全、完备的智能合约应该具备如下功能:

金色财经实时播报 starbase将在二月份在日本上线ICO平台:金色财经与The blockchainer、西垚咨询联合前往日本考察,在12月19日下午来到本次考察第二站日本starbase公司,记者团在现场了解到,starbase目前在做自己的ICO平台,如今正在日本申请牌照,预计明年2月份上线,由于日本当地没有单独的ICO牌照,该公司申请的牌照为数字货币经营牌照[2017/12/19]

编制模板框架,确定编程人员,保证代码的准确性。最重要的是,技术层面的内容如何获得合约双方认可;合约验证。任何程序都有bug,如果合约内容明显有利于其中一方,需要进行修复,保证合约逻辑正确;合约定制。根据不同场景定制适配的智能合约模板,根据需求对合约进行组合,形成复合合约;合约一致性。检验智能合约的执行代码与文本是否一致,不一致的合约可信度不高;执行过程中的可控性、可调度性和安全性。

形式化方法的引入

为了达到智能合约的理想状态,Certik等行业先行者从硬件设计领域引入了形式化方法,即:用数学工具进行定义、开发和验证。

硬件电路和软件工程归根结底都是数学问题。如果所有的设计开发都能按照严密的数理逻辑进行,那么开发出来的系统就会像数学本身一样完美:永远正常工作。

通俗地说,形式化方法就像一套完备的法律,规定了每个角色能做什么和不能做什么,并对角色之间的关系进行界定。类似于社会系统架构对不同角色进行分类,在承认个体天性的同时,使系统的复杂程度降低了多个维度。

形式化方法包括形式规约和形式化验证两个层面。

形式规约使用具有精确语法和语义的形式语言来刻画系统行为和特性。在形式化的过程中对对象进行分类、识别和拟合。形式规约约束了系统的代码组成,从系统设计流程上确保了输入组合的有穷性。同时,它也是验证系统正确性的依据。

形式化验证则在形式规约的基础上,建立系统行为及其与性质的关系,从而验证该系统是否满足预期的关键性质。这一过程可以和立法、司法程序类比,即:在对被审判人的权利、义务和其行为进行规范后,总是可以对他进行合理的判断。

形式化方法应用于智能合约的整个生命周期。

传统的合约开发并没有成体系地引入形式化方法,因此,一般先用非正式规范来设计合约,然后用形式化规范力求准确地描述合约,并将合约引入形式化的空间。再通过模型检验工具检查合约,或使用演绎法证明合约可被正常执行。最后,通过模型工具,将形式化空间中抽象的合约生成代码,通过不断测试生成序列,确保文本和程序代码的一致性。

形式化的规约旨在理解合约代码中内容的抽象本质,相当于对合约进行解读。在验证安全之后,通过使用可执行模型,将较高级别的抽象模型转换为较低级别的代码。

形式化方法使智能合约的生成和执行有了规范性约束,保证了合约的可信性,使智能合约的生产过程和执行效果得到了保障。

智能合约形式化验证的原理

形式化验证本身就是使用数学方法严格证明一个程序正确性的过程。

传统的验证方法主要是模拟和测试,即通过实验对系统进行查错。一般的方法是,在一端按系统要求或者自定义输入,观察在另一点的输出。这种方法耗费大量的时间,而且由于实验所能涵盖的系统行为有限,很难找出所有的潜在错误。

冯.诺伊曼(VonNeumann)I948年发表的相关论文就对这一问题有所触及,但未能提供解决方案。

1969年,托尼·霍尔提出了将程序正确性验证形式化的命题。

形式化验证方法可以检查程序的各种属性,如公平性、可达性、有界性和无状态二义性等,从理论上对程序做了全面检验,合格即被认为安全。

在从理论到实践的漫长过程中,形式化验证演化出了很多不同的操作方法。目前一线的技术公司多采用模型检测法,步骤如下:

建模。选择合适的建模语言和建模工具,使用模型检测工具能够接受的形式语言来描述合约。描述。阐明所要验证的合约性质,包括合约的状态可达性、死锁、活锁、有界性等。验证。对合约的状态空间进行搜索,发现问题并进行修改,对合约进行迭代验证。

模型检测是对有穷状态系统的一种形式化确认方法,其理论逻辑为:给定一个合约和规约,按照规约生成对应的合约模型,通过证明合约在模型中成立,以此证明合约满足约定规则。

有穷状态模型在建模时有一定难度,需要采集大量样本,并在其中提取逻辑,但因为状态是可穷的,可以保证搜索过程及时终止,因此,在工程上是实际的。

一些一线的技术公司已经将上述方法和流程应用到了区块链智能合约的安全验证上,但效果仍有待检验。

结论

形式化验证理论过去一直服务于集成电路的功能验证,发展多年,已经非常成熟。

智能合约是区块链系统发展应用的重要内容,也是目前传统网络安全公司尚未触及的安全盲区。市场已经发现了形式化验证对于智能合约安全的重要性。然而,安全机制的建立从数学理论变成现实,仍然需要时间。

来源链接:mp.weixin.qq.com

本文来源于非小号媒体平台:

加密谷Live

现已在非小号资讯平台发布1篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/3626862.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

文摘|EOSIODawn3.0现已推出

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:0ms0-4:250ms