首页 > 百科 >正文

区块链跨链中的哈希锁定

2021-07-30 11:30:14    来源:互联网    

之前聊跨链的时候,留了个尾巴,也就是哈希锁定。我没有说具体的流程,这里我们就详细谈一谈

简单复习一下跨链。跨链就是说打通各个链上的资产与生态项目。其实关键还是资产,你想想,如果你从中国到美国,只要你能把rmb换成dollar,那你就可以在美国吃喝玩乐。

区块链的世界中,想要实现这个目的,还是需要一些技术手段的。再简单一点儿说,你可以把它想象成任意两个公链、原生币之间都可以直接进行的币币交易。

首先还是老规矩,说透它,到底是个什么东西?其实他就是一个智能合约,一个自动执行的合同

这个合同的条款规定,两个用户之间要交易资产,就要先把资产锁定,并且规定一定时间之内,如果能够输入某个给定的哈希值的输入值,那么这两个资产就可以释放,双方就能完成交换。具体步骤如下:

首先,打个比方,张三和李四之间交易比特币和以太坊,张三先要准备一个小箱子和一个秒表,小箱子用来锁资产比特币,秒表用来规定双方打开箱子的时间

小箱子上有一把锁,这把锁需要计算后的哈希值来上锁,需要哈希值的原值进行解锁,也就是一个方程组的y上锁,x解锁。

这就和公钥私钥一个意思。公钥加密,私钥解密,私钥可以算出公钥,公钥不能反算私钥。不清楚的可以翻我之前的微头条,看一看公钥私钥的关系。

我们假设哈希指是110,输入值是abc,y是110,x是abc。110是公开的,abc是不公开的。只有张三知道,而问题的关键就是,张三要通过某种方式把abc告诉李四

注意,再复习一下哈希算法icon的一个特性,那就是防止碰撞。你知道最后的哈希值是110。但是你不可能通过人为制造的方式制造一对儿不同的输入值,来让最后的结果都等于110,只能是输入abc

假设张三把自己的比特币就锁在这个小箱子里,实际上就是锁在比特币的公链上。动不了了。必须有人拿到abc才能打开箱子拿到钱

秒表就比较好理解了。假设我们把秒表的时间设成24个小时,也就是说在24个小时之内,必须有人拿到abc,没有的话,智能合约就不能执行,即使拿到,超过了时间也不能执行

注意,这时候张三就把110给了李四。李四接到了110之后呢?他也要根据这个哈希值搞一件同样的事情,一个箱子和一个秒表,同时他在以太坊上安排一个智能合约,注意这个交易中李四更累一些。

假设李四给他的箱子里存10个以太坊。他的合同规定,也在24个小时内,也必须输入哈希值的原输入值abc,才能打开箱子,拿走以太坊。注意这个箱子和张三那个箱子共用一个密码。

这时候李四把箱子给张三,实际就是张三开始满足智能合约的触发条件,输入密码abc。

注意,张三当然是知道这个箱子密码的,因为他是一切的始作俑者,而只要他输入了abc,他就能打开李四的箱子,拿走以太坊。

同时,他在输入abc的同时,相当于他通过智能合约把这个密码告诉了李四。那李四也就能打开张三的箱子。并把里面的比特币取走。

最后的结果就是张三拿到了以太坊,李四拿到了比特币,交易完成。大概就是留这个流程,不清楚多看两遍,具体细节都是程序自动执行的,不用过于纠结。

这过程中,张三属于白嫖,比较费劲是李四,安排了智能合约。张三在转账的时候会多付一些转账手续费。通过这种方式就完成了比特币和以太仿之间的转换

这中间的时间限制主要还是为了促进交易尽快达成,通过这个线下的支付通道,提升链与链之间资产转换的效率。安全性也可以得到保障。

最后还是推荐下面链接的这本书。入门了解区块链

[责任编辑:editor]

相关新闻