什么是原子交换?
安全地在各个区块链网络之间传输资产对于释放被困流动性并吸引更多用户进入这一领域至关重要,同时也保持 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/…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...