分布式共识算法 (四) BTF算法(区块链使用)
系列目录
一、引子
二、常见BFT共识算法
2.1 POW算法
工作量证明(POW,Proof-of-Work)是一个用于阻止拒绝服务攻击的协议,它在 1993 年被 Cynthia Dwork 和 Moni Naor 提出,它能够帮助分布式系统达到拜占庭容错。
1. 算法核心
使用穷举法,不停的用哈希算法(比如SHA-256)去运算,直到使得运算出的哈希值前面若干位都是0,即小于某个值。掌握了全网51%的算力,就可以所有结果。
SHA-256:是由256位二进制的数字(0和1)构成,转换后由64位16进制的数表示,比如:6b88c087247aa2f07ee1c5956b8e1a9f4c7f892a70e324f1bb3d161e05ca107b。
这个工作量随着哈希值前面0的位数的增加而呈指数型的增加,但是检验这个哈希值只需要进行一次哈希运算就可以了。
2.特点
完全去中心化,安全性高,每个节点是公平的,被攻击成功的可能性小。需要耗费大量的算力,造成能源浪费,交易吞吐量有限。
3.应用
比特币,莱特币.每秒个位数交易量。
2.2 POS算法
权益证明(POS,Proof-of-Stake)最早在2013年被提出,并在Peercoin系统中实现,类似股东机制,拥有股份越多的人越容易获取记账权。
1.算法核心
通过保证金来对赌一个合法的块成为新的区块,收益为抵押资本的利息和交易服务费。保证金越多,获得记账权概率越大。恶意参与者存在保证金被惩罚的风险。一般情况下,掌握超过全网1/3的资源,才可能左右最终的结果。
2.特点
3.应用
Ethereum 每秒大概能处理 30 笔交易左右。
2.3 DPOS算法
========参考==========
https://www.jianshu.com/p/f73cee95821e
https://blog.csdn.net/yangwei256/article/details/83023649
最新文章
- 网页语言有html,php.jsp,无论什么语言浏览器总是能正常显示,这个解析工作是浏览器完成的吗?
- HTML自学基础
- 最冤枉的关键字----sizeof
- centos的版本和内核查看
- UIImagePickerController 如何显示中文界面
- C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP)
- Go Code
- Angularjs基础(学习整理)
- React中路由传参及接收参数的方式
- Webpack 4教程 - 第六部分 增强开发时体验
- cf C题
- 9_grep及正则表达式
- 01.File文件基本操作
- [剑指Offer]6-从尾到头打印链表
- Docker网络简介
- MFC中如何显示颜色选择对话框
- 正则表达式matcher.group()用法
- 腾讯云-搭建 Python 开发环境
- HeadFirst Jsp 09 (JSTL)
- Unity3d平台信息设置
热门文章
- 【CodeChef】December Challenge 2019 Div1 解题报告
- 洛谷 P5658 括号树
- Educational Codeforces Round 37 (Rated for Div. 2) E. Connected Components? 图论
- [Vue专题] 对比vue-cli2.x和vue-cli3.x的搭建
- Python变量与内存管理
- transaction事务案例--银行转账
- C语言程序设计100例之(7):级数求和
- hive 标准hql建表语法格式
- C#中对文件进行选择对话框打开和保存对话框进行复制
- Java性能 -- Lock优化