什么是区块链?

2023-11-05

什么是区块链?

在这里插入图片描述

今天给大家讲解我们区块链的第一课,我们要学习区块链,首先我们必须得了解什么是区块链,只有理解了区块链的概念,我们才能入门区块链。接下来,我会从浅入深的带着大家去理解区块链的含义。

首先,我们从字面上来理解。

区块链,包含着两层含义,即区块和链。链是由无数个区块组成的,每个区块之间都有着某种特定的联系绑定在一起,牵一发而动全身。想象一下我们的自行车链条,每个链轴就相当于我们的区块,如果我们破坏了其中的一个链轴,那么整条链都会被破坏掉。区块链也是一样的道理,如果我们恶意破坏了某个区块的数据,那么整条链的数据都会被改变。

在这里插入图片描述

区块链上的每个区块都存放着1M大小的数据,区块分为区块头和区块体。区块头记录了版本号、前一个区块的哈希地址、默克尔根、区块创建时间戳、区块的工作量难度值,以及用于计算目标的参数值。区块体记录了区块中存储的交易数量和交易数据。

在这里插入图片描述

在这里有必要补充一下一些前置知识。哈希地址,就是经过sha256散列出来的值;默克尔根,就是默克尔树的根哈希;工作量难度值,就是区块链的工作量证明pow算法。

第二,我们从链的分类来理解。

在区块链的领域中,区块链可以分为公有链,联盟链,私有链,我们还是从字面上来先理解它们的含义。
公有链,就是公开透明的一条链,所有在链上的数据都是公开透明,可追溯,任何人都可以查看的。
联盟链,就是半公有链,意思就是这条链的数据是半公开,半透明的,也就是说只有指定的人才能查看链上的数据,而不是全部人都可以查看,联盟链数据的查看是需要得到管理员的许可的。
私有链,即私有的,所有的数据只有自己能查看的。这通常在我们需要自己做测试时,为了提高工作效率而搭建的,由于是私有链,链上数据不大,所以交易的速度就会快很多,再一个是没有其他人在链上做交易,所以链上的数据都是自己的数据,比较干净。

在这里插入图片描述

第三,我们从链的特性来理解。

区块链的特性总的来说具有公开透明,去中心化,分布式存储数据,点对点数据传输,共识算法,防篡改,可追溯等特点。结合以上对区块链的理解我们可以知道,公有链最具有的特性是数据的完全公开透明化,去中心化,数据防篡改,可追溯,共识算法,以及点对点的数据传输;而联盟链最具有的特性则是它数据的分布式存储,数据的可追溯,点对点数据传输,共识算法,防篡改,去中心化的特点。所有的区块链都符合去中心化,分布式存储,点对点数据传输,共识算法,防篡改以及可追溯的特点。

在这里插入图片描述

在这里有必要补充一下对以上链的的特性的理解。
公开透明,即所有的数据都是透明化的,任何人都可以查看到。
去中心化和防篡改,这两个特性的意思类似的,即数据上链后是永久保存在区块中的,任何人想要改变区块的数据是会破坏整条链的数据的,而且篡改数据的成本是非常高的,所以,区块链上的数据可以一直真实存在在链上。
分布式存储,即区块链的数据是存储在每个人的计算机中的,意即每部计算机都属于区块链的一个节点,数据被分散储存在每个节点中,想象一下每个人手中都有一本记账的账本,所有的账本记录都是保持一致的,恶意的篡改账本的数据这个需要将每个人的账本都修改一遍,这种作恶成本也是很大的,数据被分散的存储到所有的计算机节点中,也就证明了数据存储的安全性。
点对点数据传输,也就是p2p网络传输,是无中心服务器、依靠用户群(peers)交换信息的互联网体系,它的作用在于,减低以往网路传输中的节点,以降低资料遗失的风险。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。
共识算法,可以理解为是为了实现分布式一致性协议而产生的一系列流程与规则。当分布在不同地域的节点都按照这套规则进行协商交互之后,最终总能就某个/某些问题得到一致的决策,从而实现分布式系统中不同节点的一致性。

第四,我们来讲讲链的主要代表。

在这里插入图片描述

区块链刚开始发展的时候是由比特币这个概念带动起来的,传闻是中本聪利用了区块链的技术发行了比特币,从此比特币作为区块链的首个币种价值一路飞涨,这背后是大家对区块链技术的信任形成的共识让其价值飞升,当然可能有其它的因素。这时候的区块链我们称之为以比特币为代表的区块链1.0技术。
区块链公有链的主要代表是以太坊,它是一个开源的具有智能合约功能的公共区块链平台,这时候的区块链我们称之为以太坊为代表的区块链2.0技术。
区块链联盟链的主要代表是Hyperledger Fabric,也就是超级账本,它的出现主要是解决数据的追溯,以及部门之间的分工协作问题。
对于区块链3.0技术的代表,有些认为是Hyperledger Fabric,也有些认为是EOS的出现,这主要归结于3.0解决了数据的处理两问题,因为比特币的交易是每秒7笔左右,以太坊的交易是每秒30笔左右,而3.0技术实现了千级万级的交易量。

最后,我们讲讲区块链的圈子。

在这里插入图片描述

区块链从事的行业里,最开始火起来的就是以比特币为主的币圈。到了以太坊出现的时候,由于ETH代币价值的高涨,以及以太坊的pow挖矿算法机制,导致许多人都开始研究矿机在以太坊上挖矿,这也就是矿圈。由于国家的监管,以及热度的递减,大家开始着手研究区块链对改善现实生活的意义,也慢慢开始研究区块链技术本身,也就过度到了链圈,这时候的开发者们就会开始研究制定自己的链,比较热门的有除以太坊外的波场链,欧科云链,币安链,火币链,EOS链等层出不穷。

至此,对于区块链理解我们已经有了初步的认识和了解了,接下来我们从技术的角度来讲讲如何学习区块链的技术,要作为区块链合格的开发者,我们应该掌握哪些技术栈,让我们继续往下学习吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是区块链? 的相关文章

  • 信号量和互斥锁有什么区别

    这是概念上的区别 比如说 信号 那是多线程同步用的 一个线程完成了某一个动作就通过信号告诉别的线程 别的线程再进行某些动作 互斥锁 这是多线程互斥用的 比如说 一个线程占用了某一个资源 那么别的线程就无法访问 知道这个线程离开 其他的线程才
  • vue自定义指令 v-debounce 防抖

    vue自定义指令 防抖 使用场景 点击查询按钮 或者 点击提交保存按钮 的时候点击次数过多 会多次提交 为了避免这种情况发生 我们可以做个防抖 点击一次后 第二次需要间隔一定的时间才能再次点击 这时候我们能想到可以用vue 的自定义指令di

随机推荐

  • UE4(Unreal Engine4)虚幻引擎视口布局,并且自定义HDRI

    UE4系列文章目录 文章目录 UE4系列文章目录 前言 一 操作步骤 1 准备工作 二 操作步骤 1 UE4中创建第三人称游戏 前言 在UE4中搭建电影级场景 先看下效果 一 操作步骤 1 准备工作 1 在UE4 Unreal Engine
  • nodejs全栈开发学习笔记

    为什么学nodejs 因为听说学会了nodejs可以做全栈开发 哈哈 我也是一个有野心的程序员 其实并没有 nodejs学了好几次 也放弃了好几次 主要原因就是感觉莫名其妙 自学 跟前端开发联系不上 光是环境搭建 Windows系统 就卡死
  • opencv中的transpose和flip

    cv flip 的第三个参数 大于0表示沿y轴翻转 等于0表示沿x轴翻转 小于0表示 x和y同时翻转
  • vc文件操作,内存映射

    vc文件操作 内存映射 各种关于文件的操作在程序设计中是十分常见 如果能对其各种操作都了如指掌 就可以根据实际情况找到最佳的解决方案 从而在较短的时间内编写出高效的代码 因而熟练的掌握文件操作是十分重要的 本文将对Visual C 中有关文
  • 浅谈Vue项目优化心得

    1 打包优化 提取组件的 CSS 到单独到文件 屏蔽 sourceMap 开启 gzip 压缩 公共库使用cdn外链 打包vender时不打包vue vuex vue router axios等 换用国内的 bootcdn unpkg 直接
  • 计算方法(三)矩阵分解1-正交分解(QR分解)

    为什么80 的码农都做不了架构师 gt gt gt 正交分解 矩阵的正交分解又称为QR分解 是将矩阵分解为一个正交矩阵Q和一个上三角矩阵的乘积的形式 任意实数方阵A 都能被分解为 这里的Q为正交单位阵 即 R是一个上三角矩阵 这种分解被称为
  • 手写Mybatis:第20章-Mybatis 框架源码10种设计模式分析

    文章目录 一 类型 创建型模式 1 1 工厂模式 1 2 单例模式 1 3 建造者模式 二 类型 结构型模式 2 1 适配器模式 2 2 代理模式 2 3 组合模式 2 4 装饰器模式 三 类型 行为型模式 3 1 模板模式 3 2 策略模
  • Unity接入TopOn聚合广告平台SDK【聚合了穿山甲,优量汇(腾讯广告),快手,Mintegral,sigmob等各大广告平台SDK】

    TopOn聚合穿山甲 优量汇 快手 Mintegral各大广告SDK教程 接了好几家SDK 都有亿点点蛋疼 直到遇到了TopOn TopOn的文档和SDK相当齐全 包括Android IOS Unity Cocos2dx CocosCrea
  • 数据库动态加载省市区信息,实现三级联动

    本文转载自 http my oschina net zhengweishan blog 402483 摘要 动态的从数据库加载全国省市区 后台使用的是SpringMvc 前台使用的是bootstrap页面展示 demo源码下载地址 http
  • Qt安装包+安装配置说明 (强烈推荐,小白专用)

    链接 https pan baidu com s 1zrhLUP sjWgCQdrFacDQCQ 提取码 uie5内附赠详细安装说明 可以 信我获取
  • es7合并数组相关 报错Uncaught (in promise) TypeError: Invalid attempt to spread non-iterable instance...

    方法一 let o1 a 1 b 2 c 3 let o2 o1 d 4 o2 a 1 b 2 c 3 d 4 let arr1 0 1 2 let arr2 arr1 3 arr2 0 1 2 3 方法二 let o1 a 1 b 2 c
  • 科普:java与C++的区别

    Java与C 是两种广泛使用的编程语言 它们在某些方面存在不同之处 本文将详细介绍Java与C 的区别 一 C 与Java的历史 C 语言是由Bjarne Stroustrup在20世纪80年代初期开发的一种面向对象编程语言 它是C语言的扩
  • 服务器CPU占用率高,如何排查?

    1 定位进程 登录服务器 执行top命令 查看CPU占用情况 top 2 定位线程 如果进程23456占用率高 top Hp23456 进行定位线程 3 定位代码 通过top命令 我们目前已经定位到导致CPU使用率较高的具体线程 比如线程4
  • 电脑如何进入bios模式_电脑BIOS是什么?到底有什么用?如何进入电脑BIOS

    BIOS是英文 Basic Input Output System 的缩略语 直译过来后中文名称就是 基本输入输出系统 其实 它是一组固化到计算机内主板上一个ROM芯片上的程序 它保存着计算机最重要的基本输入输出的程序 系统设置信息 开机后
  • Python3 + Pymysql + mysql 连接方法

    准备材料 1 host地址 127 0 0 1 2 端口号 3306 3 用户名 root 4 密码 5 数据库名 information persons 6 python3 的pymysql库 正式开始 查询 1 首先导入pymysql包
  • C99和C89

    这是c0conut同学的一份作业 也可以理解为总结 为了保留这份作业 写了博客 我尽量使自己写得简单好懂有趣 C99与C89的亲子关系 就如DOM结构一般 C99与C89之间也充满温情 老父亲C89顾名思义出生于89年 也被称为ANSI C
  • validator 重写方法报错

    javax validation ConstraintDeclarationException HV000151 A method overriding another method must not redefine the parame
  • windows常用命令大全

    作者介绍 作者 小刘在C站 每天分享课堂笔记 一起努力 共赴美好人生 夕阳下 是最美的 绽放 目录 运行框命令 cmd中 Windows运行中 快捷键 运行框命令 shutdown s t 后家秒数 计划关机任务 migwiz Window
  • x-oss-process_OSS中的同理心-重要

    x oss process 我不花很多时间在开放源码项目的整个工作日 和许多晚上 上 我对OSS的使用形成了一种或两种意见 特别是在为项目做贡献时 作为一个使用Github之类的工具的社区 我们已经走了很长一段路 这使得在野外发布OSS项目
  • 什么是区块链?

    什么是区块链 今天给大家讲解我们区块链的第一课 我们要学习区块链 首先我们必须得了解什么是区块链 只有理解了区块链的概念 我们才能入门区块链 接下来 我会从浅入深的带着大家去理解区块链的含义 首先 我们从字面上来理解 区块链 包含着两层含义