Home 跨链交易-BTC_relay
Post
Cancel

跨链交易-BTC_relay

最近在公司做钱包的项目,产品已接近落地,基于 TEE 和 SE 的,主打安全性。

前几天去和一家做 REE 钱包的公司谈合作,这家公司主打的是跨链交易,很感兴趣。

之前也听说过跨链交易,但是了解不多,这几天就多学习了下。

BTC_relay 是其中一种,在看到 BTC_relay 之前,我也在想如何实现跨链交易,我觉得有几点是必须的:

  1. 为了解决互相不信任的问题,要有公正的第三方来确认交易和完成交易。
  2. 以太坊或者比特币需要知道对方的网络的情况,来确认交易已经完成。

只要可以做到上面的两点,我觉得跨链交易就可以完成。

对于第一点,可以用智能合约来实现。智能合约是公开的代码,就会按照预先设定好的规则来处理。正常情况下,确认双方的打款之后,交易就可以达成。如果一方违约,另一方的资金也可以退回。

第二点,一直没想明白如何去中心化实现。

而 BTC_relay 采用了一种很简单的方式。

BTC_relay

BTC_relay 采用的是侧链的方式,简单的原理图如下:

BTC_relay 在 ETH 的智能合约里,维护了当前比特币网络的所有区块头,类似于比特币的轻节点,这样就具备了验证某笔交易的基础。

那么比特币的区块头是如何同步到以太坊的智能合约里的呢? 这需要一群特殊的工人,relayer。他们不挖矿,他们的主要工作就是不断将比特币的区块头同步到智能合约里,然后如果有人使用到这些区块头,他们就会收到手续费(ETH)。

BTC_relay 主要是为了解决,比特币用户跨链使用 ETH 的 dapp 情景(比如加密猫),但是稍加改动就可以支持钱包的跨链交易,并且这是双向的,比特币换成了以太币,以太币换成了比特币。 虽然主导方在 ETH,主要花费手续费的也是 ETH 这边,但是这都是可以通过交易手续费解决掉的。

项目的关键点是 relayer,这是项目的 github 主页,最后一次提交是 2017-08-26,有点遗憾。 在 issue 里提到了一些原因,这些原因导致了 relayer 的减少。

一些想法

为了去中心化,使用 relayer 来同步 header,relayer 因为同步的 header 获取手续费,然后合约记录所有的 header 来成为一个轻节点,再通过 BTC 转账方提供的 transaction 和 merkle node 来验证交易,这个逻辑我觉得是没有问题的。

如果 relayer 越来越多,交易头更新得及时,那么使用 BTC_relay 的人会越来越多,relayer 的奖励也就越多,这是一个良性循环,相反来看,如果 relayer 不多,就是一个恶心循环。

获得手续费的机制和数量非常重要,还有环境,这些决定了 relayer 的数量。

This post is licensed under CC BY 4.0 by the author.
Contents