精华内容
下载资源
问答
  • 现在市场上出现了一些一键式的智能合约形式化验证工具,据说可以最大程度的减少验证程序、发现bug,提高工作效率。这种一键式的智能合约形式化验证工具真的有效么?为了求真笔者做了一个测试。 本次笔者测试选择的是...

    在智能合约的形式化验证过程中,需要专业的编程人员对不同模板的智能合约进行特征分析、模型建立和模型验证。现在市场上出现了一些一键式的智能合约形式化验证工具,据说可以最大程度的减少验证程序、发现bug,提高工作效率。这种一键式的智能合约形式化验证工具真的有效么?为了求真笔者做了一个测试。

    本次笔者测试选择的是成都链安研发的离线版免费验证工具Beosin-VaaS。我们基于VSCode的插件市场安装一个sodility开发插件(具有语法检测,高量和语法联想,方便合约开发。),安装完成后,在插件市场安装成都链安的免费检测工具Beosin-VaaS。
    合约代码如下:
    在这里插入图片描述
    在这里插入图片描述
    我们用成都链安的插件检测一下我们合约中存在的问题
    在这里插入图片描述开始检测
    我截取部分报错解释说明一下
    插件报错会展示行号和那一行的代码以及描述信息,有助于开发人员修改问题
    在这里插入图片描述
    在调用call/send函数后无论执行成功还是失败都不会直接抛异常,如果不对调用返回值进行检查,函数会继续执行,造成安全漏洞。
    在这里插入图片描述

    溢出是典型的合约漏洞,可能导致检查被绕过,合约运行逻辑出错。
    在这里插入图片描述
    Solidity中允许有未使用的变量,它们不会构成直接的安全问题,但会降低代码的可读性并且额外占用存储空间导致部署时的资源消耗增加。
    在这里插入图片描述
    成都链安的检测插件集成了编译器的告警,会提示你一些合约开发中的信息。
    在这里插入图片描述
    在transfer、transferFrom、transferOwnership等敏感函数中,用户操作不可逆,所以建议开发者在这些函数实现中增加目标地址非零检查,避免用户误操作导致用户权限丢失和财产损失。

    以上是我们这个合约中部分存在的漏洞报错,有了这个插件的检测,我们就能快速定位解决问题,使我们的合约更加安全。

    展开全文
  • 随想录(形式化验证小结)

    千次阅读 2020-02-18 10:14:17
    形式化验证,英文是formal verification,是验证软硬件逻辑很重要的一种方法。特别是对于芯片开发、高安全性的系统开发来说,是非常必要。这主要是因为系统失败的代价很高,传统的测试也无法验证整个系统的安全性和...

    【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

     

        形式化验证,英文是formal verification,是验证软硬件逻辑很重要的一种方法。特别是对于芯片开发、高安全性的系统开发来说,是非常必要。这主要是因为系统失败的代价很高,传统的测试也无法验证整个系统的安全性和可靠性。

     

    1、目前主要的测试方法

        当前,验证的主要方法就是将软件、或者硬件代码转变成逻辑代码,接着用专门的逻辑验证软件来执行这些逻辑代码。

     

    2、编程语言和工具

        现在使用比较多的工具有Isabelle/HOL、CSP/PAT等,其中pat是新加坡的一所大学开发的,推荐大家作为入门使用。

     

    3、已经使用形式化验证的软件

        sel4,一个用形式化验证的操作系统内核

     

    4、适合用作入门资料的几个链接

    a,https://www.cnblogs.com/LoganChen/p/7729820.html

    b,https://www.cnblogs.com/LoganChen/p/7735802.html

    c,https://www.cnblogs.com/LoganChen/p/7741785.html

    d,https://www.cnblogs.com/juandx/p/4225373.html

    e,https://www.bbsmax.com/A/kPzOx2V7Jx/

    f,https://github.com/seL4/seL4,形式化验证的os

    g,https://github.com/AbsInt/CompCert,形式化验证工具

    h,https://pat.comp.nus.edu.sg/,形式化验证的c编译器

     

    5,形式化验证的几个注意点

    a,形式化验证最难的部分就是需要将c&汇编语言转变成逻辑语言

    b,形式化验证其实是一个白盒验证,它不仅需要了解软件的写法,还要做出抽象和提炼,对测试者要求很高

    c,形式化验证不能保证100%的正确,但是会大幅度较少出错的风险

     

    6,怎么简单地理解形式化

      就好比c语言大家都会写,但是如何保证C语言都是正确的、没有二义性,穷举是没有用的。那么需要对c语言的bnf范式进行验证和确认,这才是验证的根本。

     

    7,形式化验证的主要方法

    a,等效性检验

    b,定理证明

    c,模型检验

     

    8,形式化中的assert

        目前看来形式化中的assert是需要自己设计的,除此之外,还需要自己确认哪些状态可达、哪些路径可以执行、哪些语句没有二义性,这个也比较复杂。看上去,形式化验证有点像单元测试,但是两者的内容还是不一样的。

     

    9,最简单的形式化验证

        这个例子来自https://www.cnblogs.com/LoganChen/p/7741785.html

        代码为,

    //The classic Readers/Writers Example model multiple processes accessing a shared file.
    
    The Model//
    //the maximun size of the readers that can read concurrently
    #define M 2;
    var writing = false;
    var noOfReading = 0;
    
    Writer()     = [noOfReading == 0 && !writing]startwrite{writing = true;} -> stopwrite{writing = false;} -> Writer();
    Reader()     = [noOfReading < M && !writing]startread{noOfReading = noOfReading+1;} -> 
                              //the following guard condition is important to avoid infinite state space, because noOfReading can go negtively infinitely
                              ([noOfReading > 0]stopread{noOfReading = noOfReading-1;} -> Reader());
    
    //there are infinite number of Readers and Writers
    ReadersWriters() = |||{..} @ (Reader() ||| Writer());
    
    The Properties//
    #assert ReadersWriters() deadlockfree;
    #define exclusive !(writing == true && noOfReading > 0); 
    #assert ReadersWriters() |= [] exclusive;
    #define someonereading noOfReading > 0;
    #assert ReadersWriters() |= []<>someonereading;
    #define someonewriting writing == true;
    #assert ReadersWriters() |= []<>someonewriting;

     

    10,形式化验证的另外一个战场

        金融领域,特别是虚拟数字货币。

     

    PS:

        目前形式化验证国内的资料比较少,大家可以看一些论文、或者直接用bing搜国外的文章,用pat软件来学习也可以。只要有一些数理逻辑、离散数学的抽象思维和思想,理解起来没那么复杂。

     

        后续如果发现更好的资料,我也会在这个page下面进行更新。

     

     

    展开全文
  • 适用于形式化验证方向的同学
  • 智能合约形式化验证

    千次阅读 2018-06-19 10:59:19
  • DAO、Parity、BEC 等著名项目的市值几乎一夜归零,都是由于智能合约漏洞引起,智能...形式化验证如何保障合约安全? VaaS 平台的作用及优势? 实际案例展示。 关键词:智能合约,形式化验证,VaaS 平台,安全漏洞。...

    2017年7月20号,Parity 的多签名钱包合约被曝漏洞,导致3200万美元的数字货币被盗,甚至连 DAO、BEC 这样的著名项目市值也出现了一夜归零的惨痛事件,而所有代币都由智能合约生成,所以,毫无疑问,智能合约是区块链生态安全中最重要的一环,越来越多的人逐渐意识到区块链智能合约安全的重要性。

    本场 Chat 主要内容为:

    1. 形式化验证的定义?原理是什么?方法举例?
    2. 黑客是如何攻击区块链平台的智能合约?
    3. VaaS 系统架构及 VaaS“一键式”自动形式化验证平台操作演示
    4. 对智能合约安全生态建设方面的工作:
      • 发现了以太坊智能合约的安全漏洞;
      • 对区块链相关安全漏洞进行深入分析;
      • 通过对 EOS 合约审计发现 EOS 智能合约存在的问题,并进行总结同时给与建议。

    关键词:智能合约,形式化验证,VaaS 平台,安全漏洞。

    阅读全文: http://gitbook.cn/gitchat/activity/5b28e75751bc1a7cd5bd2432

    您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

    FtooAtPSkEJwnW-9xkCLqSTRpBKX

    展开全文
  • 针对目前没有直接对事件图模型进行形式化验证的方法,提出了一种基于行为时态逻辑(temporal logic of action,TLA)的事件图模型形式化验证方法。该方法利用TLA语言能够同时表达模型行为与逻辑规则的特点及其与事件...
  • 形式化验证调研报告

    千次阅读 2018-10-17 14:56:24
    形式化验证调研报告 王立敏 中国科学院信息工程研究所 第五实验室 北京 中国100093 摘要2018年初,Spectre和Meltdown漏洞的发现,使得芯片安全备受重视。然而传统的基于仿真的芯片验证方法由于测试样例覆盖不完全...
  • 针对处理器浮点运算单元,采用Cadence公司JasperGold工具对一些关键模块进行了形式化验证,对流水控制中的纠错码(Error Correcting Code,ECC)、软件结构寄存器(Software Architected Register,SAR)和计算单元中的...
  • 用ATL语言来形式化描述公平交换协议,并使用ATS(Alternating Transition Systems,交替转移系统)来为公平交换协议进行形式化建模,再用形式化验证工具MOCHA对公平交换协议的公平性(Fairness)、及时性...
  • 总共包括synopsys若干讲芯片相关知识。... 芯片验证方法学近十年的发展极大的帮助到了验证工作效率和质量的提升,但是基于传统激励机制的...近几年越来越多的工程师把眼光投向了形式化验证,对比探讨两种方法学的异同。
  • 关于软件形式化验证

    万次阅读 2018-05-29 09:37:01
    形式化验证是用逻辑来验证程序的可靠性,就是把一段程序用逻辑的方法证明一遍,证明它能得到预期的结果,没有bug。一般这类研究主要应用于昂贵的航天器材的操作系统、危险的医疗设备的程序之中。因为航天器材、医疗...
  • 形式化建模验证SMV模型检验器

    热门讨论 2011-05-24 21:32:25
    使用UML等建模工具建立模型,再将模型转换为形式的语句,编写SMV程序,输入SMV模型检验器进行验证。用于实现形式化方法模型检验
  • 形式化验证(Formal verification)让我们可以确保某种错误的状态不会发生。现在已经有很多对以太坊虚拟机语义模型的学术研究以及对使用不同框架的智能合约进行的形式化验证。在这篇文章中,我会描述一种基于符号...
  • web服务形式化验证

    2013-07-20 23:17:54
    web服务形式化验证,将Web服务组合建模为多智能体系统,采用时态知识逻辑模型检测工具MCTK刻画贷款协议Web服务实例,并验证相关的时态知识规范。在同一实验环境下,采用另一种时态知识逻辑模型检测工具MCMAS进行建模...
  • 形式化验证技术

    万次阅读 2014-10-13 21:46:50
    形式化验证就是基于已建立的形式化规格,对所规格系统的相关特性进行分析和验证,以评判系统是否满足期望的特性。形式化验证并不能完全确保系统的性能正确无误,但是可以最大限度地理解和分析系统,并尽可能地发现...
  • Web服务的形式化验证

    2011-07-11 16:37:44
    将 Web 服务组合建模为多智能体系统,采用时态知识逻辑模型检测工具 MCTK刻画贷款协议 Web 服务实例,并验证相关的时态知识规范。在同一实验环境下,采用另一种时态知识逻辑模型检测工具 MCMAS 进行建模,并验证该...
  • 随着平台级应用的普遍化,智能合约涉及的金额呈指数级别增长,如果其代码存在漏洞,则可能会遭到攻击,造成巨额损失,为防止类似事件发生,提出了运用形式化方法提高智能合约的安全系数的方法。 一、智能合约简介 ...
  • 验证中的形式验证

    千次阅读 2018-06-07 17:52:40
    什么是形式验证  形式验证是使用基于数学变换的静态分析来确定硬件或软件行为的正确性的技术集合的总体术语,与动态验证技术(如软件仿真)对比。   随着设计规模的增加和仿真时间的增加,验证团队一直在寻找...
  • 操作系统形式化验证实践教程(1) - 证明第一个定理 形式化方法分为三个主要部分:系统建模(System Modeling)、形式规约(Formal Specification)和形式化验证(Formal Verification)。 其中系统建模用形式化的模型来描述...
  • 介绍了时间自动机形式模型,在此基础上给出了时间自动机网络的形式语法和语义,然后给出一种基 于时间自动机网络的实时系统形式化验证方法,并采用基于时间自动机网络的模型检测工具 UPPAAL对一个 经典的实时系统实例...
  • 安全协议形式化分析

    2016-09-04 15:04:01
    形式化分析、安全协议分析
  • VaaS平台的“一键式”形式化验证工具,可精确定位到有风险的代码位置和风险原因,有效的验证智能合约或区块链应用的常规安全漏洞、安全属性和功能正确性,从而提高其安全等级。相关研究成果已申请软件发明专利5项。 ...
  • 的操作系统模块快速形式化建模与验 证技术 中兴通讯 操作系统产品 李凯航 目录 01 形式化技术介绍 1.1 定理证明 1.2 模型检测 02 TLA+工具简介 2.1 TLA+基本概念 2.2 TLA+基本建模验证方法 03 怎样通过形式化技术...
  • 引言:创立于电子科大科技园军事电子创新加速器的“成都链安科技有限公司”,近日获得分布式资本种子轮投资,是分布式资本唯一资助的中国第一家专门从事区块链形式化验证技术研发的公司。区块链作为大数据时代计算机...
  • 数字系统设计中形式验证

    千次阅读 2017-08-09 22:54:29
    可以用形式验证来检查综合结果是否正确(将RTL级的设计与门级网表比较)、插扫描链前后的网表是否一致、布局前后网表是否一致、插时钟树前后的网表是否一致、布线前后的网表是否一致。如下图所示。   通常在综合...
  • 形式验证Formality

    千次阅读 2019-06-30 00:06:40
    形式验证Formality Formality形式验证是一个基于数学意义的验证方法,通过比较两个设计A,B: 如果A的逻辑功能被B包含,那么形式验证认为是通过的。 需要注意的是并不是说着两个design是完全相等的,而是逻辑上具有...
  • 形式化z语言辅助工具Z-EVES

    热门讨论 2008-11-26 10:50:27
    形式化z语言辅助工具Z-EVES 进行形式化验证
  • STA静态时序分析/Formality形式化验证

    千次阅读 2018-04-25 14:09:17
    转载自http://blog.sina.com.cn/s/blog_a55a710c0102vcwm.html1. 静态时序...两种验证手段相辅相成,确保验证工作高效、可靠地完成。时序分析的主要作用是查看FPGA内部逻辑和布线的延时,确保其是否满足设计者的...
  • Formality形式验证教程

    千次阅读 2019-01-22 00:03:00
    Formality形式验证主要验证综合后,生成的网表文件功能和之前的verilog文件功能是否一致, 需要两个文件,一个verilog文件,一个是网表文件 1.新建一个文件夹,把verilog文件和网表文件放入文件夹下,在此路径,...
  • 清华大学软件学院研究生课程回忆 贺飞老师的课程,理论结合实际,研究了...不错的课程,对软件形式化的讲解还是很好地。 资源包括Logic in Computer Science Modelling and Reasoning about Systems教材。英文原版的

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 194,876
精华内容 77,950
关键字:

形式化验证工具

友情链接: Tetris_WPF.zip