| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 区块链入门二:概念篇 -> 正文阅读 |
|
[区块链]区块链入门二:概念篇 |
关键技术点对点通信p2p 分布式存储每个节点都有账本的副本 加密算法公钥与私钥
哈希函数哈希值的特点:定长、单向、原文改动即哈希变化 作用:哈希、索引 SHA256 交易哈希 非对称加密RSA既可以用于签名,又可以用于加密 与DSA相比,RSA的签名验证速度更快,但生成速度较慢 DSA(数字签名算法)与RSA相比,DSA的签名生成速度更快,但验证速度较慢 ECDSA(椭圆曲线数字签名算法)是DSA(数字签名算法)的椭圆曲线实现。椭圆曲线密码术能够以较小的密钥提供与RSA相对相同的安全级别。它还具有DSA对不良RNG敏感的缺点。 EdDSA(爱德华兹曲线数字签名算法)是一种使用基于扭曲爱德华兹曲线的Schnorr签名变体的数字签名方案。签名创建在EdDSA中是确定性的,其安全性是基于某些离散对数问题的难处理性,因此它比DSA和ECDSA更安全,后者要求每个签名都具有高质量的随机性。 Ed25519是EdDSA签名方案,但使用SHA-512 / 256和Curve25519;它是一条安全的椭圆形曲线,比DSA,ECDSA和EdDSA 提供更好的安全性,并且具有更好的性能(人为注意)。 国密算法SM2SM3区块结构每个节点都包含了账本的副本,即所有区块的副本 区块包含
区块头
块高
区块中,previousblockhash和merkleroot是两个最重要的字段 前者是一个哈希指针,它其实是前一个 Block 的哈希,通过 哈希指针总结:保证了区块之间的连接 Block 结构体中的哈希指针在区块链中有两个作用,它不仅能够连接不同的区块,还能够对 Block 进行验证,保证 Block 中的数据不会被其他恶意节点篡改。 Merkle树总结:保证了一个区块中所有交易的连接 另一个字段 每一个 Block 中的全部交易都是存储在这个 Merkle 树中并将 小结
节点共识算法提出背景无论是 Bitcoin、Ethereum 还是 EOS,作为一个分布式网络,首先需要解决分布式一致性的问题,也就是所有的节点如何对同一个提案或者值达成共识,这一问题在一个所有节点都是可以被信任的分布式集群中都是一个比较难以解决的问题,更不用说在复杂的区块链网络中了。
分布式系统一致性所面临的难题
拜占庭将军问题
FLP (不可能定理)它是分布式系统领域最重要的定理之一,它给出了一个非常重要的结论:在网络可靠并且存在节点失效的异步模型系统中,不存在一个可以解决一致性问题的确定性算法。FLP 不可能原理告诉我们,不要浪费时间去试图为异步分布式系统设计面向任意场景的共识算法。也就是说,异步系统完全没有办法保证能在有限时间内达成一致。 PaXOS是一类能够解决分布式一致性问题的协议,它能够让分布式网络中的节点在出现错误时仍然保持一致;Paxos 可以在没有恶意节点的前提下保证系统中节点的一致性,也是第一个被证明完备的共识算法,目前的完备的共识算法包括 Raft 本质上都是 Paxos 的变种。 POW(proof of work,工作量证明)机制工作量证明的关键特点就是,分布式系统中的请求服务的节点必须解决一个一般难度但是可行(feasible)的问题,但是验证问题答案的过程对于服务提供者来说却非常容易,也就是一个不容易解答但是容易验证的问题。 这种问题通常需要消耗一定的 CPU 时间来计算某个问题的答案,目前最大的区块链网络 - 比特币(Bitcoin)就使用了工作量证明的分布式一致性算法,网络中的所有节点计算通过以下的谜题来获得当前区块的记账权。 由于工作量证明需要消耗大量的算力,同时比特币大约 10min 才会产生一个区块,区块的大小也只有 1MB,仅仅能够包含 3、4000 笔交易,平均下来每秒只能够处理 5~7(个位数)笔交易,所以比特币网络的拥堵状况非常严重。 POS(proof of stack,权益证明)机制引入奖励和惩罚机制,与工作量证明相比,权益证明不需要消耗大量的电力就能够保证区块链网络的安全性,同时也不需要在每个区块中创建新的货币来激励矿工参与当前网络的运行,这也就在一定程度上缩短了达成共识所需要的时间,基于权益证明的 Ethereum 每秒大概能处理 30 笔交易左右。 DPOS(Delegated Proof-of-Stake,委托权益证明)机制能够让每一个人选出可以代表自己利益的人参与到记账权的争夺中,这样多个小股东就能够通过投票选出自己的代理人,保障自己的利益。整个网络中选举出的多个节点能够在 1s 中之内对 99.9% 的交易进行确认,使用委托权益证明的 EOS 能够每秒处理几十万笔交易,同时也能够比较监管的干预。 PBFT机制PBFT(Practical Byzantine Fault Tolerance)共识算法可以在少数节点作恶(如伪造消息)场景中达成共识,它采用签名、签名验证、哈希等密码学算法确保消息传递过程中的防篡改性、防伪造性、不可抵赖性,并优化了前人工作,将拜占庭容错算法复杂度从指数级降低到多项式级别,在一个由(3f+1)个节点构成的系统中,只要有不少于(2f+1)个非恶意节点正常工作,该系统就能达成一致性,如:7个节点的系统中允许2个节点出现拜占庭错误。 容错节点数:f 节点类型
节点ID节点索引视图PBFT共识算法使用视图view记录每个节点的共识状态 Raft机制Raft(Replication and Fault Tolerant)是一个允许网络分区(Partition Tolerant)的一致性协议,它保证了在一个由N个节点构成的系统中有(N+1)/2(向上取整)个节点正常工作的情况下的系统的一致性,比如在一个5个节点的系统中允许2个节点出现非拜占庭错误,如节点宕机、网络分区、消息延时。Raft相比于Paxos更容易理解,且被证明可以提供与Paxos相同的容错性以及性能,其详细介绍可见官网及动态演示。 节点类型
rPBFT机制POW类算法的缺陷POW算法因如下特点,不适用于交易吞吐量大、交易时延要求低的联盟链场景:
rPBFT共识算法的提出
rPBFT节点类型
核心思想epoch_block_num轮共识后,将共识委员节点替换为验证节点;将部分验证节点替换成共识委员节点 2个关键参数
算法流程
算法分析
CA数字证书认证机构(英语:Certificate Authority,缩写为CA),也称为电子商务认证中心、电子商务认证授权机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。 区块链中的交易与共识区块链账户的组成部分: 私钥、公钥与地址 交易包含:
交易步骤:
比特币是什么?只具备发币、记账功能的世界银行 世界上第一个被证明成功的区块链APP 目标争夺记账权、确保账本的唯一性 比特币私钥的形式
区块链基础架构模型应用场景 |
|
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 3:11:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |