9-1 中继机制
跨链技术概述
什么是跨链技术?
通俗来讲,跨链技术,顾名思义,就是通过一个技术,能让价值跨过链和链之间的障碍,进行直接的流通。
跨链可以理解为连接各个区块链的桥梁,来解决两个或两个以上不同链上的资产以及功能状态互相传递、转移、交换的难题。
为什么需要跨链技术?
除了解决单链的效率低、增强单链的可扩展性以外,
互操作
解决多场景、多行业、多领域下的“链孤岛”问题,解决多链种间的通信及价值交换。
跨链技术的分类及发展
跨链在技术实现上具体分为4种方式:
- 公证人机制:引入可信的第三方进行跨链消息的验证和转发。
- 侧链/中继链机制:一种能够自行验证交易数据且具有可扩展性的跨链技术。(各有侧重)
- 侧链:是指完全拥有某链的功能的另一条区块链,可以读取和验证主链信息。
- 中继链:构建一条第三方链,通过跨链消息传递协议,连接区块链网络中不同的源链。
- 哈希锁定:在无需可信公证人的情况下,通过哈希锁和时间锁共同完成链间资产兑换。
- 分布式私钥控制:通过分布式节点控制各种资产的私钥,并将原链资产映射到跨链中,确保资产的互联互通。
中继链机制概念
中继链定义
中继链(relay-chain)又名中继器,旨在构造一个第三方公有链,通过跨链消息传递协议,连接区块链网络中不同的区块链系统。
中继链机制是公证人机制与侧链机制的融合与拓展。
侧链是完全用某链的功能的另一条链,可以读取和验证主链上的信息,主链不知道侧链的存在。
侧链着重侧重主从关系,中继链则是链接着两条对等链的第三方链。
中继链对需要进行互操作的两条链之间的关键信息收集并进行自我验证;适用于链接2个异构或同构区块链。
中继链也可以看作一种去中心的公证人机制
中继机制与侧链的区分
侧链 | 中继链 | |
---|---|---|
从属关系 | 从属主链,侧重优化主链的可扩展性 | 无从属关系,链接的两条链对等,侧重跨链数据的传输 |
执行效率 | 需同步所有区块头,慢 | 不需要下载所有区块头,快 |
安全性 | 与主链的安全机制独立 | 由主链自行验证 |
区块链典型应用
Polkadot
波卡Polkadot是什么?
波卡Polkadot是一种异构的多链架构。旨在解决区块链互操作性、可扩展性和安全性的问题。
简述波卡Polkadot背景
波卡项目是目前跨链项目中热度较高的,是由以太坊核心开发者“以太坊之母”Gavin Wood在离开以太坊之后推出的第三代公开无需授权的区块链技术。
了解波卡Polkadot的技术概貌
波卡Polkadot核心设计理念:即时拓展性和延伸性
Polkadot可将私有链、联盟链融入到公有链的共识网络中,同时又能兼顾隐私及许可的防护措施,给予一个全新的交易层,并有机会将数百个区块链互相连接。
Polkadot代币:DOT(存在于中继链,所有转账交易都在中继链完成)
详解波卡Polkadot
技术架构
- 中继链Relay Chain
核心,负责网络的安全性、共识和跨链互操作
- 平行链Parachain
主权区块链,可以拥有自己的代币,也可以加入波卡实现互操作,共享中继链的安全性
参与角色
- 提名人 Nominators(存在于中继链)
通过选择可信赖的见证人并抵押DOT代币
- 见证人 Validators(存在于中继链)
通过抵押DOT代币,验证收集人的证据,并与其他见证人达成共识来保护中继链
- 收集人 Collators (存在于平行链)
通过收集用户的分片交易,并为见证人通过证明来维护分片。
- 钓鱼人 Fishermen(存在于平行链)
监控网络并将不良行为报告给见证人。收集人和平行链中的任何节点都可以成为Fishermen。
跨链流程
在跨链中,平行链无需符合每一种特定的架构,只需符合接口要求即可。
波卡Polkadot主要优势
- 可扩展性高:可支持大量区块链的互联——平行链机制
- 兼容性强:不同区块链支持不同的共识、架构等,波卡不限制接入链的类型,接口匹配即可
- 互操作性强:支持不同区块链之间的价值转移
- 可升级性强:不需要通过硬分叉完成升级——中继链机制
- 安全性高:连接在波卡的区块链通过一个安全伞确保安全,可以为安全性差的区块链共享其安全性
Polkadot拓展
波卡Polkadot与以太坊之间对比
Cosmos
Cosmos设计理念
解决单链性能不足、治理机制不完善等问题。
旨在创建一个区块链互联网,允许大量自主且易开发的区块链互相扩展和交互
了解Cosmos技术概貌
Cosmos是一个由多个独立平行区块链组成的去中心化网络,基于Tendermint开发,利用其共识的高性能、即时确定性去实现多个异构链之间的价值和数据传输。
Cosmos跨链网络的核心组成部分
- 中心中枢:Hub
是Cosmos的经济中心,也是跨链消息的信任中心
是专门为将区域链连接在一起而设计的
负责追踪记录各个区域链的状态
- 区域空间:Zone
是参与到Cosmos网络中的应用链,是独立的区块链,可为异构
可以与Hub进行IBC跨链通信、信息与资产交换
- 跨链协议:IBC
是Cosmos区块链间通信协议
依赖Cosmos即时最终性的特点,用于Hub与Zone之间的消息传递,进而达到跨链的目的
Polkadot与Cosmos对比
Polkadot | Cosmos | |
---|---|---|
底层跨链协议 | XCMP | IBC |
支持的应用链 | 基于Substrate框架的应用链可直接接入中继链 其余类型的应用链需要通过平行链桥接 | 支持Tendermint BFT共识算法的应用链可直接接入中继链 其余类型的应用链需要通过PegZone桥接 |
是否支持异构跨链 | 是 | 是 |
是否支持跨链智能合约调用 | 否 | 否 |
特点 | 可扩展、互操作性、安全可信、可升级 | 高性能,即时确定性、安全性 |
9-2 哈希锁定
哈希锁定概述
什么是哈希锁定?
哈希锁定,全称哈希时间锁定(Hash TimeLock),最早出现在比特币闪电网络值。包括:哈希锁定,时间锁定。
哈希锁定运行逻辑
哈希锁定:依托于哈希函数的单向性(无法倒推)和低碰撞性(解唯一),和区块链机制交易可以延时执行形成的一种交易机制。
哈希锁定模式:用户在规定时间段对于哈希值H(x)的原值x进行猜测来支付的一种机制。
在这种机制下,可以实现小额支付的快速确认。
如何实现哈希锁定
哈希锁定
对一个哈希值H,如果提供的x可以使得Hash(x) = H,则交易成功;反之,交易失败。
时间锁定
交易双方约定在某段时间内提交x,交易才有效,超过该时间,无论x是否正确,该交易都将判定为失败。
举个例子
- 西装男生成随机数X,并将哈希后的哈希值H(X)发给条纹男,西装男进行哈希上锁和时间上锁。假设,X = 1234,H(X) = a1b2c3d4。时间锁为1小时。
- 条纹男收到哈希值H(X)后,将等值的以太坊通过合约部署上链,并进行哈希上锁和时间上锁。合约要求条纹男在规定时间提供密码“1234”。这里,哈希锁与西装男一致,时间锁为条纹男自行设置。
- 西装男在条纹男规定的时间内,调用该智能合约并提供“1234”,即可取走以太坊。
- 条纹男收到密码,并在西装男规定的时间1小时内输入“1234”,即可取走比特币。
这样,就利用哈希锁定完成了一次跨链交易。
区块链典型应用——闪电网络
微支付通道
微支付通道是为了解决高频小额交易中存在手续费过高的问题
举个例子来理解下微支付通道:A向B分10次转账10元以获取相应数据资源
- 用户A生成1笔保证金交易,把10元打到A、B控制的多重签名地址上面。这笔钱需要A、B两个人同时出具私钥才能把钱取出来。
- 用户A生成一笔以保证金交易为输入的退款交易,然后把交易发送给B让其签名,签名返回给A。
- 不断发起承诺交易。用户A循环拷贝一份退款交易,并调整输出为:A:9.8.7...元;B:1.2.3...元,签名并发送给B。B保留这个交易,但这个过程不广播到网络上,只在A与B之间传递。
- 当A完全获取资源并转账结束后,发起清算交易,此时,A:0,B:10元,时间锁定值为0.B收到这个交易,广播全网,立即生效,交易完成。
解决了交易双方之间的高频小额支付存在高手续费的问题,但无法实现大规模的交易支付网络
闪电网络
- 目标:提高比特币的交易速度
- 主要思想:把大量交易放在链下执行
- 升级微支付通道:实现已有支付通道的复用
闪电网络的核心
HTLC(哈希时间锁定合约)
概念
主要目的:在没有建立直接点对点的支付信道的交易双方之间连接一条由多个支付通道构成的支付路径,实现资金的转移。
运行逻辑
HTLC在多个节点之间通过HASH的方式传递信息
运行逻辑可归纳为四个字“即时转账”
逻辑与微支付通道类似。通过智能合约,双方约定转账方A先冻结一笔钱,并提供一个哈希值,如果在规定时间内,有B可以提供一个字符串(哈希值的原值),使它哈希后的值可跟已知值匹配,则交易完成,这笔钱转到B账户中。
- 西服男生成一个随机数,作为哈希原值,告知条纹男
- 由于没有支付通道,需要借助眼镜男与二者的支付通道。
- 眼镜男不知道哈希原值,故无法获取资金,提供通道给到条纹男。
- 条纹男用原值在规定时间内解锁交易,获得转账。
- 解锁后,原值被记录在链上,眼镜男可利用原值解锁与西服男的锁定交易,从而获得手续费。
RSMC(序列到期可撤销合约)
概念
RSMC协议:序列到期可撤销合约
可以避免或惩罚交易中的欺诈行为,保障闪电网络每笔交易的有效性
RSMC是一种附带执行条件的可撤销比特币合约
执行条件
本合约所在区块的高度要比父合约所在区块的高度大一个序列。
这个序列数是合约的确定参数。例如:序列数为100,那么如果RSMC写在了其父交易所在区块高度a与a+100之间的区块中,都不会被执行。为了保证RSMC顺利执行,一般都会等到区块数达到其父交易所在区块高度+100的时候再在全网广播。
序列的引入
根据上述概念,可以发现,RSMC的执行具有一定的“时延”,也就是前面说的序列数,为什么呢?
引入序列的目的:给出一个实施惩罚的窗口期,当发现交易双方有人反悔(破坏合约执行)时,可以有序列数个块确认的时间去实施惩罚机制。
运行逻辑
假设:西装男想反悔交易,将退款交易广播到了区块链上,那么结果会是什么样呢?
结果:条纹男会立即拿到保证金,而西装男需要等100个区块确认后拿回自己的前。
- 由于双方各自向公共账户转账,实现了双向支付;
- 其中一方想中断交易拿回钱的时候,需要等待序列区块确认。巧妙地实现了谁主动中断,谁延迟退钱。
- (拓展)双方进行新一轮转账交易时,会将上一轮的私钥给对方,形成处罚交易,如果一方反悔,会触发处罚交易,实行余额转账。
解决的问题
- 双向支付,而不是单通道
- 交易其中一方中途退出,另一方可立即赎回资金,不需要等锁定期
- 保证交易双方不可抵赖,设置惩罚机制
支付通道
闪电网络会为进行大量小额的交易双方建立一个支付通道。对于双方的每笔小额支付,不需要经过比特币网络。
支付通道的建立和关闭需要与链进行交互,而其余时间都是点对点完成。
9-3 公证人机制
公证人机制概念
什么是公证人机制?
一种跨链机制
通过引入一方或多方可信实体做信用背书实现跨链
公证人机制类型
公证人机制主要包括三种类型
单签名公证人机制
也叫中心化公证人机制,通常由单一指定的独立节点或者机构充当,它同时承担了数据收集、交易确认、验证的任务。
示例:基于中心化交易所的跨链资产交换
A通过交易所,用比特币和B交换ETH的流程:
- A通过交易所钱包将自己的比特币打入交易所地址;
- A在交易所上挂上卖单1个BTC卖20ETH价格;
- B需要将自己的ETH打入交易所的以太坊地址;
- B通过交易所挂出购买比特币的单子20ETH买1个比特币;
- 交易所将A的卖单和B的卖单进行撮合;
- 交易所将A在交易所存储的1BTC转移给B的比特币地址;
- 交易所将B在交易所存储的20ETH转移给A的以太坊地址。
多重签名公证人机制
多重签名公证人机制,由多位公证人在各自账本上共同签名达成共识后才能完成跨链交易。
多重签名公证人的每一个节点都拥有自己的一个密钥,只有当达到一定的公证人签名数量或比例时,跨链交易才能被确认。
核心:多重签名技术(M/N)
分布式签名公证人机制
分布式签名公证人机制和多重签名公证人机制最大的区别在于签名方式不同,它采用了多方计算MPC(Multi-Party Computation)的思想,安全性更高,实现也更复杂。
系统有且仅产生一个密钥,而公证人组中谁都不会拥有完整的密钥,密钥是以碎片的形式随机地发送给每一个公证人节点,且碎片是经过处理后的密文,因此即使所有公证人将碎片拼凑在一起也无法得知完整的密钥,全面地保障了密钥的安全性。
公证人机制解决的核心问题
体现在两个方面
- 保障跨链交易原子性
- 完成对另一条链交易确认
优点
- 技术上可实现的,最简单的跨链机制
- 能够灵活地支持各种不同结构的区块链(前提是公证人能够访问相关方的链上信息)
缺点
- 参与跨链的相关方需要对中间人给予较大的信任
- 对于单节点公证人机制,存在较大的中心化风险
- 对于多重签名公证人机制,需要目标链上支持多重签名机制
公证人机制在区块链典型应用
瑞波InterLedger协议(ILP)
瑞波Ripple是一个基于互联网的全球开放的支付网络,人们可以通过这个支付网络转账任意一种货币,交易确认只需要几秒钟就能完成,即简便又快捷,交易费用接近于零。这是互联网金融提供的、有别于SWIFT的、全新的支付模式。
Interledger Protocol(简称ILP),一种支付系统间的支付协议,于2015年10月由瑞波Ripple引入。
ILP支持分类账之间的安全转账,并允许任何账户在两个分类账上的人建立账户之间的连接。
InterLedger协议适用于所有记账系统、能够包容所有记账系统的差异性,该协议的目标是要打造全球统一支付标准,创建统一的网络金融传输的协议。
InterLedger协议概念
InterLedger协议使两个不同的记账系统可以通过第三方“连接器”来互相自由地传输货币。
记账系统无需信任“连接器”,因为该协议采用密码算法用连接器为这两个记账系统创建资金托管,当所有参与方对交易达成共识时,便可相互交易。
该协议移除了交易参与者所需的信任,连接器不会丢失或窃取资金,这意味着,这种交易无需得到法律合同的保护和过多的审核,大大降低了门槛。
两个关键组件
- 连接器:是瑞波解决方案的消息组件。它是一个即插即用模块,连接受益人银行瑞波连接器,交换KYC和风险信息、费用、汇率、支付详细信息以及期望的资金到账时间。
- 验证器:是提供支付成败信息的唯一可靠来源,协调参与交易的各个金融机构的账本更新。提供一个中心化的信任源,在保护交易隐私的同时验证交易。
InterLedger协议条件
各“账本”要想利用ILP技术与其他区块链或者“账本”进行价值转换,需要满足以下条件:
- 必须支持自己“账本”所管理下的一个账户向自己账本所管理下另一个账户的转账操作;
- 必须要支持托管式的交易操作,该类型的交易需要两个必要参数:一个执行“托管”交易的“条件原像”及一个“超时时间”;
- 任何用户,不局限于“托管”交易的创建者,在提供“托管”交易的“原像条件”时,就可以决定“托管”交易是被执行还是被拒绝;
- 如果“托管”交易创建后超时,“托管”交易就会自动失效,“托管”交易里所托管的货币会重新进入“托管”交易的创建者账户;
- “账本”所支持的交易需要具有携带简短消息的能力;
- “账本”支持事件通知功能,使得各方能及时知道有一笔针对自己的“托管”交易。
注释:
- 资金托管:是一个互联网金融术语,是指接收客户委托,安全保管客户资金、行使监督职责,并提供投资管理相关服务的业务。
- 原像:给定一个集合A到集合B的映射,如果在该映射下元素a对应为元素b——f(a)=b,则称b为a的像,而a为b的一个原像。对“条件原像”进行哈希散列,就可以得到一个“托管”交易的“条件”。
- 超时时间:在规定时间内无人进行“确认”操作或者“拒绝”操作,“托管”交易自动失效。
功能
- 使用分类帐提供的托管服务确保使用连接器付款是安全的;
- 如果付款成功,付款的发送方将获得接收方的加密签名收据,否则将退还其托管资金。
核心
- 确定了各个“账本”系统上的每个账户的地址规则,即通过层级关系来确定某一个账号是属于某个范围内某个账本上的。例如g.ripple.Bob表示公链上的一个账户Bob
- 定义了在跨链交易时的消息传递格式,使得发送方、接收方、连接者之间可以用相同的消息格式进行信息的传递,用以确认收到消息及得到自己的目标地址。
ILP交易的“托管”功能
ILP是利用各个账本所提供的“托管”功能进行各子交易的实现。
“托管”交易包含四个步骤:
- 准备:此时什么事情都没有发生,只进行了必要数据的准备。
- 创建:隶属于一个“账本”系统上的某个账户的资产被“托管”。
- 确认:“托管”交易完成,资产发生转移,从“账本”系统内的一个账户转移到了另外一个账户。
- 拒绝:“托管”交易被取消,资金回到“账本”系统的源账户。
ILP跨账本支付的两种模式
- 原子模式:参与者选择一组特殊公证人来协调转移支付。转账由一组公证人N协调,这些公证人N是付款成功或失败的直接来源。
公证人:构成付款的账本传输B的所有托管条件必须取决于公证人发送的执行消息D_Execute或D_Abort终止消息。
容错性:只要在N中不超过f拜占庭公证人,那么该协议的结果就是正确的。
- 通用模式:使用有限的执行窗口和激励机制来消除对任何需要相互信任的系统或机构。
ILP交易的详细流程
- 整个交易流程分成“发送方--->接收方”与“接收方--->发送方”两个主流程。
- 每个流程又是由发生在各个“账本”上的各个子交易(“托管创建”与“托管确认”)组成。
- “发送方--->接收方”流程全部是“托管”的创建动作,“接收方--->发送方”则全由“托管”的确认动作组成。
ILP交易的详细步骤示例
场景:Alice要从网上购买Bob的笔记本电脑,定价为10000个ripple币(假设)。
- 对象:发送方-- Alice,接收方-- Bob,连接者-- Cot。
- 账本关系:Alice拥有bitcoin的账户,Bob拥有ripple的账户,Cot拥有bitcoin与ripple账户。
- Alice通过即时通讯软件或其他通讯手段,得到Bob提供的一个“共享密码”。
- Alice去向Cot询价,查询自己想发送10000个ripple需要多少个BTC。
- Alice按ILP规定的消息格式生成所需要的ILP包,ILP包里指明目标地址为Cot,同时基于ILP包的私有内容与“共享密码”生成一个“条件原像”,对“条件原像”进行哈希散列,得到一个“托管”交易的“条件”。
- Alice在bitcoin账本系统上发起一个“托管”创建操作,设置了步骤3中的“托管”条件及一个超时时间,同时设置ILP包。
- Cot在bitcoin上监测到一个涉及自己的“托管”创建操作。
- Cot解析ILP包,计算出自己应该向Bob转10000个ripple币,同时修改ILP包中的目标地址为Bob。
- Cot在ripple账本系统上发起一个“托管”创建操作,设置了步骤3中的“托管”条件及一个超时时间,此超时时间要小于步骤4中的超时时间,同时设置ILP包。
- Bob在ripple上监测到一个涉及自己的“托管”创建操作。
- Bob解析ILP包,用自己的“共享密码”及ILP包里的私有内容生成一个“条件原像”及对应的“条件”。通过对比“托管”创建交易里携带的“条件”与自己生成的是否相同,及核实“托管”交易中指定的资产数量是否是10000,来确认“托管”交易:接收或拒绝。
- Bob在ripple账本系统上发起一个“托管”确认操作,设置上“条件原像”,ripple账本上的“托管”交易完成,Bob收到10000个ripple币
- Cot在ripple上监测到一个涉及自己的“托管”确认操作。
- Cot分析“托管”确认操作的内容,得到“条件原像”。
- Cot在bitcoin账本系统上发起一个“托管”确认操作,设置上“条件原像”,bitcoin账本上的“托管”交易完成,Cot收到1.00001个BTC。
- Alice在bitcoin上监测到一个涉及自己的“托管”确认操作。
9-4 侧链机制
侧链机制概念
什么是侧链技术?
百度百科:侧链协议是一种实现双向锚定(two-way Peg)的协议,通过侧链协议实现资产在主链和其他链之间互相转换,或是以独立的、隔离系统的形式,降低核心区块链上发生交易的次数。
通俗理解:
侧链协议是一种可以让比特币安全地从比特币主链转移到其他区块链,又可以从其他区块链安全地返回比特币主链的协议。
侧链技术的发展历程
侧链的作用
- 提高交易效率
- 侧链是独立的,不会对主链造成安全困扰
- 可以为主链拓展不同的功能。如智能合约、隐私性等
双向锚定最大的难点是:侧链的行为不能对主链的工作造成影响。
具体实现方式
单一托管模式
是主链与侧链双向锚定的最简单实现方式。
设计逻辑:设计一个单一托管方(第三方),将主链数字资产锁定并发送至托管方,收到消息后,在侧链激活相应数字资产。
问题:中心化
优势:不需要对现有比特币协议做改动
联盟模式
是使用公证人联盟的方式代替单一的保管方。
设计逻辑:利用公证人联盟的多重签名对侧链的数字资产流动进行确认。
对比单一托管模式:中心化程度降低,安全性提高。要想盗取主链上冻结的资产需要突破更多的机构。
问题:依然存在中心化,安全性依赖于公证人联盟的诚实度。
优势:不需要对现有比特币协议做改动
SPV模式
是一种用于证明交易存在的方法。
设计逻辑:主链锁定一笔资产并创建SPV证明发送给侧链,侧链验证主链的资产已被锁定,并在侧链上打开相同价值的数字资产。随后该笔资产被送回主链,以解锁主链的数字资产。
问题:会遇到社区共识问题,需要对主链进行软分叉
软分叉:当新共识规则发布后,没有升级的节点会因为不知道新共识规则下,而生产不合法的区块,就会产生临时性分叉。
驱动链模式
矿工作为“算法代理监护人”,对侧链当前的状态进行检测。
设计逻辑:驱动链将锁定的数字资产监管权发放到矿工手上,并且允许矿工们投票何时解锁以及发到何处。矿工观察侧链的状态,当收到侧链的要求时,执行协调协议以确保要求的真实性保持一致。
问题:需要对主链进行软分叉
混合模式
主链与侧链使用的解锁方式不同。
原因:上述的双向锚定实现方式都为对称的。但实际情况中,主链与侧链的实现机制会有大部分情况存在本质的不同,所以对称的双向锚定不够完善。
问题:混合模式也需要对主链进行软分叉。
区块链典型应用——BTC Relay
BTC Relay概况
BTC Relay定义
是一种让比特币可以在其他系统能够流通的一种跨链技术方案(连接以太坊和比特币网络)
是区块链生态系统中公认的第一条侧链
BTC Relay由来
为解决比特币流通性的问题
主要问题:比特币系统无法支持智能合约,限制了应用发展;扩容困难。
实现目的
用户可以在以太坊DApp中使用BTC支付
方案
BTC Relay实现了以太坊智能合约在不需要第三方中介的情况下,就可以安全验证BTC交易
实现原理
BTC Relay的核心:在以太坊智能合约里保存一份轻量的VTC交易数据——区块头Hash数据,且这个Hash数据是完整的VTC区块头Hash,并以链表的方式维护。
执行流程
给定场景:西服男的BTC与条纹男的ETH互换。
执行流程:
- ETH部署交易合约
- 条纹男将约定的ETH部署到合约中
- 西服男在BTC上向条纹男账户转账
- Relayers向BTC Relay合约中提交区块头信息,BTC Relay合约校验并交易
- 交易合约从BTC Relay合约上获取指定交易信息并验证,有效后触发转账。
合法性问题
合法性问题我们更愿意用分叉的角度来解释。
区块头不合法等价于区块头不在主链上
如果用户提交的区块头不在主链上,提交者也无法获得收益。由于个人的算力无法超越BTC主网的算力,因此,该问题出现的概率很小,提交者会按照BTC主网生产出来的区块提交区块头信息。
BTC Relay缺陷
BTC Relay是个单向解决方案
只可以将BTC引入以太坊无法将以太坊中的BTC转移回BTC系统
Relayer服务者少,参与意愿低
由于在以太坊中交易需要支付手续费(gas),导致Relayer开销太大
9-5 分布式私钥控制
分布式私钥控制原理
分布式私钥控制定义
什么是分布式私钥控制?
分布式私钥控制(Distributed private key control),是基于密码学中的多方计算和门限密钥的一种跨链技术。
它采用分布式节点来控制区块链系统中各种资产的私钥,将数字资产的使用权和所有权进行分离,使得链上资产的控制权能够安全地转移到非中心化系统中,同时将原链上的资产映射到其他链中,实现不同区块链系统间的资产流通和价值转移。
两个重要概念
分布式控制权限管理
分布式控制的核心在于分布式控制权限管理
分布式控制权限管理(Distributed control rights management,DCRM),是指个人或集中式组织将数字资产的控制权移交给去中心化节点管理的过程。
加密资产控制权是通过对其私钥的控制来表示的。
资产映射
我们将在分布式网络系统上为一个管理对象生成相应的令牌进行记账的过程称为加密资产映射。
通过映射,一个令牌可以自由地与其他映射的资产交互。
分布式私钥控制的安全性
数字资产分布式控制权限管理采用两种方法实现安全性:
1. 密钥分片
将一个完整的密钥划分为几个部分的过程称为密钥分片,每个部分称为密钥的一个分片。分片后的密钥从生成到存储的整个过程中都不需要重新组织,因此在任何时候任何地点都不会出现一个完整的私钥。
2. 分布式存储
密钥分片存储在分布式系统的不同节点上。在分布式存储过程中,每个节点只接触密钥中的一个或多个片段。每个节点都不能通过这些片段重新组织密钥,从而降低密钥泄露的风险。
分布式私钥控制——使用权和所有权
分布式私钥控制特性
优点
私钥由多个节点保存,避免了单点故障,并且采用分布式存储一定程度上避免了公证人机制下的中心化风险。
可以适用于各种链,在不改变链的情况下,完成交易,使用范围广。
缺点
智能合约开发难度较大。
交易过程中的交易速度,与原链本身的交易速度有关,可能需等待较长时间。
分布式私钥控制的交易流程
锁定和解锁
原有加密资产被转移到跨链上时,跨链节点会在已有合约中为用户发放等值代币。为了确保原有链资产在跨链上仍然可以相互交易流通,实现和解除分布式控制权限管理的操作称为:锁定(Lock-in)和解锁(Lock-out)。
锁定:就是对所有通过密钥控制的数字资产实现分布式控制权管理和资产映射的过程。
解锁:是Lock-in的反向操作,就是利用已经掌握的分布式私钥对锁定的代币进行解锁操作,使代币由原来的不可操作状态变成现在的可转移可操作状态。解锁由两部分组成:分发控制权限管理和反汇编资产映射。解锁完成后,数字资产的控制权返还给所有者,恢复完整密钥的存储和密钥的集中管理。
分布式私钥控制在区块链的典型应用
代表项目有Fusion和Wanchain。
Fusion项目介绍
Fusion的愿景是在加密金融时代建立一个平台级的公链,作为价值转移的关键基础设施,可以连接各种价值,提供完整的金融功能,沟通不同的社区和代币,并在中心化和去中心化组织之间架起桥梁,尽早实现价值互联网。
分布式控制权管理(DCRM)
DCRM是将数字资产私钥从个人或中心化组织转交给FUSION公有链的过程。这是FUSION实现TOKEN映射的重要途径,私钥的分布式生成和分布式存储确保了没有人可以访问完整的私钥,确保没有单个节点可以获得对数字资产的控制权。
Fusion交易流程
Lock-in
下面以比特币为例,介绍Lock-in的实现过程。
Lock-out
类似的,用户解锁请求也通过调用相关的程序接口在钱包中发起。用户使用钱包的过程与任何代币转账类似。
具体步骤如下:
- 发起解锁请求
- 检查、锁定、生成交易
- 阈值签名
- 分解分布式控制权限管理
- 释放token映射并销毁
示例
情景:
比特币用户A和以太坊用户B想跨链使用对方的币(当前汇率为1BTC = 10ETH)
Wanchain万维链
Wanchain万维链在技术上是一个为不同区块链网络提供资产跨链通道的基础设施,是一个通过跨链协议实现与不同区块链网络互联互通、完整记录跨链交易、维护链内交易明细的分布式账本。万维链将支持主流公有链间的跨链交易、联盟链间的跨链交易以及公有链与联盟链之间的跨链交易。
整体介绍
总体架构
万维链在技术是是一个为不同区块链网络提供资产跨链转移通道的基础设施。
- 分布式账本及智能合约虚拟机:基于以太坊开发的通用账本,可以独立运行应用,保留账户模式和智能合约,可以完整实现以太坊原有的各项功能。同时,加入了跨链交易机制,可实现智能合约代币交易的隐私保护。
- 共识机制:对于万维链上普通交易的共识机制采用POS共识。同时,在传统POS共识基础上,引入跨链交易的共识和激励机制。
- 链内交易:万维链上的普通交易与以太坊相同,同时增加了智能合约代币交易的隐私保护机制,该机制通过环签名和一次性账户实现。
- 跨链连接:利用多方计算和门限密钥共享方案进行联合锚定,在不改变原有链机制的基础上通过跨链通信协议实现最小代价接入。
- 跨链交易:当一种未注册资产由原有链转移到万维链上时,万维链节点会使用一个基于协议的内置资产模板,根据跨链交易信息部署新的智能合约创建新的资产。
跨链交易过程
为描述公有链与万维链之间资产的转入转回,我们以以太坊为例详细说明如下:
技术特征
- 完全去中心化,无可信第三方参与
- 无需修改原有链机制,接入门槛低
- 基于密码学算法的安全性保证
- 跨链交易的隐私保护
关键技术
万维链验证节点共识机制
万维链采用POS共识机制,验证节点分为三类——普通验证节点(Validator)、跨链交易证明节点(Voucher)和锁定账户管理节点(Storeman)。
- 普通验证节点:负责在收到达成共识的交易证明后,通知锁定账户管理节点对锁定账户进行相关操作并完成万维链账本的记账操作。
- 跨链交易证明节点:负责在跨链交易过程中提供原有链账户与锁定账户之间交易的证明,同时它也需要缴纳一定的保证金,保证金越多,它所提供的证明被采纳的概率也越高,如果提供虚假证明,它的保证金将会被扣除并剥夺跨链交易证明节点的身份。
- 锁定账户管理节点:负责在接到通知后,通过自己所持的密钥份额计算出签名份额并最终合并为锁定账户完整签名,以便进行锁定账户的相关操作。
安全多方计算技术
安全多方计算是分布式密码学的理论基础,也是分布式计算研究的一个基本问题,最早由姚期志于1982年通过姚氏百万富翁问题提出。
安全多方计算能够同时确保输入的隐私性和计算的正确性,在无第三方的前提下通过数学理论保证参与计算的各方成员输入信息不暴露,且同时能够获得准确的运算结果。
门限密钥共享技术
门限密钥共享技术解决的是密钥安全管理问题,由以色列密码学家Shamir提出。门限密钥共享方案中,密钥被分为n份分配给n个参与者,每个参与者掌握一个密钥份额,只有集齐超过k个密钥份额,才能够将密钥恢复。因此,账户的任何操作都至少需要n位参与者中的k位参与才能够实施,这样便保证了账户的安全可信。
锁定账户生成方案
万维链基于安全多方计算和门限技术,设计了锁定账户生成方案。
具体方案如下:
锁定账户签名生成方案
锁定账户生成过程中并不会产生对应私钥,并且它的私钥不会在任何过程中重构出来。要生成锁定账户的签名,需要至少k个验证节点参与,它们通过自身掌握的密钥份额计算得到对应的签名份额,最终重构出对应于锁定账户的完整签名。
方案优势
跨链交易方案都需要一种机制去将用户原有链上的资金进行锁定,只有触发条件达到之后才可以解锁退还到原始账户或者转移到其他账户。
锁定账户生成方案有以下先进性:
- 去中心化,无需可信第三方参与
- 安全稳定
- 易接入,存储空间低
9-6 路由组网
常用的跨链方案概述
中继链架构
原理:使用共同信任的中继链进行组网、跨链认证和信息路由
优点:基于区块链级别的信任
缺点
- 中继链性能低,且不可扩展(通常只有几十TPS)
- 中继链全局可见,数据安全和隐私保护困难
- 跨链延时高,秒级别的延时
- 成本高,数据永久冗余
- 部署困难,中继节点选举众口难调
适用场景
- 公链之间的互联通常基于中继链
- 固定连接数、无性能要求、无扩展需求的开放联盟链之间的互联
路由组网架构
原理:类互联网的路由组网架构,需要使用可信跨链路由进行跨链组网、跨链认证和信息路由
路由组网不使用类似中继链方式的单一中心网关链接区块链来完成跨链,而是使用分布式的可信跨链路由(跨链中继器/Relayer)来完成跨链组网
优点
- 类互联网路由组网架构
- 无区块链连接数限制
- 性能高,可以横向扩展
- 延时低,可以低至毫秒级别
- 数据端到端安全传输,不会被全局无关方看到
- 可信机制灵活选择,可以基于可信计算技术(TEE),也可以基于公证人技术
- 扩展性强、支持隐私保护
- 适用性强,可以配置内外网光闸通讯
缺点:引入一定信任假设,不适用于公链场景,但联盟链场景可适用
适用场景
- 联盟链之间的互联
- 私有链之间的互联
- 高性能、大规模组网的跨链场景
- 需要预留很强扩展性的跨链网络
跨链方案形象化对比
两种跨链方案可以使用日常生活中的语言翻译场景类比
路由组网Relayer组件
Relayer组件连接区块链,提供跨链消息收、发、路由能力。
Relayer组件通过P2P协议联网,网络内区块链可互通
Relayer具有区块链预言机功能,对出入的跨链数据进行端到端安全认证
Relayer组件负责跨链组网,使得Relayer之间可以维护一个P2P网络,Relayer之间通过TLS协议端到端交换跨链报文
证明转化机制
将复杂的区块链证明转化为对区块链智能合约友好的证明,使用证明转化组件(预言机)作为信任桥梁。
高安全预言机实现
可信计算预言机(TEE、ZKP)
使用可信/可验证计算技术(TEE、零知识证明)验证区块链数据,高安全、高可信
适用于对跨链认证有较高安全认证的级别
基于多签的预言机实现
PoA预言机
一条链选出一到多个公证人对区块链数据进行验证多签
适用于规模较小的联盟链,可以选举出个别节点共同运行预言机
中心化预言机实现
单签预言机
信任单个预言机节点签名
适用于私有链,由高权威的私有链运行该预言机
大规模组网
使用路由组网架构,可以实现大规模跨链组网,类似互联网一样
区块链通过连接跨链路由方式,接入到跨链网络,通过引入多条跨链路由的设计使得路由间可以互联,使局域网连成更大的广域跨链网络
9-7 蚂蚁链通用安全跨链技术ODATS
9-7-1 蚂蚁链通用协议及架构
蚂蚁链通用安全跨链协议概述
跨链数据连接服务概述
跨链数据连接服务ODATS(Open Data Access Trusted Service),是由蚂蚁链自主研发的一款面向企业级应用的支持同构/异构区块链之间数据可信交互的服务
跨链服务调用链路
使用跨链数据连接服务,需要将区块链在跨链数据连接服务上进行注册,并安装跨链合约,用户的业务合约通过与跨链合约交互来完成不同链之间的信息交互
UDAG全栈跨链协议
蚂蚁链跨链协议是一套面向异构跨链的跨链协议栈,协议支持的功能涵盖多层次多模型的完整的跨链技术功能,允许区块链之间在多个应用层次(链上合约层、链下应用层)通过灵活地进行多种模式的跨链互操作
从跨链互操作流程出发,梳理需要在协议层解决的数据格式差异、数据验证差异、统一区块链标识、通讯协议以及组网寻址需求等基础问题,整合一套基础跨链互操作协议栈
通讯协议
分布式身份协议
证明转化
数据协议
寻址协议
采取协议栈的方式,参考计算机操作系统及计算机网络的思想,协议栈的设计能够适用于复杂的分布式网络,异构兼容性以及功能可迭代演进
UDAG协议栈分为底层基础协议以及上层应用协议,底层基础协议主要解决通用的跨链技术问题
通讯协议
该协议用于在智能合约之间建立一层信息通讯协议,合约之间可以可靠地进行信息通信,内容涵盖会话、排序、消息队列等通信层设计。该协议基于账本数据认证层之上,允许叠加业务层协议,如原子资产交换、跨链事务等业务层跨链协议
分布式身份协议
该协议用于建立类PKI及DNS的分布式的统一的区块链身份标识,使得链的身份标识全局可用,同时建立区块链域名系统,使链的身份标识与链的唯一认证根绑定(如创世块hash、如HyperLedger Fabric的endorsement),做到可信意义上区块链标识
上层应用协议满足差异化多样化的跨链需求,不同的跨链模式都可以基于底层协议快速构建新的应用协议,进而达成多层次多模式的跨链技术能力
证明转化协议
该协议支持区块链的原始账本数据、原始账本证明可以通过第三方组件,如预言机、中继链、及其他可验证计算/可信计算等技术,将证明数据集证明进行格式化、语义转化、证明转化、验证根转化等操作,形成格式化账本数据集第三方账本证明。
数据协议
以一种自描述的数据协议,使跨链网络支持传输自描述的跨链数据,自描述涵盖链的标识、链的类型、数据模型、数据内容、链上证明、验证根等数据。该协议的作用是协调各链数据的互认问题,支持建立一种统一的面向协议扩展的区块链数据解析客户端
寻址协议
该协议作用与链下中继组件之间,使得链下中继组件之间可以点对点组网,交互链接的区块链信息,转发跨链数据,使得支持形成大规模的跨链组网结构及寻址网络
跨链协议标准化
蚂蚁链跨链协议栈的底层协议已在IEEEC/BDL立项国际标准
P3205跨链互操作性标准——数据认证及通讯协议,牵头数据认证及通讯协议标准制定
蚂蚁链通用安全跨链架构
蚂蚁链跨链技术方案
路由组网,数据安全,通用跨链,高性能,低延时,支持异构链扩展
跨链数据连接服务架构
蚂蚁链跨链服务主要分为链上跨链服务合约和链下跨链服务两个核心组件
通过跨链服务在底层区块链中的协议栈和跨链合约,实现同构或异构区块链之间可信交互,从而构成区块链价值网络,实现链上价值可信流转,完成丰富的链间互操作
业务逻辑可以在区块链编程层实现,通过跨链合约API进行数据调用和合约交互,完成多条区块链的协作,达到区块链的横向应用拓展
链上跨链协议合约
在区块链环境中部署跨链服务合约/链码,并且提供API接口供用户合约/链码进行调用或者账本数据查询
通信机制
账本数据合约
ChainDataInterface.sol中定义了账本数据合约提供的账本数据访问接口
ChainDataRequest接口
用户通过调用账本数据合约ChainDataRequest接口发送请求
ChainDataCallbackResponse接口
用户合约实现ChainDataCallbackResponse接口,用于接收账本数据合约的查询账本数据结果
消息推送合约
InterContractMessageInterface.sol中定义了跨链消息收发合约提供的合约消息推送API接口
sendMessage接口
用户合约调用跨链消息收发合约sendMessage接口发送消息
recvMessage接口
用户合约实现recvMessage接口,用于接收跨链消息
链下跨链通讯组件
Relayer组件连接区块链,提供跨链消息收、发、路由能力
Relayer组件通过P2P协议联网,网络内区块链可互通
Relayer具有区块链预言机功能,对出入的跨链数据进行端到端安全认证
路由组网
9-7-2 跨链功能及经典应用
跨链数据连接服务功能概述
ODATS制定了标准化的区块链UDAG全栈跨链协议,保证跨链交易的安全性、可扩展性及可靠性,打破区块链数据孤岛,实现同构及异构链之间的可信互通,助力企业之间可信协作,促进产业生态可信融合。
开放的身份体系
利用分布式身份认证体系治理,ODATS为区块链分配通用的可识别域名,作为唯一命名标识用于其他区块链的通讯,区块链域名证书的设计支持安全可信的身份认证
权限管理
跨链通讯中仅在所有者授权情况下才能进行,通过身份体系制定被授权的区块链及区块链合约,进行数据调用或合约消息通讯。保护数据安全同时,实现数据使用的可追溯
账本数据访问
经过数据授权,业务合约发出跨链数据访问请求,通过跨链寻址的方式,将跨链网络上对应的区块链上的数据安全可靠、不可篡改地返回给请求者
目标区块链能够通过跨链服务直接访问源区块链的相关数据
账本数据访问服务可以帮助用户智能合约获取其他区块链账本的数据,包括但不限于区块头,完整区块、交易等
账本数据访问服务仅支持蚂蚁区块链合约访问蚂蚁区块链账本数据,同时支持Solidity和C++语言开发的智能合约
账本数据合约API调用实践
调用账本数据合约的账本数据访问接口访问目标区块链指定一笔交易
官方提供了便于拼装的辅助库ChainDataCmdHelper.sol协助用户快速开发
账本交易数据结构
Mychain交易结构
合约消息推送
用户可以授权其他区块链的指定合约,推送跨链合约消息,推送跨链合约消息,经过跨链寻址,实现合约的远程调用,完成业务场景中的复杂互操作
蚂蚁链跨链数据连接服务是面向智能合约提供的链上数据服务,本服务在客户区块链环境中部署跨链服务合约/链码,并且提供API接口供用户合约/链码进行调用
合约消息推送服务可以帮助部署了跨链数据服务的不同区块链上的智能合约进行消息通信
合约消息推送服务支持的客户智能合约语言包括Mychain平台的Solidity和C++语言;HyperLedger Fabric平台保险语言
消息通信机制
合约消息推送调用实践
调用消息合约的发送消息接口,发送一笔消息给目标区块链上特定合约
应用场景
跨链联合溯源
商业价值:同行业跨环节多联盟协同,链上信息垂直可信流通,提高行业整体信任度。
跨链可信取证
商业价值:多部门跨环节多联盟协同,链上信息真实可信流通,证据收集效率高
行业和客户痛点
可信存证是目前大量落地推广的区块链场景,但是每条链也形成了数据孤岛。通过应用层跨链,很难保证信息的真实性,同时应用层适配异构链的改造成本也很高。如何能够低成本地进行信息可信跨链传递,成为迫切需要解决的问题
解决痛点的功能
用户将区块链注册后,进行跨链授权,跨链服务可以将同构链/异构链的链上账本数据进行可信传递,保证数据的真实性
客户价值
合同存证链、版权存证链等数据存证场景中,如果发生任何纠纷,司法区块链可以通过跨链服务,可信获取其他链上的证据信息,保证证据真实性,提升证据收集的效率及有效性,降低司法判案成本