区块链安全-----区块链基础

区块链是一种全新的信息网络架构 ,是新一代信息基础设施 ,是新型的价值交换方式、 分布式协 同生产机制以及新型的算法经济模式的基础。 区块链技术可以集成到多个领域。 区块链的主要用途 是作为加密货币的分布式总帐。 它在银行 ,金融 ,政府 , 医疗保健 ,保险 ,媒体和娱乐 ,零售等广 泛的商业应用中表现出巨大的希望。 区块链在数据共享、 优化业务流程、 降低运营成本、 提升协同效率、 建设可信体系等方面的作 用 ,通过与产业深度结合 ,推动产业转型升级、 提质增效 ,创造新的价值增量 ,让实体经济加速商 业智能化转型 ,推动我国数字经济步入更高的阶段。

一.区块链的诞生和演化 

区块链起源于比特币。中本聪在2008年 11月1日发表了“ 比特币:一种点对点 的电子现金系统 ”的文章,并在2009年 创立了比特币网络,开发出第一个区块, 即“创世区块 ” 。中本聪在该文中描绘 了一种基于点对点(P2P) 网络技术, 加密技术,分布式传输等技术的去中心 化的电子现金系统。

1.区块链的诞生和演化

区块链1.0

以比特币为代表 ,建 立去中心化电子现金 系统 , 以记账为主

区块链2.0

以以太坊为代表 ,在 区块链1.0的基础上 增加了可以提供更加 丰富的功能的智能合约。

 区块链3.0

以DApp、 联盟链为 代表 ,使区块链技术 跳出数字货币的局限, 结合金融、 电商、 物 流等传统行业 ,应用 在更多场景之中。

2.区块链定义

  区块链是一种按时间顺序将数据区块以顺序相连的方式组合的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本

3.区块链分类

公有链

公有链可称为公共区块链 ,指所有人都可以参与的区块链。 换言之 , 它是公公开的 ,所有人都可以自由访问 , 可以进行 发送、 接收、 认证交易等操作。 另公有链是“完全去中心化”的区块链。 公有链的代表有比特币、 以太坊。

私有链

私有链跟公有链是相对的概念 ,属于联盟链的一种特殊形态。 所谓私有就是不对外开放 ,仅仅在组织内部使用。 即联盟中 只有一个成员 , 比如企业内部的票据管理、 账务审计、 供应 链管理 ,或者政府部门内部管理系统等。

联盟链

联盟链就是共识过程受到预选节点控制的区块链 , 由一个联 盟组织构成并对其进行管理 , 写入需要授权接入 , 共同维护 区块链的健康运转。 联盟链通常应用在多个相互已知身份的 组织之间构建 , 比如多个银行之间的支付结算、 多个企业之 间的物流供应链管理、 政府部门之间的数据共享等。

4.区块链的工作原理】

交易准备:

在这个阶段, A方创建一个交易, 内 容包括接收方的公共地 址、源数字签名和交易 信息。现在,这个交易 可被区块链中的所有节 点获得。

交易验证:

区块链的节点工作在去 信任模型中,其中每个节点接收该 交易信息,并用A方的公钥验证数 字签名。成功验证之后,这个经过 身份验证的交易信息被放置在账本 队列中,然后等待至所有节点成功 验证该交易为止。

交易生成

队列中的交易被安放在 一起, 网络中的一个节点创建区块。 在比特币区块链中, 当矿工节点通 过解决一些复杂的数学问题创建了 区块,就会获得比特币奖励。

区块连接

在成功达 成共识之后,验证区 块并将其添加到区块 链中。

区块校验

在成功地生成区块后, 网络中的节点为了 迭代校验的过程会被处理,其中大多数节点需要达成 共识机制。一般有四种常用的共识算法:工作量证明 (PoW)、权益证明(PoS)、授权权益证明(DPoS)、实用 拜占庭容错(PBFT)等。比特币使用PoW达成共识, 以太 坊使用PoS来达成共识。 

二.区块链安全概述

区块链和分布式账本中大量使用了密码学和安全技术的最新成果,特别是身份认证和隐私保护相 关技术。区块链使用了包括Hash 算法与摘要、加密算法、数字签名和证书、PKI体系、Merkle 树、 布隆过滤器、同态加密等密码安全相关技术,用于设计实现区块链的机密性、完整性、可认证性和 不可抵赖性。区块链系统基于这些技术保证区块链系统安全和稳定。

然后没有一项技术是一蹴而就的,随着各方面技术的发展。区块链在实际应用中,区块链安全问 题逐渐不断地暴露出来。区块链技术已经开始改变我们的社会,区块链产业的影响不断扩大。区块 链相关的攻击事件和安全问题频发,大家都渐渐明白了,安全是保障区块链领域稳定发展的根本。

共识机制的安全

双花攻击就是指将一个代币通过多次支付手段发起的攻击,也就是 指一个货币被花费了多次,发起双花攻击的方式有很多,包括以下几种 式:

  • 51%攻击(51%Attack)。
  • 种族攻击(Race Attack)。
  • 芬妮攻击(Finney Attack)。
  • Vector 76攻击(Vector76 Attack)。
  • 替代历史攻击(Alternative History Attack)。

三.区块链安全技术支撑

 1.密码学技术

  • 哈希算法在区块链系统主要用于数据的加密。由于区块链系统去中心化账本的技术存储数据, 使用哈希算法对数据加密可以保证数据的不可篡改。
  •  哈希算法指的是把任意长度的输入转换成固定长度输出的一种方法。输入可以是任何形式、任何长度的数据,可以是字符、数字, 也可以是一个文档、一段音频或者一个视频。这样的输入通过散列函数之后, 会得到一个固定大小的输出。
  • 非对称加密算法是基于一个复杂难解的数学难题上的, 安全性较对称加密更高。于此同时, 由于具备私钥保密性高、密钥分配方式简单、数据少等特点, 在非对称加密算法通常以公钥进行加密以及私钥进行解密的方式实现, 对数据信息的安全进行保护。另一方面, 非对称加密算法的加解密方式在数据发送与接收操作实现中可以对身份进行验证。

 

2.区块链网络

 

3.共识算法

区块链环境的开放性和去信任化是区块链的核心特性, 但是, 额外的关注和严格的过程也很重要。因为任何人都可以参与和提交信息, 所以评估每个参与者的目的至关重要, 并且使每个人都采纳用于避免欺诈企图的政策。由此产生了共识机制, 类似于信号处理, 以确保在实际通信开始之前已经考虑了所有问题。

4.智能合约

智能合约就是用计算机语言取代了法律语言记录条款并由程序自动执行的合约。换句话说, 智能合约就是传统合约的数字化版本, 跑在区块链网络上, 由程序自动执行。

四.区块链测试

智能合约就是用计算机语言取代了法律语言记录条款并由程序自动执行的合约。换句话说, 智能合约就是传统合约的数字化版本, 跑在区块链网络上, 由程序自动执行。

区块链测试是解决区块链安全问题的关键方法之一。区块链技术以其去中心化、不可篡改和高度安全的特点而闻名, 但任何技术都无法完全避免安全漏洞或潜在风险。因此, 通过进行详尽的测试, 可以及时发现并修复潜在的安全问题, 确保区块链系统的稳定运行和数据的完整性。
 在区块链测试过程中, 安全测试尤为重要。它涉及对区块链系统各个层面的安全性进行评估, 包括智能合约的安全性、网络通讯的安全性、共识机制的安全性等。通过模拟各种攻击场景, 测试人员能够发现潜在的安全漏洞, 并制定相应的防御措施。
 此外, 区块链测试还包括其他方面的测试, 如性能测试、功能测试、集成测试等。这些测试有助于确保区块链系统在各个方面都达到预期的标准, 并能够满足实际应用的需求。
 为了有效地进行区块链测试, 测试人员需要具备深厚的区块链技术知识和经验, 同时还需要掌握各种测试工具和方法。随着区块链技术的不断发展和创新, 测试人员也需要不断更新自己的知识和技能, 以应对新的挑战和问题。

1.软件测试

使用人工或自动化手段,来运行或测 试某个系统的过程,其目的在于检验它是 否满足规定的需求或弄清预期结果与实际 结果之间的差别(IEEE)。 对软件测试的定义还有两种描述:

  • 定义1:软件测试是为了发现错误而执 行程序的过程。
  • 定义2:软件测试是根据软件开发各阶 段的规格说明和程序的内部结构而精 心设计的一批测试用例,并利用这些 测试用例运行程序以及发现错误的过 程,即执行测试步骤。 
软件测试的对象:
  • 软件测试不等于程序测试。
  • 软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格 说明以及源程序、用户文档都是软件测试的对象。
软件测试的原则:
  • 1.尽早地和及时地测试-软件测试应贯穿软件生命周期
  • 2.测试前应当准备好测试数据和与之对应的预期结果这两部分
  • 3.测试输入数据应包括合理的输入条件和不合理输入条件
  • 4.程序提交测试后,应当由专门的测试人员进行测试
  • 5.严格执行测试计划,排除测试的随意性
  • 6.测试用例的所有相关预期结果做全面的检查

软件测试流程:

测试计划阶段:

  • 测试计划阶段主要处于测试的前期准备工作阶段,在该阶段中主要 是对将要进行的测试工作做整体计划安排。
  • 测试人员对需求进行分析,提出针对性的策略和规范,同时对系统 输入空间进行合理的划分,据此后面可以写出足够的、具体的测试 用例。

测试设计与开发(测试用例):

  • 测试用例贯穿整个软件测试,是软件测试的核心测试用例来测试某 一需求是否得到满足。用例的编写方式不是唯一的,应根据不同的 应用场合编写不同格式的测试用例。
  • 测试用例为特定的目的而设计 的一组测试输入、执行条件和预期的结果,是执行的最小实体。

2.测试用例介绍

设计测试用例步骤:

  1. 1. 分析软件规格:测试人员首先需要详细分析软件的规格、需求文档 等,以了解软件的限制和要求,从而确定测试的目标和范围。
  2. 2. 确定测试场景:根据软件的功能和特点,确定需要测试的场景。例 如,对于一个电商网站,可能需要测试登录、注册、浏览商品、添加 购物车、结账等场景。 
  3. 编写测试用例:
  • 用例标题:简洁描述测试的目标或功能点。
  • 前置条件:列出执行该测试用例前必须满足的条件,如用户已登录、 数据库中存在特定数据等。
  • 测试步骤:详细描述每一步的操作,包括输入的数据、点击的按钮等。 确保步骤清晰、准确,方便其他测试人员理解和执行。
  • 预期结果:根据需求文档和开发规格书,描述执行完测试步骤后应得 到的正确结果。这是判断测试是否通过的重要依据。
  • 测试数据:如果需要特定的数据来执行测试,应在这里提供。

测试用例模板可以根据所测对象的不同对模板内容进行调整。以上 为一种测试用例模板。 

4. 确认测试用例:

测试用例编写完成后,应与开发人员和业务分析师 进行确认,确保大家对测试的理解和预期是一致的。这可能需要多次 迭代,以确保测试用例的准确性和完整性。

5. 组织测试用例:

将测试用例按照功能和场景进行组织,以便于管理 和执行。可以使用测试管理工具来辅助管理测试用例,提高测试效率。 

3.渗透测试

渗透测试是采用模拟恶意黑客的攻 击方法来探测被测系统的安全缺陷,进 而评估计算机网络系统潜在安全风险的 一种评估方法。在渗透测试中,测试人 员对系统的任何弱点、技术缺陷或漏洞 进行主动分析,并且尽量利用这些漏洞 对系统进行攻击,进而评估攻击可能对 系统造成的实质破坏。测试人员的攻击 是从一个黑客可能存在的位置来进行的, 并且在这个位置有条件能主动利用安全 漏洞。

 
渗透测试vs 软件测试:

 

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

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

相关文章

浏览器工作原理与实践--HTTP/3:甩掉TCP、TLS 的包袱,构建高效网络

前面两篇文章我们分析了HTTP/1和HTTP/2,在HTTP/2出现之前,开发者需要采取很多变通的方式来解决HTTP/1所存在的问题,不过HTTP/2在2018年就开始得到了大规模的应用,HTTP/1中存在的一大堆缺陷都得到了解决。 HTTP/2的一个核心特性是使…

机器学习基础入门(一)(机器学习定义及分类)

机器学习定义 给予计算机无需特意带有目的性编程便有学习能力的算法 深度学习算法 主要有监督学习和非监督学习两类 监督学习(supervised learning) 定义 1、学习由x映射到y的映射关系 2、主动给予机器学习算法正确示例,算法通过示例来学习…

订单中台架构:打造高效订单管理系统的关键

在现代商业环境下,订单管理对于企业来说是至关重要的一环。然而,随着业务规模的扩大和多渠道销售的普及,传统的订单管理方式往往面临着诸多挑战,如订单流程复杂、信息孤岛、数据不一致等问题。为了应对这些挑战并抓住订单管理的机…

大数据迁移工具开发思路

数据存储MySQL中,迁移到hive中,建立数据仓库,为后期的大数据分析、主题订阅、消息分发提供海量数据支持。 涉及到的服务及中间件版本如下: 1、MySQL,版本:8.0.19 2、Hive,版本:3.0.0…

云计算:Linux 部署 OVS 集群(控制端)实现OpenFlow

目录 一、实验 1.环境 2.Linux 部署 OVS 集群(控制端) 3.控制端对接服务端OVS网元 4.服务端OVS添加流表 5.服务端删除OVS 二、问题 1. ODL如何查找已安装插件 2.查看流表显示不全 3.如何删除OVS流表 一、实验 1.环境 (1) 主机 表1 宿主机 主…

java包目录命名

包目录命名 config controller exception model common entity enums reponse request repository security service util

Python 全栈系列239 使用消息队列完成分布式任务

说明 在Python - 深度学习系列32 - glm2接口部署实践提到,通过部署本地化大模型来完成特定的任务。 由于大模型的部署依赖显卡,且常规量级的任务需要大量的worker支持,从成本考虑,租用算力机是比较经济的。由于任务是属于超高计…

QA测试开发工程师面试题满分问答11: web前端页面视频组件无法播放如何定位bug

当 web 前端页面的视频组件无法播放时,可以从以下维度进行分析和定位可能的 bug,分析维度包括但不限于:前端功能点、缓存、异常、后端功能点、资源占用、并发、网络等: 前端功能点: HTML5 视频支持:检查视频…

等保测评2.0——网络安全等级保护测评的初步了解

一、什么是网络安全等级保护测评? 二、网络安全等级保护,保护的是什么? 等级保护对象:网络安全等级保护工作直接作用的对象。(注:主要包括信息系统、通信网络设施和数据资源等) 计算机信息系统…

Qotom Q720G5英特尔赛扬处理器N4000高性价比无风扇迷你电脑5网口软路由防火墙

在数字时代,迷你电脑已经成为高效、灵活的解决方案,无论是个人用户还是企业用户,都能从中受益。Qotom Q720G5 无风扇迷你电脑就是这样一款强大的选择,它不仅可以作为软路由、防火墙和路由器,还有着更多的潜力等待发掘。…

中国手机频段介绍

中国目前有三大运营商,分别是中国移动、中国联通、中国电信,还有一个潜在的运营商中国广电,各家使用的2/3/4G的制式略有不同 中国移动的GSM包括900M和1800M两个频段。 中国移动的4G的TD-LTE包括B34、B38、B39、B40、B41几个频段,…

苹果全力升级:用专注AI的M4芯片彻底改造Mac系列

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

通过Transform与Animation,来探索CSS中的动态视觉效果

在 transform 和 animation 出现之前,前端开发者通常需要编写大量的 JavaScript 代码来实现动态效果。然而,这两个 CSS 属性的引入极大地简化了丰富动效和过渡效果的实现,从而让用户界面更加引人入胜,交互体验更为流畅。本文将深入…

最优算法100例之44-不用加减乘除做加法

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 不用加减乘除做加法 题解报告 最优解法:使用异或 1)异或是查看两个数哪些二进制位只有一个为1,这些是非进位位,可以直接…

小程序地理位置权限申请+uniapp调用uni.getLocation

文章目录 一、小程序地理位置权限申请二、uniapp调用uni.getLocation 一、小程序地理位置权限申请 需要确保小程序类目已经填写 点击左侧导航栏找到最后的“设置”——“基本设置”——“前往填写” 在开发管理——接口设置——地理位置中可以看到: 即可点击想要申…

智能物联网远传冷水表管理系统

智能物联网远传冷水表管理系统是一种基于物联网技术的先进系统,旨在实现对冷水表的远程监测、数据传输和智能化管理。本文将从系统特点、构成以及带来的效益三个方面展开介绍。 系统特点 1.远程监测:系统可以实现对冷水表数据的远程监测,无…

uni-app实现下拉刷新

业务逻辑如下: 1.在滚动容器中加入refresher-enabled属性,表示为开启下拉刷新 2.监听事件,添加refresherrefresh事件 3.在事件监听函数中加载数据 4.关闭动画,添加refresher-triggered属性,在数据请求前开启刷新动画…

单片机之蓝牙通信

目录 蓝牙介绍 HC05蓝牙模块 HC05参数 HC05引脚 各个引脚功能 HC05模块的作用 工作模式 配置模式 引脚接线 用AT指令进行配置 常用的AT指令 正常模式 测试步骤 烧录的程序 前言: keil文件 蓝牙介绍 蓝牙:Bluetooth,其是低成…

企业航拍VR全景视频展示仿如上门参观

360度VR全景视频因其广阔的视野和身临其境的体验,无论再房产楼盘的精致呈现,旅游景点的全景漫游,还是校园风光的生动展示,都成为企业商户的首选。 360度vr全景视频编辑软件是深圳VR公司华锐视点提供多种常见的三维仿真场景供选择&…

【Python细类】全局日志调试模式

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…