国际顶级学术会议ISSTA召开,中山大学与微众银行联合发表区块链最新研究成果

news2025/2/13 0:54:51

美国当地时间7月17日,软件工程领域顶级会议ISSTA 2023在西雅图正式召开。ISSTA (The 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis )是软件测试与分析方面最著名的国际会议之一,也是中国计算机学会推荐的A类国际学术会议(CCF-A)。在本次会议中,中山大学软件工程学院与微众银行联合发表了区块链最新研究成果,该研究针对智能合约中的状态不一致所导致的逻辑漏洞,提出了一种新型模糊测试框架。

参与本次研究的成员包括中山大学博士生叶铭熙、硕士生吴东鹏,指导教师为中山大学教授郑子彬、副教授南雨宏以及微众银行区块链底层平台研发负责人李辉忠。该研究同时得到了国家重点研发计划、国家自然科学基金及微众学者计划等项目的支持。

其中,微众学者计划是由微众银行发起成立的高标准、高规格的创新研究项目,以金融业务实际需求及未来技术发展方向为依托,旨在通过与高校实干型优秀青年学者合作,储备学术界及企业科研力量,聚焦实际产业痛点问题,在真实商业场景中进行科研实践。郑子彬教授凭借在区块链领域的卓越研究及杰出贡献入选首批微众学者计划,承担区块链方向课题,基于FISCO BCOS开源区块链底层平台的智能合约场景,构建易于使用的智能合约一致性验证及高效的安全性验证平台。

研究介绍

近年来,区块链技术快速发展,智能合约作为一种新型基础软件被广泛应用在金融、艺术品以及游戏等领域。目前,每天有数万名用户使用智能合约,日均交易量可达50亿美元。

然而,区别于传统领域中的程序漏洞检测,智能合约中的漏洞通常是更难检测的逻辑错误及缺陷,且所导致的后果更加严重。在状态不一致漏洞中,攻击者通过操纵区块链上智能合约的程序状态,使得程序的执行结果与用户的预期结果产生不一致。通过利用这一类漏洞,攻击者可以抢跑或影响程序的执行流,从而影响程序的正常执行并从中获得不正当的收益。

现有状态不一致漏洞检测方案主要面临两个问题:(1)由于缺少准确的上下文信息导致的高误报率。由于无法准确地恢复智能合约运行过程中的上下文信息,静态分析方法可能引入无法执行的程序路径,导致误报;(2)由于缺少有效的测试准则导致的高漏报率。现有模糊测试方法需要依赖专家知识设计测试准则,高度依赖现有的攻击模式,导致无法识别新的攻击手段。

在这里插入图片描述

因此,中山大学软件工程学院与微众银行开展联合研究,提出了一种新型模糊测试框架IcyChecker,并以 “Detecting State Inconsistency Bugs in DApps via On-Chain Transaction Replay and Fuzzing” 为题在ISSTA 2023发表。

针对上述问题,IcyChecker首先通过重放历史数据,获取历史函数调用以及对应的细粒度上下文信息。随后,IcyChecker基于收集的历史信息进行模糊测试,生成新的函数调用序列触发程序漏洞。最后,IcyChecker通过差分分析,识别对等交易序列执行结果的不一致性,从而发现漏洞。

基于链上历史数据收集丰富的上下文信息,IcyChecker检测的准确率提高到80%以上。研究首次引入差分分析技术识别智能合约中的逻辑漏洞,实现了无需依赖专家知识的漏洞检测。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/864071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国钢铁工业协会 :2022年钢铁行业经济运行报告(附下载)

关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 2022年,我国粗钢产量10.18亿吨,比上年下降1.7%,连续两年下降,降幅比上年收窄。2022年,出口钢材 6732万吃,比上年增长0.9%;进口钢…

RabbitMQ:可靠消息传递的强大消息中间件

消息中间件在现代分布式系统中起着关键作用,它们提供了一种可靠且高效的方法来进行异步通信和解耦。在这篇博客中,我们将重点介绍 RabbitMQ,一个广泛使用的开源消息中间件。我们将深入探讨 RabbitMQ 的特性、工作原理以及如何在应用程序中使用…

javaScript:文档流写入和元素写入

目录 前言 文档流写入 把元素直接写入到文档流 注意​编辑 注意 元素写入 注意 innerHTML 特点: 设置内容 获取内容 innerText 特点: 注意 相关代码 前言 在JavaScript中,文档流写入是指将内容直接写入到DOM(文档对…

用户生成内容(UGC)与海外网红营销:激活品牌传播的力量

互联网和社交媒体的迅速发展为品牌营销带来了前所未有的机遇。用户生成内容(UGC)是指由普通用户自发创作、分享和发布的各种内容,而海外网红是指在海外社交平台上拥有大量粉丝和影响力的人物。这两者结合,为品牌传播带来了强大的推…

【C++11】类的新功能 | 可变参数模板

文章目录 一.类的新功能1.默认成员函数2.类成员变量初始化3.强制生成默认函数的关键字default4.禁止生成默认函数的关键字delete5.继承和多态中final与override关键字 二.可变参数模板1.可变参数模板的概念2.可变参数模板的定义方式3.参数包的展开方式①递归展开参数包②逗号表…

虚拟展览馆有哪些优势?如何打造自己的虚拟展览馆

引言: 随着科技的不断创新与发展,虚拟展览馆作为一种全新的文化体验方式,正逐渐引起人们的关注。虚拟展览馆以其便捷、创新、可定制的特点,为参观者提供了前所未有的沉浸式体验。 一.什么是虚拟展览馆? 虚…

MongoDB【无敌详细,建议收藏】

"探索MongoDB的无边之境:沉浸式数据库之旅" 欢迎来到MongoDB的精彩世界!在这个博客中,我们将带您进入一个充满创新和无限潜力的数据库领域。无论您是开发者、数据工程师还是技术爱好者,MongoDB都将为您带来一场令人心动…

修改element-plus主题色

修改element-plus主题色 前提:要安装按需引入和自动导入插件 ​npm install -D unplugin-vue-components unplugin-auto-import文章目录 修改element-plus主题色一、安装插件二、新建一个element的覆盖scss文件三、配置 一、安装插件 npm install -D unplugin-vu…

重启服务器引发的Docker异常

公司使用云服务器需要硬盘扩容,服务器重启才生效。 重启以后发现拉取远程镜像的命令登录失败了! 然后发现找不到容器和镜像列表了,但是容器都启动了。 查看docker运行状态都是正常的 systemctl is-active docker systemctl status docker.…

原生JS手写扫雷小游戏

场景 实现一个完整的扫雷游戏需要一些复杂的逻辑和界面交互。我将为你提供一个简化版的扫雷游戏示例,帮助你入门。请注意,这只是一个基本示例,你可以根据自己的需求进行扩展和改进。 思路 创建游戏板(Grid)&#xff1…

Vue [Day7] 综合案例

核心概念回顾 state:提供数据 getters:提供与state相关的计算属性 mutations:提供方法,用于修改state actions:存放异步操作 modules:存模块 功能分析 https://www.npmjs.com/package/json-server#ge…

企业运单管理教程

随着电子面单的普及,以及商务寄件稳步增加,快递公司为了留住商企客户,推出了月结协议模式寄件。企业可以根据寄件量大小,和快递公司签订月结协议,运费每月结算一次,还能根据自身的寄件量,向快递…

评述6种室内定位技术的底层原理及未来展望

从古至今,人类始终关心一个颇具哲学意味的问题——“我在哪里”。从千年前的人类在夜空下遥望星河,到依靠经验和模糊的观测绘制的初具现代化意味的地图,再到近现代人类在计算机技术、无线通信技术甚至空间技术的帮助下,不断探索更…

ORA-04031

ORA-04031:unable to allocate 3264 bytes of shared memory 1、问题背景 修改SGA重启数据库后报错系统内存:8G 原SGA大小:3G 修改后SGA大小:5G数据库可以正常重启,但是trance日志一直在报错 2、解决办法 调整shared…

湘大 XTU OJ 1148 三角形 题解(非常详细):根据题意朴素模拟+观察样例分析需要计算几轮 具体到一般

一、链接 1148 三角形 二、题目 题目描述 给一个序列,按下面的方式进行三角形累加,求其和值。 比如序列为 1,2,3,4,5 1 2 3 4 53 5 7 98 12 1620 2848输入 有多组样例。每个样例的第一行是一个整数N(1≤N≤100),表示序列的大小&…

uni-app实现图片上传功能

效果 代码 <uni-forms-item name"ViolationImg" label"三违照片 :"><uni-file-picker ref"image" limit"1" title"" fileMediatype"image" :listStyles"listStyles" :value"filePathsL…

docker通用镜像方法,程序更新时不用重新构建镜像

docker通用镜像方法&#xff0c;程序更新时不用重新构建镜像。更新可执行文件后&#xff0c;重新启动容器就可运行。 功能 1、在demo目录下添加脚本文件start.sh&#xff0c;里面执行demo.jar文件。 2、将demo目录映射到镜像下的 /workspace目录。 3、Dockerfile文件中默认…

CDN(Content Delivery Network)内容分发网络

从DNS域名系统到CDN内容分发网络 DNS什么是DNS直接使用DNS的缺点 CDNCDN加速过程使用CDN的优势 DNS 什么是DNS 输入域名www.baidu.com后&#xff0c;浏览器先检查缓存和本地Host文件&#xff0c;看有没有对应的ip地址&#xff0c;有则直接使用&#xff0c;没有就会向本地DNS服…

ubuntu安装nginx以及php的部署

目录 1.安装依赖包 2.安装nginx 3.编译nginx 4.启动nginx 5.访问nginx 6.增加源地址 7.安装php 8.配置php-fpm 9.修改权限 10.配置nginx里的php 11.启动php-fpm 12.配置php文件以及权限 13.登陆查看 1.安装依赖包 apt-get install gcc apt-get install libpcre3 l…

C++:模板初阶以及string类使用

C&#xff1a;模板初阶以及string类使用 模板的简单认识1.泛型编程2.函数模板模板的原理图函数模板格式函数模板实例化非模板函数和模板函数的匹配原则 3.类模板类模板的定义格式类模板的实例化 string1.string简介2.string常用的接口 题目练习1.字符串相加2.字符串里面最后一个…