区块链迁移的模式

Nervosfans  2019-06-10  区块链/区块链Blockchain栏目  

  每晚八点,

  我们在社区分享知识。

  乐乐:sensus113 

   美果大冰:xj73226

  备注入群,谢谢!

  摘要

  随着技术,经济的快速发展和监管环境的变化,当代的Blockchian平台几乎肯定会经历重大变化。因此,依赖它们的应用程序最终将需要迁移区块链以保持竞争力和安全性,以及提高性能,成本效率,隐私和法规遵从性。但是,数据和智能合约的差异表示,托管方式,交易费用以及保持一致性,不变性和数据来源的必要性是数据迁移的挑战。我们首先提出一套区块链使用说明性示例的迁移方案和数据保真度级别。然后,我们派生出一组迁移模式来解决这些问题以应对数据管理的挑战。最后,我们演示如何通过选择合适的数据保真度级别和主动系统设计,可以最大限度地减少区块链迁移的工作量,成本和风险。实际的还强调了考虑因素和一些研究挑战。

  关键词 - 区块链;数据迁移;模式;智能合约;交易

  简介

  自十年前比特币推出以来,前所未有Blockchain(BC)平台具有不同的设计,功能和操作模式出现了。虽然每个人都声称其优于前辈,在给定应用场景的情况下,性能,安全性或用户支持的条款确定适合的BC平台是非常重要的。但是,不想输给早期采用者的优势,甚至是企业信息系统(EIS)和业务流程管理系统(BPMS)开始采用BC平台。

  或者,作为技术,经济和监管景观仍在不断发展,目前尚不清楚BC平台将在EIS和BPMS领域做出哪些切入。因此,如果选择的BC转向不适合,改变BC可能是困难的,昂贵的和不安全的。由于托管模式,平台不兼容性和BC属性例如一致性,不变性和透明度。虽然迁移主要是事后的想法,必须知道迁移是否是一种可能性与数据库迁移相比的任何警告。对于长期运行的应用程序[4]以及基于BC的应用程序(BC提供中立平台),从一个数据存储迁移到另一个数据存储是不可避免的。存储数据和执行智能合约(SC) - 也不例外。例如,使用BC作为底层数据存储的应用程序可以选择从公共BC到私人,以减少交易(TX)费用或增强隐私。

  此外,随着更高效,安全和健壮的BC平台的出现,应用程序可能希望更改BC以获得更高的吞吐量,低延迟,快速终结。此外,企业兼并和收购,在跨组织流程中建立/加入新财团以及监管变更[6]可能会迫使组织进入BC联盟或BC即服务(BaaS)平台。业务流程再造,内部和共享数据的分离,硬件交换,整合,由于攻击造成的公共BC平台崩溃,平台费用和许可的变更以及缺乏供应商支持也可能引发迁移。 Gartner预计,“到2021年,90%的企业BC实施将需要在18个月内更换以保持竞争力和安全性,并且避免过时。”或者,类似于运行多个数据库,一个组织也可能采用不同成本,性能的多个BC和工作负载特征,可能涉及部分BC迁移。虽然数据库迁移最佳实践和众多模式,可以用于BC迁移,BC带来了自己的一系列机遇和挑战。一方面,BC可以被抽象为一个维持一组状态的键值存储。因此,BC的无模式特性使得从BC到另一个BC的映射更容易。此外,由于共识和完整性提供的数据一致性,BC的数据质量很高由不变性提供。这些特性还使文档丢失或关键开发人员离开组织时,更容易对应用程序的BC Access / API层(BAL)(参见图2)进行逆向工程。

  或者,BC可能包含SCs形式的业务逻辑。 SC不仅比存储过程更具表现力和复杂性,而且还特定于BC平台。因此,尽管开发和测试它们需要大量的时间和成本,但是可能需要针对目标BC平台重写SC,导致高的错误可能性。而且,全局状态,TX序列和历史由于共识过程和保存数据出处的需要,可以在目标BC(例如,公共BC)上任意重建。

  此外,由于TX经过数字签名,因此如果不访问私钥,它们可能无法在BC之间重放。即使可以采用变通方法,也需要大量的时间和成本需要迁移大量相互关联的帐户,资产,状态和TX。毕竟,BC应该是不变的!因此,在启动与BC软件的任何与迁移相关的更改之前获得用户的共识对于项目的成功至关重要。

  例如,比特币和以太坊社区都因为对提议改进的分歧存在分歧,并从攻击中恢复。 BC迁移必须是一次性过程,因为由于不变性而无法进行回滚。因此,尽管数十亿的专业知识,最佳实践和模式,但当BC的独特方面与数据库迁移的高失败率相结合时,BC迁移成为一个非常重要且风险较高的过程。

  然而,只要EIS和BPMS的数据或实施在BC上,这种迁移问题是相关的。事实上,BC迁移已经存在这些问题:在本文中,我们首先解释一组BC迁移场景和数据使用说明性示例的保真度级别。该示例基于我们的BC经验,相关工作和预期的未来需求而得出。其次,我们确定了13种模式,以在不同的数据保真度水平下实现BC迁移场景。虽然其中六种模式用于数据库迁移,我们强调支持BC迁移所需的具体调整。还采用了来自BC和数据库文献的其他三种模式来解决非功能性方面,例如迁移数据的质量,成本和隐私。第三,使用说明性示例,我们将讨论如何使用建议的模式和数据保真度级别完成每个已识别的迁移方案。

  总之,虽然可以相对容易地实现向私人或财团BC的迁移,但在现有的公共BC上重建完整的BC历史是不切实际的。尽管如此,仍然可以重建全局状态,这对于大多数实际的迁移场景来说已经足够了。因此,BC迁移的成功归结为选择正确的数据保真度级别,以平衡竞争因素,如性能,成本,时间,工作量,数据粒度,安全,隐私和风险。最后,我们讨论实际考虑因素和研究挑战。本文的其余部分安排如下。图2定义术语并呈现说明性示例。第2节介绍了迁移方案和数据保真度级别。 3,虽然模式是在Sec。 4.第2节介绍了向场景映射和一组用例的迁移模式。 5.第二节6讨论了实际考虑和研究挑战。

  2 定义

  我们首先定义了一组与BC数据和迁移相关的术语。这些术语大多来自以太坊和比特币,它们被BC行业和研究界广泛采用,并在中重复使用。定义这些术语是为了更好地表达说明性示例,BC迁移场景,数据保真度级别和仅模式。状态是BC跟踪的任何内容,例如资产的所有权和价值,帐户余额,未使用交易输出(UTXO),信誉和物理对象的属性。帐户(又名,地址)是state或SC的参考/密钥,例如,比特币中的UTXO的所有者或以太坊帐户的余额。全局状态是BC记录的所有帐户及其当前状态的集合。虽然SC也可能具有嵌入状态,但建议将SC代码的状态分开来增强SC的可升级性和成本效率。因此,状态也指SC使用的状态。事务(TX)用于启动有效的状态转换。

  例如,TX可以将标题或借记卡加密货币的所有权从一个帐户和信用卡更改为另一个帐户。智能合约(SC)是响应于TX而激活的一组可执行指令。执行时,这些指令可能会更改状态并生成新的TX。与数据库类似TX,BC TX还对多个状态执行复杂操作。但是,它们并不完全支持CRUD操作和ACID属性。历史(又名,块历史)是BC生成的所有块的集合。在执行那些TX和SC之后,每个块在内部跟踪所有TX,SC和结果状态。BC平台是一个独特的软件,如比特币,以太坊和Hyperledger。具有特定权限和配置的这种平台的执行被称为BC实例。我们考虑在BC实例上使用的应用程序想要更改实例或运行的特定硬件的情况。当前的BC实例被称为源BC和改变后得到的那个被称为目标BC。源和目标BC可以是具有不同权限级别的相同或不同实例,例如私有,联盟和公共。

  迁移,传输,转换和移动等不同术语是指将数据从源数据存储复制到目标的过程。在这里,我们将BC迁移定义为重新创建完整或部分帐户的过程,目标BC上的状态,TX,SC和历史。在此之下,不仅包括数据传输,还包括跨大量分布式节点的分布式换向,数据交换和共识。我们排除了BC重新配置和软件升级方案,其中数据保持向后兼容并且在同一BC实例中。例如,更改Hyperledger Fabric中的一致性算法,同时保留状态数据库和软件叉,其中旧块在更新的状态转换规则下仍然有效。虽然我们也认为迁移是一个没有回报的单向过程,但我们考虑一下继续或退役的可能性...

  3 区块链迁移方案

  在这项工作中,我们假设已经做出了迁移的决定基于诸如性能,成本,时间,努力,数据粒度和隐私等因素的相对重要性来选择目标BC。我们认为不同目标BC实例的选择,例如预先存在或新的;私人,财团或公共;和相同或不同的BC平台。我们也考虑了迁移后不能退役源BC的可能性。在这非营利组织有一些选择,例如兑现和重新开始,仅转移期末余额,或将全球状态和历史转移到目标BC。每个选项都有其优点和缺点,可能需要更改数据和BAL基于如何表示状态,跟踪TX,编码SC,保留历史记录,并保持互操作性。在上述说明性示例和其他潜在用例的上下文中可以识别以下数据迁移方案:

  1.传输 - 更改BC实例运行的硬件。例如,非营利组织可以将内部部署的BC实例转移到IaaS或BaaS云实例可以获得可以计算的好处。卸载高级硬件的BC实例,以获得高性能,例如,在物联网(IoT)和雾计算应用[23]是另一个例。

  2.升级 - 创建一个新的BC实例,以获得更好的性能,安全性,新颖的功能,更低的成本和开放性,同时失去向后兼容性。例如,非营利组织可能从PoW转移到PoS版本相同的BC平台,以获得更好的性能和成本效率。

  3.整合 - 将两个或更多现有BC组合到一个目标BC前。一个示例案例是基于BC的两个业务的合并,通过迁移其中一个BC实例来合并另一个应用程序。音乐会申请移动到另一个现有的BC获得类似于升级的好处也可以视为合并。

  4.拆分 - 分离一个或多个目标BC并分配全局状态穿过他们。例如,在公共场所运行的音乐会应用程序BC可以通过分离自己的BC并移动所有BC来宣布独立它的资产到新实例。同样,不同的租户状态也可以分成多个BC来水平扩展多租户BC 。

  5.分片 - 逻辑上分割源BC,使全局的每个子集state仅在不同的节点集上维护。例如,非营利组织的远程工作人员可以使用他们手机中托管的分片在球场上的设备。此外,碎片可以靠近传感器放置在物联网应用中减少延迟。

  6.存档 - 在目标BC上创建块历史的完整存档。对于例如,非营利组织可以创建档案,因为源BC修剪旧阻止减少存储或停业。而且,它可以用来由于TX验证,审计,重定向源BC上的额外负载,数据分析和公共访问TX到不同的BC实例。另外,在银行和金融业,TX历史必须通常保留七年。

  4 Blockchain Migration Patterns

     4.1 模式1  - 快照

  摘要:获取源BC上的全局状态和SC的快照。

  上下文:音乐会应用程序使用的帐户,状态和SC需要被迁移到目标BC。 音乐会申请目前正在进行中;因此,由于新TX的到来,各STATE不断变化。

     

  问题:如何获取源BC上的状态和SC的完整列表在迁移前?

     

  解决方案:首先,确定块数(时间不是一个好的指标)时钟同步问题)启动迁移和冻结所有的TX。其次,告知BAL或BC节点的所有实例何时提前充分冻结。第三,当块号发起时达到迁移,提取所有相关帐户及states/ SC。如果仅迁移特定于应用程序的数据,则相关帐户可以可以从ID DB中找到。第四,重新创建收集的states/ SC目标BC使用相关的迁移模式。第五,当阻止达到冻结TX的数字,停止处理与之相关的所有TX应用程序(如果要迁移整个BC,则为所有TX)。然后等到最终时间(也指定为块号)。第六,全部通过在启动迁移的块编号之后生成的块同时提取已更新的states/ SC,他们的帐户和相关的TX。最后,在目标BC上重新创建更新的状态/ SC通过初始化它们或重放新的TX。 (可选)添加PoE进入任何一个来源(如果在迁移后没有退役)或目标BC用于指示快照数据的块编号和散列脱链数据存储模式。

  4.2 模式2  - STATE聚合

  摘要:将一组状态聚合为单个(或几个)状态。

     

  上下文:Concert应用程序具有大量帐户和状态。因此,从源BC中提取所有状态并重新创建它们目标BC既昂贵又耗时。

     

  问题:如何更有效地提取和重新创建所有状态?

     

  解决方案:在源BC上创建一个新帐户。然后聚合所有或该帐户的states的子集,例如,将所有加密货币转移到一个帐户。可以将SC注入源BC以支持更多复杂的聚合场景。例如,一组二进制状态可以是连接为使用一个或多个状态表示的位图。在更多一般情况n组的状态可以聚合到m个状态集(m << n),例如,关闭每个预算项目的账户余额与期末余额。该可以从ID DB确定要聚合的帐户列表。除非应用程序可以与目标上的聚合状态一起使用BC(例如,期末余额),states需要分解才能匹配来自source BC的state。这可以通过运行相关的反函数和SC来实现,例如,将资产分成多个帐户根据快照中记录的状态。

   4.3 模式3  - 令牌刻录

  摘要:在迁移之前,使源BC上的状态不可用。

     

  背景:因为非营利组织使用的来源BC是公开的,所以不是迁移后退役。 因此,任何状态都留在源中BC可能被滥用(例如,双重支出)。

     

  问题:如何保证迁移不会导致潜在的滥用?

     

  解决方案:使源BC上的状态和SC不可用。 传递加密货币,令牌以及指定或不可用帐户的所有权等状态。 此外,将状态设置为终止状态。 删除令牌使用创建它们的SC。 同样,SC可以调用自毁功能或启动一系列导致终止状态的TX。 这样尝试使状态不可用被称为令牌刻录。

  4.4 模式4  - 映射表

  摘要:替换帐户,TX和SC ID以匹配相应的ID目标BC中的条目。

     

  上下文:Concert应用程序使用数据库将人类可读的引用映射到BC特定帐户,TX和SC ID。 但是,很难在目标BC上重新创建相同的ID。

     

  问题:应用程序如何继续访问迁移的帐户,TX,和SC?

     

  解决方案:在创建新帐户,重播TX和时收集新ID在目标BC上重新部署SC。 然后更新相应的条目在ID DB中。 (可选)将PoE条目添加到源BC或目标BC(具有更好的不变性和安全性的一个),使用脱链数据存储模式,记录ID DB的更新方式。

  4.5 模式5  - 节点同步

  摘要:创建BC节点的克隆。

     

  上下文:非营利组织想要添加新节点或交换节点进行更改物理位置,提高性能或创建多个实例

  来源BC。

     

  问题:如何克隆BC?

     

  解决方案:在新节点上安装相同的BC平台(或向后兼容的更新版本)。 然后通过添加启动新节点源BC平台的其他成员。 允许特定于平台同步工具以同步全局状态和块数据结构与其他BC节点。 同步后,节点也可以全部应用来自创世纪的TXs重建全球状态并验证其正确性。 成功验证节点后,将节点配置为接受新TX。 如果目标是交换节点,则停用源BC。而如果目标是创建多个BC实例,则重新配置新节点表现为独立的BC。

  6 讨论

  接下来,我们将简要讨论BC迁移中的实际考虑因素和研究挑战。当目标BC是一个新实例时,迁移相对简单,因为它为使用节点同步,建立起源和硬分叉模式同步或重新创建数据提供了更大的灵活性。而先前存在的BC,特别是公共BC,需要大量努力来重建state并使用快照,令牌刻录,状态初始化,交换传输和TX重放模式重播TX。这些努力需要花费时间并引入额外费用来汇总状态,刻录令牌,交换令牌和重播TX。因此,为了弥补迁移过程中资产/状态的任何损失,账户需要在迁移之前/之后为足够的资产提供资金。由于密钥长度和TX格式的差异,以及缺乏对私钥和外部帐户状态的访问,重放签名的TX是有问题的。当在目标BC上预先创建帐户时,可以在重放之前使用新私钥再次签署TX。但是,这会破坏问责制,除非至少将新旧公钥之间的映射作为PoE条目进行跟踪。仍然,指定BC本机资产来模拟外部资产。

     

  公共BC上的帐户是一个问题,因为它们的私钥和资产都无法访问。根据所选的数据保真度级别,使用状态聚合和TX重放模式可以减少迁移的时间和成本。因此,在移动到现有BC时,希望选择足以继续应用的数据保真度级别。如果没有退役,来源BC可以继续提供对历史数据的访问。否则,可以使用离线数据将TX和块数据作为一组PoE条目添加到目标BC存储模式同时大幅降低了迁移的成本和时间。由于Nakamoto共识,优先考虑在块中包含高费用TX,以及网络动态,通过重放大量TX来重建相同状态是困难的。因此,迁移失败的风险随着TX数量的增加及其相互依赖性而增加。

  而且,如果迁移突然失败,几乎不可能在公共BC上回滚。虽然在同一BC平台的测试BC实例上进行试验迁移对于降低风险至关重要,但最终迁移必须是一次性。因此,聚合和适当数据保真度级别的选择对于缓解由于大量状态和TX重新创建而导致的迁移失败也是必不可少的。通过一次迁移一个state/ SC可以进一步降低风险,这非常适合交换转移等模式。

  此外,通过不重放TX,我们可以克服与签名TX和外部帐户相关的问题。总之,虽然可以通过合理的努力和时间在任何目标BC上重建全球状态,除非绝对必要,否则不希望重新创建完整的历史记录。翻译和测试SC不仅时间和成本高昂(即使有自动翻译)但也不保证确切的行为。虽然许多高级SC语言仍在提议中,但它们似乎也是如此选择一些指令集架构。因此,重用VM仿真和字节码级别的SC是首选,因为它可以保证确切的行为,成本低得多。要应用令牌刻录模式SC,SC必须单独存储状态或实现自毁在部署在源BC上之前的功能。同样,拥有ID DB在迁移过程中处理ID更改至关重要。否则,迁移将需要对BAL甚至应用程序进行重大更改。而且,使用可以聚合和标记化的状态非常有用。因此,积极主动系统设计,数据管理和最佳实践的使用是必不可少的简化EIS和BPMS的未来迁移方案。

   7 总结

  虽然BC被设计为不可变的,但许多技术,经济和法规级别的变化将使应用程序从一个BC迁移变得至关重要实例到另一个。在本文中,我们概述了BC迁移的必要性EIS和BPMS。我们介绍了七种新模式和九种其他模式从文献中解决六种迁移方案和BC特定的数据管理挑战。我们进一步确定了五个数据保真度水平以平衡竞争因素,如应用程序的最低要求,性能,成本,时间,精力,安全性和隐私降低了BC迁移的成本和风险。虽然预计BC迁移将是困难且昂贵的,但我们表明了这一点大多数迁移方案都可以在合理的时间和成本内实现选择满足应用程序最低要求的数据保真度级别。

  Nervosfans社区正在整合资源

  为想创建项目的朋友搭建创业平台,

  请感兴趣的朋友加乐乐微信:sensus113,

  谢谢!

  Nervos CKB 唯一官网:Nervos.org

  欢迎关注Nervos Fans

  Nerovs CKB 爱好者社区

  Nervos Fans如下频道:

  NervosFans twitter:@nervosfans

  NervosFans 微博:@NervosFans

  NervosFans 微信公号:Nervosfans

  入群请加乐乐微信:sensus113

  美果大冰微信:xj73226

  备注入群,谢谢!

  按识别二维码

  关注我们

版权信息
作者:马蹄
来源:Nervosfans

关于我们

联系我们

作者进驻

手机版

Copyright © 2013 比特巴 www.btb8.com
始建于2013年,提供比特币 区块链及数字货币新闻、技术教程、测评、项目周报、人物等资讯
本页面提供的是区块链新闻资讯,区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中介化的数据库。