区块链跨链技术

news2025/1/16 18:55:39

区块链跨链技术

背景

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


关键技术问题

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

主要跨链技术

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

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


哈希锁定

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

该模式的实现流程如下图所示,(用户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.coloradmin.cn/o/1081280.html

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

相关文章

yolov8剪枝实践

本文使用的剪枝库是torch-pruning &#xff0c;实验了该库的三个剪枝算法GroupNormPruner、BNScalePruner和GrowingRegPruner。 安装使用 安装依赖库 pip install torch-pruning 把 https://github.com/VainF/Torch-Pruning/blob/master/examples/yolov8/yolov8_pruning.py&…

Mac系统清理工具BuhoCleaner

BuhoCleaner是一款在Mac电脑上运行的清洁软件。它的界面简洁&#xff0c;易于使用&#xff0c;能够快速扫描Mac电脑上的垃圾文件、重复文件、大型文件等&#xff0c;帮助用户清理不需要的文件&#xff0c;释放磁盘空间。 该软件的主要功能包括&#xff1a; 垃圾文件清理&…

哈希桶封装unordered set和map

目录 进一步实现哈希桶 引入 keyofValue 迭代器 insert返回值 operator[ ] key不能修改 模拟实现 keyofValue 代码 迭代器 谁在前 普通迭代器转换为const迭代器 const *this 问题 代码 insert和erase const迭代器转换为普通迭代器 key不能修改 完整版代码 …

前端axios发送请求,在请求头添加参数

1.在封装接口传参时&#xff0c;定义形参&#xff0c;params是正常传参&#xff0c;name则是我想要在请求头传参 export function getCurlList (params, name) {return request({url: ********,method: get,params,name}) } 2.接口调用 const res await getCurlList(params,…

电力智能运维管理平台:提升电力行业运营效率与安全

随着电力行业的不断发展&#xff0c;电力系统的运维管理逐渐成为关注的焦点。如何在保证供电稳定的同时&#xff0c;提高运营效率&#xff0c;降低运营成本&#xff0c;是电力行业面临的挑战。电力智能运维管理平台&#xff0c;正是在这一背景下应运而生的一种解决方案。 力…

insightface的预训练权重buffalo_sc.zip下载

想要下载 https://github.com/deepinsight/insightface里的权重找了半天&#xff0c;网络时而卡掉&#xff0c;所以分享 一下终于下载好了&#xff0c;存在百度网盘里&#xff0c;分享给大家。 链接&#xff1a;https://pan.baidu.com/s/1PKp3pPzFg8hrbqACUfHO2A?pwdamtf 提…

数据转换为excel模板下载

一、引入依赖 <dependency><groupId>org.jxls</groupId><artifactId>jxls-poi</artifactId><version>2.12.0</version></dependency> 二、准备解析的数据封装 package com.dst.modules.business.after.sale.parts.sparepa…

Java学习复杂的对象数组操作

Java学习复杂的对象数组操作 定义一个长度为3的数组&#xff0c;数组存储1~3名学生对象作为初始数据&#xff0c;学生对象的学号&#xff0c;姓名各不相同。 学生的属性&#xff1a;学号&#xff0c;姓名&#xff0c;年龄。 要求1&#xff1a;再次添加一个学生对象&#xff0…

什么是React的虚拟DOM(Virtual DOM)?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

nginx服务---2

如何统计连接数&#xff0c;以及根据域名配置虚拟主机 cd /usr/local/nginx/conf vim nginx.conf server {listen 80;server_name www.abc.com;charset utf-8;access_log logs/www.abc.com;error_log logs/www.abc.error.log;location / {root /var/www/html/zzr;in…

Pytorvh之Vision Transformer图像分类

文章目录 前言一、Transformer1.Transformer概览2.Self-Attention3.Multi-head Attention4.Position-wise Feed-Forward Networks(位置前馈网络)5.残差连接和层归一化6.Positional Encodings(位置编码) 二、Vision Transformer1.Vision Transformer概览2.Embedding层结构&#…

DetailView/货币详情页 的实现

1. 创建货币详情数据模型类 CoinDetailModel.swift import Foundation// JSON Data /*URL:https://api.coingecko.com/api/v3/coins/bitcoin?localizationfalse&tickersfalse&market_datafalse&community_datafalse&developer_datafalse&sparklinefalseR…

滚珠螺母在工业机器人中的应用优势

工业机器人是广泛用于工业领域的多关节机械手或多自由度的机器装置&#xff0c;具有一定的自动性&#xff0c;可依靠自身的动力能源和控制能力实现各种工业加工制造功能。滚珠螺母作为工业机器人中的重要传动配件&#xff0c;在工业机器人的应用中有哪些优势呢&#xff1f; 1、…

华为云云耀云服务器L实例评测 | 实例评测使用之硬件参数评测:华为云云耀云服务器下的监控 glances

华为云云耀云服务器L实例评测 &#xff5c; 实例评测使用之硬件参数评测&#xff1a;华为云云耀云服务器下的监控 glances 介绍华为云云耀云服务器 华为云云耀云服务器 &#xff08;目前已经全新升级为 华为云云耀云服务器L实例&#xff09; 华为云云耀云服务器是什么华为云云耀…

【操作系统】信号量机制及PV操作问题总结

【操作系统】信号量机制及PV操作问题总结 文章目录 【操作系统】信号量机制及PV操作问题总结题型分类解题的基本思路1、前置知识 &#xff08;信号量机制&#xff09;&#xff08;1&#xff09;整型信号量&#xff08;2&#xff09;记录型信号量&#xff08;3&#xff09;信号量…

PCB板子上一坨黢黑的可不简单,你知道吗?

有些电路板上我们会看到这么一坨黑色的东西&#xff0c;其实这是一种封装工艺&#xff0c;我们称之为软封装&#xff0c;也叫邦定封装。 它是芯片生产工艺中一种打线的方式&#xff0c;一般用于封装前将芯片内部的电路用金线与封装管脚连接&#xff0c;是裸芯片贴装技术之一&am…

36 WEB漏洞-逻辑越权之验证码与Token及接口

目录 验证码安全token安全接口安全问题未授权访问涉及案例验证码识别插件及工具操作演示-实例验证码绕过本地及远程验证-本地及实例Token客户端回显绕过登录爆破演示-本地Callback自定义返回调用安全-漏洞测试-实例补&#xff1a;上述在实战中如何做到漏洞发现-bp功能点 文章分…

C++ PCL点云曲率分割颜色标识

程序示例精选 C PCL点云曲率分割颜色标识 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《C PCL点云曲率分割颜色标识》编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学…

信息系统项目管理师第四版学习笔记——配置与变更管理

配置管理 管理基础 配置管理是为了系统地控制配置变更&#xff0c;在信息系统项目的整个生命周期中维持配置的完整性和可跟踪性&#xff0c;而标识信息系统建设在不同时间点上配置的学科。 配置项的版本号规则与配置项的状态定义相关。例如&#xff1a;①处于“草稿”状态的…

strncpy,strncat,strncmp字符串函数详解(长度受限制)

目录 一&#xff0c;strncpy函数 1&#xff0c;strncpy函数简介 2&#xff0c;strncpy函数示例 3&#xff0c;注意事项 二&#xff0c;strncat函数 1&#xff0c;strncat函数简介 2&#xff0c;strncat函数示例 3&#xff0c;注意事项 三&#xff0c;strncmp函数 1&…