没有合适的资源?快使用搜索试试~ 我知道了~
区块链:以太坊私有侧链的原子Crosschain交易
区块链:研究与应用3(2022)100030以太坊私有侧链的原子Crosschain交易Peter Robinsona,b,*,Raghavendra Ramesha,Sandra Johnsona,caASPSYS软件研发部,布里斯班,4520,澳大利亚b昆士兰大学信息技术与电气工程学院,昆士兰4072,澳大利亚cARC数学和统计前沿卓越中心(ACEMS),昆士兰科技大学,昆士兰4001,澳大利亚A R T I C L E I N F O关键词:Crosschain区块链交易原子以太坊A B S T R A C TAtomic Crosschain Transaction for Ethereum Private Sidechains协议允许跨许可的以太坊区块链进行可组合它允许合约间和区块链间的函数调用都是同步的和原子的:如果一部分失败,则整个函数调用树将被丢弃。该协议不是基于现有的技术,如哈希时间锁定合同,中继链,区块头传输或可信中介。它使用(a)阈值签名来证明区块链上的价值,(b)协调合同来管理跨链交易的状态,以及(c)函数调用树提交方案,允许用户提交到调用树,然后检查是否执行了正确的函数调用 本文分析了使用这种技术与使用多个标准的非原子单区块链交易相比的处理开销。针对涉及多个区块链的四个场景分析了额外的处理:贸易金融系统,酒店-火车问题,供应链和Oracle。该协议具有安全性和活性。1. 介绍以太坊私有侧链协议的Atomic Crosschain Transactions [1- 4 ]允许同步和原子的合约间和区块链间函数调用。该协议中的Crosschain交易是特殊的嵌套以太坊交易,包括额外的字段以安全地促进原子行为。该技术旨在通过将所需的更改合并到以太坊客户端软件中,使应用程序开发人员免受交叉交易的复杂性的影响。图图1显示了一个区块链系统。 企业由两个区块链之间的线条颜色表示。例如,绿线代表的企业在区块链A、C、D、X和Y上有节点;蓝线代表的企业在区块链A、B、D和X上有节点;红线代表的企业在所有区块链上都有节点。 使用该协议,企业可以创建一个跨链交易,其调用树可以遍历其节点所在的任何区块链。协调区块链用于保存跨链交易状态。参与跨链交易的所有区块链节点都需要访问该跨链交易中引用的协调区块链。图图2显示了来自两个区块链上的两个合约的代码片段。私有区块链A上合约ConA中的函数funcA调用私有区块链B上合约ConB中的函数funcB该协议中的交叉事务允许交叉函数调用同步且原子地发生。同步意味着函数调用返回结果立即可用,并且更新将在crosschain事务结束之前提交原子意味着更新要么应用于两个区块链,要么在两个区块链上丢弃更新。该协议不依赖于时间哈希锁合同[5],中继链[6],区块头中继[7,8]或可信中介。 这是一种新技术,它将Boneh-Lynn-Shacham(BLS)阈值签名[9- 11],嵌套交易和动态参数检查与预期的签名值结合在一起,并将协调区块链作为跨链交易状态的持有者和超时时间参考。创建跨多个区块链提供原子行为的区块链系统是一个复杂的问题[12]。 这是因为区块链网络是分布式系统,跨区块链协议作为分布式系统的分布式系统运行。 到目前为止,只有这个协议和另一个协议[13]提供了允许任意代码执行的原子跨区块链函数调用能力。* 通讯作者。昆士兰大学信息技术与电气工程学院,昆士兰,4072,澳大利亚。电子邮件地址:peter. uqconnect.edu.au(P。Robinson)。https://doi.org/10.1016/j.bcra.2021.100030接收日期:2020年11月25日;接收日期:2021年9月3日;接受日期:2021年9月9日2096-7209/©2021作者。出版社:Elsevier B.V.代表浙江大学出版社。这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表区块链:研究与应用杂志主页:www.journals.elsevier.com/blockchain-research-and-applicationsP. Robinson等人区块链:研究与应用3(2022)1000302Fig. 1. 跨区块链联动。图二、 跨区块链的函数调用。该协议可用于创建应用程序,以解决各种各样的问题。本文介绍了涉及跨多个区块链的交易读取和更新的四个常见问题,以便对该技术进行评估。贸易金融系统使用五个区块链来支付货物的运输费用酒店-火车问题是一家旅行社预订一个这需要原子地更新三个区块链的状态 供应链来源问题允许供应链区块链和来源区块链之间的供应链事件的选择性透明度。这需要两个区块链以原子方式更新 Oracle问题涉及使用一个区块链上的函数调用的结果,例如,在另一个区块链上的函数调用中读取商品的当前价格。提供跨区块链共识不是免费的 BLS阈值签名用于证明区块链上的值。验证BLS阈值签名使用两个昂贵的BLS配对操作。生成BLS阈值签名涉及区块链网络节点之间的通信以及在发布之前对签名的验证。验证来自其他区块链的信息需要签名验证。此外,协调区块链上的协调合同,用于协调整体交易的部分,需要验证签名。 了解跨区块链协议所带来的开销非常重要,因为这可以让应用程序架构师评估协议提供的额外效用是否超过开销。本文给出了分析结果。该技术已作为Hyperledger Besu的一个分支实现[14],并可在www.example.com上获得github.com[15]。不幸的是,现有的实现存在一些限制(见第9节),这意味着无法收集有效的经验结果。本文的贡献是:(a)在同行评审期刊上首次详细介绍了该协议,(b)对该协议的安全性分析,以及(c)分析了使用该协议与使用上述四种情况下的单独单个区块链交易相比所带来的额外处理本文基于本文通过对协议进行更深入的介绍、更广泛的安全性分析,并涵盖了一个额外的场景--贸易融资系统,对原始论文进行了本文的组织如下:场景部分解释了可以通过交叉协议解决的区块链的四种用法接下来,背景部分介绍以太坊并提供有关BLS阈值签名的背景信息相关工作部分解释了本文中描述的协议与现有协议的不同之处 该方案在模型和方案组件章节中描述。事务处理部分将协议组件部分的思想结合在一起,描述如何在此协议中处理跨域事务。安全和活力P. Robinson等人区块链:研究与应用3(2022)1000303图三. 贸易融资情景。协议的属性在安全性分析部分进行了分析“EX实验设置”部分描述了分析结果的基础结果部分分析了使用协议与使用单独的单个区块链交易相比的开销。最后,其他区块链系统部分讨论了该技术对非以太坊区块链平台和基于以太坊的区块链的适用性,这些区块链不使用即时最终共识算法。2. 场景下面的部分描述了使用跨链交易的四个示例场景本文中描述的协议可用于促进这些场景和各种其他场景的实现2.1. 贸易融资图 3示出了使用该协议的交叉呼叫树的逻辑表示。一个贸易融资应用程序创建了一个交叉函数调用,该函数调用了五个区块链上的五个合约,以执行一批货物的交易。 发起交易执行入口点函数,即钱包区块链上交易钱包合约中的executeTrade函数。 Trade Wallet合同可以是多签名钱包,发货方必须向其提交交易,表明他们同意一定数量货物的发货已经完成并应支付。 executeTrade函数调用Terms区块链上Logic合约中的ship-ment函数,以确定应该支付的价格,并影响股票和支付的转移。 shipping函数调用Price Oracle区块链上的Oracle合约上的getPrice函数来确定货物应该支付的价格,然后调用Finance区块链上的Balances合约上的transfer函数来影响支付,最后调用Logistics区块链上的Stock合约上的delivery函数来登记货物所有权的变化。可以说,一些合同可以存在于一个区块链上,从而减少了对交叉交易的需求。然而,在这方面,特别是金融区块链和物流区块链,很可能是涉及不同参与者的联盟区块链。 Price Oracle区块链可以由一个财团运营,该财团对信息的访问收取费用。政府监管机构可能需要看到条款区块链上的逻辑,但钱包区块链上交易钱包中的参与者可能希望保持匿名。需要交叉事务处理能力来满足这些要求。2.2. 酒店和火车一个常见的分布式事务问题是旅馆和火车问题。在这种情况下,旅行社需要确保组合预订事务的原子性。换句话说,旅行社需要确保他们要么预订酒店房间和火车座位,要么都不预订,这样他们就可以避免酒店房间成功预订但火车预订失败的情况,反之亦然。涉及三个许可的区块链:旅行社、酒店公司和火车公司各一个。图图4展示了使用Atomic Crosschain Transactions为以太坊私有侧链实现酒店和火车预订系统。 Train区块链和Hotel区块链托管了专门设计的符合Router-Item模式的合同。在此模式中,使用不可锁定的路由器协定来访问可锁定的项协定。例如,当预订火车座位时,调用TrainRouter合同函数来定位未锁定的火车座位合同这表示在所请求的预订日期有可用的列车座位。通过这种方式,需要锁定包含更新的合约的多个并行跨区块链调用可以并行发生,从而允许多个座位预订并行发生同样,为了允许多个并行支付,ERC 20代币合约[16]已经进行了修改,以符合这种模式。旅行社在酒店和火车区块链上购买ERC 20代币他们用代币支付住宿和旅行费用。他们通过执行跨区块链交易来预订酒店房间和火车座位;在同一笔交易中支付房间和座位P. Robinson等人区块链:研究与应用3(2022)1000304见图4。 酒店火车场景。2.3. 有出处供应商不妨向客户公布信息,以保证产品的来源。只有一个全球区块链,所有交易细节都必须发布,并对全球区块链的所有参与者可见。供应商可能更愿意保留某些信息的私密性。例如,他们可能希望对竞争的供应商保密其供应商的身份。这种情况如图所示。5,其中使用了两个区块链。供应链区块链维护供应商及其供应商之间的所有交易。Provenance区块链拥有向客户保证所购买商品的各个方面所需的所有信息。当出处事件发生时,跨区块链交易用于更新供应链区块链和出处区块链。2.4. OracleOracle使用方案是贸易-金融方案的一个子集2.1. 重要的是要将此场景分离出来,因为它符合一个常见的将一个值从一个区块链读取到另一个区块链的用法对于这种情况,Oracle区块链维护了一组对其他区块链应用程序有价值的数据例如图 6.公司可以将商品价格发布到他们的区块链上。他们可以向其他公司收取访问其区块链的权利其他公司可以使用跨区块链交易在自己的区块链上执行业务逻辑-基于从Oracle区块链返回的信息。3. 背景3.1. 以太坊以太坊[17]是一个区块链平台,允许用户上传和执行被称为智能合约的计算机程序以太坊智能合约可以用各种图灵完备语言编写最流行的是Solidity [18]。 代码被编译成字节码表示,并使用合约创建事务进行部署。contrats有一个特殊的构造函数,只有当图五、 供应链与起源场景。P. Robinson等人区块链:研究与应用3(2022)1000305见图6。预言场景。正在处理合同创建事务 此函数用于初始化合约存储。矿工在以太坊虚拟机(EVM)中执行字节码。 目前,每个矿工必须执行所有合约的所有交易,并持有与所有合约相关的所有存储值的当前值。以太坊社区正在积极研究通过分片区块链来扩展以太坊网络的方法[19]。以太坊交易更新分布式账本的状态,不返回值,并且可以发出日志事件。除了合约部署交易外,以太坊交易还可以调用合约上的函数,并将以太币从一个账户转移到另一个账户。所有类型的交易都必须由对应于帐户的私钥签名,并包括防止重放攻击的随机数值。除了以太坊交易之外,View函数调用也可以在智能合约代码上执行。这些View函数调用返回一个值,并且不更新智能合约的状态。预编译的合约是EVM中某些已知合约地址的智能合约可以访问的代码。预编译合约作为以太坊客户端的一部分,以以太坊客户端自己的编程语言实现 在Hyperledger Besu Ethereum Client [14]的情况下,它们是用Java编写的。预编译的合约允许将复杂的扩展添加到以太坊,这些扩展要么需要很长时间才能执行,要么需要EVM之外的资源由于预编译合约是从传统的智能合约调用的,为了允许以太坊网络的所有节点执行所有交易,所有节点都需要是支持同一组预编译合约的以太坊客户端软件的实例。执行代码和访问资源(如存储值)需要消耗一定数量的Gas。执行代码的Gas成本与执行每种类型的指令的实际成本密切相关启动交易账户指定他们准备为交易支付的天然气价格,并指定交易可以使用的最大天然气量,称为启动天然气。这使得账户持有人必须为交易支付一定数量的以太币。 任何未使用的天然气在交易结束时返还给账户持有人。矿工选择包含具有最高Gas Price的交易矿工停止执行在完成执行之前耗尽气体的这些失败的交易记录在区块链上,但不会更新区块链的状态,因为它们已经失败了。以太坊MainNet是使用最广泛的公共以太坊网络,使用工作量证明(PoW)[17,20]共识算法。以太坊2.0的最初部分于2020年12月上线,使用了权益证明(PoS)[21]共识算法。以太坊也部署在许可的联盟网络中[22]。在这些部署中,使用了权威证明(PoA)共识算法,例如Istanbul Byzantine FaultTolerance version 2(IBFT 2)[23]3.2. 终局性当一个块不能再被改变时,它被认为是最终的。包含在最终区块内的所有交易也被视为最终。以太坊交易包含在块中。解决PoW加密难题的以太坊MainNet矿工可以在区块链的末尾添加一个区块。如果两个或多个矿工同时解决了这个难题,那么两个或多个链就被创建为具有共同的祖先,这被称为分叉。在比特币中,最长的区块链被认为是有效的区块链[20,25]。在以太坊中,分叉选择是通过修改后的Greediest Heaviest Observed Subtree(GHOST)协议来解决的[24],该协议考虑了在创建与主链有链接但已经过时的区块时的采矿能力[26]。这些块通常被称为叔叔块或奥默块。块的权重与链中先前块和叔叔块的数量有关最重的区块链被认为是有效的区块链。 如果以太坊主网矿工意识到一个比它所知道的更重的链,那么它应该只尝试向新链添加区块。旧的最重链上与新的最长链不相同的块被认为是重新排序的。如果重新排序的区块中没有任何交易被包含在新的最长链的区块否则,未包含在重新排序的链中的交易需要包含在新的块中。目前还不确定这些交易是否会被包含在新的区块中,也不确定拟议的叔叔区块中的交易是否会被包含在区块链中。随着越来越多的区块被添加到以太坊主网的区块末尾链,矿工发现更重的区块链并重新排序区块链的概率降低[24]。这是因为矿工需要比所有其他矿工更快地重复解决每个区块的PoW加密难题。随着区块被重新排序的概率降低,区块中包含的交易最终被排序的概率增加。因此,以太坊主网被认为具有概率终结性[25]。共识算法,如Istanbul Fault Byzantine Tolerance(IBFT)[27]和IBFT 2 [23]在联盟区块链中使用,可以提供即时的最终性,一旦交易被包含在验证者创建的区块中,它就不能再被更改。3.3. 分布式系统和数据库Gray [28]、Lampson和Sturgis [29]分别提出了两阶段提交方案,允许分散的原子更新。 第一阶段记录一组意图,指示要应用的数据更新。此阶段的结束是请求提交事务。第二阶段实际上执行更新。如果第二阶段P. Robinson等人区块链:研究与应用3(2022)1000306如果不完整,则根据需要多次重新应用它以完成算法。Reed [30]提出了一种方法,用于在面临系统故障时处理分散数据上的原子操作该方法的特征在于,如果通信故障导致两阶段提交的第二阶段未到达节点,则当节点需要访问数据时,其联系其他节点以确定第二阶段是否发生以及数据是否应该被提交。3.4. 门限签名方案阈值密码学方案[31]将秘密分成秘密份额。当参与者的子集合作时,他们可以通过组合他们的份额来重新组装秘密。具体地,总共N个份额中的任何M个份额可以用于重新创建秘密。如果攻击者能够访问少于M个共享,则无法确定关于秘密的任何信息在门限签名方案的上下文中,私钥是分裂的秘密需要使用总共N个份额中的任何M个份额来生成签名。不能将M个份额放在一起重新组合私钥,因为这会泄露私钥。相反,M个私钥份额需要对需要签名的数据进行签名以生成M个签名份额。 这M个签名份额被组合以创建阈值签名。阈值签名可以使用与私钥匹配的公钥来验证,该私钥可以使用私钥共享来实现。在一个简单的门限签名方案中,密钥份额由一个被称为经销商的可信方生成,然后分发给参与者。在去中心化的应用程序中,这样的可信设置是不可取的。聚合阈值方案允许每个参与者执行经销商的操作并创建一组密钥份额。该等股份随后与其他参与者产生的股份合并,以产生最终密钥股份。 这允许以分布式方式进行签名和验证,而无需任何可信的第三方。为确保经销商分发正确的值,密钥生成方案应可验证。在这种方案中,最终密钥份额使用依赖于每个参与者的私钥份额的算法来计算。Pederson承诺方案[32]是这种形式的可验证秘密共享的一个例子。可验证生成器的使用证明了每个参与者都拥有与其公共份额相对应的私钥份额,并且使得流氓参与者不可能通过提交无效份额来破坏过程。密钥和签名的聚合只有在具有特殊数学性质的签名方案中才是可能的。特别地, 基于椭圆 曲线配对 的签名, 诸如Boneh-Lynn-Shacham(BLS)方案[9],由于等式(1)中所示的配对操作的双线性性质而支持聚合。(1)其中P和Q是椭圆曲线的子群上的点,k是整数,并且e是椭圆曲线配对函数。ek×P;Q eP;k ×Q(1)这个属性允许签名被算术组合,然后通过以类似的方式组合相应的公钥来验证。在区块链应用中,这允许将区块中所有交易的所有签名组合成一个签名,可以使用组合公钥进行验证。使用基于BLS的签名方案的另一个优点是,使用alt-bn 128曲线[33]的签名可以有效地在链上验证,因为EVM支持专门针对该曲线的指令[17]。使用alt-bn 128曲线优于其他曲线,因为这是唯一通过预编译合约直接支持的曲线使用其他曲线需要使用EVM字节码实现算法,这产生了比如果它们被实现为预编译合约的情况低得多的性能实现4. 相关作品4.1. 概述Karamoorthy等人 [34]确定了跨链交易需要克服的两个核心问题:链之间的通信和信任的建立。建立信任是沟通的前提。在以太坊环境中,通信需要包含以太坊交易和以太坊视图[17]。以太坊视图执行一个返回值但不更新区块链状态的函数这可以被认为是在链之间读取数据以太坊交易执行更新区块链状态的函数调用,可以传输值,但无法返回结果。这可以被认为是在链之间写入数据另一种类型的通信,价值转移,与允许任意函数调用的交易不同,通常涉及转移以太坊,以太坊的基础货币或ERC20令牌[16,35]。下面的文献综述提供了对区块链价值转移和函数调用的现有研究的总结。更详细的评论可以在我们的“侧链和互操作性”论文[ 36 ]中找到4.2. 价值转移Hashed Timelock Contracts [5]已经被提出作为链间价值转移的机制智能合约在两个独立的区块链上创建,例如以太坊主网和侧链。想要在侧链上使用以太币以换取以太坊主网上的以太币的参与者发布了一个消息摘要承诺,以两个合同的秘密,并将以太币托管在以太坊主网上的合同中。另一个想要在以太坊主网上交换以太币的参与者同样将以太币放在侧链上的合约中,并发布消息摘要承诺给两个合约的秘密。 两个参与者都透露了他们的秘密,然后可以访问他们的以太。这允许以太坊主网和侧链之间的无信任传输。如果侧链上的以太总量是固定的,这将允许以太坊主网和侧链之间的质量守恒,其中没有额外的以太被创建或销毁。基于哈希时间锁合同的概念,Thomas和Schwartz提出了一个Interledger协议[37]。此外,Dogecoin到以太坊的桥梁[38]使用这种技术来允许在Doge区块链和以太坊之间转移硬币Hashed Timelock Contracts的一个限制是,转账只能是整个金额。目前还没有办法提供仅交换最初质押的以太币的一部分PeggedSidechains [39]建议在比特币区块链和侧链之间转移比特币,以提高交易率和实验。 该解决方案依赖于发布一个证明,证明转移比特币的交易包含在一个区块中,并且在源区块链中基于该区块产生了更多的区块。如果源区块链的哈希能力很强,那么攻击者就不可能产生伪造的区块。 该解决方案需要24小时的确认期,以确保基于具有传输的块产生了足够的块,以提供足够的安全性。Wood [40]认为侧链哈希能力不太可能足以确保安全性。因此,比特币可以安全地从比特币区块链转移到侧链,但不能返回。此外,该建议不适用于企业解决方案,因为24小时的确认时间是不可行的。此外,该解决方案限于值传输,并且不具有提供交叉函数调用解决方案的能力MinimumViable Plasma [41]建立在Plasma [42]代表以太坊区块链的概念之上。 Plasma链操作符在以太坊主网上创建Plasma智能合约,并将合约中存放的价值作为未使用的交易输出(UTXO)[43]值保存在按交易索引排序的二进制Merkle树中。P. Robinson等人区块链:研究与应用3(2022)1000307Plasma链上的事务涉及证明未使用的输出以前没有使用过。Plasma链上的区块被固定到以太坊主网。这种方法的两个关键挑战是证明的大小和退出Plasma链以恢复以太坊主网上的资金。 后者特别具有挑战性,涉及复杂的退出程序,其中包括7天的质疑期。Loom [44]创建了一个基于Plasma Cash [45]的解决方案,该解决方案基于最小可行Plasma方法,以允许不可替代资产的每个令牌都有一个标识符,表示令牌在稀疏Merkle树中的位置要花费一个区块,需要提交一个证明,显示何时使用了令牌这种解决方案的主要局限性是它专用于 不 可 替 代 的 资 产 , 不 允 许 通 用 值 转 移 , 并 且 不 能 扩 展 到 提供crosschain函数调用。Metronome中的Crosschain通信涉及两步方法:从源链中删除tokens时获得退出Merkle收据的证明,然后将此收据提交给目标区块链以获取MET令牌[36,46,47]。Metronome的设计包括拥有自主的智能合约,其所有权功能在发布后被锁定[46]。此外,他们的加密货币代币MET被吹捧为第一个不永久绑定到任何特定区块链的代币,并且可以安全地连接到另一个区块链[46]。Metronome专注于MET令牌在链之间的可移植性此外,在撰写本文时,令牌原子交换技术(TAST)研究项目提出了原子跨链资产转移,要求这些资产需要作为令牌存在,例如区块链上的ERC20令牌,独立于区块链的原生货币[36]。 它实现了索赔优先交易,以证明发送方进行跨渠道资产转移的意图。为证明交易提供证人奖励,并提供一种算法用于加密可验证的意图证明[48- 50 ]。为了实现这个crosschain提议,所有钱包余额必须在所有参与的区块链上,可转移资产需要作为区块链上的代币存在[36]。所有链上都需要有钱包余额,这可能会限制这种方法的吸引力这种技术不能扩展到提供crosschain函数调用。4.3. 函数调用Cosmos [6]提出了一个多区块链系统,其中称为Zones的区块链通过称为Hub的中央区块链交换消息Zones和Hub使用Tendermint [51]一种实用拜占庭容错[52,53]共识算法。价值转移使用与挂钩侧链类似的方法,发布交易已包含在区块中的与挂钩侧链方案类似,该解决方案依赖于区域的安全性(在挂钩侧链的情况下,即侧链)。Polkadot [40]提出了一个建立在Substrate上的多区块链网络,由中继链、副链和桥组成。中继链,顾名思义,在副链之间中继消息副链接收和处理交易。 整个系统的共识由中继链提供。参与者在Polkadot生态系统中扮演两个主要角色:Collator和Validator。 Collator收集Parachains上的交易,提出区块并提供零知识非交互式证明,证明交易导致验证器的有效状态更改。验证者团体批准Parachain区块并将其发布到Parachain。验证器将Parachain区块头密封到中继链。验证者被随机分配给副链,分配定期变化验证器使用PoS共识算法。 支持角色由提名人和渔民执行。提名者向他们信任的验证者提供资金,以执行PoS共识。 渔民观察副链并向验证器提交欺诈证据。Polkadot中存在两种形式的跨链交易:跨Parachain和Polkadot到以太坊等外部链[40]。 对于跨准链交易,交易与外部账户的典型交易相同。事务从一个Parachain上的出站队列移动到另一个Parachain上的入站队列。从Polkadot到以太坊的交易是通过将交易提交给特殊的多重签名以太坊合约来实现的。从以太坊到Polkadot的交易是通过调用一个特殊的以太坊合约来实现的,该合约将事件写入以太坊事件日志。此事件被解释为向外调用。Polkadot系统很复杂,因为它的底层要求是允许异构区块链。通过中继链路由跨副链交易可能会导致性能瓶颈。 所有连接到中继链的副链将使用其共识机制。如果需要不同的共识机制,那么Pol- kadot建议通过“主”和“侧”链之间的桥梁来实现这一点Wang等人[54]提出了一种区块链路由器系统,用于通过路由区块链连接异构区块链,类似于Polkadot和Cosmos。多个连接器组件监视每个子链的跨链事务,然后将其提交给路由器链。研究人员认为,联系人在跨渠道交易达成了一致,尽管这一协议是如何发生的在论文中没有描述。验证器组件使用PBFT共识算法在路由器区块链上制造区块。连接器从路由器链中获取去往其子链的事务,并将其提交给其子链。没有描述如何选择连接器将交易提交给子链,或者如何确保连接器将有效的交易提交给子链。该系统通过使用复杂的经济激励计划和称为监视器的组件来确定恶意行为者来保持安全Kan等人[55]提出了一种异构区块链的交叉协议,通过路由器区块链作为链之间的中介,类似于Cosmos和Polkadot。在这个方案中,提出了一个三阶段提交该系统似乎依赖于可靠的通信,以确保系统不会导致一个链感知到交易成功,而另一个链感知到交易失败。跨分片合约Yanking [56,57]已被提出作为以太坊2.0分片[21]的crosschain函数调用在这种技术中,使用特殊的EVM指令将合约及其状态暂时从分片移动通过更新状态来执行操作。更新后的状态然后返回到收据中的原始分片,可能带有Merkle Proof [20]证明状态更新是正确的。Buterin [56]承认,为了使这个系统工作,合同需要有一个小的状态,并且只被一个实体使用。系统如何对故障作出反应还没有很好的定义。特别是,状态被更新,收据被生成,但没有提交到原始分片的情况似乎没有得到处理。 从保密的角度来看,这种方法是有问题的。原始分片上的合约用户可能与当前分片上的用户当前分片上的用户应该无法看到被拉下的合约的状态合约还可以包含揭示原始碎片的成员资格的信息,这从隐私角度来看是有问题的用于跨Hyperledger Fabric通道通信[58]这是一个建议。该方法没有文档记录,可能不安全,并且似乎不受Hyperledger Fabric支持BTC Relay [8]是一种允许以太坊用户确认比特币交易的方法虽然不是一种跨链执行函数调用的方法,但这项技术很有趣,因为它允许在一个区块链上基于另一个区块链进行操作中继器将比特币区块标头发布到以太坊上的智能合约中,从而获得补偿。比特币交易是通过用户提交Merkle证明来确认的,该证明表明交易属于某个区块。BTC RelayP. Robinson等人区块链:研究与应用3(2022)1000308在PoW采矿的安全性困难。必须准备多个活动中继节点来为每个块发布块报头以这种方式,如果一个中继节点发布链的分叉的块头,则其他中继节点可以发布最长链的块头只有当交易相关的区块头在最长的链上,并且至少有六个区块头被发布在交易相关的区块头之上时,交易才能被验证。参考[59]。由于挖掘困难,攻击者无法产生比主要比特币区块链更长的链,因此他们无法确认基于恶意分叉的交易。 PoW不是私有区块链的适当共识算法,因为组织不希望分配资源来挖掘区块[22]。考虑到BTC中继对PoW挖掘难度的依赖,它不适合私有区块链。Clearmatics Ion项目提供了一个框架和工具来开发跨链智能合约,以便在另一个数据库或区块链上发生可验证的状态转换时自动执行[7,36]。这就是所谓的“持续执行”。实现此功能的示例代码可从Ion GitHub存储库中获得[7,60]。该系统的工作原理是,由断言在一条链上发生了状态转换的一方将块从一条链发布到另一条链。然后,通过接收链上的合同,通过相关的Merkle Patricia Trie散列来 初始设置是通过在两个系统上部署合同的一系列步骤,以允许两个系统相互了解。[12]第12话已经被提出。这些交易需要对每笔交易进行专门的设置。它们不允许编写复杂的交叉程序。因此,这些交易不提供本文中描述的协议所提供的原子交叉函数调用功能。通用原子交叉事务(GPACT)[13]是一个受本文所述协议启发的协议。 与此协议类似,它提供了跨任意调用树的原子交叉函数调用。尽管该协议是区块链层一协议,需要对底层以太坊客户端进行更改才能运行,但GPACT协议作为区块链层二协议运行,作为区块链平台的应用程序工作,并且不需要对以太坊客户端进行更改GPACT协议可以使用类似于Ion项目的区块头传输,或者类似于Cosmos的直接签名,用于在区块链之间传递以太坊事件。使用GPACT协议,应用程序通过模拟调用树来确定参数值,然后提交到调用树。如果调用树可以使用模拟中确定的参数值执行,则调用树的段成功如果调用段更新了约定的状态,则这些临时更新应用于所有锁定的合同,如果整个交叉交易成功,如果不成功,则丢弃GPACT协议揭示了签名者的身份以及在协议的各个部分中签名消息的签名者的数量与本文所述的协议提供的隐私级别相比,这降低了提供给协议用户的隐私级别。4.4. 区块链锁定上面描述的跨分片合约Yanking [56,57]方法可以被视为提供了一种锁定合约的机制如上所述,这种技术不适用于联盟链,因为没有维护分片数据的机密性该提案允许包含move_to_shard(uint256 shard_id)函数的合约在链之间被猛拉拥有此函数相当于表明合约可以被锁定,其他不包含此函数的合约是不可锁定的。本文将使用可锁定和不可锁定合同的概念。以太坊研究员Max C [61]描述了一个两阶段提交锁定方案。该方案要求将锁提交给要原子更新的数据所在的分片,并将Merkle Proofs证明包括锁的状态更新提交给分片,对数据执行事务这个系统需要知道数据所在的分片的块哈希值,在执行交易的分片上,允许Merkle Proofs被验证。一个侧链的区块哈希值在拟议系统中的其他侧链上将不可用。此外,发布侧链的区块哈希可能会泄露有关侧链的信息,从而危及其他侧链的机密性。已经提出了一种解决交叉碎片锁定中死锁的方法[62]。 这种技术要求所有跨分片交易都有一个起始区块号。 当发生锁争用时,具有较早开始块号的跨分片事务获得锁。该方法不处理当两个竞争事务具有相同的起始块号时的情况本文采用了在合约锁中使用块号作为时间代理4.5. 总结Cosmos[6] , Polkadot [40] , Wang et al. sBlockchain Router[54],以及Kan等人。的系统[55]涉及单个中继链来在链之间传递事务,这 可 能成 为 瓶 颈 。 这 将 限制 交 叉 通 信 技术 的 事 务 速 率 。 PeggedSidechains,Cosmos [6],Polkadot [40],Wang et al. sBlockchainRouter [54] , Kan et al. 的 系 统 [55] , Ion [7 , 36] , 跨 分 片 合 约Yanking [56,57]和GPACT [13]在不同程度上不保护通信区块链成员的隐私。这意味着这些技术可能不适合企业区块链场景。Pol- kadot [40]要求所有区块链都有相同的共识算法。在不同的侧链上允许不同的共有算法可能是有利的。 Crosschain Deals [12]提供跨链函数调用功能,但需要每个交易设置。 它们不能用于组成复杂的跨域应用程序。除了GPACT协议[13](受本文所述协议的启发)之外,没有一种技术提供允许任意代码执行的原子跨链函数调用,因此不提供所提出协议的功能。5. 模型以太坊私有侧链的Atomic Crosschain Transactions可以被认为是一个两阶段提交方案。用户通过创建嵌套事务来提交要执行的调用树,执行存储临时更新的调用树,然后如果各个区块链上的执行的所有部分都成功,则提交更新,否则丢弃更新。作为两阶段提交方案,意味着跨区块链的函数调用有效地连续执行,从而允许可组合的程序模型。Coordination Blockchains托管Crosschain Coordination Contracts以保持Crosschain交易状态。 协调区块链被用作跨链交易的外部参考点,根据协调区块链上的区块为每个跨链交易提供超时。 合约逻辑用于自动使超时的跨流程交易失败,而不需要任何干预.每个区块链都有一组节点,它们相互合作以证明已经发生的各种事件。例如,一个事件可以是一个交叉事务的开始,或者是一个已经完成并具有特定返回值的函数。 分布式BLS门限密钥签名用于消息的签名。公钥存储在Crosschain协调契约中,从而允许任何区块链上的任何节点验证消息的签名该协议依赖于在各种区块链中执行的最终交易。 对于使用IBFT 2 [23]并具有即时终结性的联盟区块链,一旦交易被包含在区块中,它就是最终的。对于PoW区块链,协议组件需要等待一定数量的块确认发生,以提供适当级别的置信度,即块可能是最终的[63]。以太坊2 [21]等PoS区块链具有概率终结性和检查点的组合P. Robinson等人区块链:研究与应用3(2022)1000309与PoW区块链类似,协议组件需要等待区块最终完成,然后才能使用区块中的交易6. 协议组件该协议旨在通过将所需的更改合并到以太坊客户端软件中来保护应用程序开发人员免受交叉交易的复杂性。该技术已在Hyperledger Besu的一个分支中实现[14],并在Apache 2开源许可下在github.com上提供[156.1. 嵌套事务Atomic Crosschain Transactions for Ethereum Private Sidechain是嵌套的以太坊交易和视图。 事务是更新状态的函数调用。视图是返回值但不更新状态的函数调用。 图图7示出了在区块链私有区块链A上调用合约ConA中的函数funcA的E永久拥有账户(EOA)。这个函数又调用函数funcB,后者又调用函数funcC和funcD,每个函数都在不同的区块链上。 由EOA提交的交易称为发起交易。原始交易导致提交的交易被称为次级交易.也可以触发从属视图。图 7、使用Subordinate View调用funcC。这个函数返回一个值给funcB。图图8示出了原子Crosschain变换的嵌套结构。 EOA用户首先为私有区块链C创建签名的从属视图,合约ConC,函数funcC,以及为私有区块链D创建签名的从属交易,合约ConD,函数funcD。然后,它们为私有区块链B、合约ConB、函数funcB创建签名
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- GO婚礼设计创业计划:技术驱动的婚庆服务
- 微信行业发展现状及未来发展趋势分析
- 信息技术在教育中的融合与应用策略
- 微信小程序设计规范:友好、清晰的用户体验指南
- 联鼎医疗:三级甲等医院全面容灾备份方案设计
- 构建数据指标体系:电商、社区、金融APP案例分析
- 信息技术:六年级学生制作多媒体配乐古诗教程
- 六年级学生PowerPoint音乐动画实战:制作配乐古诗演示
- 信息技术教学设计:特点与策略
- Word中制作课程表:信息技术教学设计
- Word教学:制作课程表,掌握表格基础知识
- 信息技术教研活动年度总结与成果
- 香格里拉旅游网设计解读:机遇与挑战并存
- 助理电子商务师模拟试题:设计与技术详解
- 计算机网络技术专业教学资源库建设与深圳IT产业结合
- 微信小程序开发:网络与媒体API详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功