区块链开源项目Ripple二、相关概念介绍及思考

2024-06-06 18:38

本文主要是介绍区块链开源项目Ripple二、相关概念介绍及思考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、UNL

     配置文件中的可信任列表。

     其实Ripple中的这个东西有好处也有诟病,好处是可以控制链的安全性,不管链上有多少不安全的作弊的验证节点,只要节点不信任你,作弊的就无计可施。坏处是,Ripple也因此被认为不是完全去中心化的网络,违背了初衷。

二、validation_quorum

    validation_quorum是达成共识的门槛数量。

三、普通节点与验证节点

      普通节点只转发交易,信任UNL中的信任节点,参与共识。

      验证节点可以被普通节点信任,决定共识。

四、公钥和私钥

     Ripple和Bitcoin采用椭圆曲线算法,生成一对公私钥,公钥可以根据私钥生成,但是反过来不行。私钥用来签名,公钥验证,具体后面专门讲解。

六、双花

     Ripple和Bitcoin都面临的问题是双花和分叉。

双花通俗的说,就是一笔钱花两次,因为Ripple每提交一次交易先本地验证接受,然后提交网络共识,共识过程可能耗费3-8秒。

在共识未成功之前,可以以这笔钱再提交一次交易,本地由于前一次还没有共识通过,所以此次交易还是能验证通过,然后提交网络共识。

Ripple的解决方法看起来很简单,就是依据共识的时间先后,对于上述实例,第一次交易共识通过,第二次交易的共识就通不过。

七、分叉与防作弊

   对于一个Ripple网络,假设有个普通节点的UNL中的验证节点都是作弊节点,或者作弊节点超过UNL总数量的2/3(具体怎么算的,后面专门介绍,涉及到数学证明过程),那么对于这个普通节点的本地区块链就会分叉。

 RIpple是如何防作弊的呢?当分叉后的作弊区块链又连接到网络上时,首先节点会广播区块信息,这是Ripple网络上的节点发现这个区块和自己的接不上或不一致,就把它标记为INSANE,意为我们都不信任你的区块,所以作弊的区块链无效。(具体如何标记,如何比对,后面专门介绍)。

八、共识

 Ripple网络上的每笔交易发出时,先经过本地节点的验证(签名和交易合法性,签名是用公钥验证交易的签名,合法性主要是验证有没有这笔钱可以花费等),再提交网络参与共识。共识就是UNL中的信任节点参与投票的过程,后面会详细讲解。

这篇关于区块链开源项目Ripple二、相关概念介绍及思考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1036910

相关文章

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文