一文了解 3 种跨链方案以及 Cypherium 跨链机制

在公证人机制、哈希锁定、 侧链 / 中继 3 种跨链方案中,Cypherium 采用第一种方案。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

原文标题:《Cypherium 跨链技术方案》

撰文:Cypherium

所谓「跨链」主要是指原本存储在特定区块链上的资产可以转换成为另一条链上的资产,从而实现价值的流通。也可以将其理解为不同资产持有人之间的一种兑换行为,这个过程实际并不改变每条区块链上的价值总额。和目前交易平台提供的币币交易一样,不同类型的数字货币之间可以进行兑换,只是交易平台的币币交易是通过中心化的数据库上进行,并没有发生在区块链上。

目前跨链主要有以下三种相对成熟的方案:

  • 公证人机制(Notary schemes)
  • 哈希锁定(Hash-locking)
  • 侧链 / 中继(Sidechains/relays)

公证人机制

中心化或多重签名的见证人模式,见证人是链 A 的合法用户,负责监听链 B 的事件和状态,进而操作链 A。本质特点是完全不用关注所跨链的结构和共识特性等。假设 A 和 B 是不能进行互相信任的,那就引入 A 和 B 都能够共同信任的第三方充当公证人作为中介。这样的话,A 和 B 就间接可以互相信任。它本身不是一个账本,不寻求任何的共识。相反它提供了一个顶层加密托管系统称之为「连接者」,在这个中介机构的帮助下,不同的记账系统可以通过第三方「连接器」或「验证器」互相自由地传输货币。记账系统无需信任「连接器」,因为该协议采用密码算法用连接器为这两个记账系统创建资金托管,当所有参与方对交易达成共识时,便可相互交易。该协议移除了交易参与者所需的信任,连接器不会丢失或窃取资金,这意味着,这种交易无需得到法律合同的保护和过多的审核,大大降低了门槛。同时,只有参与其中的记账系统才可以跟踪交易,交易的详情可隐藏起来,「验证器」是通过加密算法来运行,因此不会直接看到交易的详情。理论上,该协议可以兼容任何在线记账系统,而银行现有的记账系统只需小小的改变就能使用该协议。从而使银行之间可以无需中央对手方或代理银行就可直接交易。主要代表方案有:Interledger 协议、0x 协议

哈希锁定

哈希锁定起源于闪电网络的 HTLC (Hashed TimeLock Contract),如今也使用较为广泛。它实现的过程如下:

一文了解 3 种跨链方案以及 Cypherium 跨链机制

例如使用 Hash-locking 来实现 20ETH 和 1BTC 的原子交换过程:

  1. A 生成随机数 s,并计算 h = hash(s),将 h 发送给 B;
  2. A 生成 HTLC,超过时间设置为:2 小时,如果 2 小时内 B 猜出随机数 s,则取走 1BTC,否则 A 取回 1BTC;这里 A 用 h 锁住 BTC 合约,同时 B 也有相同的 h。这样 A 和 B 都有相同的锁 h,但 A 有钥匙 s
  3. B 在以太坊里部署智能合约,如果有谁能在 1 小时内提供一个随机数 s,让其 hash 值等于 h 则可以取走智能合约中 20ETH;
  4. A 调用 B 部署的智能合约提供正确的 s,取走 20ETH;
  5. B 得知 s,还有 1 小时时间,B 可以从容兑现 A 的 HTLC 的 1BTC。

一旦超时,交易失败,符合原子性。

注意:这里引入时间的参数主要是为了,一旦时间超时,当前用户可以收回自己的币。不然自己的币可能被恶意无限制锁定。

侧链 / 中继

侧链系统可以读取主链的事件和状态,即支持 SPV (Simple Payment Verificaiton),能够验证块上 Header、merkle tree 的信息。本质特点是必须关注所跨链的结构和共识特性等。一般来说,主链不知道侧链的存在,而侧链必须要知道主链的存在;双链也不知道中继的存在,而中继必须要知道两条链。

侧链是以锚定某种原链上的代币为基础的区块链,如法币对黄金的锚定一样。该技术最初是为了解决主链扩展性问题而想出来的扩容技术,每个区块链可以通过协议来实现强制执行的共识。一个区块链系统性能能够理解其它区块链的共识系统,能够实现在获得其它区块链系统提供的锁定交易证明之后,自动释放比特币。

例如 BTC-Relay 以太坊当作比特币的侧链,与比特币通过以太坊的智能合约连接起来,依赖于 SPV 证明可以使用户在以太坊上验证比特币交易。

其使用场景如下:

  1. Alice 和 Bob 同意使用 BTCSwap 合约来进行交易,Alice 要买 Bob 的 eth,Bob 把他的 eth 发送到 BTCSwap 合约
  2. Alice 向 Bob 发送 bitcoin,她希望 BTCSwap 这个合约能知道这件事以便 BTCSwap 合约可以释放 Bob 之前的 eth
  3. Alice 通过 bitcoin 的交易信息以及 BTCSwap 合约地址来调用 btcrelay.relayTx(),btcrelay 验证这笔交易通过后就触发 BTCSwap 合约里面的 processTransaction 方法
  4. BTCSwap 合约在被触发后确认这个 btcrelay 地址是一个合法地址,然后释放之前 Bob 的 eth,交易完成。

中继更为灵活,「中间人」仅仅充当数据收集者的角色,目标链收到发送链数据后由接收链自行验证,完成交易确认的工作。自行验证的方式依据系统结构不同而不同,主要代表有 Cosmos、Polkadot, 目前似乎技术方面遇到了障碍,一直未能取得实质性的进展和应用。

各方案的对比

一文了解 3 种跨链方案以及 Cypherium 跨链机制

Cypherium 采用的跨链方案

通过比较以上方案并考虑到 Cypherium 链自身的特点,决定采用公证人机制,也不另搞一套其他协议,准备直接采用 Interledger 协议,因为 InterLedger 协议虽然是由 Ripple 公司发起并主导,但是它是一个开放式协议,任何公司或个人都可以参与共同开发并免费使用,它不和任何区块链进行挂接,它的初衷是建立一个全球统一支付标准。一开始就得到了微软(Microsoft)和万维网(W3C)支持。苹果公司 2018 年也将其引入到自己的系统中, 目前已经在很多不同金融网络之间接入进行交易;中国有连连支付、美国有国际快速汇款巨头速汇金、日本 47 家银行 SBI 联盟、日本三菱 UFJ 金融集团、西班牙对外银行、瑞典北欧斯安银行、土耳其 AKbank 银行、印度 Yes 银行、印度 Axis 银行、日本 SBI 集团、美国星一信用联盟、美国 EZ Forex、加拿大 Cambridge FX、渣打银行、梅丽达盖茨基金会等都已接入,队伍还在不断扩大中。

它像是一个专用于连接的组件,专注于连接各类账本的支付标准、统一协议。其支持通信对象不仅包括了区块链,还包括了各类账本(通常为各个银行内部账本系统),各类账本通过去信任的第三方「连接器」来互相连接。InterLedger 协议是哈希锁定的实现模式。在这个系统中,两个不同记账系统可以通过第三方「连接器」或「验证」机器来互相自由地传输货币。记账系统无需去信任「连接器」,因为该协议采用密码算法为这两个记账系统和连接器创建资金托管,当所有参与方对资金量达成共识时,便可相互交易,跨账本的资金流动马上原子性发生。并且只有参与交易记账系统才可以跟踪交易,交易详情可隐藏起来,「验证器」是通过加密算法来运行,因此不会直接看到交易详情。这种方式特别适应于现有的银行系统,银行不喜欢用别人机器来验证他们交易,简单来说就是不喜欢公开处理方式或半公开处理方式,因为这两种方式都可能会给外人窥视他们内部数据机会。

以下是 Cypherium 利用 ILP 技术与 BTC 跨链转账的架构示意图:

一文了解 3 种跨链方案以及 Cypherium 跨链机制

对象:发送方--Alice,接收方--Bob, 连接者—Cot。

账本关系:Alice 拥有 bitcoin 的账户, Bob 拥有 cph 的账户, Cot 拥有 bitcoin 与 cph 账户。

场景:Alice 要从网上购买 Bob 的笔记本电脑,定价为 2000 个 cph 币。

  1. Alice 通过即时通讯软件或者其它通讯手段,得到 Bob 提供的一个「共享密码」。通讯一定要以加密方式进行,使得在沟通后,只有 Alice 与 Bob 知道这个「共享密码」;同时 Bob 会告诉 Alice 自己在 ILP 网络中对应的唯一地址,例如 a52813334ee89485d661fee989a0e75402b2eeea。
  2. Alice 去向 Cot 询价,查询自己想发送 2000 个 cph 币需要多个少 BTC,此时 Cot 会按实时的 BTC 与 Cypherium 行情算出需要 1 个比特币,同时 Cot 会多收 0.00001 个 BTC 作为手续费,最终 Alice 得到的询价结果为 : 需要向 Cot 支付 1.00001 个 BTC。
  3. Alice 按 ILP 规定的消息格式生成所需要的 ILP 包,ILP 包里指明目标地址为 Cot, 同时基于 ILP 包的私有内容与「共享密码」生成一个「条件原像」,对「条件原像」进行哈希散列,得到一个「托管」交易的「条件」。
  4. Alice 在 Bitcoin 账本系统上发起一个「托管」创建操作,设置了步骤 3 中的「托管」条件及一个超时时间,同时设置 ILP 包。
  5. Cot 在 Bitcoin 上监测到一个涉及自己的「托管」创建操作。
  6. Cot 解析 ILP 包,计算出自己应该向 Bob 转 2000 个 CPH 币,同时修改 ILP 中的目标地址为 Bob。
  7. Cot 在 Cypherium 账本系统上发起一个「托管」创建操作,设置了步骤 3 中的「托管」条件及一个超时时间,此超时时间要小于步骤 4 中的超时时间,同时设置 ILP 包。
  8. Bob 在 Cypherium 上监测到一个涉及自己的「托管」创建操作。
  9. Bob 解析 ILP 包 , 用自己的「共享密码」及 ILP 包里的私有内容生成一个「条件原像」及对应的「条件」。通过对比「托管」创建交易里携带的「条件」与自己生成的是否相同,及核实「托管」交易中指定的资产数量是否是 2000,来确认「托管」交易:接收或拒绝。我们这里假定接收。
  10. Bob 在 Cypherium 账本系统上发起一个「托管」确认操作,设置上「条件原像」,Cypherium 账本上的「托管」交易完成,Bob 收到 2000 的 cph 币
  11. Cot 在 cypherium 链上监测到一个涉及自己的「托管」确认操作。
  12. Cot 分析「托管」确认操作的内容,得到「条件原像」。
  13. Cot 在 bitcoin 账本系统上发起一个「托管」确认操作,设置上「条件原像」,bitcoin 账本上的「托管」交易完成,Cot 收到 1.00001 个 BTC。
  14. Cot 在 bitcoin 上监测到一个涉及自己的「托管」确认操作。

注意这里的「托管」交易包含四个主要步骤

准备:此时什么事情都没发生,只进行了必要数据的准备,发送方的资产并未真正转移

创建:隶属于一个「账本」系统上的某个账户的资产被「托管」,创建交易不能被撤销或者在一定时间内不能撤销。

确认:「托管」交易完成,资产发生转移,从「账本」系统内的一个账户转移到了另外一个账户。

拒绝:「托管」交易被取消,资产回到「账本」系统的源账户,「托管」交易可以设置超时时间,在规定时间内无人进行「确认」操作或者「拒绝」操作,「托管」交易自动失效。

本文由 区块链资讯平台头等仓 作者:链闻CHAINNEWS 发表,其版权均为 区块链资讯平台头等仓 所有,文章内容系作者个人观点,不代表 区块链资讯平台头等仓 对观点赞同或支持。如需转载,请注明文章来源。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

发表评论