对于公证人模式的跨链,X链能够带来哪些突出的特点

2024-02-04 08:10

本文主要是介绍对于公证人模式的跨链,X链能够带来哪些突出的特点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、X链Canal

当前一些知名的区块链项目,采用了不同的模式实现了跨链,比如Cosmos和波卡链采用了中继模式,瑞波(ILP)协议采用了公证人模式。公证模式一直被人批判过于中心化,造成这个的主要原因是公证特别少,公证人模式大部分是用于非链的模式下两个系统的相互交互或交易所模式,这样设计公证人模式由于节点特别少,中心化程度肯定高。这样的化必然会引入拜占庭容错算法去保证整个流程的有效性,对于跨链模式来说,并不能像比特币一样要10000万个节点去承担公证这种角色,实际上也不现实,这样也违背了三角理论,从三角理论来看,所谓的区块链“不可能三角”,也称为“三元悖论”,通常是指区块链系统无法同时兼顾去中心(Decentralization)、可扩展性(Scalability)、安全性(Security),至多只能三者取其二。是否有一种新的机制能够让少部分公证人验证每笔交易?足够多的节点来验证每笔交易系统必然安全,但又不能并行处理更多的交易。针对以上的情况,X链在这些基础上对公证人模式进行了一些改进,让公证人并不是中心化的公证人模式也能够快速验证交易的有效性。

二、怎样有效防止公证人过于中心化问题

依据三角理论系统安全提高的同时可扩展性和性能必然受限 。一般的做法是采用DPOS的方式,DPOS的方式会导致公证人权益过于集中,有没有一种方法,既能满足性能和扩展的同时,也能保证公证人权益不过于集中呢?这些都是值得深思的问题,X链对于公证人模式做了如下改进,对公证人节点进行随机分组,按照一定周期打乱公证人所在的组,这样公证人能并不知道自己什么时候能够参加交易的验证,这样有效的保证了公证人过于中心化的问题。原理架构如下图所示:

三、随机数怎样产生?

需要在保证公平性的前提下,保证公证人分配的随机性。

  • 公平性:每一个有效的公证人都有相同的概率被选中。
  • 随机性:单次分配结果随机且无法预测。

VRF简介

X链Canal的公证人产生使用VRF(Verifiable Random Function)算法来产生随机数,VRF 原理示意如下:

图 VRF 原理图

VRF算法过程如下:

  • 产生一对非对称密钥对(PK,SK):验证密钥PK(公钥)和SK(私钥)。
  • 生成可验证证明Proof。
  • 使用密钥SK对消息Entropy进行签名生成Proof,对于不同的密钥对(PK,SK)无法生成一样的Proof,所以输出的Proof是唯一的,并且具有无法伪造和抵赖性。由于每个生成的密钥对不同,Proof具有一定随机性。
  • 验证Proof。验证函数输入为消息Entropy、证明数据Proof、公钥PK,计算输出结果true/false,结果为true表示验证通过否则表示失败。Verify证明了Proof是否由密钥对(PK,SK)对消息Entropy生成。
  • VRF随机数产生。通过VRF过程Verify结果为true后,依据Proof的随机性,随机数Rand的产生就仅需对Proof进行Hash计算即可。

附加权益的BLS机制

一般情况下,基于所有公证人签名的随机数才具有唯一性。假设公证人集{1 2 3 4},则必须要他们共同签名,若4节点发生故障,则会导致随机数无法产生。如果仅使用其中3个节点签名,则无法确保随机数的唯一性,实际签名结果会有如下四种组合:{1 2 3}、{2 3 4}、{1 3 4}、{1 2 4}。由于私钥(Ed25519签名机制)不同,所以这四组签名结果也不一样,导致其产生的随机数也不同。

Orbits 使用阈值BLS[16][17]签名算法来生成随机数,原因如下:

  • 保证签名的唯一性。,通过BLS签名算法对前组签名进行再次签名的方式实现,其中BLS签名作为阈值多签签名,有其唯一性特性。BLS签名算法中,验证组签名成员数大于阈值,即可生成当前组唯一性签名。比如验证组有10人,其中6人签名即超过阈值,可生成这个组唯一的签名。
  • 签名存储空间需求小。若一个区块中有1000笔交易,每笔交易都有独立的公钥Pi、签名Si以及交易内容mi。如需知道区块中的交易签名是否正确,传统方法是对区块中交易进行依次验证签名,区块中需要存储所有交易的签名。而使用BLS算法进行签名的合并后,则只需要存储一个33个字节的BLS签名。合并签名的结果是:

验证过程是:

证明过程如下:

从证明过程可见,主要是原理是使用e函数交换规则。

为增强公证人安全性,BLS机制采用了附加权益方式。BLS 服务组属于公证人集,通过PoS方式缴纳质押金,押金在BLS 服务组存续期间不得转出。如果在BLS 服务组到期之前,申请提前退出,则扣除部分押金。如在BLS服务过程中作恶则扣除作恶者全部押金。BLS服务没有到期前,不能转走押金。

四、怎样让公证人愿意作为验证参与交易的验证?

无论是联盟链或是公链的模式下,每个跨链跨链交易在整个过程中都会产生成本费用,即每笔跨链交易公证人会分到这笔交易的手续费,而且涉及到跨链的手续费用比单独在一条链上获得的收益要高,这样公证人更愿意参与,考虑到部署成本和硬件的需求,X链的公证人节点采用的是单链的验证节点,这样验证节点不仅能够分到本身链的奖励还能够获得跨链交易的奖励。

通过以上的论述,X链在公证人模式下设计跨链,并不是单存的增加几个节点做公证人,而是通过随机混洗的算法,让公证人无法知道自己属于那一笔跨链交易的验证人,这样破除了公证人联合作恶的问题,也解决了公证人过于中心化的问题,X链的公证人模式相对于其它的公证人模式来说应该更安全,欢迎大家评论和转载。

这篇关于对于公证人模式的跨链,X链能够带来哪些突出的特点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

SQL Server身份验证模式步骤和示例代码

《SQLServer身份验证模式步骤和示例代码》SQLServer是一个广泛使用的关系数据库管理系统,通常使用两种身份验证模式:Windows身份验证和SQLServer身份验证,本文将详细介绍身份... 目录身份验证方式的概念更改身份验证方式的步骤方法一:使用SQL Server Management S

Redis高可用-主从复制、哨兵模式与集群模式详解

《Redis高可用-主从复制、哨兵模式与集群模式详解》:本文主要介绍Redis高可用-主从复制、哨兵模式与集群模式的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Redis高可用-主从复制、哨兵模式与集群模式概要一、主从复制(Master-Slave Repli

一文带你搞懂Redis Stream的6种消息处理模式

《一文带你搞懂RedisStream的6种消息处理模式》Redis5.0版本引入的Stream数据类型,为Redis生态带来了强大而灵活的消息队列功能,本文将为大家详细介绍RedisStream的6... 目录1. 简单消费模式(Simple Consumption)基本概念核心命令实现示例使用场景优缺点2

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M