跨链 如何建立链间信任?_区块链:区块链运用的技术中不包括哪一项项

在一条区块链中,链上各参与方借助区块链共识机制建立信任体系。那么问题来了,在多条区块链的跨链场景中,链与链间的信任如何传递?链间的信任,信的是什么?这种跨链信任,又该如何建立?

先说结论:链间的信任,以信任对方链的执行机制为前提,信的是符合执行机制的执行结果。

其中缘由,得从跨链的基础操作谈起。

跨链的基础操作为:对方链执行某个操作完成后,本地链才可执行另一个操作。如下图所示:区块链A成功执行操作X后,区块链B执行操作Y。X操作是Y操作执行的前提条件。

上述操作中,一个请求X经过签名,变成一笔交易发到区块链A上,经过区块链A共识,生成区块。区块中包含了块头、交易列表等信息,块头中又包含了共识结果信息。上述信息都可统称为区块链的执行结果,具体流程如下图所示:

跨链协议Ren:开发团队资金支持仅能持续到第四季度,仍将推出Ren 2.0:11月19日消息,跨链协议Ren表示,Alameda与Ren前领导层合作收购了Ren,但由于Alameda破产,提供给Ren开发团队的资金仅持续到第四季度。目前Ren正在与投资者谈判以继续推动发展,并计划比预期更早地推出Ren 2.0。网站也将托管在IPFS上,并将控制权转移至RenDAO。[2022/11/19 13:24:24]

区块链A的执行结果被发到区块链B上。区块链B在执行请求Y前,必须先判断X是否上链。

判断的方法是,在区块链B的运行环境中,验证区块链A与X相关的执行结果是否有效。验证通过,表示X已上链,区块链B可继续执行后续步骤:发送请求Y,在区块链B进行上链。

需要注意的是,此操作基于一个前提,即区块链B必须信任区块链A的执行机制。区块链A上正确的执行结果,代表的是区块链A上各方意愿。区块链B要验证区块链A上某个交易是否有效,必须信任区块链A的执行机制,并按照区块链A的执行机制,验证区块链A的执行结果,才可判断区块链A上的某个交易已上链。

Anthurine :通过跨分片形式进行跨链满足各行业对区块链不同需求:2月17日 20:00,QuarkChain CMO Anthurine作客MXC抹茶社区并进行分享。

Anthurine表示:“QuarkChain主网各个分片可以采用完全不同的共识、账本模型、交易模型和通证经济学。分片间可以通过跨分片的形式来进行跨链,不仅能支持DeFi,而且可以根据需要灵活定制上层链。此外,QuarkChain首创的多原生资产,可以调用合约、跨链、在满足某些情况的条件下可以支付交易手续费,其灵活性可以满足各行各业对区块链的不同需求。”[2021/2/17 17:24:42]

可见,在整个过程中,通过验证对方链的执行结果来判断请求是否上链,是建立跨链信任的核心步骤。因而,链间的信任,以信任对方链的执行机制为前提,信的是符合执行机制的执行结果。

执行结果虽然在不同区块链有不同实现方式,但万变不离其宗,区块链的核心数据结构是以区块为单位的链式结构,交易存在于区块中(本文不讨论DAG形式的区块链)。

因此,我们可将执行结果的验证划分为以下四层:

Plasm Network首席工程师已修复Cumulus,Polkadot测试网已可制作跨链用例:Plasm Network发推表示,Plasm Network的首席工程师akru已修复Cumulus,其请求已被合并。从现在开始,XCM应该可以工作,可以在Polkadot测试网上制作第一个真正的跨链用例了。此前消息,Basic XCM代码已合并,允许中继链把消息向下传递到平行链。[2021/2/6 19:02:56]

验区块连续:在验证开始时,需确认数据来源,基于区块链的连续性,验证区块是否归属于指定区块链,防止攻击者用任意区块链的区块进行伪造。

验区块共识:在确认来源后,需验证区块是否代表对方链的整体意愿。此步骤验证区块的共识信息是否符合要求,防止攻击者用未经过共识的区块进行伪造。

验交易存在:区块被验证合法后,需验证指定交易是否属于此区块。不同链有不同验证方法,下一节会展开描述。

IoTeX计划推出跨链DEX,将于8月31日开启流动性挖矿:物联网区块链平台IoTeX在推特上宣布,将推出具备跨链能力的Uniswap Protocol风格的DEX。以太坊ERC20资产可以流向IoTeX,并与IOTX 以及XRC20资产进行交换。跨链流动性挖矿将于8月31日开启。[2020/8/9]

验交易正确:交易存在性得到验证后,并不能代表此交易确实是跨链场景下预期的操作,还需结合业务场景,判断交易的具体内容是否符合预期。

只有通过上述四层才算验证通过。验证通过后,说明操作已在对方链上上链,本地的链可执行后续步骤。 

上节所述四层验证,在不同区块链上有不同的实现方式。WeCross的插件化框架,定义了通用的编程接口,开发者只需按照链类型实现四个层次的验证逻辑即可。

下面,我们来看看各层次的具体实现方案。

验区块连续

在不同区块链上的实现大同小异。当前区块中记录着上一个区块的哈希值,当前区块的哈希值又在下一个区块中被记录,多个区块依次相连形成区块链。不同区块链只在哈希算法和计算区块哈希的字段上存在差异。

声音 | 微众银行赵振华:区块链跨链和隐私保护问题有望半年内解决:金色财经报道,微众银行区块链资深专家赵振华在火讯Talk栏目接受采访时表示,公有链的特点并不适应企业级应用,联盟链才是最优选择。首先,企业之间发生业务相互都是认识的,身份可以识别,比如均为合法登记的企业,发生的业务是企业的经营范围,所以联盟链需要准入机制,在组成链之前相互身份经过验证,在链上通过数字证书识别身份;其次,企业的业务数据通常包含企业的敏感信息,企业客户的隐私信息等,这些数据是不可能公开共享,而只能和业务相关方共用。最后,企业借助于联盟链,协作会更加紧密,所以有助于企业快速把自己的产品和服务销售出去转化成收益,这才是正确的激励方式。此外,赵振华认为,区块链目前亟待解决的问题有两个,一个是跨链,另一个是隐私保护,相信半年内也会有很好的解决方案。[2019/11/26]

在WeCross中,验证区块链连续性,只需按照相应链的实现,验证区块依次相连成链即可。

验区块共识

验区块共识,即验证区块的共识信息是否符合对应的算法条件。不同算法有不同的实现。此处给出最具代表性的两种共识算法:POW(工作量证明)和PBFT(实用拜占庭容错)。

POW属于最终一致性共识算法,通过最长链和延迟确认的方式逐渐让共识结果收敛一致。WeCross提供了POW验证所需步骤:

验难度:验证区块的nonce是否满足工作量证明条件

验延迟:验证当前块是否低于已知最高块N个块(N可取为10,表示1个小时前的区块)

验最长链:引入多方,验证当前区块处于最长链上,防止单方面谎造最高块高和伪造分叉链进行作恶

PBFT算法在多方共识后立即达成一致,区块链不存在分叉和回滚的可能。在算法中,节点通过多次相互广播签名以达到共识。

在区块中,足够数量的签名代表了区块的合法性。因此,WeCross中对PBFT的验证较为简单:

配置公钥:事先配置对方链共识节点的公钥

验签名:用事先配置的公钥验证区块中签名的有效性,并判断有效签名数量是否达到PBFT共识条件

验交易存在

验交易存在同样需要根据不同实现判断,比较有代表性的是SPV(简单支付验证)和背书策略。

SPV的初衷是为了实现轻客户端,目前已在大多数区块链上实现。随着跨链技术兴起,此技术也被用作验证区块中某数据的存在性。

以交易为例,区块头中记录了当前区块内所有交易哈希组成Merkle树的树根,即“交易根”。任何一笔交易,都唯一对应了一条通向交易根的Merkle path。区块内不存在的交易,无法伪造出通向交易根的Merkle Path。

因此,在WeCross中只需验证某交易的Merkle Path,即可判断某交易是否属于某区块。

背书策略为Hyperledger Fabric所采用。在Fabric中,每笔交易都需满足某个事先定义好的背书策略。

交易在执行时会被多个背书节点签名,当各方签名满足背书策略时,此交易才被认为有效。Fabric将背书节点签名信息作为交易的一部分保存于区块中。多笔交易组成区块内的交易列表。交易列表以二进制形式计算哈希值,此哈希值被记录于区块头中。

因此,在WeCross目前的实现中,仅需判断交易是否在交易列表中(且对应flag有效),并校验交易列表哈希值,即可初步判断交易的存在性。

WeCross后续将结合背书策略,验证交易的背书节点签名,进一步增强交易存在验证的有效性。

验交易正确

验交易正确,是根据业务的预期参数判断前三步验证的交易哈希(或二进制)是否是业务预期的那个操作。

例如,预期操作为transfer(a, b, 100),则相应的交易内容不能是get(a)。验证时,需根据交易的编码方式和哈希算法,校验业务预期参数与交易哈希(或二进制)是否对应。不同区块链实现的差别只体现在交易编码和哈希算法上,根据链实现采用相应方法进行校验即可。

WeCross中不同链的插件实现了不同的校验逻辑。FISCO BCOS插件采用的是RLP编码和SHA-256哈希算法,验证的是交易哈希是否正确;而Fabric插件则采用ProtoBuf编码,验证的是交易二进制是否正确。

为了更直观进行说明,下图给出了FISCO BCOS的完整验证过程。

当某条链拿到了对方链的执行结果后,即可在本地进行验证。

在验区块连续上,FISCO BCOS通过比对区块头中父区块哈希与真实的父区块哈希,验证此区块是对方链的区块。

在验区块共识上,通过校验当前区块的签名列表,判断合法签名数量是否满足PBFT共识条件,确认当前区块代表了对方链的整体意愿。

通过验证交易哈希通向交易根的Merkle Path的正确性,可判断交易已存在于区块链上。

通过验证业务预期、交易二进制、交易哈希的对应关系,可判断交易是业务预期的那个操作。四个层次验证通过后,说明业务所预期的操作已在对方链上上链,验证完成。

链间的信任,以信任对方链的执行机制为前提,信的是符合执行机制的执行结果。执行结果是否正确,验的是四个层次的数据。验证机制在不同链有不同的实现,WeCross以插件化的方式提供支持。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:0ms0-1:590ms