区块链概念介绍

2023-10-26

区块链定义

区块链是一些技术集成的、适用于多方博弈、由多方共同对数据背书的数据存储工具。区块链的核心技术包含块链式存储、点对点通讯、密码学、共识机制、智能合约等。

区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的技术保证数据传输和访问控制的安全、利用有自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构和计算范式。

核心技术

块链式数据结构

区块链是由一个个区块组成,区块之间通过索引连接,形成一条由区块组成的链条。每个区块包含若干条交易(transaction),也可称事务,每个区块的交易数量可进行配置。每条交易都有一个交易哈希,作为独一无二的标识符。当一个区块形成之后,便会形成这个区块的区块哈希,包含在这个区块的区块头里,同时包含的还有父区块的哈希、形成区块的时间戳、默克尔树(公链有),而这个区块上一个区块便称为它的父区块,并且索引会指向父区块。这样的块链式存储结构保证了区块中的数据无法被篡改:当程序员对A区块中的交易信息进行篡改,那么该A区块头中存储的区块哈希和当前区块哈希无法对应,程序员需要再篡改A区块头中的区块哈希,而这样和子区块头保存的父区块(A区块)哈希对应不上,程序员需要再篡改子区块中保存的哈希,以此类推,最终程序员需要将A区块之后的所有区块进行篡改,其篡改成本较大。

点对点通讯

以往的中心化服务器无论是计算压力还是安全性都是短板,而采用分布式存储和点对点通讯就可以极大地解决这个问题。区块链至少需要有3个节点,相互之间通过P2P协议进行通讯,因为是分布式存储,算力可以分布到各存储终端。因为非中心化存储,并且每个节点(全节点)都保存有一套相同的存储数据,如果要对存储的数据进行篡改,那么就要对2/3的节点进行篡改,篡改成本进一步提高。

密码学

密码学包含对称加密(即用同一套密码来验证),非对称加密(一对公私钥),哈希算法。区块链大量采用非对称加密,每个区块链用户都会获得一对公私钥,公钥类似于用户的账号,私钥类似于密码需妥善保存。以比特币为例,A用户向B用户转账,A用户需要知道B用户的公钥信息,B用户收到转账,需要用匹配公钥的私钥才能解密。而B用户想要知道这笔转账是否是A用户转来的,可以用A的公钥进行验签,因为A用户在转账的时候,会用A的私钥进行加密(签名)。应用密码学保证了数据的隐私性,在当前数据被滥用、用户隐私被肆意侵犯的情况下,密码学对用户数据的重要性将会越来越被重视。

签名

即数字签名,是电子签名的一种特定形式,指利用非对称加密,将私钥信息附着在电子信息、文件上。验签:即验证签名信息,在这里即利用公钥对私钥进行验证,如果两者匹配,即验证成功。

共识机制

在以上技术的基础上,需要考虑的便成为了多方之间的联盟治理,否则数据的无序增长会造成这个区块链的瘫痪:同一时间多个节点录入的不同信息,应该如何有一个统一的标准规则去治理。共识机制即一条规则,将哪些数据应该记录在区块中,如何记录,谁来记录,奖励机制做出统一的规定。典型的共识机制包含公钥的POW、联盟链的PBFT、RPCA等,还有一类联盟链的共识机制,以牺牲正确率为代价大幅增加共识效率,其中的代表如paxos、raft。

分片共识

将网络和交易都进行分片,网络分成若干个片区,每个片区都有一组可完整共识的节点,共识开始时,将交易传给网关节点,网关节点将交易放到交易池中,分片后分组分发给各片区,分片节点共识后形成初步区块microledger,传给委员会节点。委员会节点也承担自己片区的共识任务,将所有片区的初步区块组合形成最终区块finalLedger,并传给网关、同步SYNC节点、分片节点,最终区块在全网同步。分片共识有一些局限性,一般的单链共识BFT,可容错3F+1节点,即4个节点可容错1个,7个节点可容错2个。

智能合约

合约定义

智能合约(SmartContract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。其本质是一套运行在区块链上的程序,基于区块链不可篡改的特性,保证了这段程序是公认的、单个机构无法篡改。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。实际上,一个智能合约是一套以数字形式定义的承诺(Promises),包括合约参与方可以在上面执行这些承诺的协议。

合约历史

在以太坊之前无法使用智能合约,以太坊出现后才可以在区块链上写程序。

合约生命周期

区块链中,一份智能合约的典型的生命周期包括:

合约编写,使用合约开发语言编写智能合约;

合约编译,使用合约编译器将智能合约编译为字节码;

合约部署,将编译得到的字节码部署到区块链上;

合约调用,客户端将调用合约方法的交易发送到区块链节点执行;

合约升级,即根据业务需求修改合约代码,重新编译后再更新到区块链上;

合约冻结,冻结后的合约不再允许新的调用,该特性用于合约缺陷下的紧急干预或者合约下线。

智能合约是区块链不可或缺的一个组件,其实现了预先规定的业务流程,与普通程序的区别在于其可多人同时执行,并根据执行结果决定是否要继续提交。

在平台上,用户可自动选择部署、启动、停止智能合约。

Fabric中智能合约也称链代码(Chaincode),链代码将业务网络交易封装在代码中,最终在一个 Docker 容器内运行。用户可以在线下进行开发和测试。

实际应用

目前大火的NFT即是使用了智能合约,其中ERC721和1155协议被广泛应用。

其他适用于产业中的智能合约也比比皆是。

跨链技术

定义

跨链是多条链之间信息互通,进行链上信息的转移。

种类

包含公证人机制、中继链、侧链、哈希锁定等。

难点

目前同构链(相同的底层区块链框架)之间跨链较简单,异构链跨链会存在技术壁垒。跨链技术存在一些弊端,比如公证人机制存在一定中心化。

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

区块链概念介绍 的相关文章

  • 疯壳AI语音及人脸识别3-3语音传输与解析显示

    详情地址 https fengke club GeekMart views offline ai 购买链接 https fengke club GeekMart su fKw7Nb7oC jsp 视频地址 https fengke club
  • 源码安装PHP

    安装PHP 阿铭写这本教程时 php当前最新版本为5 5 相信大多网站还在跑着5 2甚至更老的版本 其实5 2版本的php很经典也很稳定 因为阿铭的公司一直在使用5 2版本 但是考虑到版本太老 难免会有些漏洞 所以建议你使用5 3或者5 4

随机推荐

  • 电子科技大学操作系统期末复习笔记(一):操作系统概述

    目录 前言 操作系统概述 操作系统的目标与功能 操作系统的定义 目标 功能 操作系统的历史 单用户系统 简单批处理系统 多道批处理系统 分时系统 个人电脑 分布式系统 互联网时代 移动计算时代 实时系统 操作系统的基本特征 并发 共享 虚拟
  • C++系统的避免各种指针错误

    C 常见的内存问题与解决 原始指针 1 动态内存使用者 仅仅是使用 不负责该对象的生命周期 这种情况下原始指针不会有任何问题 简洁明了 不会影响引用计数 更不会导致循环引用 2 几乎所有的第三方库都是以这种方式使用用户的数据的 智能指针 1
  • linux sleep 头文件

    include
  • Burpsuite使用

    Burpsuite使用 简介 Burp Suite 是用于攻击web 应用程序的集成平台 它包含了许多工具 并为这些工具设计了许多接口 以促进加快攻击应用程序的过程 所有的工具都共享一个能处理并显示HTTP 消息 持久性 认证 代理 日志
  • 编写PE文件解析器(一)

    第一篇先写一个PE格式解析器 学了那么久了写出来防止自己忘记 顺便练练手 PE格式解析是比较基础的内容 后面再越写越深 我写这个不是介绍pe格式 而是说编写解析代码 解释定义什么的网上一堆就不粘了 重要的定义我尽量简洁的描述清楚就行 如果想
  • element-ui表头动态渲染

  • NodeJS 获取指定时区的时间

    获取指定时区的时间 param offset 时区 returns Date 指定时区的 时间信息 module exports getZoneTime offset gt 取本地时间 let localtime new Date 取本地毫
  • mac下的readelf和objdump

    本文转载至 http www cnblogs com zlcxbb p 6059517 html ELF文件包括 1 可重定位的目标文件 2 可执行的目标文件 3 可被共享的目标文件 可以用file命令来看目标文件是否是ELF文件 在lin
  • matlab2018求多元函数驻点,机械优化设计课后习题答案.doc

    第一章习题答案 1 1 某厂每日 8h制 产量不低于1800件 计划聘请两种不同的检验员 一级检验员的标准为 速度为25件 h 正确率为98 计时工资为4元 h 二级检验员标准为 速度为15件 h 正确率为95 计时工资3元 h 检验员每错
  • 笔记:java、android网络交互频繁gc

    背景 纯手写没用三方异步方式网络通讯 现象 execute 之后log出现大量gc 内存总体没有多大变化 频繁出现的gc导致UI等待界面卡顿也着实吓了我一跳 解决思路 1 断点调试跟踪了一下发现是execute的问题 因为其他交互没有出现过
  • 信息学竞赛中的时间复杂度以及算法内容

    信息学竞赛一般的时间限制是1秒或2秒 在这种情况下 C 代码中的操作次数控制在 1 0 7 1 0 8 10 7 10 8 107
  • score-based generative models (Yang Song) 笔记

    20220524 Yang Song s blog 文章目录 20220524 方法 方法 The score function score based models and score matching Fisher divergence
  • Mybatisplus报错@TableId can‘t more than one in Class解决方案

    Mybatisplus报错 TableId can t more than one in Class解决方案 问题背景 解决方案 Lyric 能不能原谅我 问题背景 Caused by org springframework beans f
  • 安装es-header插件

    1 官网下载https github com mobz elasticsearch head 2 解压 3 进入解压目录 调出cmd窗口 确定自己已经安装了node 如下确定 没有自行下载安装 4 输入前端包安装命令 等待几分钟下载 npm
  • 在android中opencv视频采集,【Android】【opencv】实现摄像头拍照和录像

    1 0 需求 在安卓开发板上实现视频监控功能 并能后台监控 由于后期可能跑视频识别 所以考虑用OpenCV实现 通过OpenCV Manager进行动态库的链接 实现帧的预览和保存 android版本 5 0 1 开发平台 Android
  • 1、VScode汉化以及如何设置跳转到函数定义

    一 汉化 1 首先打开软件 软件默认是英文配置状态 如图所示 2 使用快捷键 Ctrl Shift P 进入如下界面 3 然后在弹出的界面中 输入 configure language 然后选择 install additional lan
  • CocosCreator在电脑Web打印vConsole日志的问题

    忘了什么时候开始 Web端的日志打印的文件输入信息全是vconsole min js文件 很纠结啊有木有 完全不知道日志的出处 日志输入如以下图片 官方还没有给出对于这个问题的配置是怎么样解决的 所以我们自己搞定 我们进入CocosCrea
  • [linux kernel] 内核下RX8025对接系统时钟

    系统版本 Ubuntu18 04 64 编译器版本 gcc version 7 4 0 Ubuntu Linaro 7 4 0 1ubuntu1 18 04 1 uboot版本 2018 07 linux4sam 6 0 板子型号 at91
  • [JavaWeb] 登录页面记住密码,账号或密码错误

    个人主页 沫洺的主页 系列专栏 JavaWeb专栏 JavaSE专栏 Java基础专栏 vue3专栏 MyBatis专栏 Spring专栏 SpringMVC专栏 SpringBoot专栏 Docker专栏 Reids专栏 MQ专栏 Spr
  • 区块链概念介绍

    区块链定义 区块链是一些技术集成的 适用于多方博弈 由多方共同对数据背书的数据存储工具 区块链的核心技术包含块链式存储 点对点通讯 密码学 共识机制 智能合约等 区块链是利用块链式数据结构来验证与存储数据 利用分布式节点共识算法来生成和更新