宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > MANA > 正文

Don’t Test, Verify. | 哪个故事真正符合你对形式化验证的想象?

作者:

时间:1900/1/1 0:00:00

从诞生至今,形式化验证方法一直与“小众、冷门”等字眼挂钩。有人说形式化验证方法是一种“军用级别”的防黑客手段,更是为这项技术增添了一丝神秘感。

究竟什么是形式化验证方法?

维基百科对形式化验证的解释是这样的:

在计算机硬件和软件系统的设计过程中,形式化验证的含义是根据某个或某些形式化规范或属性,使用数学的方法证明其正确性或非正确性。神秘感大抵来源于定义中的两个严谨而且抽象的关键词——“形式化规范”和“数学方法证明”。事实上,揭开这层神秘的面纱,你会发现形式化验证的许多有趣之处。

下面这篇文章想要讨论的问题是:在现阶段,以下哪个故事能够真正满足你对形式化验证的想象?形式化验证真的可以作为一种技术在区块链领域流行起来吗?如果可以,怎样才能做到?

要回答上面这些问题,我们可以先思考另一个更简单的问题:现阶段,人们使用形式化方法来做什么?这个问题的答案无非有两种:1、规避错误2、对抗攻击

|规避错误

规避错误其实就是避免损失。

我们首先来探讨一下,哪些领域对程序错误是零容忍的?在哪些领域,程序错误带来的损失难以估量?

实际上,形式化方法是从硬件设计开始普及的。一个著名的例子是:当年Intel的PentiumCPU浮点运算单元出错(FDIVBug),数以万计的CPU不得不回收和替换,给Intel造成了巨大损失(475M$)。

从那之后,Intel开始在其芯片设计中广泛采用形式化方法。

计算机硬件巨头如IBM,AMD,NVIDIA和CADENCE等等也都是形式化方法的使用者…

要说起吃一堑才能长一智,其实各行各业都有试错者,在工业界也是如此。举个例子:1996年,欧洲航天局首次发射的阿丽亚娜5型火箭,由于惯性导航系统发送的错误指令,导致火箭在发射仅仅37秒后便偏离了预定轨道,最终坠毁。欧洲航天局的巨额研发经费付之一炬。

Telegram验证支付服务Donate接受Toncoin捐款和支付订阅费用:12月23日消息,Telegram联合创始人兼首席执行官Pavel Durov对仍在开发中的Telegram Open Network(TON)技术表示赞赏。Telegram去年正式放弃了该项目。

Durov称:“我很自豪,我们创造的技术是有活力的,并且在不断发展。在可扩展性和速度方面,TON仍然领先区块链领域的其他所有产品好几年。”

他指出,该项目从TON更名为Toncoin。与最初的TON不同,新项目是独立于Telegram的。他表示:“但我希望它的团队也能取得同样的成功。加上正确的市场战略,他们就拥有了创造史诗般作品所需要的一切。”

与此同时,Telegram认证的支付服务Donate正准备允许在Telegram上使用Toncoin进行捐款。周四,TON宣布与Donate建立合作关系,称用户很快就可以用Toncoin进行捐款和支付订阅费用。与此同时,频道管理员将能够以加密货币获得收入。订阅服务在周一宣布了这一消息。(Cointelegraph)[2021/12/23 7:59:54]

在那之后不久,EADS公司开发阿丽亚娜火箭的任务调度模型就开始使用形式化方法。

美国国家宇航局NASA和英国国防部在90年代相继发布设计标准,形式化方法的使用位列其中。我国的玉兔号月球车控制系统和我国第一个自主研发的空间飞行器嵌入式实时操作系统SpaceOS,也都是通过形式化方法验证其正确性。

历史的发展告诉我们,金钱才是推动社会发展的第一动力!程序错误带来的巨额损失,任谁也只能叹一声伤不起。

如果说上面两个故事听起来都过分沉重了,我们不妨看一下下面这张图:

上图显示了全球范围内用形式化方法开发的地铁项目分布情况。

可以看出,由巴黎地铁信号系统开始,在北美、欧洲、亚洲的主要国家,以及南美洲的部分国家的地铁系统开发中,形式化方法已经被广泛使用了。这或许是我们几乎从未听过由于地铁系统故障而造成重大损失和灾难的原因。

IOST链上DeFi项目Donnie Finance今日上线iwBNB单币质押挖矿:据官方消息,IOST链上DeFi项目Donnie Finance今日上线iwBNB单币质押挖矿。目前单币质押挖矿除了iwBNB还包含IOST、DON、HUSD、PPT、iwBTC、iwBLY六个项目通证,总锁仓金额突破2000万美金关口,其中IOST矿池总质押量超过1亿9000万IOST。

Donnie Finance是韩国技术团队Donnie在IOST链上开发的DeFi项目,除支持现有的DeFi存贷款业务外,还提供去中心化交易平台、资产管理、支付和信用分析等多种服务。此前DonnieFinance已向IOST用户空投DON总供应量的5%,帮助于IOST用户初步了解Donnie Finance。 DON目前已登陆MXC、BigOne、Coinone, Bitkub、IOSTDEX、xigua、waxgourd等交易平台。[2021/3/30 19:29:20]

还是那句话,金钱是第一生产力。

既然形式化方法在保障日常出行方面做出的贡献已经得到广泛的认可,那么,在依托区块链技术而发展起来的数字资产领域,通过形式化验证技术来保障智能合约安全性、进而保障财产安全性的理念就显得合理甚至紧迫了。

具体需要怎么做?这里简单介绍一下。

首先需要引入一个“形式化规范”的概念了。

形式化规范(formalspecification)是指通过数学语言对系统的预期行为(例如将数量S的token从账户A转移到账户B)和性质(例如转账不会造成账户B额度的溢出)进行严格和全面的定义。形式化规范往往定义了系统的正确性和安全性给定一个系统的形式化规范,我们即可以从规范出发开始迭代设计和实现出这个系统。在迭代的每一步中,我们可以通过精化(refinement)、集成(synthesis)、形式化证明在内的一系列方法在数学上严格的保证迭代产生的系统和迭代前的规范或者系统保持一致。除了从形式化规范出发设计和实现一个系统,我们也可以使用包括符号执行(symbolicexecution)、模型检测(modelcheck)和形式化证明(formalproving)在内的一系列方法验证已有的设计和实现与该规范保持一致。

IOST链上DeFi项目Donnie Finance总锁仓突破1000万美金:据官方消息,IOST链上DeFi项目Donnie Finance总锁仓突破1000万美金。目前单币质押挖矿包含四个项目通证:IOST、DON、HUSD、PPT,其中IOST矿池总质押量超过1亿4000万IOST。iwBLY、iwBTC、iwETH三大矿池即将上线。

Donnie Finance是韩国技术团队Donnie在IOST链上开发的DeFi项目,除支持现有的DeFi存贷款业务外,还提供去中心化交易平台、资产管理、支付和信用分析等多种服务。此前Donnie Finance已向IOST用户空投DON总供应量的5%,帮助于IOST用户初步了解Donnie Finance。

DON现报价4.95U,24h涨幅超12%,DON目前已登陆MXC、BigOne、Coinone, Bitkub、IOSTDEX、xigua、waxgourd等交易平台。[2021/3/16 18:49:07]

听起来很高大上,对不对?

举个例子来说,对于一段智能合约程序,我们可以从它所有可能的输入(例如函数参数的组合)和初始状态(例如状态变量初始值的组合)出发,根据每条语句的语义,逐句推导出程序的所有可能的结束状态(例如合约执行结束后的状态变量的值和产生的eventlog),并检查合约的所有输入、初始状态、结束状态的组合是否都和形式化规范保持一致。这有点类似于柯南破案那样,一步步地推演。只不过,这里所有的定义都是通过严格的数学语言描述,推导和检查也是严格的数学推导和证明。根据待验证的系统及其形式化规范的复杂程度,推导和证明即可以手工构造,也可能可以由机器自动产生。

在实践中,推导和证明无法进行下去往往意味着设计和实现中存在不符合规范的bug。通过分析推导和证明卡壳的位置和原因,可以定位出bug在设计和实现中的具体位置和成因。这样的方法,让数字资产领域中中严格意义上的规避错误、避免损失成为可能。

Zilliqa前联合创始人Xinshu Dong担任IOSG Ventures合伙人:公链项目Zilliqa前联合创始人兼CEO Xinshu Dong正式加盟投资机构IOSG Ventures,担任合伙人职位。Dong表示,“DeFi的发展历程,包括今年以来的爆发性增长,是整个行业兴起的缩影。以技术创新的积累为基础,以开放性和透明性引导用户激增为特点,区块链行业势必会出现更多爆点。我们作为从业者,更多需要思考的是如何为应用层创新创业添砖加瓦,无论是基础技术的研发,如零知识证明提供的高效和隐私交易;还是通过创新模式吸引更多用户来使用区块链,如NFT游戏和DeFi的结合就是很好的尝试。”

据悉,IOSG Ventures成立于2017年,是一家以研究和社区驱动的加密创业投资基金,团队分布在中国、美国、新加坡和德国,专注于DeFi、Web3.0、跨链产业和ETH2.0等生态。IOSG Ventures创始合伙人Jocy Lin曾就职于申万宏源证券和澳银资本。[2020/8/24]

|对抗攻击

对抗攻击其实是另一种意义上的避免损失。

故事从美国军方的一次电子攻击说起。2015年夏天,一起黑客奉命对美国军方LittleBird无人直升机发动电子攻击,并掌握无人机控制权的事件中,黑客最初的攻击十分顺利,如入无人之境。然而,当美国国防部重新开发了该无人机的核心控制程序后,黑客们使用了当今世界上所有的攻击手段,都未能攻破新部署的系统。

到底是什么技术给予了LittleBird超强的防御能力,从而使它阻挡了所有的攻击?答案就是:形式化验证方法。

形式化验证方法通过严格的数学证明保证程序行为与预期一致,但形式化验证程序的正确性非常消耗人力,所以,与程序测试等通用技术不同的是,形式化验证方法常常只被应用于安全攸关领域,如无人机、航天器、操作系统等的程序正确性验证。

这里不得不提的是2016年发现的一个非常严重的linux操作系统内核漏洞DirtyCow(CVE-2016-5195),攻击者可以通过这个漏洞获得系统最高权限,从而使系统全部处于可被利用的状态之下。

声音 | Tom Lyndon:SEC在2020年批准比特币ETF的可能性为60%:据DailyHODL报道,ETF Trends首席执行官、加密货币分析师Tom Lyndon最近表示,美国证券交易委员会(SEC)将在2020年批准比特币ETF的可能性为60%。有三个关键进展,这些进展可能会让SEC在今年催生比特币ETF。首先,SEC最近批准了投资比特币期货合约的NYDIG比特币策略基金。其次,CME新推出的比特币期权是BTC制度化进程中的又一进步。最后,比特币在富达等传统资产平台上进行了投资整合。[2020/1/16]

在操作系统领域,一些人身先士卒,尝试用形式化方法避免安全攸关领域中的系统漏洞和黑客攻击。耶鲁大学邵中老师团队通过模块分层验证法(modularlayeredverificationmethods)成功研发了安全性和可靠性极高的计算机操作系统CertiKOS;中科大软件安全实验室冯新宇老师团队也提出了一个针对抢占式多任务操作系统内核的形式化验证框架,并成功的应用在对嵌入式操作系统uC/OS-II的验证中。

|安全攸关的区块链领域

区块链领域亦然,一方面,小错误也会导致大损失;另一方面,巨大的经济利益也会吸引大量的攻击者。

以太坊黑客攻击第一大案TheDAO中,攻击者窃取了当时价值5500万美元的以太币,并且导致了以太坊的硬分叉;这之后,与以太坊智能合约相关的攻击一直在继续——比如,2017年11月,以太坊Parity钱包由于被黑客攻击,导致用户损失了价值约为1.5亿美元的数字资产。

据安比实验室统计,仅2018年上半年,就已经有大约11亿美元的数字资产被盗,与区块链系统相关的漏洞以及围绕数字资产的生态系统安全问题更是层出不穷。

目前区块链系统中的相关漏洞,以及数字资产生态系统的安全问题,归根结底是相关程序设计与实现的问题。在形式化方法以前,这类问题多是通过程序测试来发现的。

形式化验证进入区块链领域的初期,以太坊社区的YoichiHirai对以太坊的智能合约虚拟机EVM做了完整的形式化建模。此外,来自UIUC大学的团队也对EVM进行了形式化的建模和验证。EVM是以太坊智能合约的底层核心,关系到以太坊安全,涉及到数字资产保护等重大议题,引起了社区的广泛关注。

此外,MakerDAO项目方发布了第一个经过形式化验证的去中心化应用程序。MakerDAO是一个基于以太坊的智能合约平台,该平台提供了稳定币,抵押贷款,以及去中心化社区治理功能。为了保证所部署的智能合约的安全性,MakerDAO团队对抵押贷款核心引擎合约代码通过K-Framewok进行了验证,因此而表明其智能合约程序能够完全抵抗黑客攻击。

安比实验室也在以太坊智能合约形式化验证方面做了大量的工作,提出了一个智能合约形式化验证框架,并在该框架内证明了一些常见的Token合约,比如ERC20,ERC721等。这些被数学证明过的智能合约可以直接使用,不再需要担心安全问题。这些合约源代码和证明过程已经以开源的方式贡献给社区。

Github社区地址:

https://github.com/sec-bit/tokenlibs-with-proofs

|结论

大多数人认为形式化验证方法高深莫测,究其原因,形式化验证方法不是一种通用技术,而是需要和领域结合来发挥价值的一种特定技术。在区块链领域,形式化方法究竟是一种nicetohave还是一种musthave,也是与项目特点密不可分的。

随着区块链技术与项目应用的探索不断深入,项目方对于规避错误、对抗黑客攻击和避免财产损失的需求已经越来越强。

当互联网世界中的绝大部分活动都完成上链,当社会中的绝大部分群体都需要区块链的绝对安全来保护自己的财产安全的时候,形式化验证方法作为区块链技术的musthave才会迎来大爆发。

写在最后|关于Verification与Testing的纠葛,你了解多少?

最后来谈一下形式化验证与程序测试之间的关系。

“程序测试能证明错误的存在,但不能证明错误不存在”。EdsgerDijkstra如此评述。

在实践中,尤其是在代码足够复杂的场景中,形式化验证与程序测试方法的验证效果有如云泥之别。

举个例子来说:2009年,澳大利亚的科学家使用形式化方法对工业级操作系统seL4微内核进行了完整功能性验证,验证方式同时以形式化验证和程序测试两种方式分别展开,验证的结果是:形式化方法共发现460多个Bug,而程序测试只发现了16个Bug。

更有趣的是,在以高验证成本著称的形式化验证领域,完全验证seL4微内核只需要600万美元的验证成本,而以测试的方式通过CCEAL6级认证的成本竟高达8700万美元。

由此可见,通过形式化验证可以更经济的为seL4微内核提供更强的安全性保证。

当然,有人说,程序测试是在“真实”环境里进行的,形式化验证只是数学层面,在“真实”环境中的测试是形式化验证无法取代的。从这个角度来说,形式化验证与程序测试如何做到共生互补?让这项技术在区块链领域真正流行起来,可能就是链圈同仁们接下来要共同探索的方向了。

参考文献

HistoryofFormalVerificationatIntel

https://dac.com/blog/post/history-formal-verification-intel

王健:说说形式化验证吧

http://chainb.com/?P=Cont&id=1957

ModelingandValidationofaSoftwareArchitecturefortheAriane-5Launcher

https://link.springer.com/chapter/10.1007/11768869_6

TenthNASAFormalMethodsSymposiumhttps://shemesh.larc.nasa.gov/NFM2018/

玉兔使用的国产SpaceOS操作系统未来有望衍生出民用版本

http://blog.sina.com.cn/s/blog_ae55841d0101hemg.html

Cimatti,A.,Corvino,R.,Lazzaro,A.,Narasamdya,I.,Rizzo,T.,Roveri,M.,Sanseviero,A.andTchaltsev,A.,2012,July.FormalverificationandvalidationofERTMSindustrialrailwaytrainspacingsystem.InInternationalConferenceonComputerAidedVerification(pp.378-393).Springer,Berlin,Heidelberg.

COMPUTERSCIENTISTSCLOSEINONPERFECT,HACK-PROOFCODEhttps://www.wired.com/2016/09/computer-scientists-close-perfect-hack-proof-code/

利用DirtyCow实现docker逃逸

https://www.anquanke.com/post/id/84866

CertiKOS:Yaledevelopsworld'sfirsthacker-resistantoperatingsystem

https://www.ibtimes.co.uk/certikos-yale-develops-worlds-first-hacker-resistant-operating-system-1591712

FengweiXu,MingFu,XinyuFeng,XiaoranZhang,HuiZhangandZhaohuiLi.APracticalVerificationFrameworkforPreemptiveOSKernels.Proc.28thInternationalConferenceonComputerAidedVerification(CAV'16)

从技术角度剖析针对THEDAO的攻击手法

https://www.8btc.com/article/93713

kframework/evm-semantics

https://github.com/kframework/evm-semantics

风投巨头A16Z投资稳定币项目MakerDAO

https://www.jinse.com/bitcoin/246582.html

构造形式化证明,解决智能合约安全问题——你的合约亟待证明

https://mp.weixin.qq.com/s/xUNKT8v9ikEYFnuMWzvXdg

GerwinKlein,KevinElphinstone,GernotHeiser,JuneAndronick,DavidCock,PhilipDerrin,DhammikaElkaduwe,KaiEngelhardt,RafalKolanski,MichaelNorrish,ThomasSewell,HarveyTuch,andSimonWinwood.2009.seL4:formalverificationofanOSkernel.InProceedingsoftheACMSIGOPS22ndsymposiumonOperatingsystemsprinciples(SOSP'09).

标签:区块链以太坊数字资产区块链工程专业学什么区块链存证怎么弄区块链技术发展现状和趋势以太坊币是什么币数字资产和数字货币的区别数字资产是未来最大的资产数字资产类应用案例包括

MANA热门资讯
上周币链圈大事件|9月3日-9月9日

作者|刘荻青编辑|安心 9月9日,美国证券交易委员会宣布,将立即暂停两种追踪加密货币的投资产品的交易,因其“缺乏最新、一致和准确的信息”.

1900/1/1 0:00:00
发币花样翻新、“拉人头” 监管整顿虚拟币乱象

发币花样翻新、“拉人头”监管整顿虚拟币乱象腾讯、蚂蚁金服称采取措施打击虚拟币交易行为;“9·4”周年虚拟币监管升级.

1900/1/1 0:00:00
澳洲历史上最贵的硬币,由99.99%的纯金制成,还镶嵌了四颗粉钻

澳洲珀斯铸币厂完成澳洲史上最珍贵的收藏版硬币,这一枚重达2公斤、镶嵌粉色钻石的金币,价值近250万澳元。这枚被称为“发现”的金币为环状造型。这种环形硬币是由时任总督麦觉理于1814年推出.

1900/1/1 0:00:00
比特币ATM公司获得纽约比特币牌照 | 兔链晚报

热点聚焦 据sludgefeed消息,比特币ATM公司Coinsource获得纽约州金融服务管理局(DFS)比特币牌照的机构.

1900/1/1 0:00:00
比特币挖矿是什么原理

“区块链”的三个核心特定:1.凡是被各节点认证过的历史生成区块,是绝不会被篡改的2.每个节点在开始运行创建新区快这项工作的时候,凡是有新区块被确认增加到了区块链上,那么.

1900/1/1 0:00:00
这个国家1000亿只能买个面包,最大面值100万亿,却吃不上饭!

小编经常想着手里要是有个几千万上亿的话,不用工作了,然后去各个国家旅游,买各种豪车,豪华住宅等等,但是当你来到这个国家,你就不会这样想了,手里抓着几千万上亿不知道能买点什么.

1900/1/1 0:00:00