区块链开源项目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

相关文章

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于