对于公证人模式的跨链,如何让链能够带来一些突出的特点

2024-02-04 08:10

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

当前一些主流的跨链模式有:公证人、哈希锁定、中继、侧链等技术,比如Cosmos和波卡链采用是中继模式、瑞波(ILP)采用了公正人模式。各种跨链模式都有自己的一些优缺点和实用场景,无论跨链模式怎么变换,最终都会解决如下问题:

1、链与链之间如何建立一个信任机制,验证跨链之间的交易数据?

      为了解决资产的自由流通,链与链之间的互通互联, 首要任务是链之间怎样建立一种信任机制, 使得一条链能够验证链的交易。比如以太坊上发生的一笔交易,X Chain上怎么知道以太坊上发生的交易是否有效呢?同样,X Chain上发生的交易,以太坊怎么知道X Chain上的交易真实发生有效呢?

     针对上述疑问,其实是如何去验证问题跨链交易,对于X Chain来说以太坊交易来源外部的以太坊,X Chain不会知道以太坊交易的状态,所以必须借助一种机制来验证交易的有效性,目前X Core团队针对不同场景提供了两种解决方案:公正人机制验证区块头+ SPV简易验证

2、交易怎样才算最终确认?

对于交易确认性问题大家都知道与共识算法关系很大,目前来说有两种情况确定性共识和非确定性共识交易的最终确认方式。

在确定性共识下,共识完成后都是一个最终状态,不可能有其它转态,X Chain现在采用的是BFT共识方式,共识完成后就是最终状态。

在非确定性共识下,交易没有最终确认下去实现跨链会出现什么状况呢?比如以太坊采用的是POW共识算法,没有等待最终确认,把交易的状态和结果,发送给X Chain进行验证,X Chain通过区块头和SPV进行验证,X Chain上验证通过,然后在X Chain上的以太坊资产转给相应的人,结果以太坊上的这笔交易没有经过最终确认而且只是发生在最短的一条链上,导致交易最终回滚,持有以太坊资产的用户显然不能接受。这只是一个很容易出现的现象,针对在非确定性共识下,X Chain提出了不同的的解决方案:等待足够多确认区块纠缠DPoS/xBFT

3、如何实现跨链交易原子性互换?

原子性问题在数据库中经常用到,比如数据库的事务操作。在跨链场景下不保证跨链交易的原子性会造成什么呢?比如以太坊和X Chain进行跨链,以太坊上已经进行转移了资产,由于中间环节出了问题,导致X Chain上没法收到资产,这样显然不具有原子性操作。X Core团队分别针对不同场景下采用最终一致性哈希时间锁定两种解决方案。

X Chain在多链(同构链)和分片这种同一套系统内部交互场景下采用最终一致性方案。虽然在账本上拆分成不同的链式结构,但本质上还是同一套系统,安全性和可验证性都能够有效的解决,这样不需要资产的锁定机制,有效提升了跨链交易的效率,X Chain在的多链体系下做了同构方面的跨链尝试,跨链交易实际的吞吐量只是在单链情况下降到一半。对于异构链的场景下X Chain对于原子性问题最终采用的是哈希时间锁定技术,详细流程和原理如下图所示:

4、在异构链场景下资产如何去锚定?

对于跨链资产转移,比如以太坊和X Chain进行跨链,ETH真的流通到X Chain了吗?其实不是,对于ETH和X Chain跨链来说,双方采用的是一种锚定协议,双向锚定是ETH链与X Chain资产按照1: 1兑换比例双向转移的过程,比如ETH可以转移成X Chain上的等量的BETH,反之X Chain上的BETH也可以转成ETH。因为以太坊上的ETH不能被销毁。 所以实际上,当用户把ETH转换成BETH的时候, ETH资产不是被销毁了,而是被转移到一个锁定地址上,同时在X Chain上释放等量的BETH。反之,当BETH需要换回ETH时,把BETH发送到X Chain上的锁定地址,同时在以太坊的锁定地址上释放等量的ETH。

5、跨链资产如何去锁定?

在不同体系的场景下资产不进行锁定会发生什么情况,很显然不锁定,账户有自由的支配权,可以直接把钱转走,那么锁定账户由谁来管理,执行锁定和解锁等操作,如何保证锁定资产被安全的释放,不会造成双花。单一托管人可以实现锁定吗?对于单一托管选取一般会找有信用背书的机构来充当锁定就像你的钱放在银行不用担心银行跑路一样 。联盟托管人方式会怎么样呢?单一托管机制虽然简单易行,但是过于依赖中心化的托管人。更加去中心化的实现方式是联盟托管模式。比如议会,总共有N个议员,其中每位议员都有一份投票权,当接收到跨链的解锁请求时,每位议员独立的验证交易并投票,当投票数达到M时,就能处置锁定的资产。这种投票验证操作可以是手动执行,也可以是自动执行。 相比单一托管人、联盟托管人来说智能合约托管更去中心化。X Chain是一个天然支持智能合约并且验证节点是通过投票选举出来,X Chain采用的是智能合约托管的方式。

6、对于多条链跨链协议适配是N:N还是1:N呢?

以上讲的跨链问题都是以太坊和X Chain这种1:1的对应关系,设计跨链的目的是为了资产能够自由流动和链能够互联互通,N条链之间实现跨链通信,如何简化跨链协议的适配呢,对于N:N,下图所示,每两条区块链之间需要一个跨链协议,所以需要设计C(N, 2)个跨链协议,每一个跨链协议要适配两个区块链系统。当N变得很大的时候,协议适配的工作量会变得非常大。

针对上述复杂的问题,X Chain采用的是将主链作为中继链,它的角色是获得其它链的区块头信息,作为枢纽和其它链系统交互,充当路由,然后转发各链之间的跨链交易。采用中继的模式,只需要考虑N对适配协议,每新加一条链只需要适配X Chain的跨链协议接口,大幅度降低了跨链开发的复杂度。

7、如何激励跨链服务提供者呢?

链本身有交易费作为激励,但是验证可能不是链双方的记账节点。如果这些服务没有手续费会怎么样呢?这样会造成流动性匮乏攻击攻击者可以尝试暂时性阻碍所有流动性的中继或验证人,导致跨链交易失败。整个跨链交易可能处于阻塞状态,也有可能反馈一些无效状态,从而导致跨链网络无法运行。X Chain设计了一种押金审核机制,要成为服务提供者必须缴纳一定质押金,入网还需要多方审核。在整个跨链提供服务的过程中会得到一笔丰富的奖励。并且还设置了举报机制,若服务提供商作恶,验证举报信息有效,作恶者的质押金归举报者所有。X Chain通过一些经济学的手段有效激励服务提供者从而保证了X Chain的有效运行。

总结:

       以比特币、以太坊为代表的公链项目已经向我们展示了区块链的巨大发展前景。但是由于区块链本身技术特点,单链情况下会受到去中心化,安全性,可扩展性的不可能三角的问题,在可扩展性上一直缺少革命性的突破。X Chain秉持着资产自由流通和链能够互联互通的原则,设计了X跨链方案Canal技术,对跨链一些问题的解决带来了新的思路:针对不同链的需求和场景下适配不同的方案,通过不同链之间资产双向锚定、资产在链间能够自由流通。X Chain在Orbits多链技术基础之上,增加了Canal的设计,可以大大扩展原有资产的技术特性和应用场景。不但可以分担X主链上的交易,节约X主链的存储,计算,网络等资源,避免了X主链上的交易拥堵。X Chain Canal技术并不是一个现成的实现技术方案,它是一个成体系的多场景化的解决方案,最近我们在供应链金融方面做了一个X Canal技术的POC尝试,让资产能够自由流通能够成为可能。

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



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

相关文章

便携式气象仪器的主要特点

TH-BQX9】便携式气象仪器,也称为便携式气象仪或便携式自动气象站,是一款高度集成、低功耗、可快速安装、便于野外监测使用的高精度自动气象观测设备。以下是关于便携式气象仪器的详细介绍:   主要特点   高精度与多功能:便携式气象仪器能够采集多种气象参数,包括但不限于风速、风向、温度、湿度、气压等,部分高级型号还能监测雨量和辐射等。数据采集与存储:配备微电脑气象数据采集仪,具有实时时钟、数据存

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

模版方法模式template method

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

迭代器模式iterator

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/iterator 不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation:做参数校验Mybatis:做数据库的操作Redis:做缓存Junit:单元测试项目部署:springboot项目部署相关的知识 (3)前端 Vite:Vue项目的脚手架Router:路由Pina:状态管理Eleme

状态模式state

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/state 在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。 在状态模式中,player.getState()获取的是player的当前状态,通常是一个实现了状态接口的对象。 onPlay()是状态模式中定义的一个方法,不同状态下(例如“正在播放”、“暂停