什么是原子交换?
安全地在各个区块链网络之间传输资产对于释放被困流动性并吸引更多用户进入这一领域至关重要,同时也保持 Web3 的信任最小化核心价值。原子交换是一种让两个人在不依赖于中介来促成交易的情况下,在不同的区块链网络之间交换通证资产的方式。这为 DeFi 用户提供了一种在多链 Web3 生态系统中保持高度去中心化的方式。
什么是原子交换?
原子交换能够实现不同区块链网络之间的加密通证点对点交换,只有在双方各自向交换合约存入预定数量的通证时才会执行交换。这使得任何两个用户都可以在不依赖第三方促成交易的情况下交换数字通证,从而降低交易对手风险。
"原子性"是一个指数据库事务只能完整执行或完全不执行的软件术语。原子交换按名称分配,要么从每个用户那里接收必要的通证存款并执行交换,要么将所有存入的通证退还给其原始所有者。
原子交换是如何工作的?
原子交换使用哈希时间锁合约(HTLC),它充当“虚拟保险库”或“加密托管账户”,安全地保存用户资金,并仅在正确数量的通证存入合约后执行。每个用户必须在指定的时间间隔内确认收到通证,才能解锁它们。
哈希时间锁合约(HTLC)
HTLC是一种有时限的智能合约,其中使用私钥和密码哈希来控制对资金的访问。每个参与方必须满足所有交换协议才能完成交换,否则通证将退还给其原始所有者。
一个HTLC包括两个核心安全特性:
- 哈希锁定密钥 — 双方都必须提交密码学证明,证实他们已满足了交换合约的条件。
- 时间锁定密钥 — 如果在预设的时间限制内未提交证明,存入的通证将退还给原始所有者。
原子交换示例
- Alice 同意与 Bob 交换 10 枚 X 通证,以换取 10 枚 Y 通证。他们创建了一个在一小时后到期的 HTLC。
- Alice 创建了一个合约地址,并将她的 10 枚 X 通证存入其中。这会生成一个只有Alice 可以访问的私钥。Alice 对私钥创建了一个密码哈希,并将其发送给了 Bob。
- Bob 使用这个哈希来验证 Alice 是否已经将 10 枚 X 通证存入合约地址。但由于他只有哈希,而没有实际的私钥,所以他无法访问这些资金。
- Bob 使用这个哈希生成了一个新的合约地址,并在其中存入了他的 10 枚 Y 通证。现在双方都将资金存入了合约。
- 由于 Bob 使用了 Alice 私钥的哈希创建了地址,Alice 能够领取 Bob 存入的 10 枚 Y 通证。她这样做,并在此过程中向 Bob 揭示了私钥。如果 Bob 在时间锁定到期之前未完成交易,由 Alice 领取的通证将会归还给 Bob。
- 现在,Bob 使用私钥提取了 10 枚 X 通证并完成了交易。
- 在一个小时内完成了交换,合约无法恢复,Alice 成功地将她的 10 枚 X 通证与 Bob 的 10 枚 Y 通证交换了。
原子交换的优势
原子交换为交易者提供了一些其他解决方案所不具备的优势。
- 降低交易对手风险 — 无需将资金托付给中心化第三方来促成交易。交易者完全控制其资产。
- 更深的流动性 — 使资产能够在不同的区块链网络之间交易,增加了这些资产的流动性。
- 直接资产对资产交换 — 用户可以直接购买加密资产,无需首先兑换成高流动性的稳定币并进行多次交易。用户可以在去中心化环境中交易任何他们喜欢的通证。
- 保障结果 — 交易者有保证合约将按照描述执行,否则他们将收回资金。
- 更低的成本 — 点对点交换可能会比依赖第三方管理员产生更低的费用。
原子交换的缺点
由于使用原子交换来交易通证化资产存在一些缺点,因此去中心化交易所(DEXs)和中心化交易所仍然保持高需求。
- 易用性 — 每个交易方都必须就交易金额和价格、时间锁定期限、交换数据和哈希达成一致,并等待交易被处理。这可能会变成一个耗时且复杂的过程,对于初学者来说尤其困难。
- 隐私问题 — 原子交换需要多个区块才能完成,这可能会引起恶意行为者的警觉,让他们有时间追踪地址并针对交易者。
- 兼容性 — 不能在所有区块链网络之间执行原子交换。每个区块链必须使用相同的哈希算法才能实现原子交换。
原子交换与跨链桥梁
虽然原子交换实现了本地资产的点对点交换,但跨链桥梁提供了区块链之间的连接。跨链桥可以通过锁定/解锁或铸造/销毁机制促成封装资产的转移。到目前为止,由于跨链桥梁的黑客攻击,已经有超过26亿美元的损失,这就是为什么 Web3 生态系统正在迅速采用更优越的跨链解决方案的原因。
由 Chainlink CCIP 提供动力的跨链通信
交易者和协议可以通过使用 Chainlink CCIP 克服跨链桥和原子交换的限制,Chainlink CCIP 是跨链互操作性标准,可以在各种区块链之间安全、高效、可靠且可编程地进行通证转移,包括使用不同哈希算法的区块链。例如,Synthetix 正在使用 CCIP 来驱动其 Synth Teleporters,实现流动性在其多链生态系统中的无缝流动。探索 CCIP 如何打开 Web3 的跨链未来。
欢迎关注 Chainlink 预言机并且私信加入开发者社区,有大量关于智能合约的学习资料以及关于区块链的话题!
相关文章:
什么是原子交换?
安全地在各个区块链网络之间传输资产对于释放被困流动性并吸引更多用户进入这一领域至关重要,同时也保持 Web3 的信任最小化核心价值。原子交换是一种让两个人在不依赖于中介来促成交易的情况下,在不同的区块链网络之间交换通证资产的方式。这为 DeFi 用…...
java springboot word文档转pdf
java springboot word文档转pdf 1、环境2、依赖3、代码 1、环境 1、java、springboot 2、maven或者gradle 3、办公软件(自己电脑上的wps或者office等,如果部署到服务器上也要安装,linux、Mac 都有,自己安装) 可能会遇…...
【Leetcode Sheet】Weekly Practice 2
Leetcode Test 1281 整数的各位积和之差(8.9) 给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 提示: 1 < n < 10^5 【原始代码】: int subtractProductAndSum(int n){//1 < n < 10^5//…...
【BERTopic应用 03/3】:微调参数
一、说明 一般来说,BERTopic 在开箱即用的模型中工作得很好。但是,当您有数百万个数据要处理时,使用基本模型处理数据可能需要一些时间。在这篇文章中,我将向您展示如何微调BERTopic中的一些参数并比较它们的结果。让我们潜入。 二…...
2023年上半年数学建模竞赛题目汇总与难度分析
2023年上半年数学建模竞赛题目汇总与难度分析 由于近年来国赛ABC题出题方式漂浮不定,没有太大的定性,目前总体的命题方向为,由之前的单一模型问题变为数据分析评价优化或者预测类题目是B、C题的主要命题方向。为了更好地把握今年命题的主方…...
Linux下搭建java环境
文章目录 一,xshell链接linux二,linux安装jdk环境 一,xshell链接linux 这里用到的工具,VMware搭配CentOS7 64位Xshell5 操作之前确保,传输Xshell连接了虚拟机 打开Xshell,文件->新建 主机ip—>进入虚拟机,右键打开终端,输入命令:ifco…...
String、StringBuffer、StringBuilder三者的异同?
String字符串 不可变的字符序列在 jdk1.8,我们底层用 char [ ] 存储在 jdk 17,我们底层用 byte [ ] 存储 StringBuffer字符串缓冲区类 可变的字符序列,线程安全的(synchronized),效率低在 jdk1.8…...
htmlCSS-----弹性布局案例展示
目录 前言 效果展示 编辑 代码 思路分析 前言 上一期我们学习了弹性布局,那么这一期我们用弹性布局来写一个小案例,下面看代码(上一期链接html&CSS-----弹性布局_灰勒塔德的博客-CSDN博客) 效果展示 代码 html代码&am…...
Fiddler模拟请求发送和修改响应数据
fiddler模拟伪造请求 方法一:打断点模拟HTTP请求 1、浏览器页面填好内容后(不要操作提交),打开fiddler,设置请求前断点,点击菜单fiddler,”Rules”\”Automatic Breakpoints”\”Before Requests” 2、在…...
RH850从0搭建Autosar开发环境【23】- Davinci Configurator之DCM实操实现DID的读取写入
配置DID 一、Developer中创建SWC1.1 创建Application Component Type1.2 实例化Component二、在SWC中创建接口以及Runnable2.1 创建DID的Service Ports2.2 创建DID的Service Runnable三、在Configurator连接接口以及生成代码3.1 连接DCM与SWC3.2 生成RTE3.3 生成SWC的DID的模板…...
ChatGPT收录
VSCode插件-ChatGPT 多磨助手 多磨助手 (domore.run) Steamship Steamship 免费合集 免费chatGPT - Ant Design Pro 免费AI聊天室 (xyys.one)...
Nginx随笔
Nginx下载链接 安装命令: apt update apt install nginx 一、基础命令(Ubuntu) 1、在全局 nginx -t //检查Nginx的配置文件是否有错 systemctl start nginx //启动Nginx systemctl stop nginx //停止Nginx systemctl status nginx //查…...
61. 旋转链表
61. 旋转链表 题目-中等难度示例1. 快慢指针找到分割位置2. 连成环后截断 题目-中等难度 相关企业 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 示例 1: 输入:head [1,2,3,4,5], k 2 输出…...
Python实现动态调用Matlab自定义函数
首先需要下载与python版本对应的matlab,并成功执行matlab中的setup.py文件 参考流程如下 https://blog.csdn.net/s1k9y9/article/details/127793053 完成上述步骤即可开始实现动态调用matlab文件。 文件目录如下 D://call/ |–matlab |–test1 |–main.m |–test2 |…...
redis集群和分片-Redis Cluster:分布式环境中的数据分片、主从复制和 Sentinel 哨兵
当涉及到 Redis 中的集群、分片、主从复制和 Sentinel 哨兵时,这些是构建分布式 Redis 环境中非常重要的概念和组件。下面详细介绍这些概念以及它们在分布式环境中的作用。 Redis Cluster Redis Cluster 是 Redis 官方提供的分布式解决方案,用于管理和…...
【数据库基础】Mysql下载安装及配置
下载 下载地址:https://downloads.mysql.com/archives/community/ 当前最新版本为 8.0版本,可以在Product Version中选择指定版本,在Operating System中选择安装平台,如下 安装 MySQL安装文件分两种 .msi和.zip [外链图片转存失…...
iptables安全与防火墙
防火墙 防火墙主要作用是隔离功能,它是部署在网络边缘或主机边缘;另外在生产中防火墙的主要作用是:决定哪些数据可以被外网访问以及哪些数据可以进入内网访问;顾名思义防火墙处于TCP协议中的网络层。 防火墙分类: 软…...
Linux 内核线程启动以及内核调用应用层程序
#include <linux/kthread.h> //内核线程头文件 static task_struct *test_task; test_task kthread_run(thread_function, NULL, "test_thread_name"); if(IS_ERR(test_task)) { pr_err("test_thread_name create fail\n"); } static int th…...
React+Typescript清理项目环境
上文 创建一个 ReactTypescript 项目 我们创建出了一个 React配合Ts开发的项目环境 那么 本文 我们先将环境清理感觉 方便后续开发 我们先来聊一下React的一个目录结构 跟我们之前开发的React项目还是有一些区别 public 主要是存放一些静态资源文件 例如 html 图片 icon之类的 …...
【linux学习】linux的模块机制
文章目录 前言模块的Hello World! 前言 Linux允许用户通过插入模块,实现干预内核的目的。一直以来,对linux的模块机制都不够清晰,因此本文对内核模块的加载机制进行简单地分析。 ref:https://www.cnblogs.com/fanzhidongyzby/p/…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
