区块链1——区块链基础

这篇具有很好参考价值的文章主要介绍了区块链1——区块链基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:Yian
时间:2022年 10月 14日
介绍区块链的概念与核心技术如:共识机制、安全机制、存储机制、P2P通信机制、智能合约以及相关的知识补充。

参考资源:《HyperLedgerFabric技术内幕》、互联网博客。(如侵权烦请联系删除)

区块链的概念

先举个例子:如银行作为大型中心化信用机构,用户的转账、交易记录以及余额信息存储在银行数据中心,数据的获取与证伪均有银行提供。而区块链的方式相当于每个用户都有一个账本,当其中一个用户发生交易时,会将这笔交易记录到所有用户的账本上,单个用户篡改自己的账本不影响其他人手中的数据,由大家一起实现对数据的维护。

区块链是一种在对等网络环境下(P2P),通过透明和可信规则,按照时间戳顺序构建不可伪造、不可篡改和可追溯的块链式数据结构。
区块链服务用户可以对本地数据进行修改或删除(恶意节点行为),但是不会影响全网共识后的数据一致性。但是恶意节点不能超过一定比例。
根据不同应用场景,分为三种区块链部署模型

  1. 公有链:任意区块链服务客户端都可以使用,任意节点均可以接入,由所有节点共同参与共识和读写数据,具有较强的去中心化特征,如比特币和以太坊;
  2. 联盟链:只有利益相关的特定区块链服务客户才能使用,节点只有经过授权后才能接入网络,接入节点按照规则参与共识和读写数据,具有较弱的去中心化特征,如超级账本;
  3. 私有链:只有单个区块链服务客户使用,仅有授权的结点才能接入,并按照规则参与共识和读写数据。

区块链上记录的区块对象是打包了一段时间内发生的交易与状态的集合,区块头部保存了上一个区块的哈希值、当前区块的哈希值。
区块链是通过现代密码学与分布式共识机制等技术来确保交易可信,而不是通过大型中心化信用机构解决信任背书问题。

区块链的核心技术

区块链的核心技术有:共识机制、安全机制、存储机制、P2P通信机制、智能合约

共识机制

所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。
举个例子:如我现在位于国外一列火车的某一节车厢里,我座位旁边老妇人的钱包被偷了,她向我投来了怀疑的目光,此时车厢里的一个美国人、一个日本人、一个韩国人、一个泰国人、一个外星人,五个人都说我是好人,基本上可以断定不是我偷的钱包(这五个人都不是恶意节点的话)。

在区块链系统中,共识机制是指实现不同信任主体节点之间建立信任、获取权益的数学算法,提供给分布式网络参识节点以用于确认交易动作引起的账本中的状态数据变化,并且能够达成最终一致性。
当前常见的共识机制有PoW、PoS、DPoS、PBFT等,他们在合规监管、性能效率、资源消耗以及容错性方面各有特点。

  1. Proof of Work(工作量证明)机制,PoW 属于按劳分配,多劳多得,就如同大家在比特币系统中一起进行数学运算,最先运算出的才能获得奖励。进行运算获得奖励的过程称之为挖矿,参与挖矿的人们称之为矿工。“挖矿”即通过自身算力不断计算寻找满足规则和小于难度目标(前若干位全部为0)的哈希值。
  2. Proof of Stake(权益证明)机制,在 PoS 机制中,是不需要消耗电力来进行运算,而是通过抵押 token 来获得打包区块的权利。当一笔交易发生时,系统会对打包区块和验证区块的节点来进行奖励,奖励则是增发或者解锁的 token。
  3. Delegate Proof of Stake(股份授权证明)机制是在 PoS 的基础上进行了改良,举例来说就是大家公认的投出选票,选举出一定数量的代表,让这些代表进行验证和记账等,可以理解为 PoS 的升级版。
  4. Practical Byzantine Fault Tolerance(使用拜占庭容错)算法。PBFT在保证可用性和安全性(liveness & safety)的前提下,提供了(n-1)/3的容错性,意思就是如果系统内有n台机子,那么系统最多能容忍的作恶/故障节点为(n-1)/3个。(作恶节点可以不响应或者回应错误的信息)。
共识机制 优点 缺点
PoW 高度去中心化、安全系数高 资源消耗大、效率不高
POS 效率高、不浪费资源 被动中心化、安全漏洞
DPoS 更高的效率和性能 弱去中心化、安全漏洞
PBFT 容错率达1/3 节点多时效率降低

安全机制

区块链中采用了现代密码学中的哈希算法、对称加密算法、非对称加密算法等来保证数据机密性、完整性、抗抵赖性等安全特性。

  1. 哈希算法,如MD5、SHA-256。哈希算法可以将任意长度的消息明文转换映射为固定长度的二进制串输出,称为哈希值或散列值,又称该消息的指纹或摘要。即使两份数据只有一位不相同,他们产生的哈希值也会完全不具备关联性。
  2. 对称加密算法,如DES、ADE。对称即加密过程与解密过程的密钥是相同的,速度快且占用空间小,缺点是密钥一旦泄露就失去了安全性。适用于较大数据量的加解密过程,不适合签名与验证签名的过程。
  3. 非对称加密算法,为用户提供一组公开密钥和私有密钥,即公钥和私钥。任何人都可以用公钥对数据加密,只有用户能使用私钥进行解密,而且用户可以通过私钥对信息进行签名,签名具有不可伪造性。适用于签名与验签场景。

哈希算法在区块链中的应用:我们可以通过比较由区块数据生成的哈希值来判断当前区块是否遭到篡改。

存储机制

区块链数据通常存储在包括KV键值型数据库、关系型数据库、普通文件等中。
区块链平台常用的KV键值型数据库包括LevelDB、CouchDB、BerkeleyDB等,用于保存区块链中的区块索引信息、状态数据等键值对类型的数据。
超级账本还使用普通文件存储原始的账本区块数据,将共识后的区块数据按protocol buffer编码格式序列化为二进制字节数组后,写入文件进行持久化保存。

P2P通信机制

区块链网络通常采用P2P协议,节点之间直接通过交换方式共享信息。这种分布式架构避免了集中式架构中心节点的性能瓶颈,可以有效利用网络节点的性能与网络带宽,从而提高系统的整体效率。

智能合约

智能合约是交易性的计算机程序,它可以在不需要干预的情况下自动执行协议条款。
就区块链而言,智能合约的本质是数字协议,一旦达到预定的标准,它就会在区块链上存储和执行。一旦有了特定的输入,它就会自动执行预先确定的特定输出。
在超级账本中,智能合约又被称为链码、链上代码(chaincode)智能合约如果存在漏洞会出现安全风险。文章来源地址https://www.toymoban.com/news/detail-406183.html

到了这里,关于区块链1——区块链基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)

    🚨注意🚨 :最近经粉丝反馈,发现有些订阅者将此专栏内容进行二次售卖,特在此声明,本专栏内容仅供学习,不得以任何方式进行售卖,未经作者许可不得对本专栏内容行使发表权、署名权、修改权、发行权、转卖权、信息网络传播权,如有违者,追究其法律责任。 👑

    2023年04月15日
    浏览(44)
  • PTA7-2 求矩阵每行元素的和分数 10作者 张丽华单位 嘉兴南湖学院

    7-2 求矩阵每行元素的和 分数 10 全屏浏览题目 切换布局 作者 张丽华 单位 嘉兴南湖学院 本题要求编写程序,使用指针方式求一个给定的m×n矩阵各行元素之和。 输入格式: 输入第一行给出两个正整数m和n(1≤m,n≤6),再输入m行数据,每行n个整数,每个整数之间用空格分隔

    2024年02月05日
    浏览(60)
  • VS2022部署/安装 QT(以5.14.2为例)

    一,下载并安装Qt Visual Studio Tools   点击扩展,并选择管理扩展                                                二,搜索QT并下载Qt Visual Studio Tools 注意:如果wifi下载很慢,甚至不动。可以尝试用 热点 下载好后,关闭vs2022,它会自动弹出安装界面点击Modify 进行安装 如

    2024年02月16日
    浏览(31)
  • 区块链技术学习笔记(14) 以太坊账户

    比特币系统中采用的是基于交易的账本,在这个模式下并不会显式记录每个账户上会存在多少钱,而是根据UTXO推断余额,既计算拥UTXO中有私钥的币总和,隐私保护较好,使用并不太方便(在交易的时候要证明每一个币的来源,并且在一次交易收到的币UTXO,消费的时候必须全

    2024年02月19日
    浏览(34)
  • 14届蓝桥杯青少组选拔赛C++_2022.11.27

    14届蓝桥杯青少组选拔赛C++_2022.11.27 一、选择题 T1. 执行 cout 5 / 3; 语句后,输出的结果是(   B  )。 A、0 B、1 C、2 D、3 T2. 执行以下代码,输出的结果是( B )。 char a[6] = {\\\'a\\\', \\\'b\\\', \\\'c\\\', \\\'d\\\'}; cout sizeof(a); A、4 B、6 C、8 D、12 T3. 关于C++中的一维数组,以下描述正确的是( B  )。 A、数组中

    2024年02月06日
    浏览(31)
  • 安装VS2022时,出现未能安装包“Microsoft.VisualCpp.Redist.14,version=14.32.31332,chip”=x86报错

    在安装VisualStudio 2022社区版的时候一直出现安装成功,但是有报错未能安装包“Microsoft.VisualCpp.Redist.14,version=14.32.31332,chip”=x86报错。 软件可以正常打开,但是无法创建一个C++的空项目。 参考这位老哥的博客(37条消息) 解决安装VS2022时,出现未能安装包“Microsoft.VisualCpp.Redist

    2024年02月08日
    浏览(59)
  • 0基础小白学习云计算的第八天(作者不易,你的关注就是我最大的动力)

    1、首先输入:vim /etc/my.cnfi进入配置文件 2、第二步:在最下面加入:skip-grant-tables 3、第三步:#validate-password=off(之前学过的修改密码配置把他注释掉) ​ 操作如下图所示 4、重启数据库:systemctl restart mysqld ​ 操作如下图所示 5、描述mysql用户:desc mysql.user; ​ 操作如下图所示

    2024年01月15日
    浏览(30)
  • 数学建模:14 时间序列

    目录 步骤 基本概念 时间序列分解 叠加 / 乘积模型 使用SPSS的实例 步骤 指数平滑模型 Simple模型 线性趋势模型 布朗线性趋势模型 阻尼趋势模型 简单季节性 温特加法模型 温特乘法模型 一元时间序列分析的模型 基础概念 平稳时间序列、白噪声序列 差分方程及其特征方程 滞

    2024年02月09日
    浏览(23)
  • 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之减少命中时间和流水线访问和多组缓存增加带宽(三)

    路预测是一种高速缓存优化技术,它在高速缓存中保存额外的位来预测下一次高速缓存访问的路(或者组内的块)。这种预测可以提前设置多路选择器来选择期望的块,并且在那个时钟周期内,只进行一次标记比较,同时读取高速缓存数据。如果预测正确,高速缓存访问延迟

    2024年02月12日
    浏览(33)
  • 区块链实验室(14) - 编译FISCO-BCOS

    FISCO-BCOS是一种区块链平台,与Hyperledger和Ethereum有些不同,详见FISCO BCOS 区块链 编译FISCO BCOS源码的目的是修改或者新增其中功能模块,进行对比实验,验证新想法、新创意的效果。编译的步骤很简单,按技术文档一步一步进行即可。可能碰到的问题是访问网站raw.githubusercont

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包