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 区块链技术中,共识算法是其中核心的一个组成部分.首先我们来思考一个问题:什么 ...
随机推荐
- SparkSQL大数据实战:揭开Join的神秘面纱
本文来自 网易云社区 . Join操作是数据库和大数据计算中的高级特性,大多数场景都需要进行复杂的Join操作,本文从原理层面介绍了SparkSQL支持的常见Join算法及其适用场景. Join背景介 ...
- Impala源码之资源管理与资源隔离
本文由 网易云发布. 前言 Impala是一个MPP架构的查询系统,为了做到平台化服务,首先需要考虑就是如何做到资源隔离,多个产品之间尽可能小的甚至毫无影响.对于这种需求,最好的隔离方案无疑是物理机 ...
- JSOI2008 Blue Mary开公司 | 李超线段树学习笔记
题目链接:戳我 这相当于是一个李超线段树的模板qwqwq,题解就不多说了. 代码如下: #include<iostream> #include<cstdio> #include ...
- http协议与https协议的区别
1.前言 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可 ...
- Mysql Insert Or Update语法例子
有的时候会需要写一段insert的sql,如果主键存在,则update:如果主键不存在,则insert.Mysql中提供了这样的用法:ON DUPLICATE KEY UPDATE.下面就看看它是如何 ...
- [Objective-C语言教程]日志处理(21)
为了打印日志,可使用Objective-C编程语言中的NSLog方法,首先在HelloWorld示例中使用了这个方法. 下面来看一下打印“Hello World”字样的简单代码 - #import & ...
- day05 --class --home
# -*- coding: utf-8 -*-# @Time : 2018/12/25 14:24# @Author : Endless-cloud# @Site : # @File : day05 ...
- 如何将Ajax请求从异步改为同步
Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.PHP", as ...
- Java线程池学习心得
一.普通线程和线程池的对比 new Thread的弊端如下: a. 每次new Thread新建对象性能差.b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或o ...
- 腾讯云服务器安装宝塔面板快速配置LNMP/LAMP网站系统
我们在选择购买腾讯云服务器之后,有部分用户肯定是用来建站用途的.毕竟云服务器的性能和功能比虚拟主机优秀很多.腾讯云服务器拥有香港.北京.广州.上海.美国等多个机房,可以安装Linux和Windows系 ...