PoW 工作量证明
PoW 工作量证明,是双花问题的预防机制。
绝大多数的加密货币都采用这种共识算法机制,一般称为保障加密货币安全的账本
什么是双花问题?
基本可以看作,一次请求被当作两次请求使用,也就是说重复执行。
这在分布式系统中非常常见,同时问题也非常严重。
PoW 必要性
区块链是所有人可见的庞大数据库,人人都可以查看资金之前的使用情况
基本出现在交易的透明性上。
当出现一笔交易时,该笔交易达成后,会记录该交易的信息,并公开这些交易记录,让所有人都可以追踪这些交易信息。
当然,交易顺利的话会是这种情况,而出现大量的参与者,可能就会产生一定的问题。
- 可能交易是攻击方伪造的
可能会导致交易不被信任,这时候PoW算法就出来了
工作量证明确保用户不得支付其无权动用的资金
PoW 和 挖矿
工作量证明是一种基础性算法,它为矿工在工作量证明区块链上进行的工作设置难度和规则
挖矿就是“工作”本身
- 挖矿是向区块链中添加有效区块
链的长度有助于网络跟随区块链的正确分叉
“工作” 完成得越多,链越长,区块编号就越大,就更能确定网络达到最新状态
PoW
PoW要求矿工经过激烈的试错竞赛,找到一个区块的随机数。
简单来说,谁的算力更高,谁在共识交易阶段威望就越高
只有具备有效随机数的区块才能加入区块链中
使用哈希算法,矿工在会在尝试非常多次运算,直到生成最接近目标值的哈希值。
这个哈希即是新区块的哈希值。
工作量证明的目标是**延长链**。
最长的链是最可信的有效链,因为需要完成最多的计算工作来生成它。
在以太坊的工作量证明体系中,几乎不可能创建新的区块来清除交易、创建虚假交易或维护第二条链。
那是因为恶意矿工总是需要比其他人更快地解出区块随机数。
恶意矿工将需要超过 51% 的网络挖矿算力才能击败其他人。
这种海量的“工作”需要大量昂贵的算力,而且消耗的能源甚至可能超过攻击所得的收益。
工作量证明还负责向系统中发行新货币并激励矿工完成工作。
对工作量证明提出的一项主要批评是保证网络安全所需的能源消耗。 为了维持安全和去中心化,采用工作量证明的以太坊每年消耗大量能源。
| 优点 | 缺点 |
|---|---|
| PoW不需要启动的“资金” | PoW需要大量能源 |
| PoW保持了比特币和以太坊的安全性和中心化 | 设备贵 |
| 容易实施 | 随着算力增加,矿池可能主导挖矿过程,导致中心化和安全风险 |
PoS 股权权益证明
先说结论:
- PoS 就是为了解决PoW能耗高、扩展性差的问题而设计的。
PoS 更为环保、高效
定义
PoS是一种基于持有代币数量及时间来决定区块链网络中下一个区块生产者(验证者)的共识机制。
与PoW通过计算能力竞争不同,POS依赖于验证者的“权益”
在POS系统中,用户通过锁定一定数量的代币作为“押金”,成为验证节点
系统根据节点所持代币的数量和时间(称为“币龄”)来随机选择验证节点创建新区块。
被选中的验证节点负责验证交易并添加新区块到区块链上,作为回报,他们将获得一定的区块奖励和交易费用。
关键机制
币龄与随机选择:
- 币龄,即代币持有时间与数量的乘积
- 节点的币龄越高,被选为下一个区块生产者的概率越大。
一旦节点成功创建新区块,其币龄将被清零,代币解锁,但节点可以立即重新投入以积累新的币龄,继续参与下一轮的区块生产竞争。
利息与通胀控制
- PoS机制鼓励代币持久,持有代币不仅意味着拥有网络的决策权,还能通过区块验证获得额外的代币奖励
安全性与攻击成本
相较于PoW,POS显著降低了51%攻击的成本。
同时,为了防止恶意者操控网络,PoS设计了一系列的惩罚机制
通常惩罚机制非常的严厉
| 优势 | 缺陷 |
|---|---|
| 减少能源消耗 | 可能导致权力集中 |
| 更快的交易处理速度 | 会有持有大量代币不积极参与网络维护的验证者 |
| 通过经济激励和惩罚机制,提高网络抗攻击性 | 初始分配代币可能会有参与者过度控制网络 |
| 更好的扩展性 |
DPoS 委托人权益证明机制
委托权益证明 Delegate Proof of Stake(DPoS)
持币用户通过抵押代币获得选票,以投票的方式选出若干的节点作为区块生产者,代表持币用户履行产生区块的义务。
DPoS与公司董事会制度相似,让持币用户将生产区块的工作委托给更有能力胜任的专业人士去完成,同时也能享受参与出块获得的奖励。
用户投票最多的若干节点成为出块节点,以EOS为代表是21个节点。
在每一轮共识中,轮流选出一个区块节点产生区块,并广播给其他的出块节点进行验证。
若节点在规定时间内无完成出块,或产生无效区块,会被取消资格,取而代之的是重新投票选取新的出块节点。
在DPoS共识算法中,区块链的正常运转依赖于受托人(Delegates),这些受托人是完全等价的。受托人的职责主要有:
提供一台服务器节点,保证节点的正常运行;
节点服务器收集网络里的交易;
节点验证交易,把交易打包到区块;
节点广播区块,其他节点验证后把区块添加到自己的数据库;
带领并促进区块链项目的发展;
受托人的节点服务器相当于比特币网络里的矿机,在完成本职工作的同时可以领取区块奖励和交易的手续费
PBFT
PBFT在保证可用性和安全性(liveness & safety)的前提下,提供了(n-1)/3的容错性
意思是:
如果系统内有n台机子,那么系统最多能容忍的作恶/故障节点为(n-1)/3个。
作恶节点可以不响应或者回应错误的信息
优点:
通信复杂度O(n^2)。
可以工作在异步环境中,并且通过优化在早期算法的基础上把响应性能提升了一个数量级以上。
使用了加密技术来防止欺骗攻击和重播攻击,以及检测被破坏的消息。
消息包含了公钥签名、消息验证编码和无碰撞哈希函数生成的消息摘要
适用于permissioned systems (联盟链/私有链),能容纳故障节点,也能容纳作恶节点。
要求所有节点数量至少为3f+1(f为作恶/故障不回应节点的数量),这样才能保证在异步系统中提供安全性和活性。
解决了原始拜占庭容错(BFT)算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。
缺点:
- 仅仅适用于 permissioned systems (联盟链/私有链)。
- 通信复杂度过高,可拓展性比较低,一般的系统在达到100左右的节点个数时,性能下降非常快。
- PBFT在网络不稳定的情况下延迟很高。
🎶🥸🏏区块链专栏前瞻
- 【区块链技术(01)】区块链概述与认识区块链基础知识;区块链标识、哈希值、梅克尔树、难度确认
- 【区块链技术(02)】区块链三种类型:公有链、私有链、联盟差异;激励问题、最终确定性问题
- 【区块链技术(03)】区块链核心技术:哈希与加密算法、智能合约;非对称加密算法与默克尔树;智能合约工作原理与区块链的关系
- 【区块链技术(04)】区块链核心技术:分布式网络的定义和特点;分布式账本的特性、实现与工作流程;共识机制
- 【区块链技术(05)】区块链核心技术:哈希算法再区块链中的应用;区块哈希与默克尔树;公开密钥算法、编码和解码算法(BASE58、BASE64)
- 【区块链技术(06)】为什么分布式系统会存在数据一致性问题?本文带你理解:CAP和FLP定理、拜占庭将军问题;Paxos和Raft两种分布式算法
💕👉博客专栏
SpringCloud微服务-从Spring出发学习从0学习微服务!
Golang专栏-包含基础、Gin、Goam等知识
云原生专栏-包含k8s、docker等知识
从0开始学习云计算-华为HCIP证书
JUC专栏-带你快速领悟JUC的知识!
JVM专栏-深入Java虚拟机,理解JVM的原理
基于Java研究 数据结构与算法-包含贪心算法、加权图、最短路径算法等知识
Docker专栏-上手热门容器技术Docker
SpringBoot专栏-学习SpringBoot快速开发后端
项目管理工具的学习-设计技术:Maven、Git、Gradle等相关管理工具
JavaSE-全面了解Java基础
JS专栏-使用JS作的一部分实例~
使用CSS所作的一部分案例