CN107464148A - 一种基于联盟链的智能合约升级方法和系统 - Google Patents

一种基于联盟链的智能合约升级方法和系统 Download PDF

Info

Publication number
CN107464148A
CN107464148A CN201710731708.8A CN201710731708A CN107464148A CN 107464148 A CN107464148 A CN 107464148A CN 201710731708 A CN201710731708 A CN 201710731708A CN 107464148 A CN107464148 A CN 107464148A
Authority
CN
China
Prior art keywords
intelligent contract
chain
alliance
original
upgrading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710731708.8A
Other languages
English (en)
Inventor
曹京奇
邴凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongan Information Technology Service Co Ltd
Original Assignee
Zhongan Information Technology Service Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongan Information Technology Service Co Ltd filed Critical Zhongan Information Technology Service Co Ltd
Priority to CN201710731708.8A priority Critical patent/CN107464148A/zh
Publication of CN107464148A publication Critical patent/CN107464148A/zh
Priority to PCT/CN2018/095811 priority patent/WO2019037561A1/zh
Priority to SG11201907944UA priority patent/SG11201907944UA/en
Priority to KR1020197021804A priority patent/KR20190111037A/ko
Priority to US16/421,588 priority patent/US20190278767A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Databases & Information Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Marketing (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Security & Cryptography (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种基于联盟链的智能合约升级方法,其包括步骤:100:通过联盟链调用入口发起升级交易,提交新智能合约的执行代码;200:联盟链调用入口对升级交易进行第一校验;300:升级交易由原始智能合约的创建者发起时,升级交易才被提交至联盟链的节点;400:节点对升级交易进行第二校验;500:只有在第二校验结果为升级交易是由原始智能合约的创建者通过授权节点发起时,升级交易才被提交至整个联盟链;600:联盟链接收并执行升级交易,并将新智能合约的执行代码写入相应的原始智能合约的存储位置。此外还公开了相应的系统。本发明可以在保证兼容性的前提下实现智能合约的低成本升级。

Description

一种基于联盟链的智能合约升级方法和系统
技术领域
本发明涉及区块链开发技术,尤其涉及一种智能合约升级方法和系统。
背景技术
区块链(Block Chain)技术是基于去中心化的对等网络,将密码学原理与共识机制相结合,来保障分布式各节点的数据连贯和持续,实现信息即时验证、可追溯、难篡改等特性,从而创造了一套隐私、高效、安全的分布式信任体系。
区块链根据访问权限,通常可以分为公有链、联盟链和私有链。公有链是指任何人都可以根据协议接入并参与共识的区块链;联盟链是指共识过程受到预选节点控制的区块链;私有链是指权限在一个组织中,并受该组织完全控制的区块链。
智能合约是指运行在区块链上的实现复杂功能的去中心化应用框架。智能合约通常由高级语言编写,经对应编译器编译之后生成区块链能够识别并执行的编码,部署在区块链之中,提供相应的功能。
在现有的区块链技术中,智能合约部署成功之后,便无法进行修改。但是在实际情况中,智能合约可能存在漏洞,并且存在希望在约定允许的范围内对智能合约进行局部修改的需求。而无法修改的特性,会导致合约因漏洞而造成严重后果,以及因极小的改动需求而不得不创建新合约所带来的冗余工作。因此,智能合约的升级问题成为制约智能合约灵活性的关键问题。
针对上述问题,现有的技术方案主要有两种:第一种是在智能合约的业务逻辑中实现。通过配置路由合约,间接地调用动态合约的功能,在需要进行合约升级时,由路由合约更新动态合约,实现间接升级合约的功能。第二种是修改智能合约的执行过程以及存储逻辑,通过约定合约保留方法和定制数据结构,实现直接升级合约的功能。
上述现有技术具有以下缺点:第一种间接升级合约的方法需要编写极其复杂的路由合约,合约的存储与执行都需要额外消耗大量资源。同时,如果路由合约本身存在漏洞,是无法升级路由合约本身的。第二种直接升级合约的方法虽然避免了消耗大量资源的缺点,但是需要约定合约保留方法并定制特殊的数据结构。首先约定合约保留方法限制了智能合约的灵活性,其次定制数据结构导致与现有的运行中的区块链不再兼容,该方案只能实施在新建的区块链之中。
发明内容
本发明的目的之一是提供一种基于联盟链的智能合约升级方法,基于该方法可以在保证兼容性的前提下实现智能合约的低成本升级。
根据上述目的,本发明提出了一种基于联盟链的智能合约升级方法,其包括步骤:
100:通过联盟链调用入口发起对部署在联盟链上的原始智能合约进行升级的升级交易,提交原始智能合约升级后的新智能合约的执行代码;
200:联盟链调用入口对所述升级交易进行第一校验,以校验升级交易是否由原始智能合约的创建者发起;
300:只有在第一校验结果为升级交易由原始智能合约的创建者发起时,所述升级交易才被提交至联盟链的节点;
400:接收到所述升级交易的联盟链的节点对升级交易进行第二校验,以校验所述升级交易是否由原始智能合约的创建者通过授权节点发起;
500:只有在第二校验结果为所述升级交易是由原始智能合约的创建者通过授权节点发起时,所述升级交易才被提交至整个联盟链;
600:联盟链接收并执行所述升级交易,并将所述新智能合约的执行代码写入相应的原始智能合约的存储位置。
本发明所述的基于联盟链的智能合约升级方法,其通过联盟链调用入口对所述升级交易进行第一校验,以校验升级交易是否由原始智能合约的创建者发起,还通过联盟链的节点对升级交易进行第二校验,以校验所述升级交易是否由原始智能合约的创建者通过授权节点发起,从而实现升级权限的校验,在通过升级权限校验后,就可以以不修改现有联盟链的数据存储结构并保留原始智能合约原有的状态数据的方式,将所述新智能合约的执行代码写入相应的原始智能合约的存储位置,从而在保证兼容性的前提下实现智能合约的低成本升级。其中:
步骤100中,通常智能合约需要进行升级的情况主要包括两种,第一种是合约存在漏洞,第二种是合约需要进行局部修改以改变合约行为。如果需要大幅度修改智能合约,通常创建一份新的智能合约将是更加合理的方案,而非选择升级。因此,在本发明中,通常约定合约升级的范围为保留原有的合约状态变量不变,允许追加状态变量,并且允许对合约方法进行增删改。
步骤200-步骤500涉及升级权限的校验。为了保证合约升级的安全性,本发明仅允许原始智能合约的创建者通过授权节点发起合约升级。由此升级权限的校验分为两部分。第一部分是校验升级交易是否由原始智能合约的创建者发起,对应步骤200和步骤300的第一校验。第二部分是校验所述升级交易是否由原始智能合约的创建者通过授权节点发起,对应步骤400和步骤500的第二校验。智能合约升级是区块链交易中影响较大的操作,通常不允许任意节点发起,因此联盟链通常校验升级交易的发起节点对交易的签名,如果为非授权节点,则拒绝继续执行该交易并停止向联盟链中继续广播该交易。
步骤600涉及升级交易的执行。联盟链在执行升级交易时,将新智能合约的执行代码写入相应的原始智能合约的存储位置。由于在步骤100中通常约定在合约升级时,合约已有的状态变量保持不变,仅允许追加变量,因此根据智能合约对状态变量的定位规则,合约升级之后,将不影响已有的合约状态变量值。另外,根据联盟链保留历史的特性,修改仅发生在新生成的区块中,若追溯到历史区块中,执行当时的合约,其结果完全不受后续升级影响。
至此,智能合约升级完成。智能合约升级完成后,使用新的调用方法进行合约调用,将得到预期的结果。同时旧的调用方法将不再得到支持,如果强行使用旧的调用方法进行调用,根据合约的修改程度,将得到或正确或错误的结果。
进一步地,本发明所述的基于联盟链的智能合约升级方法中,步骤100还包括提交原始智能合约的地址。
上述方案中,所述原始智能合约的地址可以用于确定原始智能合约的存储位置。此外,所述原始智能合约的地址还可以用于升级权限的校验。
更进一步地,上述基于联盟链的智能合约升级方法中,在步骤200中,联盟链调用入口基于原始智能合约的创建者的账户地址以及原始智能合约的创建者的当前账户nonce值进行计算得到一判定nonce值,如果该判定nonce值与原始智能合约的创建者的账户地址进行计算能够得到所述原始智能合约的地址,则判定升级交易是由原始智能合约的创建者发起,如果该判定nonce值与原始智能合约的创建者的账户地址进行计算不能得到所述原始智能合约的地址,则判定升级交易不是由原始智能合约的创建者发起。
也就是说,在步骤200中,本发明所述的方法是在通过计算“寻找”一个满足条件的nonce值,基于原始智能合约的创建者的账户地址和该nonce值计算,能够得到原始智能合约的地址。
nonce值是指账户含有的一个连续递增的数值。
进一步地,本发明所述的基于联盟链的智能合约升级方法中,在步骤300中,所述升级交易被打包成标准格式交易被提交至联盟链的节点。
上述方案中,升级交易通常根据现有的标准交易格式被打包成标准格式交易,保证兼容性,并避免因定制专门的保留方法而牺牲智能合约的灵活性。标准格式的升级交易通常包括作为升级交易识别标志的一个预编译合约地址、原始智能合约的地址、原始智能合约的创建者在创建原始智能合约时的账户nonce值。其中预编译合约地址是联盟链中为实现特殊功能而保留的若干地址。
进一步地,本发明所述的基于联盟链的智能合约升级方法中,将原始智能合约的地址和原始智能合约的创建者在创建原始智能合约时的账户nonce值作为所述升级交易的参数,所述原始智能合约的创建者在创建原始智能合约时的账户nonce值由原始智能合约的创建者的账户地址以及原始智能合约的创建者的当前账户nonce值计算得到。
上述方案中,通常用原始智能合约的创建者的账户地址和原始智能合约的创建者的当前账户nonce值循环递减计算,可以得到原始智能合约的创建者在创建原始智能合约时的账户nonce值。
在后续升级权限校验时,可以将原始智能合约的创建者在创建原始智能合约时的账户nonce值与原始智能合约的创建者的账户地址计算得到一算得的智能合约地址,并将其与原始智能合约的地址进行比对,即可验证当前升级交易是否由原始智能合约的创建者发起。
更进一步地,上述基于联盟链的智能合约升级方法中,在步骤400中,联盟链节点基于原始智能合约的创建者的账户地址以及所述判定nonce值进行计算得到一智能合约地址,将该算得的智能合约地址与步骤100中提交的原始智能合约的地址进行比对,如果二者一致,则判定升级交易是由原始智能合约的创建者发起,如果二者不一致,则判定升级交易不是由原始智能合约的创建者发起。
进一步地,本发明所述的基于联盟链的智能合约升级方法中,采用预编译合约地址作为所述升级交易的识别标志,以将所述升级交易与联盟链接收到的其他交易区别开。
本发明的另一目的是提供一种基于联盟链的智能合约升级系统,该系统可以在保证兼容性的前提下实现智能合约的低成本升级。
基于上述发明目的,本发明还提供了一种基于联盟链的智能合约升级系统,其执行上述任一基于联盟链的智能合约升级方法。
本发明所述的基于联盟链的智能合约升级系统,其由于执行上述任一基于联盟链的智能合约升级方法,因此同样可以在保证兼容性的前提下实现智能合约的低成本升级。
本发明所述的基于联盟链的智能合约升级方法,其具有以下优点和有益效果:
(1)无需配置路由合约,使得智能合约的编写回归简单。由此可以降低智能合约的编写难度,并且避免因配置路由合约而带来的额外的计算和存储资源消耗。
(2)基于现有的通用交易格式,使用预编译合约地址进行升级交易识别,避免因定制专门的保留方法而牺牲智能合约的灵活性。
(3)不修改现有联盟链的数据存储结构,并且升级之后保留智能合约原有的状态数据,从而与现有运行中的联盟链保持兼容。
本发明所述的基于联盟链的智能合约升级系统,其同样具有上述效果。
附图说明
图1显示了本发明所述的基于联盟链的智能合约升级方法在一种实施方式下的流程示意图。
图2显示了本发明所述的基于联盟链的智能合约升级系统在一种实施方式下的工作流程图。
具体实施方式
下面将结合说明书附图和具体的实施例来对本发明所述的基于联盟链的智能合约升级方法和系统进行进一步地详细说明,但是该详细说明不构成对本发明的限制。
图1显示了本发明所述的基于联盟链的智能合约升级方法在一种实施方式下的流程。如图1所示,该基于联盟链的智能合约升级方法包括步骤:
100:通过联盟链调用入口发起对部署在联盟链上的原始智能合约进行升级的升级交易,提交原始智能合约升级后的新智能合约的执行代码。
200:联盟链调用入口对升级交易进行第一校验,以校验升级交易是否由原始智能合约的创建者发起。
300:只有在第一校验结果为升级交易由原始智能合约的创建者发起时,升级交易才被提交至联盟链的节点。
400:接收到升级交易的联盟链的节点对升级交易进行第二校验,以校验升级交易是否由原始智能合约的创建者通过授权节点发起。
500:只有在第二校验结果为升级交易是由原始智能合约的创建者通过授权节点发起时,升级交易才被提交至整个联盟链。
600:联盟链接收并执行升级交易,并将新智能合约的执行代码写入相应的原始智能合约的存储位置。
在某些实施方式中,步骤100还包括提交原始智能合约的地址。
在某些实施方式中,在步骤200中,联盟链调用入口基于原始智能合约的创建者的账户地址以及原始智能合约的创建者的当前账户nonce值进行计算得到一判定nonce值,如果该判定nonce值与原始智能合约的创建者的账户地址进行计算能够得到所述原始智能合约的地址,则判定升级交易是由原始智能合约的创建者发起,如果该判定nonce值与原始智能合约的创建者的账户地址进行计算不能得到所述原始智能合约的地址,则判定升级交易不是由原始智能合约的创建者发起。
在某些实施方式中,在步骤300中,升级交易被打包成标准格式交易被提交至联盟链的节点。
在某些实施方式中,将原始智能合约的地址和原始智能合约的创建者在创建原始智能合约时的账户nonce值作为升级交易的参数,原始智能合约的创建者在创建原始智能合约时的账户nonce值由原始智能合约的创建者的账户地址以及原始智能合约的创建者的当前账户nonce值计算得到。
在某些实施方式中,在步骤400中,联盟链节点基于原始智能合约的创建者的账户地址以及所述判定nonce值进行计算得到一智能合约地址,将该算得的智能合约地址与步骤100中提交的原始智能合约的地址进行比对,如果二者一致,则判定升级交易是由原始智能合约的创建者发起,如果二者不一致,则判定升级交易不是由原始智能合约的创建者发起。
在某些实施方式中,采用预编译合约地址作为升级交易的识别标志,以将升级交易与联盟链接收到的其他交易区别开。
一种实施方式下的基于联盟链的智能合约升级系统包括:联盟链调用入口A、联盟链B,其中联盟链B具有节点b,联盟链B上具有原始智能合约C。该实施方式的基于联盟链的智能合约升级系统执行上述实施方式的基于联盟链的智能合约升级方法。
图2显示了上述实施方式的基于联盟链的智能合约升级系统的工作流程。如图2所示,该实施方式的基于联盟链的智能合约升级系统的工作流程包括:
步骤100:通过联盟链调用入口A发起对部署在联盟链B上的原始智能合约C进行升级的升级交易F,提交原始智能合约C升级后的新智能合约D的执行代码以及原始智能合约C的地址c。
步骤200:联盟链调用入口A对升级交易F进行第一校验,以校验升级交易F是否由原始智能合约C的创建者发起。
该步骤中,联盟链调用入口A基于原始智能合约C的创建者的账户地址e以及原始智能合约C的创建者的当前账户nonce值n1进行循环递减计算得到一判定nonce值n0,如果该判定nonce值n0与原始智能合约C的创建者的账户地址e进行计算能够得到所述原始智能合约C的地址c,则判定升级交易是由原始智能合约C的创建者发起,如果该判定nonce值n0与原始智能合约C的创建者的账户地址e进行计算不能得到所述原始智能合约C的地址c,则判定升级交易不是由原始智能合约C的创建者发起。
步骤300:只有在第一校验结果为升级交易F由原始智能合约的创建者发起时,升级交易F才被提交至联盟链B的节点b。否则返回失败。
该步骤中,升级交易F被打包成标准格式交易被提交至联盟链的节点b,该标准格式的升级交易F包括作为升级交易识别标志的一个预编译合约地址c0、原始智能合约C的地址c、原始智能合约C的创建者在创建原始智能合约C时的账户nonce值n0。其中预编译合约地址c0是联盟链中为实现特殊功能而设置的一组地址;原始智能合约C的地址c、原始智能合约C的创建者在创建原始智能合约C时的账户nonce值n0作为升级交易F的参数。
步骤400:接收到升级交易F的联盟链B的节点b对升级交易F进行第二校验,以校验升级交易F是否由原始智能合约C的创建者通过授权节点发起。
该步骤中,联盟链节点b基于原始智能合约C的创建者的账户地址e以及上述判定nonce值n0进行计算得到一智能合约地址c’,将该算得的智能合约地址c’与步骤100中提交的原始智能合约C的地址c进行比对,如果二者一致,则判定升级交易F是由原始智能合约C的创建者发起,如果二者不一致,则判定升级交易F不是由原始智能合约C的创建者发起。
步骤500:只有在第二校验结果为升级交易F是由原始智能合约C的创建者通过授权节点发起时,升级交易F才被提交至整个联盟链B。若由非授权节点发起,或升级交易F不是由原始智能合约C的创建者发起,则判定交易非法,同样返回失败。
步骤600:联盟链B接收并执行升级交易F,并将新智能合约D的执行代码写入相应的原始智能合约C的存储位置。
重复上述步骤可实现对同一合约的持续升级。
另外,还需要说明的是,本案中各技术特征的组合方式并不限本案权利要求中所记载的组合方式或是具体实施例所记载的组合方式,本案所记载的所有技术特征可以以任何方式进行自由组合或结合,除非相互之间产生矛盾。
需要注意的是,以上列举的仅为本发明的具体实施例,显然本发明不限于以上实施例,随之有着许多的类似变化。本领域的技术人员如果从本发明公开的内容直接导出或联想到的所有变形,均应属于本发明的保护范围。

Claims (8)

1.一种基于联盟链的智能合约升级方法,其特征在于,包括步骤:
100:通过联盟链调用入口发起对部署在联盟链上的原始智能合约进行升级的升级交易,提交原始智能合约升级后的新智能合约的执行代码;
200:联盟链调用入口对所述升级交易进行第一校验,以校验升级交易是否由原始智能合约的创建者发起;
300:只有在第一校验结果为升级交易由原始智能合约的创建者发起时,所述升级交易才被提交至联盟链的节点;
400:接收到所述升级交易的联盟链的节点对升级交易进行第二校验,以校验所述升级交易是否由原始智能合约的创建者通过授权节点发起;
500:只有在第二校验结果为所述升级交易是由原始智能合约的创建者通过授权节点发起时,所述升级交易才被提交至整个联盟链;
600:联盟链接收并执行所述升级交易,并将所述新智能合约的执行代码写入相应的原始智能合约的存储位置。
2.如权利要求1所述的基于联盟链的智能合约升级方法,其特征在于,步骤100还包括提交原始智能合约的地址。
3.如权利要求2所述的基于联盟链的智能合约升级方法,其特征在于,在步骤200中,联盟链调用入口基于原始智能合约的创建者的账户地址以及原始智能合约的创建者的当前账户nonce值进行计算得到一判定nonce值,如果该判定nonce值与原始智能合约的创建者的账户地址进行计算能够得到所述原始智能合约的地址,则判定升级交易是由原始智能合约的创建者发起,如果该判定nonce值与原始智能合约的创建者的账户地址进行计算不能得到所述原始智能合约的地址,则判定升级交易不是由原始智能合约的创建者发起。
4.如权利要求1所述的基于联盟链的智能合约升级方法,其特征在于,在步骤300中,所述升级交易被打包成标准格式交易被提交至联盟链的节点。
5.如权利要求1所述的基于联盟链的智能合约升级方法,其特征在于,将原始智能合约的地址和原始智能合约的创建者在创建原始智能合约时的账户nonce值作为所述升级交易的参数,所述原始智能合约的创建者在创建原始智能合约时的账户nonce值由原始智能合约的创建者的账户地址以及原始智能合约的创建者的当前账户nonce值计算得到。
6.如权利要求3所述的基于联盟链的智能合约升级方法,其特征在于,在步骤400中,联盟链节点基于原始智能合约的创建者的账户地址以及所述判定nonce值进行计算得到一智能合约地址,将该算得的智能合约地址与步骤100中提交的原始智能合约的地址进行比对,如果二者一致,则判定升级交易是由原始智能合约的创建者发起,如果二者不一致,则判定升级交易不是由原始智能合约的创建者发起。
7.如权利要求1所述的基于联盟链的智能合约升级方法,其特征在于,采用预编译合约地址作为所述升级交易的识别标志,以将所述升级交易与联盟链接收到的其他交易区别开。
8.一种基于联盟链的智能合约升级系统,其执行如权利要求1-7中任意一项所述的基于联盟链的智能合约升级方法。
CN201710731708.8A 2017-08-23 2017-08-23 一种基于联盟链的智能合约升级方法和系统 Pending CN107464148A (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201710731708.8A CN107464148A (zh) 2017-08-23 2017-08-23 一种基于联盟链的智能合约升级方法和系统
PCT/CN2018/095811 WO2019037561A1 (zh) 2017-08-23 2018-07-16 一种基于联盟链的智能合约升级方法和系统
SG11201907944UA SG11201907944UA (en) 2017-08-23 2018-07-16 Smart contract upgrade method and system based on alliance chain
KR1020197021804A KR20190111037A (ko) 2017-08-23 2018-07-16 컨소시엄 블록체인에 의한 스마트 계약 업그레이드 방법 및 시스템
US16/421,588 US20190278767A1 (en) 2017-08-23 2019-05-24 Smart contract upgrade method and system based on alliance chain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710731708.8A CN107464148A (zh) 2017-08-23 2017-08-23 一种基于联盟链的智能合约升级方法和系统

Publications (1)

Publication Number Publication Date
CN107464148A true CN107464148A (zh) 2017-12-12

Family

ID=60550258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710731708.8A Pending CN107464148A (zh) 2017-08-23 2017-08-23 一种基于联盟链的智能合约升级方法和系统

Country Status (5)

Country Link
US (1) US20190278767A1 (zh)
KR (1) KR20190111037A (zh)
CN (1) CN107464148A (zh)
SG (1) SG11201907944UA (zh)
WO (1) WO2019037561A1 (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170740A (zh) * 2017-12-18 2018-06-15 深圳前海微众银行股份有限公司 数据迁移方法、系统和计算机可读存储介质
CN108196872A (zh) * 2017-12-27 2018-06-22 邵美 一种区块链系统中智能合约的升级方法
CN108833398A (zh) * 2018-06-08 2018-11-16 浙江超脑时空科技有限公司 一种区块链智能合约更新方法、装置及设备
CN108876619A (zh) * 2018-06-26 2018-11-23 北京溯安链科技有限公司 基于区块链智能合约的处理方法、装置、设备和介质
CN109003185A (zh) * 2018-06-29 2018-12-14 中国银联股份有限公司 一种智能合约的建立方法、装置、计算设备及存储介质
CN109151031A (zh) * 2018-08-28 2019-01-04 北京奇虎科技有限公司 基于区块链的合约处理方法及装置
CN109358881A (zh) * 2018-10-24 2019-02-19 杭州趣链科技有限公司 一种基于智能合约的权限可控的智能合约升级方法
WO2019037561A1 (zh) * 2017-08-23 2019-02-28 众安信息技术服务有限公司 一种基于联盟链的智能合约升级方法和系统
CN109491682A (zh) * 2018-10-24 2019-03-19 杭州趣链科技有限公司 一种基于智能合约的权限可控的区块链系统自动升级方法
CN109522729A (zh) * 2018-11-02 2019-03-26 中链科技有限公司 智能合约状态变更方法及装置
CN109962779A (zh) * 2017-12-22 2019-07-02 中国电信股份有限公司 用于实现合约更新的方法、装置和系统
CN110009362A (zh) * 2019-04-02 2019-07-12 北京众享比特科技有限公司 区块链智能合约修改方法、装置和计算机可读存储介质
CN110018840A (zh) * 2019-04-11 2019-07-16 深圳市网心科技有限公司 一种智能合约升级方法、装置、区块链节点设备及介质
CN110035045A (zh) * 2018-11-16 2019-07-19 阿里巴巴集团控股有限公司 跨链数据的可信管理方法及装置、电子设备
CN110138592A (zh) * 2019-04-09 2019-08-16 苏宁易购集团股份有限公司 一种智能合约的管理方法及系统
CN110162274A (zh) * 2019-05-31 2019-08-23 深圳市网心科技有限公司 一种基于区块链的数据处理方法、装置及设备
CN110474865A (zh) * 2018-05-11 2019-11-19 北京轻信科技有限公司 区块链用户权限系统及实现方法
CN110580624A (zh) * 2018-06-07 2019-12-17 华为技术有限公司 链码升级方法及装置
CN111046055A (zh) * 2019-12-11 2020-04-21 杭州趣链科技有限公司 一种区块链全局配置的变更方法、设备和存储介质
CN111291365A (zh) * 2020-02-28 2020-06-16 上海哈世科技有限公司 联盟链系统的智能合约管理方法、装置、设备及存储介质
CN111597584A (zh) * 2020-05-26 2020-08-28 牛津(海南)区块链研究院有限公司 一种基于区块链的隐私保护和数据共享方法、装置、设备
CN111683043A (zh) * 2020-04-26 2020-09-18 华东师范大学 面向联盟链的基于可信执行环境的智能合约并发执行方法
CN111937013A (zh) * 2018-03-28 2020-11-13 诺基亚技术有限公司 电子设备管理
CN112527781A (zh) * 2020-12-23 2021-03-19 上海万向区块链股份公司 一种智能合约数据迁移方法及系统
CN112783877A (zh) * 2020-12-30 2021-05-11 北京百度网讯科技有限公司 跨链数据验证方法、装置、设备和存储介质
CN113064675A (zh) * 2020-12-29 2021-07-02 上海能链众合科技有限公司 一种可继承的区块链无损改造方法

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109003078B (zh) 2018-06-27 2021-08-24 创新先进技术有限公司 基于区块链的智能合约调用方法及装置、电子设备
CN113095822A (zh) * 2018-06-27 2021-07-09 创新先进技术有限公司 基于区块链的智能合约调用方法及装置、电子设备
CN111817852A (zh) * 2019-04-10 2020-10-23 上海旺链信息科技有限公司 一种联盟链系统管理方法和装置
CN110209744A (zh) * 2019-05-07 2019-09-06 深圳壹账通智能科技有限公司 基于联盟链的关系型数据库及其操作方法和装置
CN110187831B (zh) * 2019-05-13 2022-04-19 北京华宇九品科技有限公司 区块链联盟链的区块数据存储系统及方法
US11914721B2 (en) * 2019-06-12 2024-02-27 Nec Corporation Method and contract rewriting framework system for supporting smart contracts in a blockchain network
CN110866273B (zh) * 2019-11-09 2023-05-12 北京工业大学 一种基于区块链和星际文件系统的企业间标准共识方法
CN111159753B (zh) * 2019-12-10 2023-12-22 天翼商业保理有限公司 区块链智能合约管理方法及系统、存储介质及终端
JPWO2021125109A1 (zh) * 2019-12-19 2021-06-24
CN113132319A (zh) * 2019-12-31 2021-07-16 鄢华中 基于区块链的数字证书、身份认证及区块链证书发放系统
CN111475777B (zh) * 2020-03-09 2023-04-25 上海零数众合信息科技有限公司 一种区块链智能合约的升级方法
CN111209542B (zh) * 2020-04-23 2020-08-04 雪球(北京)技术开发有限公司 一种权限管理方法、装置、存储介质及电子设备
CN111666325B (zh) * 2020-05-18 2024-04-19 国网浙江省电力有限公司 一种跨链接口调用的有效性验证方法
CN111797106B (zh) * 2020-06-24 2023-09-01 北京荷月科技有限公司 一种兼容多版本合约并行的合约权限设置方法和系统
CN112052021A (zh) * 2020-08-12 2020-12-08 中钞信用卡产业发展有限公司杭州区块链技术研究院 联盟区块链升级的方法、装置、设备及存储介质
CN112085604A (zh) * 2020-09-10 2020-12-15 北京金山云网络技术有限公司 一种升级智能合约的方法及装置
CN112330453B (zh) * 2020-11-23 2024-05-10 杭州趣链科技有限公司 基于区块链的智能合约调用方法、装置、设备和存储介质
CN113220326B (zh) * 2021-05-11 2022-09-16 支付宝(杭州)信息技术有限公司 智能合约升级方法及区块链系统
WO2022271669A1 (en) * 2021-06-22 2022-12-29 Blockchains, Inc. Systems and methods for transaction validation in layer 2
CN113596168B (zh) * 2021-08-02 2024-05-24 中国民生银行股份有限公司 基于区块链联盟链的验证方法及装置
CN115098518B (zh) * 2022-06-08 2024-04-09 西安工业大学 一种四层智能合约的链上升级方法
CN115378640B (zh) * 2022-07-13 2024-03-26 重庆邮电大学 一种基于联盟链的跨链数据安全共享方法
CN115811442B (zh) * 2023-02-09 2023-05-05 上海特高信息技术有限公司 一种基于积木形式的联盟链BaaS平台搭建方法
CN115996130B (zh) * 2023-03-23 2023-06-30 安徽中科晶格技术有限公司 基于预置合约的dao治理方法、装置、设备及存储介质
CN116795850B (zh) * 2023-05-31 2024-04-12 山东大学 一种联盟链海量事务并发执行方法、装置及存储介质
CN116862508A (zh) * 2023-07-13 2023-10-10 华中农业大学 一种基于联盟区块链的机器学习模型交易系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
CN106709704A (zh) * 2016-11-23 2017-05-24 杭州秘猿科技有限公司 一种基于许可链的智能合约升级方法
CN106778329A (zh) * 2016-11-28 2017-05-31 中国银行股份有限公司 一种区块链智能合约模板动态更新方法、装置及系统
CN106778109A (zh) * 2016-11-24 2017-05-31 江苏通付盾科技有限公司 一种基于智能合约的认证权限评价方法及装置
CN106878000A (zh) * 2017-03-06 2017-06-20 中钞信用卡产业发展有限公司北京智能卡技术研究院 一种联盟链共识方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107464148A (zh) * 2017-08-23 2017-12-12 众安信息技术服务有限公司 一种基于联盟链的智能合约升级方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
CN106709704A (zh) * 2016-11-23 2017-05-24 杭州秘猿科技有限公司 一种基于许可链的智能合约升级方法
CN106778109A (zh) * 2016-11-24 2017-05-31 江苏通付盾科技有限公司 一种基于智能合约的认证权限评价方法及装置
CN106778329A (zh) * 2016-11-28 2017-05-31 中国银行股份有限公司 一种区块链智能合约模板动态更新方法、装置及系统
CN106878000A (zh) * 2017-03-06 2017-06-20 中钞信用卡产业发展有限公司北京智能卡技术研究院 一种联盟链共识方法及系统

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019037561A1 (zh) * 2017-08-23 2019-02-28 众安信息技术服务有限公司 一种基于联盟链的智能合约升级方法和系统
CN108170740B (zh) * 2017-12-18 2022-04-26 深圳前海微众银行股份有限公司 数据迁移方法、系统和计算机可读存储介质
CN108170740A (zh) * 2017-12-18 2018-06-15 深圳前海微众银行股份有限公司 数据迁移方法、系统和计算机可读存储介质
CN109962779A (zh) * 2017-12-22 2019-07-02 中国电信股份有限公司 用于实现合约更新的方法、装置和系统
CN108196872A (zh) * 2017-12-27 2018-06-22 邵美 一种区块链系统中智能合约的升级方法
CN111937013A (zh) * 2018-03-28 2020-11-13 诺基亚技术有限公司 电子设备管理
CN111937013B (zh) * 2018-03-28 2024-05-24 诺基亚技术有限公司 电子设备管理
CN110474865B (zh) * 2018-05-11 2021-07-06 北京轻信科技有限公司 区块链用户权限系统及实现方法
CN110474865A (zh) * 2018-05-11 2019-11-19 北京轻信科技有限公司 区块链用户权限系统及实现方法
CN110580624B (zh) * 2018-06-07 2022-02-18 华为技术有限公司 链码升级方法及装置
CN110580624A (zh) * 2018-06-07 2019-12-17 华为技术有限公司 链码升级方法及装置
CN108833398B (zh) * 2018-06-08 2020-12-15 深圳智链未来科技有限公司 一种区块链智能合约更新方法、装置及设备
CN108833398A (zh) * 2018-06-08 2018-11-16 浙江超脑时空科技有限公司 一种区块链智能合约更新方法、装置及设备
CN108876619A (zh) * 2018-06-26 2018-11-23 北京溯安链科技有限公司 基于区块链智能合约的处理方法、装置、设备和介质
CN108876619B (zh) * 2018-06-26 2022-07-05 北京溯安链科技有限公司 基于区块链智能合约的处理方法、装置、设备和介质
CN109003185A (zh) * 2018-06-29 2018-12-14 中国银联股份有限公司 一种智能合约的建立方法、装置、计算设备及存储介质
CN109003185B (zh) * 2018-06-29 2022-03-22 中国银联股份有限公司 一种智能合约的建立方法、装置、计算设备及存储介质
CN109151031B (zh) * 2018-08-28 2022-08-26 北京奇虎科技有限公司 基于区块链的合约处理方法及装置
CN109151031A (zh) * 2018-08-28 2019-01-04 北京奇虎科技有限公司 基于区块链的合约处理方法及装置
US11301233B2 (en) 2018-10-24 2022-04-12 Hangzhou Qulian Technology Co., Ltd. Permission-controlled smart contract upgrade method based on smart contract
WO2020082897A1 (zh) * 2018-10-24 2020-04-30 杭州趣链科技有限公司 一种基于智能合约的权限可控的智能合约升级方法
CN109491682A (zh) * 2018-10-24 2019-03-19 杭州趣链科技有限公司 一种基于智能合约的权限可控的区块链系统自动升级方法
CN109358881B (zh) * 2018-10-24 2020-06-16 杭州趣链科技有限公司 一种基于智能合约的权限可控的智能合约升级方法
CN109358881A (zh) * 2018-10-24 2019-02-19 杭州趣链科技有限公司 一种基于智能合约的权限可控的智能合约升级方法
CN109522729A (zh) * 2018-11-02 2019-03-26 中链科技有限公司 智能合约状态变更方法及装置
US11252165B2 (en) 2018-11-16 2022-02-15 Advanced New Technologies Co., Ltd. Cross-chain data trusted management methods and apparatuses
CN110035045A (zh) * 2018-11-16 2019-07-19 阿里巴巴集团控股有限公司 跨链数据的可信管理方法及装置、电子设备
CN110035045B (zh) * 2018-11-16 2020-04-03 阿里巴巴集团控股有限公司 跨链数据的可信管理方法及装置、电子设备
CN110009362A (zh) * 2019-04-02 2019-07-12 北京众享比特科技有限公司 区块链智能合约修改方法、装置和计算机可读存储介质
CN110138592A (zh) * 2019-04-09 2019-08-16 苏宁易购集团股份有限公司 一种智能合约的管理方法及系统
WO2020206848A1 (zh) * 2019-04-11 2020-10-15 深圳市网心科技有限公司 一种智能合约升级方法、装置、区块链节点设备及介质
CN110018840A (zh) * 2019-04-11 2019-07-16 深圳市网心科技有限公司 一种智能合约升级方法、装置、区块链节点设备及介质
CN110018840B (zh) * 2019-04-11 2021-12-03 深圳市迅雷网络技术有限公司 一种智能合约升级方法、装置、区块链节点设备及介质
CN110162274A (zh) * 2019-05-31 2019-08-23 深圳市网心科技有限公司 一种基于区块链的数据处理方法、装置及设备
CN111046055A (zh) * 2019-12-11 2020-04-21 杭州趣链科技有限公司 一种区块链全局配置的变更方法、设备和存储介质
CN111291365A (zh) * 2020-02-28 2020-06-16 上海哈世科技有限公司 联盟链系统的智能合约管理方法、装置、设备及存储介质
CN111683043A (zh) * 2020-04-26 2020-09-18 华东师范大学 面向联盟链的基于可信执行环境的智能合约并发执行方法
CN111597584A (zh) * 2020-05-26 2020-08-28 牛津(海南)区块链研究院有限公司 一种基于区块链的隐私保护和数据共享方法、装置、设备
CN111597584B (zh) * 2020-05-26 2023-12-19 牛津(海南)区块链研究院有限公司 一种基于区块链的隐私保护和数据共享方法、装置、设备
CN112527781A (zh) * 2020-12-23 2021-03-19 上海万向区块链股份公司 一种智能合约数据迁移方法及系统
CN113064675A (zh) * 2020-12-29 2021-07-02 上海能链众合科技有限公司 一种可继承的区块链无损改造方法
CN113064675B (zh) * 2020-12-29 2023-12-19 上海零数众合信息科技有限公司 一种可继承的区块链无损改造方法
CN112783877A (zh) * 2020-12-30 2021-05-11 北京百度网讯科技有限公司 跨链数据验证方法、装置、设备和存储介质
CN112783877B (zh) * 2020-12-30 2024-06-07 北京百度网讯科技有限公司 跨链数据验证方法、装置、设备和存储介质

Also Published As

Publication number Publication date
WO2019037561A1 (zh) 2019-02-28
US20190278767A1 (en) 2019-09-12
KR20190111037A (ko) 2019-10-01
SG11201907944UA (en) 2019-09-27

Similar Documents

Publication Publication Date Title
CN107464148A (zh) 一种基于联盟链的智能合约升级方法和系统
CN108536445B (zh) 面向区块链智能合约的高度自动化形式化验证系统及方法
Mathur et al. Advancements in the V-Model
US6385765B1 (en) Specification and verification for concurrent systems with graphical and textual editors
CN109933521A (zh) 基于bdd的自动化测试方法、装置、计算机设备及存储介质
CN109829296A (zh) 基于联盟链的智能合约的沙箱实现方法
Yadav Improvement in the V-Model
CN109542767A (zh) 基于区块链的自动化测试方法、装置、计算机设备和存储介质
CN110968437A (zh) 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质
CN109062152A (zh) 一种基于逻辑组态产生的Loacl变量在线监控方法
CN112148278A (zh) 可视化的区块链智能合约框架及智能合约开发部署方法
CN109347866A (zh) 登录方法、装置、系统和计算机可读存储介质
Fourneret et al. Model-based security verification and testing for smart-cards
CN105931042A (zh) 一种应用权限管理方法以及智能pos终端
CN110083367A (zh) 应用安装包的优化处理方法、装置和计算机设备
CN109614325A (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
CN109960947A (zh) 一种Revit项目文件的保护方法
CN109918432A (zh) 提取任务关系链的方法、装置、计算机设备和存储介质
CN107480050A (zh) 一种自动测试更新包的测试方法
US5751595A (en) Method for building and verifying authenticity of a rule system
CN106990974A (zh) 一种app应用更新方法、装置及电子设备
CN109101232A (zh) 一种产品开发的方法、装置、计算机设备及存储介质
CN107766253A (zh) 一种基于模型变更的自动维护测试脚本的方法
CN116489056A (zh) 智能网关生产测试方法、系统和智能网关
CN114095347A (zh) 网络业务自动化平台、冲突管理方法、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1247404

Country of ref document: HK

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171212