XRP共识算法
共识协议属性
XRP Ledger使用的共识协议不同于之前的任何区块链。该协议称为XRP Ledger共识协议,旨在具有以下重要属性:
- 使用XRP Ledger服务的每个人都可以就最新状态达成一致,且交易都是按顺序执行。
- 单个节点或者管理员无法操作所有有效的交易
- 即使某些节点的加入, 离开,或者其他原因,整个服务也不会瘫痪。
- 如果太多参与者无法访问或作恶,则交易无效
- 与大多数其他区块链系统不同,确认交易不需要浪费资源
账本历史
XRP Ledger处理区块中的交易称为账本版本或简称账本, 每个账本 包含三个部分:
- 存储在账本中账户的所有余额和当前状态
- 已应用于前一个账本来产生此账本的一组交易
- 有关当前账本的元数据,如其账本的索引,唯一标识的Hash值,以及有关用作构建此账本的基础的父账本的信息。

每一个账本都使用账本索引进行编号, 并构建在前一个的账本之上, 账本的索引起始值为1 , 由当前的账本的索引可以一直追溯到第一个账本. 如同Bitcoin 和Eth一样, 使得所有的交易及结果都记录在链上并完全公开 . 与许多区块链技术不同,XRP Ledger中的每个新“块” 都包含整个当前状态 , 所以你不需要收集整个历史( 区块)就知道现在发生了什么 .
XRP Ledger Consensus Protocol的主要工作是将前一个账本的一组交易达成共识 , 以明确定义他们的执行顺序,确认每个人都得到相同的结果 . 如果成功发生这种情况,则认为账本已经过验证 . 然后 ,该过程将继续构建下一个分类帐版本
信任的验证
XRP Ledger共识机制背后的核心原则是,一点点信任都有很长的路要走。p2p 网络中的每个参与者都选择一组( 专门配置为积极参与共识的服务器)validators, 更重要的是,所选择的验证者(节点)不应该相互串通,以完全相同的方式打破做虚假验证 。 此列表有时称为唯一节点列表(Unique Node List)或UNL .
随着网络的发展,每个节点都会监听其可信任的节点 , 只要有足够的比例同意一组交易并且结果是指定的账本,节点服务器就会宣布达成共识。 如果他们不同意,验证人会修改他们的提案,以便与他们信任的其他验证人,重复这一过程,直到他们达成共识
只要可信任的节点出现故障的比率没有超过20%, 整个网络依然可以共识 , 也就是说若想确认一笔无效的交易, 需要全网80%以上的信任节点达成共识 . 如果超过20%但不到80%的可信节点(验证人)出现故障,网络就会停止进展。
关于更多共识安全参考 : Consensus Protections Against Attacks and Failure Modes.
XRP共识算法的更多相关文章
- Proof of Elapsed Time--Hyperledger Sawtooth 共识算法
这一片文章中我们介绍一下Hyperledger Sawtooth项目中所提出的PoET共识算法, 现有的区块链共识算法大概可以分为两种: Nakamoto consensus:通过乐透的方式选择出一个 ...
- RChain的Casper共识算法
RChain的Casper共识算法是基于Vlad Zamfir的correct-by-construction共识协议和CTO Greg Meredith和其他RChain成员讨论而来的.他们还为Ca ...
- [区块链] 共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)
近几天对区块链中几种常见的共识机制(PBFT,Raft,PoW,PoS,DPoS,Ripple)进行了总结.尽量使用简单易懂语言,篇幅较大,想了解的可以只读每个算法介绍中前边的原理.本篇文章主要参考& ...
- go-ethereum源码分析 PartII 共识算法
首先从共识引擎-Engine开始记录 Engine是一个独立于具体算法的共识引擎接口 Author(header) (common.Address, error) 返回打包header对应的区块的矿工 ...
- raft共识算法
raft共识算法 分布式一致性问题 如果说,服务器只有一个节点,那么,要保证一致性,没有任何问题,因为所有读写都在一个节点上发生.那如果server端有2个.3个甚至更多节点,要怎么达成一致性呢?下面 ...
- (二)区块链的共识算法:PoS 及其 例子 代码 实现
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- 共识算法之POW
简介 POW是proof-of-work的缩写,中译为:工作量证明,是比特币中采用的共识机制,也被许多公有区块链系统所采用(比如以太坊).工作量证明机制基础是哈希运算,因此要理解pow首先要明白哈希函 ...
- 浅析Hyperledger Fabric共识算法 摘自http://www.cocoachina.com/blockchain/20180829/24728.html
Hyperledger Fabric共识算法 区块链系统是一个分布式架构,交易账本信息由各个节点管理,组成一个庞大的分布式账本.在分布式系统中,各个节点收到的交易信息的顺序可能存在差异(例如,网络延迟 ...
- 共识算法:PBFT、RAFT
转自:https://www.cnblogs.com/davidwang456/articles/9001331.html 区块链技术中,共识算法是其中核心的一个组成部分.首先我们来思考一个问题:什么 ...
随机推荐
- [Erlang21]Erlang性能分析工具eprof fporf的应用
前段时间项目改代码突然cpu波动很大,排查了好久都没有找到原因,只能求助于性能测试工具 : <<Erlang程序设计>>----Joe Armstorng[哈哈,登月第一人 ...
- JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误
问题一:出现控制台坏的响应错误一Bad request 控制台出现错误如下: Bad Request request: http://hostIP:8983/solr/update?wt=javabi ...
- asp.net——Josn转DataTable(转)
使用UI框架开发的时候就常常用到DataTable转Json的情况,但是最近完成一个微信公众号开发的项目,需要把微信接口传过来的json值作为转为DataTable后绑定到服务器控件上. 在网上找了很 ...
- 1-初步了解C#-语言基础
本篇博客对应视频讲解 前言 终于开始讲语言了,我选择讲C#.为什么呢?因为C#是很好的入门语言,简洁.全面,面向对象类型安全,开发体验好,上手容易.而其他的语言也已经有人讲了很多了,C#相对来说要少一 ...
- 201621123023《Java程序设计》第8周学习总结
一.本周学习总结 二.书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 由图可知,传入参数后调用indexOf函数来判断是否存在,会循环整个eleme ...
- Mybatis 的输入参数学习
mybatis 的输入参数: 指得就是parameterType的参数 这个参数就代表的sql语句中的输入参数 sql语句中的参数使用 有两种方式 : 使用#{} 获取: 8个基本数据类型 + S ...
- Code Chef February Challenge 2019题解
传送门 \(HMAPPY2\) 咕 话说这题居然卡\(scanf\)的么??? int T;cin>>T; while(T--){ cin>>n>>a>> ...
- 洛谷P4069 [SDOI2016]游戏(李超线段树)
题面 传送门 题解 如果我们把路径拆成两段,那么这个路径加可以看成是一个一次函数 具体来说,设\(dis_u\)表示节点\(u\)到根节点的距离,那么\((x,lca)\)这条路径上每个节点的权值就会 ...
- 调用jdbc已经写成的方法----jdbc工具类抽取方式二
先创建db.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/web08?useUnicode=true& ...
- P5242 [USACO19FEB]Cow Dating
题目链接 题意分析 首先我们可以得出计算公式 \[s_i=\prod_{k=1}^i(1-p_k)\] \[f_i=\sum_{k=1}^i\frac{p_k}{1-p_k}\] 那么 \[ans(i ...