大数跨境
0
0

BBD技术控 | 区块链跨链技术分享:哈希时间锁定&公证人机制

BBD技术控 | 区块链跨链技术分享:哈希时间锁定&公证人机制 BBD Data
2020-09-23
0
导读:跨链是区块链技术实现突破的重要方案

文 | 袁栩栩
安链科技区块链负责人 多年技术团队管理和项目管理经验,擅长高可用服务端技术架构,熟悉以太坊、Hyperledger Fabric、FISCO BCOS等区块链技术平台应用开发

跨链是链技术实现突破的重要方案,对解决不同应用和项目之间的互操作性和数据互通问题,都有着至关重要的作用。跨链技术方案中典型的有:哈希时间锁定(HTLC)、公证人机制、侧链、中继链、分布式秘钥控制等。本篇主要讲解哈希时间锁定(HTLC)和公证人机制实现跨链的技术特性。

哈希时间锁定(HTLC)

HTLC 的核心是时间锁和哈希锁。时间锁指,交易双方约定在某个时间内提交才有效,超时则承诺方案失效(无论是提出方或接受方)。哈希锁指,对一个哈希值 H,如果提供原像 R 使得 Hash(R) = H,则承诺有效,否则失效。如果交易因为各种原因未能成功,时间锁能够让交易参与各方拿回自己资金,避免因欺诈或交易失败造成的损失。

哈希时间锁定最早出现在比特币的闪电网络,跨链资产交换支持一定数量的 A 链资产和一定数量的 B 链资产进行原子交换。哈希时间锁定巧妙地采用了哈希锁和时间锁,迫使资产的接收方在最后期限内确定收款并产生一种收款证明给打款人,否则资产会归还给打款人。收款证明能够被付款人用来获取接收人区块链上的等量价值的数量资产或触发其他事件。

  • HTLC 主要特点

时间敏感性:HTLC 机制对交易时间的敏感性使得交易发起者不必浪费时间持续等待以确定他们的付款是否通过。如果设定时间已过,资金将被退回交易发起者,能够有效避免恶意拖延交易,降低交易对手风险。

去信任化:交易可以经由两方或多方执行而不需要它们彼此信任。由于用户不需要将资金提供给第三方托管机构,安全性也会相对提高。

跨资产交互性:在 HTLC 中,资金锁定实现了质押效果,为不同资产之间的交易提供了信任基础。

我们用一个例子来阐述如何使用哈希时间锁定进行跨链的原子资产交换,假设 Alice 和 Bob 有资产交换的需求,Alice 想用 1 个 BTC 和 Bob 换 20 个 ETH。那么首先需要在两条链上设置哈希时间锁定合约,然后执行如下步骤:

1.  Alice 随机构建一个字符串 s,并计算出其哈希 h = hash(s);
2.  Alice 将 h 发送给 Bob 的合约;
3.  Alice 锁定自己的 1 个 BTC 资产,并设置一个较长的锁定时间 t1, 并设置了获取该 BTC 的一个条件:如果 Bob 能够提供 h 的原始值 s 就可以得到该 BTC;
4.  Bob 观察到 Alice 合约中锁定了一个 BTC, 然后 Bob 锁定自己的 20 个 ETH 资产,并设置一个相对较短的锁定时间 t2, t2 < t1, Bob 也设置了获取条件:如果 Alice 能提供 h 的原始值 s 就可以获取 20 个 ETH;
5.  Alice 将自己最初生成的字符串 s 发送到 Bob 的合约里取得了 20 个 ETH;
6.  Bob 观察到步骤 5 中 Alice 的 s 值,将其发送给 Alice 的合约成功获取 1 个 BTC;
7.  至此 Alice 和 Bob 完成了资产的交换。
  • HTLC 应用瓶颈

协议兼容性较低:HTLC 实施需要满足一些必要条件:一是用户资产所在区块链需要基于相同哈希算法(比如都使用比特币的 SHA-256 哈希算法);二是区块链需要兼容 HTLC 和其他可编程功能;三是交易双方需要在同一区块链上有交易账户。这些条件可能会成为 HTLC 推广应用的主要障碍。

时间锁机制造成退款时间过长:时间锁有效降低了交易对手风险。但如果有中间节点因故无法进行交易,则必须等时间锁设定时间结束才能退款。如果发送者在设定时间结束前改变路径,将会承担极大风险。

公证人机制   

公证人机制是一种简单的跨链机制,在数字货币交易所中使用广泛,本质上它是一种中介的方式。假设区块链A和B本身是不能直接进行互操作的,那么他们可以引入一个共同信任的第三方作为中介,由这个共同信任的中介进行跨链消息的验证和转发。

公证人机制主要包括三种类型:单签公证人、多重签名公证人和分布式签名公证人。

  • 单签公证人

单签公证人也叫中心化公证人机制,通常由单一指定的独立节点或者机构充当,它同时承担了数据收集、交易确认、验证的任务。公证人在该交易过程中充当交易确认者和冲突仲裁者的角色,是用中心化机构替代了技术上的信用保障,这种模式虽然交易处理速度快,兼容性强,技术架构简单,但中心节点的安全性也成为系统稳定的关键瓶颈。

最传统的公证人机制是基于中心化交易所得跨链资产交换,这种跨链的方式比较单一,只支持资产的交换,如下图演示了Alice通过交易所,用比特币和Bob交换ETH的过程。

1.  Alice 通过交易所钱包将自己的比特币打入交易所地址;
2.  Alice 在交易所上挂上卖单1个BTC卖出20ETH价格;
3.  Bob需要将自己的ETH打入交易所的以太坊地址;
4.  Bob通过交易所挂出购买比特币的单子 20ETH买一个比特币;
5.  交易所将Alice的卖单和Bob的卖单进行撮合;
6.  交易所将Alice在交易所存储的1BTC 转移给Bob的比特币地址;
7.  交易所将Bob在交易所存储的20ETH 转移给Alice的以太坊地址。
  • 多重签名公证人

多重签名公证人机制,由多位公证人在各自账本上共同签名达成共识后才能完成跨链交易。多重签名公证人的每一个节点都拥有自己的一个密钥,只有当达到一定的公证人签名数量或比例时,跨链交易才能被确认。 

公证人是一群机构组成的联盟,跨链资金的转移是这个联盟所控制的。这种方式相较于单签名模式的安全性更高,少数几个公证人被攻击或者是作恶都不会影响系统的正常运行。

  • 分布式签名公证人

分布式签名公证人 机制和多重签名公证人机制最大的区别在于签名方式不同,它采用了多方计算MPC(Multi-Party Computation)的思想,安全性更高,实现也更复杂。基于密码学生成秘钥(系统有且仅产生一个密钥),并拆分(公证人组中谁都不会拥有完整的密钥)成多个碎片(经过处理后的密文)分发给随机抽取的公证人(即使所有公证人将碎片拼凑在一起也无法得知完整的密钥),允许一定比例的公证人共同签名后即可拼凑出完整的秘钥,从而完成更加去中心化的“数据收集验证”过程。

分布式签名公证人机制全面地保障了密钥的安全性,这种方法更灵活,也更安全,当少数节点遭受攻击时或发生各种错误时,并不会影响整个系统。

  • 公证人机制案例-Ripple

一种著名的分布式账本技术Ripple,也是采用类似公证人的机制来解决全球金融机构之间的资产交换。安链科技利用大数据和分布式技术为某全球知名审计机构(四大会计事务所之一)完成了Ripple的数字货币审计业务 

Ripple的系统架构如上图所示,Ripple系统中交易通过网络中的验证者进行交易的验证,验证者验证的交易通过加密算法保护交易内容不能被验证着窥探从而保证交易的隐私性。Ripple采用Interledger协议可以让两种不同链上的资产通过一个可信任的第三方,这个第三方可以是一个连接器,也可以是一个验证器,然后实现互相自由的传输数字资产。与上面员外举的例子不同的是,交易双方是无需信任中间这个连接器的,因为在这个Interledger协议中是有相应加密算法的,这个算法用连接器可以为交易双方的账户系统创建一个资金托管方,当所有的参与方对这笔交易达成共识时,便可自由交易。Interledger协议的亮点是它移除了交易参与者所需的信任,因为这个连接器是基于协议本身来运行的,而且交易双方的资产是有一个资金托管方来管理。只要Interledger协议的代码开源,自然会有开发者去验证,用户对Interledger协议的信任也基于此产生。

  • 公证人机制特点

公证人机制的优点在于能够灵活地支持各种不同结构的区块链(前提是公证人能够访问相关方的链上信息),缺点在于存在中心化风险。参与跨链的相关方需要对中间人给予较大的信任。

【声明】内容源于网络
0
0
BBD Data
大数观天下,微言解疑难
内容 748
粉丝 0
BBD Data 大数观天下,微言解疑难
总阅读693
粉丝0
内容748