区块链共识机制:POW、POS、DPOS、PBFT、POOL
共识机制作为区块链的关键技术之一,在业务吞吐量、交易速度、不可篡改性、准入门槛等等方面发挥重要的作用。
区块链是去中心化的,没有中心记账节点,所以需要全网对账本达成共识。目前有POW、POS、DPOS、POOL四种共识机制。
首先从“拜占庭将军问题”开始(简书:中本聪与拜占庭将军问题),
用区块链技术中非对称加密和可信的分布式网络解决拜占庭将军问题中的共识问题。
非对称加密
可以解决古代难以解决的签名问题:
- 消息传送的私密性
- 能够确认身份
- 签名不可伪造、篡改
作用:保护消息内容, 并且让消息接收方确定发送方的身份
分布式记账场景
入门经典共识机制:
PoW(Proof of Work,工作量证明)
“解决一道数学难题”
“电脑性能越好,挖矿时间越长,获得的回报也越多。”
概念:工作量证明,引入了对一个特定值的计算工作。
POW共识算法应用场景:比特币(BTC)及其引申出来的BCH、BCD等
算法工作描述:
- 矿工们在挖一个新的区块时,必须对SHA-256密码散列函数进行运算,区块中的随机散列值以一个或多个0开始。
- 随着0数目的上升,找到这个解所需要的工作量将呈指数增长,矿工通过反复尝试找到这个解。
解决问题:
- 谁有权记账
- 如何避免记账者作弊
优点:
算法简单,采用大家认可的数学逻辑(找寻随机数),容易实现。安全系数最高,破坏整个系统,需要投入巨大成本。
缺点:
- 大量消耗能源。
- 它的价值回路必须要通过外部输入。也就是说,采用POW的数字货币仍旧不是理想状态的数字货币,因为它们的安全性不直接与使用者相关,而是要通过矿工这个媒介。
POS(Proof of Stake,权益证明)
“拥有的币越多,有记账权的概率就越大?”
因为POW大量消耗能源和安全性不与使用者相关的问题,POS的出现可以解决这些问题:
- 采用POS的货币的安全性直接与使用者相关,省去了矿工这个媒介。
- POS简单说就是,每当发表一条消息的时候,不用证明你付出了什么代价,而要证明你拥有一定数量的钱。而拥有钱代表着,如果你作弊损害了这个系统的安全性,你的钱会贬值,这变相地让你付出了代价。
- 这东西更好的一点是,如果采用POS,实际上连挖矿奖励都不需要,因为POS实际上不需要付出任何代价。
概念:
试图解决POW机制中大量资源被浪费的情况。这种机制通过计算你持有占总币数的百分比,包括你占有币数的时间来决定记账权。
POS应用场景:...
优点:不需要拼算力挖矿,不会浪费电力。缩短了共识达成的时间,效率提高。
缺点:
- 拥有权益的参与者因为可以持币吃利息,所以卖币意愿不强烈,容易产生垄断。
- 所有的确认都只是概率上的表达,存在其他攻击的可能性。挖矿成本低,硬分叉十分容易。
DPOS(Delegated Proof of Stake,委任权益证明)
PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)
POOL(验证池)
学习资料:
区块链共识机制:POW、POS、DPOS、PBFT、POOL的更多相关文章
- (转)区块链共识机制分析——论PoW,PoS,DPos和DAG的优缺点
近期,随着区块链技术在社区中的声音越来越大,业界已经开始从技术角度对区块链进行全方位的解读.作为第一批区块链技术的实现,传统比特币与以太坊在共识机制.存储机制.智能合约机制.跨链通讯机制等领域并没有非 ...
- [转帖][区块链]共识算法(POW,POS,DPOS,PBFT)介绍和心得
[区块链]共识算法(POW,POS,DPOS,PBFT)介绍和心得 置顶 2017-03-12 18:31:19 乐扣老师lekkoliu 阅读数 127953 收藏 更多 分类专栏: 技术管理 区 ...
- [区块链] 共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)
近几天对区块链中几种常见的共识机制(PBFT,Raft,PoW,PoS,DPoS,Ripple)进行了总结.尽量使用简单易懂语言,篇幅较大,想了解的可以只读每个算法介绍中前边的原理.本篇文章主要参考& ...
- 区块链共识机制(POW、POS、DPOS等)的优缺点
一.POW:工作量证明机制 基本原理: 第一代共识机制,比特币的基础.理解起来,很简单,就是“按劳取酬”,你付出多少工作量,就会获得多少报酬(比特币等加密货币).在网络世界里,这里的劳动就是你为网络提 ...
- 区块链共识机制之工作量证明(POW)
像比特币.以太坊.NXT.Bitshares等这些区块链系统,其本质上是一种加密经济组织,它建立在点对点网络上,是去中心化.无管辖的,由密码学.经济学和社会共识来共同维护.这些加密网络因各种原因有着多 ...
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
任何国家都无法限制数字货币.为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技 ...
- 老K漫谈区块链的共识(3)——分布式系统和区块链共识
1. 啥是分布式系统 当我们评价一个新的事物或者介绍一个新的技术的时候,我们不能架空历史和环境,新的事物不可能脱离历史和环境凭空诞生.任何新的事物和新的技术总是或多或少的,与旧的事件以及过去的技术有所 ...
- 区块链共识算法 PBFT(拜占庭容错)、PAXOS、RAFT简述
共识算法 区块链中最重要的便是共识算法,比特币使用的是POS(Proof of Work,工作量证明),以太币使用的是POS(Proof of Stake,股权证明)使得算理便的不怎么重要了,而今PO ...
- 区块链共识算法|RAFT和PBFT的区别
这里有个很形象的比喻: 一个团队一定会有一个老大和普通成员.对于 raft 算法,共识过程就是:只要老大还没挂,老大说什么,我们(团队普通成员)就做什么,坚决执行.那什么时候重新老大呢?只有当老大挂了 ...
随机推荐
- OpenCV 学习笔记 06 SIFT使用中出现版权问题error: (-213:The function/feature is not implemented)
1 错误原因 1.1 报错全部信息: cv2.error: OpenCV(4.0.1) D:\Build\OpenCV\opencv_contrib-4.0.1\modules\xfeatures2d ...
- 9.翻译系列:EF 6以及EF Core中的数据注解特性(EF 6 Code-First系列)
原文地址:http://www.entityframeworktutorial.net/code-first/dataannotation-in-code-first.aspx EF 6 Code-F ...
- 【iCore1S 双核心板_FPGA】例程七:基础逻辑门实验——逻辑门使用
实验现象: 打开tool-->Netlist viewer-->RTL viewer可观察各个逻辑连接 核心代码: //-----------------Module_logic_gate ...
- 在win10企业版x64下使用curl命令
一.curl命令介绍 curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多种Linux发行版中,并且有DOS和Win32.Win64下的移植版本. 详情查看百度百科 ...
- L1&L2 Regularization的原理
L1&L2 Regularization 正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合).其直观的表现 ...
- 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击
第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...
- Nginx 基本命令
基础命令 1.启动 直接点击Nginx目录下的nginx.exe 或者 cmd运行start nginx 2.关闭 nginx -s stop 或者 nginx -s quit stop表示立即停止n ...
- 【转帖】解决远程连接MariaDB(mysql)很慢的方法
在CentOS7上安装完成MariaDB之后,发现无论命令行还是程序中连接MariaDB的时候都很慢,大约要一二十秒,于是网上搜索了一番,发现下面的文章内容: 在进行 ping和route后发现网络通 ...
- duilib进阶教程 -- XML嵌套及自定义控件 (4)
代码下载:http://download.csdn.net/detail/qq316293804/6433937 之前入门教程里已经讲过了自定义控件,这里借着迅雷播放器再次举个例子. 1.我们先给迅雷 ...
- Linux命令行下常用的快捷键
ctrl+a:光标移到行首.ctrl+e:光标移到行尾.ctrl+b:光标左移一个字母ctrl+f:光标右移一个字母 ctrl+h:删除光标前一个字符,同 backspace 键相同.ctrl+d:删 ...