区块链面临六大安全问题 安全测试方案研究迫在眉睫

区块链面临六大安全问题 安全测试方案研究迫在眉睫

近年来,区块链技术逐渐成为热门话题,其应用前景受到各国政府、科研机构和企业公司的高度重视与广泛关注。随着技术的发展,区块链应用与项目层出不穷,但其安全问题不容忽视。近年来,区块链安全事件日益增多,引发的后果较为严重,造成的经济损失数以亿计。

区块链技术可分为三个层次

狭义上讲,区块链是一种按照时间顺序将数据区块顺序相连组成链式数据结构,并以密码学方式保证不可篡改和不可伪造的分布式账本。广义上讲,区块链技术是利用块链式数据结构验证与存储数据、利用分布式节点共识算法生成和更新数据、利用密码学方式保证数据传输和访问的安全、利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新分布式基础架构与计算范式。

区块链主要分为公有链、联盟链与私有链。公有链对外公开,用户无需授权即可访问区块链信息,节点可自由出入网络。联盟链仅限于联盟成员参与,区块链上的读写权限、参与记账权限按照联盟规则制定,共识过程由预先选好的节点控制。私有链则仅在私有组织使用,区块链上的读写权限、参与记账权限按私有组织规则制定。

此外,美国区块链科学家梅兰妮·斯万按照应用范围和发展阶段将区块链分为3个层次,分别为区块链1.0、2.0、3.0。

区块链1.0—数字货币:区块链1.0解决货币和支付去中心化问题,典型代表是比特币。

区块链2.0—智能合约:区块链2.0是区块链1.0的发展,支撑智能合约应用,解决市场去中心化问题,将区块链拓展到股票、债券、期货等金融领域,典型代表是以太坊平台。

区块链3.0—区块链应用延伸:区块链3.0涵盖了智能化物联网未来的各种应用场景,支持广义资产、广义交换,支持行业应用,由此构建一个大规模协作社会,其典型代表是EOS项目。但目前业界还没有一个成熟的区块链3.0平台。

随着技术的发展,也有公司率先探索区块链4.0的概念。

区块链4.0—完善生态体系:区块链4.0将区块链作为某个行业的基础设施,形成基于区块链的完善生态体系,从而构建全球价值互联网。但区块链4.0尚未在业界达成一致共识。

区块链安全问题不容忽视

目前区块链技术本身仍存在一些安全风险,应用过程中可能会引发一定的安全问题。近年来,区块链安全事件频发,造成重大经济损失。据统计,自2011年到2018年10月,全球范围内因区块链安全事件造成的损失近36亿美元。可见,区块链安全问题不容忽视。

基于业界已有研究报告,本文将区块链面临的风险与挑战分为六大方面:基础设施安全、密码算法安全、协议安全、实现安全、使用安全和系统安全。

基础设施安全:基础设施主要包括交换机和路由器等网络资源、硬盘和云盘等存储资源以及CPU和GPU等计算资源。面临的问题主要有物理安全风险、网络攻击威胁以及数据丢失和泄露等安全风险。

密码算法安全:区块链使用了大量密码算法以保证安全性。但现有的一些密码算法存在一定缺陷,使用有缺陷的密码算法会大大影响安全性。另外,随着量子技术的发展,使用不能够抵抗量子攻击的密码算法都有较大风险。

协议安全:主要指共识机制、P2P网络等存在的安全隐患,主要面临共识算法漏洞、流量攻击以及恶意节点等威胁。

实现安全:智能合约起步较晚,其风险主要来源于代码实现中的安全漏洞。此外,智能合约运行环境的安全性也是区块链安全的重要环节。

使用安全:主要指使用的智能合约、数字钱包、交易所以及应用软件等存在的安全问题。另外,区块链应用所在服务器上的恶意软件、系统的安全漏洞等都可能成为攻击者攻破区块链应用的脆弱点。

系统安全:上述基础设施、密码算法、协议、实现、使用安全漏洞与黑客攻击结合,可使区块链受到致命打击。社会工程学手段与传统攻击方法结合使区块链变得更加脆弱,有组织的攻击行为将对区块链安全造成极大危害。

区块链安全测试方案研究

各国政府、金融机构以及众多企业等纷纷进行区块链的研究和开发。各种区块链联盟、区块链协会以及各种区块链实验室也纷纷成立。区块链相关测试也愈来愈多。

2017年5月,区块链技术和应用峰会暨中国区块链开发大赛成果发布会在杭州举行,发布首个区块链标准《区块链参考架构》,并公布了参考架构的首次测试结果。同时,贵阳区块链测试中心正式挂牌并开展试运行区块链测试工作。另外,中国信息通信研究院也对太一云的区块链超导交易网络进行了性能与功能测试。2017年9月,可信区块链峰会在北京召开,公布了可信区块链标准和测评结果。2018年6月,可信区块链评测方案讨论会在北京召开,会议确定了可信区块链的测试方法与性能测试规范,并讨论了开源基准测试工作组的任务安排。

区块链测评内容可分为功能测试、性能测试、可靠性测试与安全性测试。已有测试多偏重于功能测试、性能测试与可靠性测试,本文着重讨论安全性测试,建议从以下几方面着手。

共识机制安全测试:主要测试采用的共识机制能否抵御双花攻击(同一数字货币重复使用多次)、重放攻击等常见的攻击手段,以及是否有良好的容错能力。

智能合约安全测试:主要检查智能合约是否存在常见的安全漏洞、是否可信以及是否符合规范和流程。此外,还可进行代码审计工作,在代码层次寻找可能存在的漏洞。

Web与移动客户端应用安全测试:面向终端用户的区块链项目一般都有Web或移动客户端应用程序。可检查其是否存在注入、XSS等常见Web漏洞。还可进行渗透评估测试,发现潜在的安全威胁。

身份认证与鉴别测试:对于联盟链与私有链平台,应测试身份认证与鉴别、成员管理以及审计记录等功能,防止出现越权等漏洞。

此外,还可以对激励机制及其他自有协议进行测试,尽量保证其安全性。

小结

区块链技术可有效解决传统交易模式中数据流造假行为,可被应用到金融、物联网、供应链管理等多个领域,可实现从信息互联网到价值互联网的转变。但区块链安全问题亦不可忽视,本文从技术角度分析区块链技术面临的安全风险,并探索区块链技术安全测试方案,希望为以后区块链安全测试的工作带来一定的参考意义。

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

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

相关文章

node socket.io

装包: yarn add socket.io node后台: const express require(express) const http require(http) const socket require(socket.io) const { getUserInfoByToken } require(../../utils/light/tools)let app express() const server http.createS…

【C++漂流记】结构体的定义和使用、结构体数组、结构体指针、结构体做函数参数以及结构体中const的使用

结构体(struct)是C语言中一种重要的数据类型,它由一组不同类型的成员组成。结构体可以用来表示一个复杂的数据结构,比如一个学生的信息、一个员工记录或者一个矩形的尺寸等。 结构体定义后,可以声明结构体变量&#xf…

NCCoE发布“向后量子密码学迁移”项目进展情况说明书

近日,NIST下属的国家网络安全中心(NCCoE)发布了一份向后量子密码学迁移(Migration to Post-Quantum Cryptography)项目情况说明书。该文档简要概述了向后量子密码学迁移项目的背景、目标、挑战、好处和工作流程&#x…

【HTML5高级第二篇】WebWorker多线程、EventSource事件推送、History历史操作

文章目录 一、多线程1.1 概述1.2 体会多线程1.3 多线程中数据传递和接收 二、事件推送2.1 概述2.2 onmessage 事件 三、history 一、多线程 1.1 概述 前端JS默认按照单线程去执行,一段时间内只能执行一件事情。举个栗子:比方说古代攻城游戏&#xff0c…

基于LinuxC语言实现的TCP多线程/进程服务器

多进程并发服务器 设计流程 框架一(使用信号回收僵尸进程) void handler(int sig) {while(waitpid(-1, NULL, WNOHANG) > 0); }int main() {//回收僵尸进程siganl(17, handler);//创建服务器监听套接字 serverserver socket();//给服务器地址信息…

Jenkins自动构建(Gitee)

Gitee简介安装JenkinsCLI https://blog.csdn.net/tongxin_tongmeng/article/details/132632743 安装Gitee jenkins-cli install-plugin gitee:1.2.7 # https://plugins.jenkins.io/gitee/releases获取安装命令(稍作变更) JenkinsURL Dashboard-->配置-->Jenkins Locatio…

ARTS第五周:A - 最大公约数

数字 function gcd(int $x, int $y): int {while($y^$x^$y^$x%$y);return $x; }位运算&#xff1a;异或&#xff1a;gcd(a,b) gcd(b,a mod b) 字符串 <?phpclass Solution {/*** param String $str1* param String $str2* return String*/function gcdOfStrings($str1, …

MySQL 8.0 OCP (1Z0-908) 考点精析-安装与配置考点1:设置系统变量

文章目录 MySQL 8.0 OCP (1Z0-908) 考点精析-安装与配置考点1&#xff1a;设置系统变量系统变量的确认设置系统变量的方法SET命令设置系统变量SET命令语法动态系统变量&#xff08;Dynamic System Variables&#xff09;全局级别变量的设置方法会话级别变量的设置方法系统变量的…

鸿蒙系列-如何使用好 ArkUI 的 @Reusable?

如何使用好 ArkUI 的 Reusable&#xff1f; OpenHarmony 组件复用机制 在ArkUI中&#xff0c;UI显示的内容均为组件&#xff0c;由框架直接提供的称为 系统组件&#xff0c;由开发者定义的称为 自定义组件。 在进行 UI 界面开发时&#xff0c;通常不是简单的将系统组件进行组合…

SpringBoot的测试方案

写完代码后&#xff0c;测试是必不可少的步骤&#xff0c;现在来介绍一下基于SpringBoot的测试方法。 基于SpringBoot框架写完相应功能的Controller之后&#xff0c;然后就可以测试功能是否正常&#xff0c;本博客列举MockMvc和RestTemplate两种方式来测试。 准备代码 实体类…

NIO原理浅析(三)

epoll 首先认识一下epoll的几个基础函数 int s socket(AF_INET, SOCK_STREAM, 0); bind(s, ...); listen(s, ...);int epfd epoll_create(...) epoll_ctl(epfd, ...); //将所有需要监听的socket添加到epfd中while(1) {int n epoll_wait(...);for(接受到数据的socket) {//处…

Kotlin 环境下解决属性初始化问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

react使用hook封装一个tab组件

目录 react使用hook封装一个tab组件Tabbar.jsx使用组件效果 react使用hook封装一个tab组件 Tabbar.jsx import PropsTypes from "prop-types"; import React, { useEffect, useState } from react; export default function Tabbar(props) {const { tabData , cur…

使用pip下载第三方软件包报错超时处理方法

报错如下&#xff1a; WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by ‘ReadTimeoutEr ror(“HTTPSConnectionPool(host‘files.pythonhosted.org’, port443): Read timed out. (read timeout15)”)’: /p…

Spring Boot常用的参数验证技巧和使用方法

简介 Spring Boot是一个使用Java编写的开源框架&#xff0c;用于快速构建基于Spring的应用程序。在实际开发中&#xff0c;经常需要对输入参数进行验证&#xff0c;以确保数据的完整性和准确性。Spring Boot提供了多种方式来进行参数验证&#xff0c;并且可以很方便地集成到应…

Maven编译java及解决程序包org.apache.logging.log4j不存在问题

1、首先新建一个文件夹&#xff0c;比如hello Hello里新建pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi…

git快速使用

1、下载git 设置签名 2、基本概念 工作区&#xff1a;写代码的地方。 暂存区&#xff1a;.git的.index 工作区&#xff1a;.git 3、常用操作 本地codinggit init&#xff0c; 初始化一个本地仓库&#xff0c;项目根目录下会出现个.gitgit remote add origin gitgithub.com…

[杂谈]-快速了解LoRaWAN网络以及工作原理

快速了解LoRaWAN网络以及工作原理 文章目录 快速了解LoRaWAN网络以及工作原理1、LoRaWAN网络元素1.1 终端设备&#xff08;End Devices&#xff09;1.2 网关&#xff08;Gateways&#xff09;1.3 网络服务器&#xff08;Net Server&#xff09;1.4 应用服务器&#xff08;Appli…

Android11去掉Settings中的网络和互联网一级菜单

碰到一个不要wifi不要蓝牙的项目&#xff0c;客户要求去掉Settings中的网络和互联网一级菜单&#xff0c;因为硬件都不贴&#xff0c;所以软件对应也要去掉。 我们可以根据packages/apps/Settings/res/xml/top_level_settings.xml的布局文件找到TopLevelNetworkEntryPreferenc…

OpenCV(二十一):椒盐噪声和高斯噪声的产生

目录 1.图像噪声介绍 2.椒盐噪声的产生 3.高斯噪声的产生 1.图像噪声介绍 噪声介绍 图像噪声是指在图像中存在的不期望的、随机的像素值变化&#xff0c;这些变化来源于多种因素。噪声可能导致图像细节模糊、失真或难以分辨。 以下是几种常见的图像噪声类型&#xff1a; 1…