【跨链机制】哈希锁定原理

随着区块链多年来的发展,在区块链生态中已经形成了不同特性的区块链网络,这些网络之间存在着一定的隔离和孤立性。为了打破这种局面,跨链技术应运而生,促进了区块链间的数据流通和价值交换。目前,主流的跨链机制包括公证人机制、侧链/中继、哈希锁定等。为了让账号快快升级,今天就来浅谈()一下哈希锁定的实现原理。

原理解析

事情是这样的:有一天,Alice 打算用 n 个比特币Bob的 m 个以太币交换,为了确保交换双方能如期获得对方的爱意,并尽可能避免出现空手套白狼的情况,AliceBob一起策划出了一个爱心方案,这个方案分为四个步骤。

(1)Alice锁定自己的资产

首先,Alice通过随机选取的方式生成一个原像s,并利用哈希算法对s进行计算得到一个哈希值h: h = h a s h ( s ) h = hash(s) h=hash(s)。接着,利用哈希值具有不可逆性,Alice部署了一个合约并将n个比特币存入合约中,合约的内容是:

  • Bob能破解出h的原像s,则 n 个比特币自动转给Bob
  • Bob在时间 T 1 T1 T1内无法破解,则 n 个比特币自动原路返回给Alice

(2)Bob锁定自己的资产

由于哈希值的不可逆性,Bob无法直接计算出原像s,而为了知道Alice设置的原像s,并通过s获取Alice合约中的 n 个比特币Bob也部署了一个合约,并将 m 个以太币存入其中,合约的内容是:

  • Alice能破解出h的原像s,则 m 个以太币自动转给Alice
  • Alice在时间 T 2 T2 T2( T 2 < T 1 T2<T1 T2<T1)内无法破解,则 m 个以太币自动原路返回给Bob

(3)Alice提取Bob的资产

Bob部署好合约后,由于Alice本身知道原像s,因此,Alice就在时间 T 2 T2 T2内向Bob的合约发送了原像s,并且就此获得锁定在合约中的 m 个以太币,而由于这个合约是Bob部署的,因此,Bob也获取到了原像s

(4)Bob提取Alice的资产

Bob在获取到原像s后,立即在时间 T 1 T1 T1(由于 T 1 > T 2 T1>T2 T1>T2,因此Bob还有时间)内向Alice的合约发送s,解锁了Alice合约中的n个比特币,就此,交易完成。

就这样,AliceBob在无需可信公证人的情况下,通过哈希锁和时间锁共同完成链间资产兑换。这种机制无需依赖第三方,能够保持区块链的去中心化特点。但是,这种机制也同样存在着原子操作性较弱(可能因为网络异常而导致Bob在提取资产时,时间超过了 T 1 T1 T1,使得Alice空手套白狼成功)、效率较低的问题(Bob需要等Alice合约部署后,才能部署)。

相关推荐
唐叔在学习8 分钟前
【唐叔学算法】第19天:交换排序-冒泡排序与快速排序的深度解析及Java实现
java·算法·排序算法
_nirvana_w_8 分钟前
C语言实现常用排序算法
c语言·算法·排序算法
唐叔在学习16 分钟前
【唐叔学算法】第18天:解密选择排序的双重魅力-直接选择排序与堆排序的Java实现及性能剖析
数据结构·算法·排序算法
Kenneth風车1 小时前
【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版 (1)11
算法·机器学习·分类
最后一个bug1 小时前
rt-linux中使用mlockall与free的差异
linux·c语言·arm开发·单片机·嵌入式硬件·算法
蹉跎x2 小时前
力扣1358. 包含所有三种字符的子字符串数目
数据结构·算法·leetcode·职场和发展
rainoway2 小时前
CRDT宝典 - yata算法
前端·分布式·算法
巫师不要去魔法部乱说3 小时前
PyCharm专项训练4 最小生成树算法
算法·pycharm
IT猿手3 小时前
最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解GLSMOP1-GLSMOP9及工程应用---盘式制动器设计,提供完整MATLAB代码
开发语言·算法·机器学习·matlab·强化学习
阿七想学习3 小时前
数据结构《排序》
java·数据结构·学习·算法·排序算法