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

news2024/11/24 3:17:42

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

一.区块链的诞生和演化 

区块链起源于比特币。中本聪在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.coloradmin.cn/o/1588532.html

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

相关文章

oracle数据库怎么查看当前登录的用户?

方法如下: 输入select * from dba_users; 即可。 常用语句: 一,查看数据库里面所有用户: select * from dba_users; 前提是你是有dba权限的帐号,如sys,system。 二,查看你能管理的所有用户&#xff1…

react17中配置webpack:使用@代表src目录

在vue的项目中可以使用表示src目录,使用该符号表示绝对路径,那么在react中想要使用怎么办呢? 在react中使用表示src目录是需要在webpack中配置的,在核心模块node_modules-》react-scripts-》config-》webpack.config.js中搜索找到…

python——列表(list)

概念 列表一般使用在一次性存储多个数据 语法 lst[数据1,数据2,.....]方法 #mermaid-svg-flVxgVdpSqFaZyrF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-flVxgVdpSqFaZyrF .error-icon{…

【2024最新博客美化教程重置版】一分钟教会你在博客页面中加入javascript点击出弹出文字效果!

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 我们可以在博客…

利用正射影像对斜射图像进行反向投影

在图像投影和映射领域,有两种类型的投影:正向投影和反向投影。正向投影涉及使用内部方向(即校准相机参数)将 3D 点(例如地面上的物体)投影到 2D 图像平面上。另一方面,向后投影是指根据 2D 图像确定地面物体的 3D 坐标的过程。 为了匹配倾斜图像和正射影像并确定相机位置…

[C++][算法基础]有向图拓扑排序(拓扑)

给定一个 n 个点 m 条边的有向图,点的编号是 1 到 n,图中可能存在重边和自环。 请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。 若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y)&a…

FreeAskInternet:本地AI搜索引擎,一周收获6.4K Star

简介 FreeAskInternet是一个完全免费,私人和本地运行的搜索聚合器和答案生成使用LLM,无需GPU。用户可以提出一个问题,系统通过搜索进行多引擎搜索,并将搜索结果合并到ChatGPT3.5 LLM中,根据搜索结果生成答案。所有进程…

一、OpenCvSharp环境搭建

一、Visual Studio 创建新项目 二、选择Windows窗体应用(.NET Framework) 直接搜索模板:Windows窗体应用(.NET Framework) 记得是C#哈,别整成VB(Visual Basic)了 PS:若搜索搜不到,直接点击安装多个工具和…

C++感受4-HelloWorld中文版——认识编码

及时了解“编码”对编写代码的影响,是中国程序员越早知道越好的知识点。 一分钟了解什么叫“编码”和“解码”;通过实际演示,充分理解中文Windows下,C源代码编码需要注意的地方;通过 -finput-charsetutf8 等 g 编译配置…

四、Consul服务注册与发现

一、Consul服务注册与发现 1、为什么引入 微服务所在的IP地址和端口号硬编码到订单微服务中,会存在非常多的问题 (1)如果订单微服务和支付微服务的IP地址或者端口号发生了变化,则支付微服务将变得不可用,需要同步修改…

【科技】2024最新微信机器人一键部署教程

外话 话说上次写文章好像又过了几个月了…… 其实还是因为马上小升初的各种密考,其它地方不知道,反正广东这块名校基本上都得密考考进去 笔者连考几次都惨不忍睹…… 不过5月份会有一个信息技术特长生招生,看看能不能吧~ 正文 先说&#xff…

新质生产力与智能制造:推动制造业转型升级的双引擎

引言 随着科技的不断进步和全球制造业的快速发展,新质生产力与智能制造成为推动制造业转型升级的关键驱动力。新质生产力强调的是以科技创新和制度创新为核心,通过提高生产效率和经济效益来推动经济发展。而智能制造则是利用现代信息技术,实现…

Python | Leetcode Python题解之第24题两两交换链表中的节点

题目: 题解: class Solution:def swapPairs(self, head: ListNode) -> ListNode:dummyHead ListNode(0)dummyHead.next headtemp dummyHeadwhile temp.next and temp.next.next:node1 temp.nextnode2 temp.next.nexttemp.next node2node1.next…

【稳定检索|投稿优惠】2024年生物学与智能计算国际会议 (ICBIC 2024)

2024年生物学与智能计算国际会议 (ICBIC 2024) 2024 International Conference on Biology and Intelligent Computing 【会议简介】 2024年生物学与智能计算国际会议即将在上海召开。本次会议旨在汇聚生物学与智能计算领域的专家学者,共同探讨两者交叉融合的前沿…

一文带你搞懂软件开发/怎么开发?哪些常见陷阱?如何避坑?

引言 在当今数字化时代,软件开发已成为推动科技进步和商业发展的重要引擎。然而,软件开发并非一帆风顺,其中蕴藏着许多陷阱和挑战。如何避免这些陷阱,提高软件开发的效率和质量,成为开发者们面临的重要问题 本文将深入…

关于Ansible的模块 ⑦

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 在继《关于Ansible的模块 ①》、《关于Ansible的模块 ②》、《关于Ansible的模块 ③》与《关于Ansible的模块 ④》、《关于ansib…

NVMe 基础

NVMe(Non-Volatile Memory Express)是一种高速、低延迟的I/O接口协议,专为闪存存储设备设计,包括固态硬盘(SSD)和其他非易失性存储设备。NVMe协议是为取代早期的AHCI(Advanced Host Controller …

bufbomb 报错 ./stdio-common/vfprintf-internal.c: No such file or directory.

注意&#xff1a;此方法针对HUST特供 bufbomb 的 level2&#xff0c;其它情况不保证有效。 有同学可能发现&#xff0c;当跳入bang函数时&#xff0c;无论是gdb还是直接执行&#xff0c;都会出现以下报错 其实若是再仔细排查一下&#xff0c;会发现实际上只有跳到 <bang0&…

呼出气一氧化碳:评估呼吸健康与戒烟状态的关键指标

一氧化碳&#xff08;CO&#xff09;是一种无色、无味、有毒的气体&#xff0c;通常由不完全燃烧产生。在生物学领域&#xff0c;CO作为一种重要的信使分子&#xff0c;在多种生物过程中发挥着作用。特别值得一提的是&#xff0c;它作为血红素加氧酶&#xff08;HO&#xff09;…

基于二级片内硬件堆栈的后向CFI 验证方法研究,第4章 硬件设计与实现(二)

4.3 批处理验证实现 批处理验证是为了进一步降低硬件资源消耗和降低系统功耗提出的二级片内硬件堆栈的另一种实现方法&#xff0c;批处理验证的硬件结构图如图4.7所示&#xff0c;也由指令检测单元、返回地址缓冲区、MAC计算单元、MAC存储单元组成。 图4.7 批处理验证硬件框图…