当前位置:首页 > 物联网 > 区块链
[导读] 跨链原子交换概念介绍: 假设Alice持有BTC,想要换取Bob持有的LV。双方达成了交易医意愿,并确定了兑换比例和具体的交易金额。双方如何进行交易呢? -如果Alice先把比特

跨链原子交换概念介绍:

假设Alice持有BTC,想要换取Bob持有的LV。双方达成了交易医意愿,并确定了兑换比例和具体的交易金额。双方如何进行交易呢?

-如果Alice先把比特币转账给Bob,Alice会担心万一Bob收了比特币就逃跑了、消失了。如果Bob先把LV转账给Alice,Bob同样需要担心Alice可能会逃跑、消失。

因此,数字货币之间的交易,往往需要一个可信第三方,例如交易所或者交易见证人。

那么是否有可能在没有中介、交易双方也不完全信任对方的情况下完成交易呢?

跨链原子交换,就提供了一种完全依赖链上交易、保证两种数字货币之间能够在无中介的情况下无风险交易的方式。所谓“原子交换”,是指交易要么整体完成,要么整体失败,不会因一方完成而另一方失败造成单方损失。

LV-BTC跨链原子交换全流程:(假设Alice持有BTC,想要换取Bob持有的LV)

STEP1:Alice发起交易

STEP2:Bob响应交易

STEP3:Alice取走LV

STEP4:Bob取走BTC

说明:当前版本的LV-BTC跨链原子交换机仅为全节点钱包内置(0.3.4版本开始支持),用户需要有操作全节点钱包(命令行方式)的基础。未来,Lava会进一步完善跨链原子交换机的使用体验。

【STEP 1:Alice发起交易】

“我是Alice,我手里持有BTC,要交换Bob手里持有的LV。我们已经约定好了交易的数量和价格。现在需要由我来发起跨链原子交换!”

1. 首先,自定义一个谜底,比如说 “abcd”,记住千万不能告诉任何人!

接着,通过getimage获取相应的谜面(imagehash)。

输入:自定义的谜底,此处为abcd

返回:{ “preimage”: “abcd”,

“imagehash_SHA256”: “123d4c7ef2d1600a1b3a0f6addc60a10f05a3495c9409f2ecbf4cc095d000a6b”,

“imagehash_RIPEMD160”: “a21c2817130deaa1105afb3b858dbd219ee2da44”}

2. 然后可以开始构造BTC上的HTLC交易:先创建一个BTC冻结地址。

使用createhtlcaddress接口。输入:

•Bob的BTC地址(私下问bob要):

mgLqJcG6kykw636f4B8BtKjx5HUmnH1442,

•我自己的BTC地址:

mfmJmsGPgoJGPY4yzZsDj4Z5CfpWUQQHHD,

•上面的谜题(选取短的即可):

a21c2817130deaa1105afb3b858dbd219ee2da44

•这笔钱的冻结高度(BTC高度):

1609905 (注意,这里的高度含义是当BTC主网超过这个高度时,我有权直接收回冻结的BTC。)

返回:

{“address”: “2MwjSbwWbq6u3Yyvrz67meWUZ6WaaVqdFbT”,

“redeemScript”:

“63a614a21c2817130deaa1105afb3b858dbd219ee2da448876a914090e217eff3b75215b5d106ad861d40e0d46af776703b19018b17576a91402b6eb3eb965532c942f1c112c585716db12b0636888ac”}

3. 现在,对上面产生的冻结地址:

“2MwjSbwWbq6u3Yyvrz67meWUZ6WaaVqdFbT”

转入约定数量的BTC。转账完成后,这些BTC就暂时冻结在这个地址中了。

冻结完成后,将以下三个信息私下通知给Bob,等待Bob响应即可。

我自己的BTC地址:

mfmJmsGPgoJGPY4yzZsDj4Z5CfpWUQQHHD,

上面的谜面(选取短的即可):

a21c2817130deaa1105afb3b858dbd219ee2da44

(千万别把谜底“abcd”告诉Bob!)

这笔钱的冻结高度(BTC高度):

1609905

【STEP 2:Bob响应交易】

“我是Bob,我手里持有LV,要交换Alice手里持有的BTC。我们已经约定好了交易的数量和价格。Alice已经跨出了第一步,现在我该做什么呢?”

1. 首先,要对Alice发起的交易进行验证。

假设现在我(Bob)收到了Alice通过微信发给你的三个信息:

•Alice的BTC地址:

mfmJmsGPgoJGPY4yzZsDj4Z5CfpWUQQHHD,

•一个很难解的谜面:

a21c2817130deaa1105afb3b858dbd219ee2da44

•Alice设定的BTC冻结高度:1609905

接下来,我需要验证Alice给我的信息的真实性和有效性:

首先验证冻结高度1609905是否已经到达?

→如果主网已经到达了1609905,那么不能再操作,告诉Alice不交易了,让她取回自己的BTC。

→如果高度未到达,我就可以继续操作。通过上述信息调用createhtlcaddress接口,复现Alice的操作,依次输入:

•我(Bob)自己的BTC地址:

mgLqJcG6kykw636f4B8BtKjx5HUmnH1442,

•Alice的BTC地址:

mfmJmsGPgoJGPY4yzZsDj4Z5CfpWUQQHHD,

•上面的谜题:

a21c2817130deaa1105afb3b858dbd219ee2da44

•Alice手中BTC的冻结高度(BTC高度):1609905

返回:

{“address”: “2MwjSbwWbq6u3Yyvrz67meWUZ6WaaVqdFbT”,

“redeemScript”: “63a614a21c2817130deaa1105afb3b858dbd219ee2da448876a914090e217eff3b75215b5d106ad861d40e0d46af776703b19018b17576a91402b6eb3eb965532c942f1c112c585716db12b0636888ac”}

其次验证Alice是否已经往该冻结地址中转入BTC?

去浏览器上查询:

“2MwjSbwWbq6u3Yyvrz67meWUZ6WaaVqdFbT”地址的交易记录,看看Alice有没有给它转账约定数量的BTC。这个数量也就是之后我(Bob)会获得的BTC数量。

以上验证步骤,有任何一个地方出现问题,请立即终止交易!

2.验证通过,Alice没骗我。下面我需要构造一笔冻结LV的交易,以响应Alice的交易请求。

与Alice流程一样,我开始构造Lava上的HTLC交易,创建一个Lava的冻结地址。

使用createhtlcaddress接口。依次输入:

•Alice的Lava地址(私下问Alice要):

mfmJmsGPgoJGPY4yzZsDj4Z5CfpWUQQHHD,

•自己的Lava地址:

mgLqJcG6kykw636f4B8BtKjx5HUmnH1442,

•上面的谜面:

a21c2817130deaa1105afb3b858dbd219ee2da44

•这笔钱的冻结高度(Lava高度):7600 →注意:请确保该Lava高度到来的比Alice设定的BTC高度更早!这一点非常重要!

返回:

{“address”: “2NBzEWiW4T9de94VRRq2RZno1712uSxopG9”,

“redeemScript”: “63a614a21c2817130deaa1105afb3b858dbd219ee2da448876a91402b6eb3eb965532c942f1c112c585716db12b0636702b01db17576a914090e217eff3b75215b5d106ad861d40e0d46af776888ac”}

3. 向冻结地址:

“2NBzEWiW4T9de94VRRq2RZno1712uSxopG9”转入约定数量的LV。

完成转账后,将以下信息私下通知给Alice,等待Alice进一步响应即可:

这笔钱的冻结高度(LAVA高度):7600

【STEP 3:Alice取走LV】

“我是Alice,我手里持有BTC,要交换Bob手里持有的LV。现在,Bob已经完成对LV的冻结,我需要取走这些LV以完成交易。”

1. 首先是检验Bob设定的高度和金额信息是否正确:

获得Bob发来的Lava高度信息 7600 后,开始用相同的方式推演出Bob的冻结地址。

当然,请确保这个Lava高度 7600 还没达到, 否则请终止交易(放心,不会有任何损失)。

仍然调用createhtlcaddress:

输入:

•自己的Lava地址:

mfmJmsGPgoJGPY4yzZsDj4Z5CfpWUQQHHD,

•Bob的Lava地址:

mgLqJcG6kykw636f4B8BtKjx5HUmnH1442,

•自己创的谜题:

a21c2817130deaa1105afb3b858dbd219ee2da44

•这笔钱的冻结高度(Lava高度):7600

返回:

{“address”: “2NBzEWiW4T9de94VRRq2RZno1712uSxopG9”,

“redeemScript”:

“63a614a21c2817130deaa1105afb3b858dbd219ee2da448876a91402b6eb3eb965532c942f1c112c585716db12b0636702b01db17576a914090e217eff3b75215b5d106ad861d40e0d46af776888ac”}

然后,去Lava的主网查看:

“2NBzEWiW4T9de94VRRq2RZno1712uSxopG9”地址上是否有约定好的LV金额。没有的话就取消交易吧。

2. 以上都确认无误后,我将要进行最后的步骤:提款走人。

根据Lava浏览器查询结果,我已经知道Bob冻结LV的交易id是:

b05fa0adec37559f98b7b94c775e78f6e93434c0029c3795eae584a69580957b

接着,调用整个交换过程中最复杂的接口spendhtlcwithwallet来将这些LV转走。

输入:

•刚才获取的bob冻结LV交易的txid:

b05fa0adec37559f98b7b94c775e78f6e93434c0029c3795eae584a69580957b

•上面交易中的对应output序号,可以浏览器自己查询看到,也可以用命令行看到,这次是0。我们用命令行来验证下。确实是0.

•Alice想取走的金额:当然是取走所有约定的金额

•Alice的LV接收地址:

mfmJmsGPgoJGPY4yzZsDj4Z5CfpWUQQHHD (重要,就是接受这笔LV的地址。这是一个我的私人地址。)

•Alice之前设置的谜底:abcd (终于用上了!)

以及Bob构造这笔100lv冻结交易时的信息:

•Alice使用的谜题:

a21c2817130deaa1105afb3b858dbd219ee2da44

•Alice的Lava地址:

mfmJmsGPgoJGPY4yzZsDj4Z5CfpWUQQHHD,

•Bob的Lava地址:

mgLqJcG6kykw636f4B8BtKjx5HUmnH1442,

•这笔钱的冻结高度(Lava高度):7600

•标志位,表示该花费交易是否为赎回交易:

这里填0,表示是正常流程的互换交易;

如果填1,表示是违约后,或者超时后的取回交易。

返回:

02000000017b958095a684e5ea95379c02c03434e9f6785e774cb9b7989f5537ecada05fb000000000bf473044022068d9e6c815d99fedd31b6cd4f205124a8e1da3b2b65042c389ddca873ff708cb02203864c31bf8b8597de9e2f101b006dd0f55877e9854af568df10525297cdabef6012102da788aa6e547746556a27bee415ff3187df45033e3ef7e79fe8d506047bd6fb802abcd514c4f63a614a21c2817130deaa1105afb3b858dbd219ee2da448876a91402b6eb3eb965532c942f1c112c585716db12b0636702b01db17576a914090e217eff3b75215b5d106ad861d40e0d46af776888ac00000000017ccc0b54020000001976a91402b6eb3eb965532c942f1c112c585716db12b06388ac00000000

把以上结果在用sendrawtransacTIon接口发送到Lava主网。

获得txid为:

2abc47531de88a6952614702f3c842f24e4d524fc73e16b07934e530f46e9135

【STEP 4:Bob取走BTC】

“我是Bob,我手里持有LV,要交换Alice手里持有的BTC。现在Alice已经取走了我冻结的LV,现在我要取走Alice冻结的BTC来正式完成这笔交易。”

1. 观察Lava浏览器,我发现之前冻结LV的地址 2NBzEWiW4T9de94VRRq2RZno1712uSxopG9 中出现一笔转账交易:

2abc47531de88a6952614702f3c842f24e4d524fc73e16b07934e530f46e9135

这也就是刚才Alice转走LV的交易。

既然Alice已经利用谜底转走LV了,那么这个谜底就暴露在区块链上了!调用checkpreimage接口即可获取Alice公布的谜底:

输入参数为:

目标txid:

2abc47531de88a6952614702f3c842f24e4d524fc73e16b07934e530f46e9135

返回:

{“Preimage”: “abcd”}

由此,我知道了Alice设置的谜底就是 abcd。

2. 接下来,我也使用spendhtlcwithwallet接口来转走Alice冻结的BTC:

输入参数:

•刚才获取的Alice冻结BTC的txid:

4b879e138ea104569d718f12bb47d7207c908f7f2ee5750ddf127bc8bebf0060

•上面交易中的对应输出序号,可以浏览器自己查询看到,是0。

•我想转走的金额:当然是取走所有约定的金额

•我的BTC接收地址:

mgLqJcG6kykw636f4B8BtKjx5HUmnH1442

•Alice之前设置的谜底:abcd (刚才获得的)

以及Alice构造这笔0.00031BTC冻结交易时的信息:

•Alice使用的谜题:

a21c2817130deaa1105afb3b858dbd219ee2da44

•我的BTC地址:

mgLqJcG6kykw636f4B8BtKjx5HUmnH1442,

•Alice的BTC地址:

mfmJmsGPgoJGPY4yzZsDj4Z5CfpWUQQHHD,

•这笔钱的冻结高度(BTC高度):1609905

•标志位,表示该花费交易是否为赎回交易:

这里填0,表示是正常流程的互换交易,

如果填1,表示是违约后,或者超时后的取回交易。

将上面获取的结果通过Lava内置的命令sendrawBTCtx发送到BTC主网,即可取回属于我的BTC,大功告成!

这里需要注意:

1.软件默认使用的比特币区块链浏览器(https://www.blockcypher.com/)可能有翻墙的问题,可能使sendrawBTCtx发送不成功。我们也可以直接去该网站或者其他比特币主网浏览器上直接发送交易。

2.考虑到BTC网络交易费用很高,所以做这笔BTC主网交易之前一定要设置好合理的settxfee!具体的btc交易费一般都可以在btc浏览器上找到。在第四步Bob使用spendhtlcwithwallet之前,先调用lava全节点的settxfee=btc主网费率即可。

Lava通过PoC共识机制让人人挖矿成为现实,⼤大降低了挖矿的门槛和成本。使得挖矿成为每⼀个人都可以操作的小事情。更通过「跨链原⼦子交换机」使得⽤户挖出来的币有了更加方便、安全的流通⽅式,使得Lava⽣态变得更为健康和完善,保证了挖矿⽤户的收益,也保持了链上的活性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭