区块链跨链技术

区块链跨链技术

背景

近年来,随着区块链技术的不断发展,区块链的应用场景逐渐从最初的加密货币领域扩展到金融、物流、医疗、公共服务等各个领域。随着区块链的应用场景不断增多,区块链的“数据孤岛”问题日益突出,不同场景下的区块链之间相互隔绝,无法实现信息交互,极大地阻碍了区块链技术的进一步发展。为了解决区块链之间的扩展性问题,区块链跨链技术应运而生。


关键技术问题

  • 保证跨链交易的原子性和最终确定性
  • 保证跨链双方可以验证另一条链上的交易状态
  • 保证两条链上的资产总量不变
  • 保证跨链系统安全运行
  • 多链协议适配

主要跨链技术

  • 哈希锁定
  • 公证人机制
  • 侧链/中继
  • 分布式私钥控制

其中采用中继链的跨链方法扩展性最好但是实现相对复杂,是目前最主要的研究方向


哈希锁定

哈希锁定最初起源于闪电网络。从原理上看,哈希锁定是基于哈希函数的单向性来保证资产的安全交换,它包括哈希锁时间锁,哈希锁是指用户只有知道哈希原像才可以解锁资产,时间锁是指用户如果超过时间仍未解锁资产,则资产会退回原账户。

该模式的实现流程如下图所示,(用户A与用户B进行跨链资产交换)

  1. 用户A生成一个随机数x并计算其哈希值H(x)发送给用户B。
  2. 用户A使用H(x)和时间t1在链A上锁定资产a,若超过时间t1仍未解锁,则将资产退回给A。
  3. 用户B使用H(x)和时间t2(t2<t1)在链B上锁定资产b,若超过时间t2仍未解锁,则将资产退回B。
  4. 用户A将随机数x发送给用户B解锁得到用户B锁定的资产,此时用户B也获得了随机数x。
  5. 用户B再用随机数x解锁用户A锁定的资产,由此实现了资产的跨链交换。

这里时间锁t1和t2是为了防止用户A在解锁获得B的资产后退回自己锁定的资产导致用户B的资产损失。因为用户A必须要在t2之前解锁用户B的资产,而用户A的锁定时间t1大于t2,所以用户A在解锁B的资产时自己的资产一定是锁定状态的,可以保证用户B在拿到随机数x后有充足的时间解锁用户A的资产。

在这里插入图片描述


公证人机制

公证人机制是一种中心化的跨链方式,该方式通过引入一方或多方可信实体对跨链交易进行信用背书来保证跨链系统的可靠运行。在公证人机制中,公证人是跨链交易的核心角色。它们通常是一组专门的节点,用于协调不同区块链之间的交易。当交易发生时,公证人将执行一系列操作来验证交易的有效性,例如检查交易的签名,检查转移资产的数量是否正确等。这种方式的实现较为简单,代表方案有ripple提出的Interledger。


侧链/中继技术

侧链的概念于2014年首次提出。侧链通过双向锚定技术将一种加密货币资产锁定在一个区块链上,然后在另一个区块链上创建一个代表该资产的代币,从而实现在两个不同的区块链之间传输资产的功能。
通过这种方式可以将主链的货币发送到侧链上,在侧链上分担主链的交易,从而减轻主链的压力,扩展主链性能。
双向锚定技术的实现方式包括单一托管模式联合锚定模式SPV模式驱动链模式,其中SPV模式是侧链白皮书中对去中心化双向锚定技术的最初设想,该模式的工作流程如下图所示。

  1. 用户在主链上将资产发送到一个特殊的地址进行锁定,在等待一段时间确保交易不会被回滚之后,主链会为用户生成一个SPV证明,证明用户已经在主链上锁定了部分资产。
  2. 用户可以将该SPV证明发送到侧链上,侧链在接收并验证SPV证明之后会等待一段竞争期确保用户的资产成功锁定,然后就在侧链上为用户释放相应数量的资产,由此实现用户资产的跨链转移。
    在这里插入图片描述

中继可以看作是侧链和公证人机制的融合扩展,通过在相互通信的两个区块链之间添加一条中继链对跨链的请求进行验证和转发。中继技术弥补了公证人机制中存在的中心化问题,具有较高的安全性和可扩展性,可以适应大部分的应用场景。但是基于中继链的跨链系统实现起来比较复杂,需要较高的技术成本。


分布式密钥控制

分布式密钥控制是基于密码学中的多方计算和门限密钥的一种技术,在分布式密钥控制中会将控制资产的私钥分成多份并分别由多个用户持有,在进行资产转移时需要多个用户共同参与,即使其中某些用户被攻击或私钥被窃取,攻击者也无法获取完整的私钥,保证了资产的安全性。以分布式密钥控制的代表项目Fusion为例,跨链资产转移流程如下图所示。

  1. 用户A发起跨链请求,首先在分布式网络中会生成一对公私钥,公钥是一个新用户B的地址,私钥分成多份由网络中的多个用户持有。
  2. 用户A将资产转移到新地址B中锁定。
  3. 目标链上的用户C使用相同的方法将资产转移到一个新地址D中锁定。
  4. 在两个用户都锁定资产后,分布式节点再使用私钥分别解锁B和D锁定的资产,将D的私钥发放给A,将B的私钥发放给C,从而实现跨链的资产交换。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生信学院|10月13日《SOLIDWORKS参数化应用——DriveWorksXpress》

课程主题&#xff1a;SOLIDWORKS参数化应用——DriveWorksXpress 课程时间&#xff1a;2023年10月13日 14:00-14:30 主讲人&#xff1a;温晓露 生信科技 售后服务工程师 1、DriveWorks的作用 2、用 DriveWorksXpress 自动化您的设计过程 3、Drive Works Xpress最佳做法 4…

如何将jpg转化为png?

如何将jpg转化为png&#xff1f;可能有的小伙伴就会疑惑了&#xff0c;jpg和png都是图片常用的一种格式&#xff0c;为什么要进行格式的更改呢&#xff1f;那是因为PNG格式具有更好的图片质量和更少的失真。JPG&#xff08;或JPEG&#xff09;格式的图片通常是压缩过的&#xf…

Mall脚手架总结(二) —— SpringData操作Elasticsearch

前言 万字长文带你弄清楚SpringData中的Elasticsearch操作以及在脚手架里接口的结构关系&#xff01;经过前面鉴证授权的整合&#xff0c;荔枝开始熟悉项目的学习的方法了&#xff0c;虽然脚手架中的内容比较简单&#xff0c;但是把边角的知识点全部扫到还是比较花时间的尤其是…

C#和JS交互之Microsoft.ClearScript.V8(V8引擎)

之前测试了很多JS引擎&#xff0c;都只支持es5语法&#xff0c;不支持执行es6&#xff0c;测试了下微软的V8反正能跑通&#xff0c;应该是支持的。还得是微软呀。 如图&#xff1a;安装相关包&#xff1a; 这是参考的官方V8代码 using Microsoft.ClearScript.JavaScript; us…

当下测试行业中UI自动化面临的难点及如何解决

经常有人会问&#xff0c;什么样的项目才适合进行UI自动化测试呢&#xff1f;UI自动化测试相当于模拟手工测试&#xff0c;通过程序去操作页面上的控件。而在实际测试过程中&#xff0c;经常会遇到无法找到控件&#xff0c;或者因控件定义变更而带来的维护成本等问题。 哪些场…

jvm--执行引擎

文章目录 1. 执行引擎的工作流程2. 解释器、JIT及时编译器3. 热点代码及探测技术4. HotSpotVM 中 JIT 分类 执行引擎属于 JVM 的下层&#xff0c;里面包括解释器、及时编译器、垃圾回收器 JVM 的主要任务是负责 装载字节码到其内部&#xff0c;但字节码并不能够直接运行在操作…

Zookeeper分布式一致性协议ZAB源码剖析

文章目录 1、ZAB协议介绍2、消息广播 1、ZAB协议介绍 ZAB 协议全称&#xff1a;Zookeeper Atomic Broadcast&#xff08;Zookeeper 原子广播协议&#xff09;。 Zookeeper 是一个为分布式应用提供高效且可靠的分布式协调服务。在解决分布式一致性方面&#xff0c;Zookeeper 并…

栈的模拟实现(Java)

目录 1、 栈的概念2、栈的使用3、栈的模拟实现 1、 栈的概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last I…

Linux 部署1Panel 现代化运维管理面板进行公网远程访问

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透2.1 使用一键脚本安装命令 2.2向系统添加服务2.3 启动cpolar服务…

爬虫Python

文章目录 基本数据类型bytes类型python数据类型转换&#xff08;必会&#xff01;&#xff01;&#xff01;&#xff09; python运算符&#xff08;必会&#xff01;&#xff01;&#xff01;&#xff09;python数字数学函数&#xff08;必会&#xff01;&#xff01;&#xff…

uni-app:实现view元素强制换行(解决长字符和英文字符不换行问题)

效果 换行前 换行后 核心代码 word-wrap: break-word; 或 word-break: break-all; 完整代码demo <template><view><view class"all_style"><view class"line1">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</view>…

ubuntu离线编译安装cmake 3.22.5(could not fonud OPENSSL) and cmake-versinon查不到版本问题

1、首先去cmake官网下载压缩包,例如: cmake-3.22.5.tar.gz 2、拉到ubuntu进行解压: tar -zxcf cmake-3.22.5.tar.gz 3、cd 进入目录 cd cmake-3.22.5 4、执行configure可执行文件 ./configure 如果在编译过程中出现报错:Could NOT findOpenSSL,原因可能是缺少ssl库 按…

高压放大器在纳米材料中的应用有哪些

高压放大器是一种重要的电子设备&#xff0c;可以用于增强输入信号的电压。在纳米材料领域&#xff0c;高压放大器也具有广泛的应用。下面西安安泰将介绍高压放大器在纳米材料中的应用&#xff0c;并探讨其可行性和潜在的研究方向。 纳米材料传感器&#xff1a;高压放大器在纳米…

微服务10-Sentinel中的隔离和降级

文章目录 降级和隔离1.Feign整合Sentinel来完成降级1.2总结 2.线程隔离两种实现方式的区别3.线程隔离中的舱壁模式3.2总结 4.熔断降级5.熔断策略&#xff08;根据异常比例或者异常数&#xff09; 回顾 我们的限流——>目的&#xff1a;在并发请求的情况下服务出现故障&…

【踩坑】hive脚本笛卡尔积严重降低查询效率问题

前一阵子查看我们公司的大数据平台的离线脚本运行情况, 结果发现有一个任务居然跑了一天多, 要知道这还只是几千万量级的表, 且这个任务是每天需要执行的 于是我把hive脚本捞出来看了下, 发现无非多join了几个复杂的子查询, 应该不至于这么久, 包括我又检查了是不是没有加上每…

MTK平台闪光灯相关信息

&#xff08;1&#xff09;概念 MTK打闪一般分为预闪、主闪两个阶段。相应的执行一次拍照会有预闪、主闪两次开灯。预闪可以用来防红眼(red-eye reduction)。闪光时使环境发生变化&#xff0c;会按新的光线条件&#xff08;有闪光时&#xff09;重新测光&#xff0c;来实现更精…

python- excel 创建/写入/删sheet+花式遍历

文章目录 前言python- excel 创建/写入/删sheet花式遍历1. excel 创建2. 写入excel3. 创建写入excel demo实战4. 删除sheet5. excel 花式遍历 demo实战5.1. 获取 A1的值5.2. 获取指定列的切片数据&#xff0c;获取 B1到B5的值5.3. 循环整个excel的这个sheet5.4. 遍历指定行&…

从零开始学习:如何使用Selenium和Python进行自动化测试?

安装selenium 打开命令控制符输入&#xff1a;pip install -U selenium 火狐浏览器安装firebug&#xff1a;www.firebug.com&#xff0c;调试所有网站语言&#xff0c;调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件&#xff0c;实现简单的浏览器操 作的录制与回…

Unity2017适配安卓12

测试版本为Unity2017.4.25f1 1.在自定义AndroidManifest.xml&#xff08;位于Assets\Plugins\Android\&#xff09;中添加android:exported"true" <?xml version"1.0" encoding"utf-8"?> <manifestxmlns:android"http://schema…

探索 Redis 与 MySQL 的双写问题

在日常的应用开发中&#xff0c;我们经常会遇到需要使用多种不同类型的数据库管理系统来满足各种业务需求。其中最典型的就是Redis和MySQL的组合使用。 这两者拥有各自的优点&#xff0c;例如Redis为高性能的内存数据库提供了极快的读写速度&#xff0c;而MySQL则是非常强大的…