CN110097467A - 一种针对智能合约安全性和稳定性的侧链测试方法 - Google Patents
一种针对智能合约安全性和稳定性的侧链测试方法 Download PDFInfo
- Publication number
- CN110097467A CN110097467A CN201910367325.6A CN201910367325A CN110097467A CN 110097467 A CN110097467 A CN 110097467A CN 201910367325 A CN201910367325 A CN 201910367325A CN 110097467 A CN110097467 A CN 110097467A
- Authority
- CN
- China
- Prior art keywords
- user
- module
- side chain
- intelligent contract
- chain
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Quality & Reliability (AREA)
- Finance (AREA)
- Computing Systems (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种针对智能合约安全性和稳定性的侧链测试系统和方法,该系统包括第一模块:用于接收第一用户发布的所述智能合约,第二用户能够在获取了所述智能合约的情况下确定是否加入测试和所述区块链网络中的第三用户对主链进行分叉形成侧链并在所述侧链上布置所述智能合约;第二模块:用于在所述第二用户确定参与所述智能合约测试的情况下将所述第二用户的部分或全部资产从主链上转移至侧链并生成对应的镜像用户,和用于授权所述第三用户在所述侧链上进行挖矿;第三模块:用于接收所述第二用户在测试过程中发布的所述智能合约中的漏洞以及接收在所述智能合约调用总频次达到预设值之时投票;并且能够将所述漏洞和所述投票发布至第四模块。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种针对智能合约安全性和稳定性的侧链测试方法。
背景技术
在狭义上,区块链技术是指一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并且以密码学方式保证的不可篡改和不可伪造的分布式账本。在广义上,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。侧链是将不同的区块链互相连接在一起,以实现区块链的扩展,其完全独立于比特币区块链,但是能够与比特币区块链实现交互。侧链是方便数字资产在不同区块链件互相转移。
例如,公开号为CN108074081A的中国专利公开的一种虚拟资源的转移方法和装置。该装置应用于包含有区块链侧链和主链的去中心化系统,其方法包括:所述主链上发布有托管智能合约;当所述虚拟资源从所述主链转移至所述侧链时,虚拟资源发送方向所述托管智能合约发送转账指令;当所述虚拟资源从所述侧链转移至所述主链时,获得主链区块记账权的矿工向所述托管智能合约发送所述交易信息,并将所述交易信息收录至主链的区块内,所述托管智能合约内设投票机制,在获得区块记账权的矿工对同一笔交易的投票满足后,托管智能合约发起支付。在主链上发布用于托管侧链虚拟资源的智能合约,可有效地对侧链上的虚拟资源余额进行管理。
如公开号为CN108564372A的中国专利公开的一种区块链和智能合约的存储客房和订单数据的方法。该方法包括如下步骤:步骤一、设置主链,所述主链上具有多个参与方;设置主链的权限,其中,所述权限为能够获取所有侧链的信任的最终裁决权;步骤二,创建侧链,所述侧链由主链上的所述多个参与方中的至少一个创建;步骤三、在主链和侧链上均部署跨链交互所用到的智能合约;步骤四、在主链和侧链上进行跨链数据传递。通过本发明的跨链数据传递方法,在许可链场景中以一种安全,灵活,去中心化的方式实现了跨链数据传递。
例如,公开号为CN109117097A的中国专利公开的一种基于区块链的数据存储方法及系统。该方法包括:方法包括:主链的代理节点检测自身的可用存储容量是否大于预设存储阈值;若大于,主链的代理节点记录待转移的起始区块与终止区块之间的全部区块的区块编号;侧链的代理节点向侧链的共识节点发送全部区块;主链的代理节点检测到全部区块在侧链通过共识验证后,主链的代理节点全网广播区块转移信息;主链中各个节点根据区块转移信息删除全部区块。因此,由于主链中各个节点能够在可用存储容量不够时,将部分或全部的区块转移并存储在侧链中,于是,主链中各个节点便有更多可用存储容量,以便主链中各个节点能够更加可靠地存储区块数据,提高了主链的工作可靠性。
例如,公开号为CN107038639A的中国专利公开的一种兼容多资产类型快速交易的联盟链构建方法。其引入联盟链技术实现多种类型数字资产的交易互通,同时,在充分保证系统安全性的基础上引入固定多方签名共识机制代替工作量证明这一动态多方签名机制,显著缩短交易时间。由此本发明能够打通不同资产类型间的交易壁垒,实现交易系统对各种资产类型的广泛兼容;同时本发明采用固定签名集合方案,能够大幅缩减系统内各节点共识达成时间,快速敲定交易显著提升资产流转效率,此外本发明对拜占庭将军问题有优越的鲁棒性,难以被攻破。
自从区块链的概念提出后,智能合约取代传统文本合约执行成为了可能,在满足事先写定条件时,合约可以自动向下执行,完成资金转移等功能。智能合约:是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。但随之而来的是合约安全漏洞的层出不穷。由于合约编写者的疏忽或故意留下的恶意代码都会带来相关的逻辑漏洞,给攻击者可趁之机,窃取用户的资产。且由于区块链的不可篡改性,被撷取的用户资产很难被追回。如在币圈中著名的The DAO事件。The DAO项目是区块链物联网公司Slock。it发起的一个众筹项目。通过智能合约来实现资金分发,将获得的收益根据用户的出金额反馈给出资者。在其中用户可以分裂创建相应的子DAO来用作不同的用途,而合约中在split完成的最后才开始更新用户的余额和总额。攻击者通过攻击其合约提取机制,在系统还未撤销对split的响应即更新余额之前,再次执行split,持续不断地将用户寄存在合约中的资金转移到攻击者的指定账户中。最终,以太坊官方通过更新源码,在区块高度1920000的地方进行硬分叉将the DAO及其子DAO的资金转移到另一个合约的地址。但是我们不可能每次发生安全事故都由官方介入进行硬分叉,这在客观上不可能,由此造成的整个系统时间和金钱上的浪费可能会远大于损失的资产。
因此,一套完善的合约漏洞检测系统是当前区块链网络的迫切需求。然而在现有的区块链开源系统中,并无一套完善的区块链合约检测机制。对于一份即将上链的合约,通常做法都是由合约第一用户C1本人及其同伴或聘请第三方审计机构对合约进行本地测试,然而由于人的思维惯性,由自己进行测试很难发现由疏忽导致的合约潜藏逻辑漏洞。且如果第一用户C1本人就是恶意攻击者,故意留下漏洞,更是防不胜防。智能合约安全隐患包含了三个方面:第一,有没有漏洞。合约代码中是否有常见的安全漏洞。第二,是否可信。没有漏洞的智能合约,未必就安全,合约要保证公平可信。第三,符合一定规范和流程。由于合约的创建要求以数字形式来进行定义承诺,所以如果合约的创建过程不够规范,就容易留下巨大的隐患。
发明内容
针对现有技术之不足,本发明的独立权利要求1提供了一种针对智能合约安全性和稳定性的侧链测试系统,其至少部分模块设置于区块链节点并能够连接至区块链网络中,用以发现智能合约中的漏洞,包括:第一模块:用于接入所述区块链网络中并且接收第一用户发布的所述智能合约,第二用户能够在通过所述第一模块获取所述智能合约的情况下确定是否加入所述智能合约的测试,第三用户在获取了所述智能合约的情况下对主链进行分叉形成侧链并在所述侧链上布置所述智能合约;其中,所述系统还包括:第二模块:用于在所述第二用户确定参与所述智能合约测试的情况下将所述第二用户的部分或全部资产从主链上转移至侧链并生成对应的镜像用户,以使得所述第二用户能够独立于所述主链在所述侧链上对所述智能合约进行测试,并且能够用于授权所述第三用户在所述侧链上进行挖矿;第三模块:用于接收所述镜像用户在测试过程中发布的所述智能合约中的漏洞以及接收在所述智能合约调用总频次达到预设值之时投票;并且能够将所述漏洞和所述投票发布至第四模块;第四模块:能够与若干所述的镜像用户的第三模块进行数据交互并且能够基于若干所述镜像用户的信息确定所述智能合约是否能够上主链。本发明的独立权利要求至少具有如下的优势:1、智能合约是在独立于主链的侧链上进行测试的,第二用户的挖矿行为不会影响主链上的用户与合约的正常交互并且智能合约也不会对主链上的用户造成经济上的损失,主链上的第四用户需要在第二模块授权的情况下才能够参与到智能合约的侧链测试并成为第二用户,从而能够有效地防止主链上的第四用户对侧链上智能合约的恶意攻击,智能合约在侧链上发现漏洞后不会直接地对第二用户以及第一用户造成直接的经济损失,并且在智能合约中的漏洞是可以经过第一用户修改;2、由于智能合约能够在侧链上被众多的第二用户进行测试,即使有第二用户刻意的隐瞒智能合约上的漏洞,第四模块也能够做出有效地判定,从而能够有效地防止该刻意隐瞒的第二用户在该智能合约正式上链时的恶意攻击的发生;3、由于智能合约能够在侧链上被众多的第二用户进行测试,有利于第二用户能够在更多层级更多方面发现智能合约中存在的漏洞并且能够发布智能合约是否可以正式上链的投票,为第一用户提供决策建议。
根据一种优选的实施方式,所述系统还包括监管模块,用于在智能合约在侧链测试的进程中接收镜像用户的请求,以使得在智能合约在侧链测试的进程中,所述第一用户与所述镜像用户之间能够在所述监管模块授予访问权限的情况下进行数据交互;和/或在智能合约在侧链测试的进程中,若干所述镜像用户之间能够在所述监管模块授予访问权限的情况下进行数据交互。
根据一种优选的实施方式,所述系统还包括侧链创建模块,在所述第二用户确定参与所述智能合约测试的情况下,在所述第二用户确定参与所述智能合约测试的情况下,所述侧链创建模块能够基于所述第二用户的信息至少能够创建至少一条侧链,以使得镜像用户能够在其对应的侧链上进行测试。
根据一种优选的实施方式,在所述第二用户向所述监管模块发布投票请求的情况下,所述第二用户能够通过第三模块向所述第四模块发布投票,其中,第三模块配置为:获取所述第二用户的投票节点表征投票意图的投票值,并且根据计票节点由同态加密算法产生的同态公钥,对各投票值进行加密以生成加密值,并且将所述加密值传输至所述第四模块。
根据一种优选的实施方式,所述系统发布模块,在所述智能合约上链至各第二用户所在的侧链之前,所述第一用户能够基于从所述第一模块获取第二用户的名单通过所述发布模块筛选出适合的第二用户,并且能够通过所述发布模块发送至所述第二模块和侧链创建模块,其中,在所述侧链创建模块基于所述第一用户筛选出的第二用户创建侧链后,所述第二模块基于所述第一用户筛选出的第二用户将适合的第二用户的资产从主链上转移至侧链并且授予适合的第二用户在所述侧链上进行测试的权限。
根据一种优选的实施方式,在所述监管模块接收到镜像用户发布的退出请求的情况下,所述系统中的清算模块对镜像用户在测试过程中的资产进行计算并且所述第二模块能够将所述镜像用户的清算后的资产从侧链上转移至主链上,并且所述第二模块将该镜像用户的侧链冻结。
根据一种优选的实施方式,在所述监管模块接收到第一用户发布的撤回测试请求的情况下,所述清算模块能够基于所有的镜像用户在测试智能合约过程中的贡献值将奖金分配至各第二用户的资产账户中,并且所述第二模块能够将各第二用户的资产账户转移至主链中各第二用户的资产账户中,并且所述侧链创建模块能够将所述侧链撤销。
根据一种优选的实施方式,在所述智能合约调用总频次达到预设值的情况下,所述监管模块将所述侧链冻结,并且由所述第三模块提示第二用户进行投票。
根据一种优选的实施方式,本发明还公开了一种针对智能合约安全性和稳定性的侧链测试方法,用以发现智能合约中的漏洞,所述方法包括:第二用户从第一模块中获取第一用户发布的智能合约确定是否加入所述智能合约的测试,在第三用户从第一模块中获取第一用户发布的智能合约的情况下对主链进行分叉形成侧链并在所述侧链上布置所述智能合约;在所述第二用户确定参与所述智能合约测试的情况下第二模块能够将所述第二用户的部分或全部资产从主链上转移至侧链并形成所述第二用户对应的镜像用户,以使得所述智能合约能够独立于所述主链进行测试,并且第二模块能够授权所述第三用户在侧链上进行挖矿;第三模块向第四模块传输在所述镜像用户在测试过程中发布所述智能合约中的漏洞以及在所述智能合约调用总频次达到预设值之时的投票;在所述第四模块接受到所述漏洞和所述投票的情况下能够基于所述镜像用户的信息确定所述智能合约是否能够上主链;其中,所述第四模块能够与若干所述镜像用户的所述第三模块进行数据交互。
根据一种优选的实施方式,所述方法还包括监管模块在智能合约侧链测试的进程中接收镜像用户的请求之时能够授予所述第一用户与所述镜像用户进行数据交互的权限;和/或在智能合约在侧链测试的进程中,若干所述镜像用户之间能够在所述监管模块授予访问权限的情况下进行数据交互。
附图说明
图1是本发明提供的一种针对智能合约安全性和稳定性的侧链测试系统的模块示意图;
图2是本发明提供的系统中第一用户C1和第二用户C2之间数据交互的示意图;和
图3是本发明提供的一种方法的优选实施方式示意图;
图4是本法明提供的一种系统的优选实施方式示意图。
附图标记列表
1:第一模块 6:侧链创建模块
2:第二模块 7:发布模块
3:第三模块 8:清算模块
4:第四模块 C1:第一用户
5:监管模块 C2:第二用户
C3:第三用户 C2-1:镜像用户
A:主链 B:侧链
具体实施方式
下面结合附图1-4进行详细说明。
实施例1
本实施例公开一种智能合约安全性和稳定性的侧链测试系统。本实施例中的具体术语的含义如下所示:
第一用户C1:智能合约的创建者。
第二用户C2:进行测试的普通用户。
第三用户C3:矿工,用于在第一用户C1发布智能合约后能够账户之间的信息交互实体打包成区块。
第四用户:恶意用户,意图通过如合谋等方式在不做有效测试的情况下谋取奖励金。
分叉:第三用户C3,即矿工在主链之外额外挖矿维护一个侧链B。
主链:是正式上线的、独立的区块链网络。
侧链B:是指遵守侧链协议的所有区块链的统称。侧链协议是指:能够让货币安全地从货币主链A转移至其它区块链,又可以从其它区块链安全地返回货币主链A的一种协议。侧链旨在实现双向锚定,让某种加密货币在主链A以及侧链B之间相互“转移”。
第二用户C2的信息:至少包括第二用户C2信用信息、学历信息和专业背景信息。
配置文件:是指是每个运行以太坊全节点都有的一份配置,里面主要包括一些侦听的端口,区块信息在本机中的存储位置、如果本节点挖到区块奖励金转移给的coinbase账户(将挖矿奖励金作视作为商业用途,是区块链本身的运行机制,用户发起调用,所有链上节点都需要执行一遍合约,消耗的开销需要由用户以链上代币的形式支付,率先将交易打包成块的矿工将收获所有此块中交易的执行费用等跟区块链相关信息),在其中加上矿工与用户注入阈值,例如金额。达标的第二用户加入侧链B。
最终评估函数:是为解决有用户进行bug拦截—收到漏洞描述信息并将自己作为发现者重新举报窃取奖金,需要多方合谋。是为解决合约发布者利用自身大权重左右投票结果,可采取如比对在有无合约发布者参与两种情况下,得票权值最高的两份描述之间的差距是否小于合约发布者的权重,如果是,则判定发起者的投票无效。同时验证最早通过Submarine Commitments发布的此漏洞描述的用户是否为此票权最高的用户。
Submarine Commitments:用户发现漏洞后利用同态加密等加密方法将漏洞描述先行加密后发布,待一定区块后,再将密钥发布,此时区块链已在漏洞描述区块向后挖掘一定时间,数据难以被篡改,能有效防范有用户进行bug拦截。
智能合约:是指一套以数字形式定义的承诺以及合约参与方能够在上面执行这些承诺的协议。
特殊交易:区块链的信息交互载体。主要就是data,发送地址from和接受地址to,在本系统中我们将from地址为官方分叉合约之类的地址发送的交易视为特殊交易,接受到这类地址发来的交易后进行本系统独有的操作打包而成的区块串联在一起形成的链状结构。
挖矿:将账户之间的信息交互实体(交易)打包成区块,加入到现有区块链之后,使区块链不断延长。从第一区块开始所有交易信息均在链上可追溯。
第二用户C2的信息至少包括其信用信息、学历信息和领域信息。
该系统的至少部分模块设置于区块链节点并能够连接至区块链网络中,用以发现智能合约中的漏洞。该系统至少包括第一模块1、第二模块2、第三模块3和第四模块4。第一模块1具有入网通信接口,接入区块链网络中。第一模块1具有输入接口,用于第一用户C1发布智能合约。第一模块1通过区块链网络将智能合约传输至第二用户C2和第三用户C3,使得第二用户C2能够通过第二模块2确认是否参加测试和以及用于第三用户C3将智能合约布置在侧链上。第二模块2具有入网通信接口,用于接入区块链网络中。第二模块2具有输入接口,用于第二用户C2输入确认参加测试的信息并将其传递至第三用户C3。第三模块3具有入网通信接口,用于接入区块链网络中。第三模块3具有输入接口,用于接收第二用户2(或其镜像用户C2-1)的投票信息。第四模块4具有通信接口,能够使得第三模块3将投票信息传递至第四模块4中,进行运算,根据计算结果反馈至第一用户C1,确认是否将智能合约发布至主链中。
优选地,如图2所示,第一模块1:用于接入所述区块链网络中并且接收第一用户C1发布的所述智能合约,以使得所述区块链网络中的第二用户C2能够在获取了所述智能合约的情况下确定是否加入测试和所述区块链网络中的第三用户C3对主链A进行分叉形成侧链B并在所述侧链B上布置所述智能合约。例如,在第一用户C1编写智能合约之时,会在智能合约中新增关键字。该新增关键字包括第二用户C2报名费奖励、第二用户C2挖矿奖励以及第二用户C2举报奖励,然后通过特殊交易的形式向第二用户C2发布全网公告。
第一模块1会根据新增关键字进行调用官方分叉合约进行分叉并生成配置文件。新增关键字可以是在以太坊的EVM中新增相关opcodes或者在智能合约中添加testContact。第二用户C2根据配置文件能够通过第一模块1确定是否参与智能合约测试。如果第二用户C2确认参加智能合约的测试,则第一模块1将第二用户C2的信息传递至第四模块4并且反馈至第二模块2。如果第二用户C2确认不参与智能合约的测试,则第二用户C2继续在主链A上进行测试。第二用户C2根据其自身的配置文件确定是否参与该次智能合约测试。第三用户C3,矿工将主链进行分叉形成侧链并在该侧链上布置智能合约。参与智能合约的第二用户C2在侧链上进行测试。
优选地,第二模块2:用于在第二用户C2确定参与智能合约测试的情况下将第二用户C2的部分或全部资产从主链A上转移至侧链B并生成第二用户C2的镜像用户C2-1,以使得第二用户C2能够以其镜像用户C2-1的身份独立于主链A在侧链B上对智能合约进行测试,并且能够用于授权第三用户C3在侧链B上进行挖矿。例如,第二模块2在接收到第二用户C2确定参与智能合约测试时通过双向锚定技术将第二用户C2在主链A上的资产转移至侧链B。在转移时可以通过建立对应的镜像用户将将主链A上的资产转移至侧链B的镜像用户C2-1上并且将主链A上的资产进行冻结。通过这种设置,智能合约是在独立于主链A的侧链B上进行测试的,第三用户的挖矿行为不会影响主链A上的用户与合约的正常交互并且智能合约也不会对主链A上的用户造成经济上的损失,主链A上的第四用户需要在第二模块授权的情况下才能够参与到智能合约的侧链B测试并成为第二用户,从而能够有效地防止主链A上的第四用户对侧链B上智能合约的恶意攻击,智能合约在侧链B上发现漏洞后不会直接地对第二用户以及第一用户造成直接的经济损失。
优选地,第三模块3:用于接收第二用户C2在测试过程中发布的智能合约中的漏洞以及接收在智能合约调用总频次达到预设值之时投票。并且能够将漏洞和投票发布至第四模块4。第二用户C2授权在测试侧链B测试后,在侧链B上进行智能合约的调用,并且能够通过第三模块3发布合约漏洞。并且本发明中智能合约的调用次数设置有预设值,预设值可以是在新增关键字中由第一用户C1在智能合约中写入。在智能合约的调用次数达到预设值之时,第二用户C2需要通过第三模块3进行投票。投票值在被加密后传递至第四模块4。第四模块4能够与若干的第二用户C2的第三模块进行数据交互并且能够基于若干第二用户C2的信息确定智能合约是否能够上主链A。例如,第二用户C2共计投票X票,其中反对上线M票,弃票N票,赞成上线P票,则赞成率a为P/X*100%,如果a大于了第四模块4中设置的阈值b,则该智能合约能够上线至A。又如,第二用户C2共计投票X票(一人一票),其中反对上线M票,弃票N票,赞成上线P票,且每一个第二用户C2均具有维度评价c。即每一个第二用户的投票贡献值为ci,则赞成率a为∑c*P/X2。维度评价c是根据第二用户C2的信息相互映射的,如,c=f(d,g,e),其中,d为学历信息、g为领域信息、e为信用信息。例如,d分为三挡d1(本科)、d2(研究生)和d3(本科以下)。g为两档g1(计算机领域)和g2(非计算机领域)。e分为四挡e1(信用分高)、e2(信用分中)和e3(信用分低)和e4(信用分差)。c可以是其三者的乘积运算,也可以是三者的加法运算。例如,第二用户是信用分较高的计算机领域的研究生,则其c=d2*g1*e1。在本实施例中,如果第二用户的信用分差的话,则第一用户有权不让其参与该次智能合约测试,这样有利于防止恶意评价而影响评价结果。由于智能合约能够在侧链B上被众多的第二用户C2进行测试,能够有效地防止该刻意隐瞒的第二用户C2在该智能合约正式上链时的恶意攻击的发生。由于智能合约能够在侧链B上被众多的第二用户C2进行测试,有利于第二用户C2能够在更多层级更多方面发现智能合约中存在的漏洞并且能够发布智能合约是否可以正式上链的投票,为第一用户C1提供决策建议。
优选地,系统还包括监管模块5。具体地,监管模块5用于在智能合约在侧链B测试的进程中接收第二用户C2的请求,以使得在智能合约在侧链B测试的进程中,第一用户C1与第二用户C2之间能够在监管模块5授予访问权限的情况下进行数据交互。和/或在智能合约在侧链B测试的进程中,若干第二用户C2之间能够在监管模块5授予访问权限的情况下进行数据交互。请求是第二用户C2的行为,可以包括智能合约测试过程中的技术询问行为、智能合约测试过程中的奖金分配询问行为以及非法行为(例如恶意干预其他第二用户C2的行为)。
优选地,系统还包括侧链创建模块6。在第二用户C2确定参与智能合约测试的情况下,侧链创建模块6能够基于第二用户C2的信息至少能够创建至少一条侧链B,以使得若干第二用户C2能够在其对应的侧链上进行测试。比如,侧链创建模块6可以创建一条侧链。例如,侧链创建模块6可以将确定参与该次智能合约的第二用户C2的信用信息按照平均分配的方式创建多条侧链。又如,侧链创建模块6可以将确定参与该次智能合约的第二用户C2的学历信息按照平均分配的方式创建多条侧链。通过该设置,本发明旨在使得第二用户C2能够在侧链上进行测试,能够有效地阻止某一或某些第二用户C2恶意干预其他第二用户C2的挖矿和投票,并且能够有效地阻止某一或某些第二用户C2煽动其他第二用户故意隐瞒的行为;其次,第二用户C2能够在独立的侧链上进行测试时,其能够有效地调用智能合约进行测试,以使得第二用户C2能够在预设值达到之前能够发现漏洞。
优选地,在第二用户C2向监管模块5发布投票请求的情况下,第二用户C2能够通过第三模块3向第四模块4发布投票。其中,第三模块3配置为:获取第二用户C2的投票节点表征投票意图的投票值,并且根据计票节点由同态加密算法产生的同态公钥,对各投票值进行加密以生成加密值,并且将加密值传输至第四模块4。第四模块2对加密值进行解密。优选地,投票值包括0和1,其中0代表反对智能合约上线至主链A,1代表赞同智能合约上线至主链A。优选地,投票值还可包括空值,代表弃权,弃权后需要退回报名奖励金。优选地,同态加密算法是EC-Elgamal同态加密算法。具体地,同态EC-Elgamal算法的执行包括如下步骤:
第一,参数生成:E是有线域GF(p)上的一条椭圆曲线,n是曲线E的阶,G是曲线E的基点。
第二,密钥产生:随机选择一个整数x属于GF(p),计算公钥Y=xG。
第三,加密:输入公钥Y和明文m。选择随机数k属于[1,n-1]的区间,并计算R=kG;计算S=m+kY;输出密文(R,S)。
第四,解密:输入私钥x和密文(R,S)。计算m=S-xR;输出明文m。
优选地,同态EC-Elgamal算法包括EC-Elgamal加法同态算法:
D(E(m1)+E(m2))=D(E(R1,S1)+E(R2,S2))=D(E(k1G,m1+k1Y)+E(k2G,m2+k2Y))=D(E(k1G+k2G,m1+k1Y+m2+k2Y))=m1+m2+k1Y+k2Y-x(k1+k2)G=m1+m2
式中,D表征对加密后数据的加法同态运算和;m1和m2分别表征第一明文和第二明文,k1和k2分别表征第一随机数和第二随机数。
此外,同态加密算法还可以是Paillier同态算法。
优选地,系统还包括发布模块7。第二用户C2中存在专业矿工、普通矿工以及普通用户,而且这些第二用户C2的诸如学历、专业素质和信用是参差不齐的。例如,部分第二用户C2在过往的智能合约测试中涉及过恶意行为(例如隐瞒漏洞、夸大漏洞、干扰第一用户C1、煽动其他用户的行为),这部分第二用户C2可能会对该次智能合约造成影响。因此,在智能合约上链至各第二用户C2所在的侧链之前,第一用户C1能够基于从第一模块1获取第二用户C2的名单通过发布模块7筛选出适合的第二用户C2,并且能够通过发布模块7发送至第二模块2和侧链创建模块6。其中,在侧链创建模块6基于第一用户C1筛选出的第二用户2创建侧链后,第二模块1基于第一用户C1筛选出的第二用户2将适合的第二用户2的资产从主链A上转移至侧链并且授予适合的第二用户C2在侧链上进行测试的权限。通过这种设置,本发明至少具有如下优势:第一用户C1能够基于第二用户C2的信息确定是否能够让其参与智能合约的测试,例如从名单中可以将具有明显信用值低的第二用户C2筛选出来,从而用以提高此次智能合约测试的有效性;第一用户C1基于第二用户的信息确定专业测试人员和普通测试人员的比例,能够使得该智能合约的侧链测试中发现各种层次的漏洞,例如,专业测试人员能够从整体上判断该智能合约符合一定规范和流程,普通测试人员能够从整体上判断该智能合约是否可信。
优选地,在监管模块5接收到第二用户C2发布的退出请求的情况下,系统中的清算模块8对第二用户C2在测试过程中的资产进行计算并且第二模块2能够将第二用户C2的清算后的资产从侧链上转移至主链A上,并且第二模块2将该第二用户C2的侧链冻结。智能合约中的新增关键字主要涉及了智能合约测试过程中的奖励分配,在第一用户C1发布智能合约的时候,该部分的奖励规则由第一用户C1写入清算模块8。清算模块8能够在第二用户C2发布的退出请求的情况下,对其在测试过程中产生的利益进行计算并且与其在侧链上的资产(或者镜像用户中的资产)进行叠加后,由第二模块2将其转移至主链A。第二模块2将该第二用户C2的侧链冻结,即对应的第三用户C3不能继续在该侧链上继续挖矿。
优选地,在监管模块5接收到第一用户C1发布的撤回测试请求的情况下,清算模块8能够基于所有的第二用户C2在测试智能合约过程中的贡献值将奖金分配至各第二用户C2的资产账户中,并且第二模块2能够将各第二用户C2的资产账户转移至主链A中对应的镜像用户C2-1的资产账户中,并且侧链创建模块6能够将侧链B撤销。第一用户C1具有在智能合约侧链测试过程中撤回测试的权限,清算模块8会基于奖励规则对在测试过程中的奖金进行结算和分配,并且与镜像用户C2-1的资产账户中的资产进行叠加后由侧链转移至侧链,并由侧链创建模块6将侧链全部撤销,完成此次测试。
优选地,在智能合约调用总频次达到预设值的情况下,监管模块5将侧链冻结,并且由第三模块3提示第二用户C2进行投票。
实施例2
本实施例公开一种智能合约安全性和稳定性的侧链测试方法。用以发现智能合约中的漏洞。该方法包括:
第二用户C2从第一模块1中获取第一用户C1发布的智能合约确定是否加入智能合约的测试,在第三用户C3从第一模块1中获取第一用户C1发布的智能合约的情况下对主链A进行分叉形成侧链B并在侧链B上布置智能合约;
在第二用户C2确定参与智能合约测试的情况下第二模块2能够将第二用户C2的部分或全部资产从主链A上转移至侧链B并形成第二用户C2对应的镜像用户C2-1,以使得智能合约能够独立于主链A进行测试,并且第二模块2能够授权第三用户C3在侧链B上进行挖矿;
第三模块3向第四模块4传输在镜像用户C2-1在测试过程中发布智能合约中的漏洞以及在智能合约调用总频次达到预设值之时的投票;
在第四模块4接受到漏洞和投票的情况下能够基于镜像用户C2-1的信息确定智能合约是否能够上主链A;
其中,第四模块4能够与若干镜像用户C2-1的第三模块3进行数据交互。
优选地,方法还包括监管模块5在智能合约侧链B测试的进程中接收镜像用户C2-1的请求之时能够授予第一用户C1与镜像用户C2-1进行数据交互的权限;和/或在智能合约在侧链B测试的进程中,若干镜像用户C2-1之间能够在监管模块5授予访问权限的情况下进行数据交互。
实施例3
本实施例是一种优选的智能合约安全性和稳定性的侧链测试方法。
当智能合约发布后,第一用户C1将奖励金通过特殊交易的形式进行洪泛传播。第二用户C2通过第一模块1在收到消息后根据自身的配置文件决定是否参与合约的测试。当调用频次达标时第二用户C2通过第三模块3投票并在第四模块4共识,并将共识结果至少反馈至第一用户C1或者监管方,决定合约是否上主链A。第二用户C2由清算模块8结算用户奖励金以及挖掘侧链区块奖励。在智能合约发布过后,有至少两种情况是智能合约不能上主链A的,包括:第一用户C1撤回发布和第二用户C2达成共识合约存在漏洞。这两种情况发生之时,清算模块8会根据特殊交易中的奖励规则进行结算。
如图3所示,本实施例针对智能合约安全性与稳定性的侧链测试方法,至少包括M1、M2、M3、M4、M5、M6、M7和M8步骤:
步骤M1:第一用户C1在编写的合约中可采用例如调用新增关键字(在以太坊的EVM中新增相关opcodes即可),从而调用官方分叉合约,并在方法的参数中注明奖励金的方法,发出特殊交易通知矿工和用户。
步骤M1具体可为以下子步骤:
M11:第一用户C1编写合约,并在合约的最后通过新增关键字testContract(报名费奖励,第二用户奖励);
M12:发布这个新的智能合约,根据智能合约中带有新增关键字进行调用官方分叉合约,发出特殊交易进行全网公告。则第三用户C3通过第一模块1均可根据配置文件进行是否加入侧链,若否,则继续在主链A上挖矿。否则跳转到步骤M2。
步骤M2:第二用户C2在接收到特殊交易根据配置文件中配置的分叉细则。根据第一用户C1的提供的挖矿奖励决定是否迁移到侧链节点进行挖矿,第二用户执行判断J1:第二用户根据用户奖励金决定是否参与测试。若否,则执行步骤M10,继续留在主链A上无操作,。若是,则跳转到步骤M3。同时,侧链官方合约记录第二用户C2的地址以及根据用户信用分分配权重,若信用分低于固定阈值S,则不允许用户或矿工参与测试。最后,第二用户C2缴纳保证金。
步骤M3:侧链创建模块6在侧链上进行智能合约的部署,参与测试的第二用户的资产由第二模块2通过如双向锚定等技术在主链A上锁定并释放到侧链上的对应镜像用户上。
M3步骤具体包括以下子步骤:
M31:第二用户C2的资产将被冻结在主链A上的分叉合约上。
M32:在侧链上根据账户地址生成对应的镜像用户,并将账户对应资产生成在镜像用户上。
步骤M4:第二用户C2在侧链节点开始挖矿,期间第二用户C2在侧链上进行智能合约的调用,如果有用户发现合约漏洞,第二用户C2通过第三模块3发布并由第四模块4运用水下共识或者通过可信用户举报该漏洞,并提交接收账户的地址。经过公证后发现情况属实后,抵押在分叉合约地址下的大部分用户奖励金被转移到举报者的地址下。
步骤M5:如果执行第二次判断J2,合约调用总频次达到预设的最大值F,第二用户C2通过第三模块3投票并由第四模块4共识,如果都承认无问题,则侧链向主链A进行合并,将侧链上镜像用户的资产在清算模块8结算后由第二模块2重新转移回主链A,侧链挖矿节点根据挖到的区块数瓜分第一用户C1提供的挖矿奖励,跳转到步骤M6。如果未达到预设的最大值F,合约发布失败,至少包括两种合约发布失败的情况:1)第二用户C2达成共识合约有漏洞,跳转到步骤M7;2)M9:第一用户C1撤销测试,则跳转到步骤M8。
M5步骤具体包括以下子步骤:
M51:智能合约在侧链上被不断地调用,调用频次达到了预设的最大值M,所有参与合约测试的用户进行共识合约是否上主链A。
M52:锁在主链A上的用户金额根据回归时镜像用户上的金额进行重新划分。
步骤M6:合约成功上主链A时由于无有效漏洞被发现,则认为所有参与漏洞测试的用户都做出相同的贡献,此时用户根据与信用分成正比的权重瓜分奖励金。
步骤M7:有用户举报漏洞暂时成功,第四模块4首先调用最终评估函数判断是否存在合约第一用户C1利用自身大权重回收奖励金的做法,若有,则其投票失效。若第三用户C3放弃在新链上挖到的节点,并从主链A上节点进行区块的同步,则资产状况自动回复到分叉之前的状况。侧链上各方角色开始进行奖励金瓜分及收尾操作。
M7步骤具体包括以下子步骤:
M71:第二用户C2能分到报名奖励,第二用户C2获得比例F用户奖励金,余下用户奖励金由投票给其的用户根据信用分瓜分。
M72:矿工奖励金根据挖掘的区块进行瓜分。根据投票结果正确与否进行用户信用分更新。退回第二用户C2的保证金。
步骤M8:智能合约发起者第一用户C1根据其提前结束的时间返还阶梯式用户和矿工奖励金,作为其提前结束,节省参与方资源的奖励。矿工与用户根据信用分瓜分各自剩余奖励金,退还各方保证金。
图3中,St代表开始。En代表结束。
本发明中,如词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。
需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。
Claims (10)
1.一种针对智能合约安全性和稳定性的侧链测试系统,其至少部分模块设置于区块链节点并能够连接至区块链网络中,用以发现智能合约中的漏洞,包括:
第一模块(1):用于接入所述区块链网络中并且接收第一用户(C1)发布的所述智能合约,
其特征在于,
第二用户(C2)能够在通过所述第一模块(1)获取所述智能合约的情况下确定是否加入所述智能合约的测试,第三用户(C3)在获取了所述智能合约的情况下对主链(A)进行分叉形成侧链(B)并在所述侧链(B)上布置所述智能合约;
其中,所述系统还包括:
第二模块(2):用于在所述第二用户(C2)确定参与所述智能合约测试的情况下将第二用户(C2)的部分或全部资产从主链上转移至侧链(B)并生成对应的镜像用户(C2-1),以使得第二用户(C2)能够独立于所述主链在所述侧链(B)上对所述智能合约进行测试,并且能够用于授权所述第三用户(C3)在所述侧链(B)上进行挖矿;
第三模块(3):用于接收镜像用户(C2-1)在测试过程中发布的所述智能合约中的漏洞以及接收在所述智能合约调用总频次达到预设值之时投票;并且能够将所述漏洞和所述投票发布至第四模块(4);
第四模块(4):能够与若干镜像用户(C2-1)的第三模块进行数据交互并且能够基于若干镜像用户(C2-1)的信息确定所述智能合约是否能够上主链。
2.根据权利要求1所述的侧链测试系统,其特征在于,所述系统还包括监管模块(5),用于在智能合约在侧链测试的进程中接收镜像用户(C2-1)的请求,以使得在智能合约在侧链(B)测试的进程中,所述第一用户(C1)与所述镜像用户(C2-1)之间能够在所述监管模块(5)授予访问权限的情况下进行数据交互;和/或在智能合约在侧链(B)测试的进程中,若干镜像用户(C2-1)之间能够在所述监管模块(5)授予访问权限的情况下进行数据交互。
3.根据权利要求1或2所述的侧链测试系统,其特征在于,所述系统还包括侧链创建模块(6),
在第二用户(C2)确定参与所述智能合约测试的情况下,所述侧链创建模块(6)能够基于第二用户(C2)的信息至少能够创建至少一条侧链(B),以使得镜像用户(C2-1)能够在其对应的侧链(B)上进行测试。
4.根据前述权利要求之一所述的侧链测试系统,其特征在于,在第二用户(C2)向所述监管模块(5)发布投票请求的情况下,第二用户(C2)能够通过第三模块(3)向所述第四模块(4)发布投票,
其中,第三模块(3)配置为:获取第二用户(C2)的投票节点表征投票意图的投票值,并且根据计票节点由同态加密算法产生的同态公钥,对各投票值进行加密以生成加密值,并且将所述加密值传输至所述第四模块(4)。
5.根据前述权利要求之一所述的侧链测试系统,其特征在于,所述系统发布模块(7),
在所述智能合约上链至各第二用户(C2)所在的侧链(B)之前,所述第一用户(C1)能够基于从所述第一模块(1)获取第二用户(C2)的名单通过所述发布模块(7)筛选出适合的第二用户(C2),并且能够通过所述发布模块(7)发送至所述第二模块(2)和侧链创建模块(6),
其中,在所述侧链创建模块(6)基于所述第一用户(C1)筛选出的第二用户(C2)创建侧链(B)后,所述第二模块(1)基于所述第一用户(C1)筛选出的第二用户(C2)将适合的第二用户(C2)的资产从主链(A)上转移至侧链(B)并且授予适合的第二用户(C2)在所述侧链(B)上进行测试的权限。
6.根据前述权利要求之一所述的侧链测试系统,其特征在于,在所述监管模块(5)接收到镜像用户(C2-1)发布的退出请求的情况下,
所述系统中的清算模块(8)对镜像用户(C2-1)在测试过程中的资产进行计算并且所述第二模块(2)能够将镜像用户(C2-1)的清算后的资产从侧链(B)上转移至主链(A)上,并且所述第二模块(2)将该镜像用户(C2-1)在其对应的侧链(B)上将其冻结。
7.根据前述权利要求之一所述的侧链测试系统,其特征在于,在所述监管模块(5)接收到第一用户(C1)发布的撤回测试请求的情况下,
所述清算模块(8)能够基于所有的镜像用户(C2-1)在测试智能合约过程中的贡献值将奖金分配至各第二用户(C2)的资产账户中,并且所述第二模块(2)能够将各第二用户(C2)的资产账户转移至主链(A)中各第二用户(C2)的资产账户中,并且所述侧链创建模块(6)能够将所述侧链(B)撤销。
8.根据前述权利要求之一所述的侧链测试系统,其特征在于,在所述智能合约调用总频次达到预设值的情况下,所述监管模块(5)将所述侧链(B)冻结,并且由所述第三模块(3)提示第二用户(C2)进行投票。
9.一种针对智能合约安全性和稳定性的侧链测试方法,用以发现智能合约中的漏洞,其特征在于,方法包括:
第二用户(C2)从第一模块(1)中获取第一用户(C1)发布的智能合约确定是否加入智能合约的测试,在第三用户(C3)从第一模块(1)中获取第一用户(C1)发布的智能合约的情况下对主链(A)进行分叉形成侧链(B)并在侧链(B)上布置智能合约;
在第二用户(C2)确定参与智能合约测试的情况下第二模块(2)能够将第二用户(C2)的部分或全部资产从主链(A)上转移至侧链(B)并形成第二用户(C2)对应的镜像用户(C2-1),以使得智能合约能够独立于主链(A)进行测试,并且第二模块(2)能够授权第三用户(C3)在侧链(B)上进行挖矿;
第三模块(3)向第四模块(4)传输在镜像用户(C2-1)在测试过程中发布智能合约中的漏洞以及在智能合约调用总频次达到预设值之时的投票;
在第四模块(4)接受到漏洞和投票的情况下能够基于镜像用户(C2-1)的信息确定智能合约是否能够上主链(A);
其中,第四模块(4)能够与若干镜像用户(C2-1)的第三模块(3)进行数据交互。
10.根据权利要求9的侧链测试方法,其特征在于,方法还包括监管模块(5)在智能合约侧链(B)测试的进程中接收镜像用户(C2-1)的请求之时能够授予第一用户(C1)与镜像用户(C2-1)进行数据交互的权限;和/或在智能合约在侧链(B)测试的进程中,若干镜像用户(C2-1)之间能够在监管模块(5)授予访问权限的情况下进行数据交互。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910367325.6A CN110097467B (zh) | 2019-05-05 | 2019-05-05 | 一种针对智能合约安全性和稳定性的侧链测试系统和方法 |
US16/774,016 US11301361B2 (en) | 2019-05-05 | 2020-01-28 | Sidechain testing system and method for improving security and stability of a smart contract by generating sidechains having mirror image accounts of part or all mainchain assets |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910367325.6A CN110097467B (zh) | 2019-05-05 | 2019-05-05 | 一种针对智能合约安全性和稳定性的侧链测试系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110097467A true CN110097467A (zh) | 2019-08-06 |
CN110097467B CN110097467B (zh) | 2021-04-13 |
Family
ID=67446800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910367325.6A Active CN110097467B (zh) | 2019-05-05 | 2019-05-05 | 一种针对智能合约安全性和稳定性的侧链测试系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11301361B2 (zh) |
CN (1) | CN110097467B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110690974A (zh) * | 2019-12-10 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 基于区块链的数据验证方法、装置、设备及可读存储介质 |
CN110839030A (zh) * | 2019-11-15 | 2020-02-25 | 内蒙古大学 | 一种区块链访问控制中的权限传递方法 |
CN111028077A (zh) * | 2019-11-20 | 2020-04-17 | 华中科技大学 | 一种基于输入过滤器的智能合约防护方法及系统 |
CN111444090A (zh) * | 2020-03-24 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 区块链中的合约测试方法、装置、电子设备及存储介质 |
CN111507723A (zh) * | 2020-06-18 | 2020-08-07 | 海南安迈云网络技术有限公司 | 一种数字资产管理交易加密的方法 |
CN111915296A (zh) * | 2020-07-02 | 2020-11-10 | 连连智能科技有限公司 | 虚拟资源转移方法及系统 |
CN114374502A (zh) * | 2021-12-29 | 2022-04-19 | 国网天津市电力公司 | 基于链上和链下协同的能源数据上传和共识系统及方法 |
CN114900432A (zh) * | 2022-04-06 | 2022-08-12 | 上海能链众合科技有限公司 | 一种元宇宙的背景下去中心化自治组织的管理方法 |
CN111444090B (zh) * | 2020-03-24 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 区块链中的合约测试方法、装置、电子设备及存储介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101562051B1 (ko) * | 2010-11-10 | 2015-11-18 | 이이노베이션즈 홀딩즈 피티이 리미티드 | 보안되지 않은 공중통신 기반시설을 통하여 금융거래를 수행하는 방법 및 그의 장치 |
CN112532713B (zh) * | 2020-11-25 | 2023-05-16 | 深圳前海微众银行股份有限公司 | 一种区块链的抗分叉检测方法及装置 |
CN113098950B (zh) * | 2021-03-29 | 2022-09-27 | 航天广通科技(深圳)有限公司 | 一种基于区块链的混合侧链及其多链融合系统 |
CN113489692B (zh) * | 2021-06-22 | 2023-04-07 | 河北工业大学 | 一种基于主侧链合作的区块链访问控制模型方法 |
CN113961202B (zh) * | 2021-12-21 | 2022-02-22 | 北京中科金财科技股份有限公司 | 一种自动调试智能合约的方法及系统 |
CN114741324B (zh) * | 2022-06-10 | 2022-09-02 | 中国信息通信研究院 | 区块链稳定性的测试方法和装置、电子设备和存储介质 |
CN115545686B (zh) * | 2022-11-21 | 2024-01-02 | 深圳易同汇电子商务有限公司 | 基于区块链的去中心化快速反馈的跨链交易方法 |
US11658833B1 (en) * | 2022-12-06 | 2023-05-23 | Citibank, N.A. | Systems and methods for conducting cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs |
US11770263B1 (en) * | 2022-12-06 | 2023-09-26 | Citibank, N.A. | Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements |
US11748491B1 (en) | 2023-01-19 | 2023-09-05 | Citibank, N.A. | Determining platform-specific end-to-end security vulnerabilities for a software application via a graphical user interface (GUI) systems and methods |
US11874934B1 (en) | 2023-01-19 | 2024-01-16 | Citibank, N.A. | Providing user-induced variable identification of end-to-end computing system security impact information systems and methods |
CN115840683B (zh) * | 2023-02-24 | 2023-05-16 | 浪潮电子信息产业股份有限公司 | 异构联盟链的监控方法、系统、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107578337A (zh) * | 2017-08-28 | 2018-01-12 | 杭州云象网络技术有限公司 | 一种基于区块链智能合约技术的智能投顾产品托管方法 |
CN108074081A (zh) * | 2017-12-08 | 2018-05-25 | 上海策赢网络科技有限公司 | 一种虚拟资源的转移方法和装置 |
CN108881187A (zh) * | 2018-05-31 | 2018-11-23 | 杭州秘猿科技有限公司 | 一种适用于许可链场景的跨链数据传递方法及设备 |
US20190109707A1 (en) * | 2017-10-10 | 2019-04-11 | Chromata Corporation | System and method for a blockchain network with heterogeneous privacy |
CN109615517A (zh) * | 2018-12-07 | 2019-04-12 | 北京瑞卓喜投科技发展有限公司 | 一种智能合约执行方法及智能合约执行系统 |
CN109697606A (zh) * | 2018-09-30 | 2019-04-30 | 贝克链区块链技术有限公司 | 基于创新性的信誉证明共识协议的分布式网络及生态系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200067697A1 (en) * | 2017-03-22 | 2020-02-27 | NEC Laboratories Europe GmbH | Method for operating a blockchain |
US20190392138A1 (en) * | 2018-06-26 | 2019-12-26 | bootstrap legal Inc. | System and Method for Protecting Unknown Vulnerabilities in Smart Contracts |
WO2019072288A2 (en) * | 2018-11-30 | 2019-04-18 | Alibaba Group Holding Limited | TEST PLATFORM FOR BLOCK CHAIN NETWORKS |
US11405182B2 (en) * | 2018-12-03 | 2022-08-02 | Ebay Inc. | Adaptive security for smart contracts using high granularity metrics |
EP3613203B1 (en) * | 2019-03-04 | 2023-06-07 | Advanced New Technologies Co., Ltd. | Methods and devices for performing off-chain testing on smart contract |
US11677563B2 (en) * | 2019-04-15 | 2023-06-13 | Eygs Llp | Systems, apparatus and methods for local state storage of distributed ledger data without cloning |
-
2019
- 2019-05-05 CN CN201910367325.6A patent/CN110097467B/zh active Active
-
2020
- 2020-01-28 US US16/774,016 patent/US11301361B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107578337A (zh) * | 2017-08-28 | 2018-01-12 | 杭州云象网络技术有限公司 | 一种基于区块链智能合约技术的智能投顾产品托管方法 |
US20190109707A1 (en) * | 2017-10-10 | 2019-04-11 | Chromata Corporation | System and method for a blockchain network with heterogeneous privacy |
CN108074081A (zh) * | 2017-12-08 | 2018-05-25 | 上海策赢网络科技有限公司 | 一种虚拟资源的转移方法和装置 |
CN108881187A (zh) * | 2018-05-31 | 2018-11-23 | 杭州秘猿科技有限公司 | 一种适用于许可链场景的跨链数据传递方法及设备 |
CN109697606A (zh) * | 2018-09-30 | 2019-04-30 | 贝克链区块链技术有限公司 | 基于创新性的信誉证明共识协议的分布式网络及生态系统 |
CN109615517A (zh) * | 2018-12-07 | 2019-04-12 | 北京瑞卓喜投科技发展有限公司 | 一种智能合约执行方法及智能合约执行系统 |
Non-Patent Citations (2)
Title |
---|
TINY熊: "用Loom SDK搭建的以太坊侧链并部署智能合约", 《HTTPS://LEARNBLOCKCHAIN.CN/2019/04/29/USE-LOOM/》 * |
颜春辉: "基于区块链的安全投票系统研究与设计", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110839030A (zh) * | 2019-11-15 | 2020-02-25 | 内蒙古大学 | 一种区块链访问控制中的权限传递方法 |
CN110839030B (zh) * | 2019-11-15 | 2021-11-19 | 内蒙古大学 | 一种区块链访问控制中的权限传递方法 |
CN111028077B (zh) * | 2019-11-20 | 2023-04-11 | 华中科技大学 | 一种基于输入过滤器的智能合约防护方法及系统 |
CN111028077A (zh) * | 2019-11-20 | 2020-04-17 | 华中科技大学 | 一种基于输入过滤器的智能合约防护方法及系统 |
CN110690974B (zh) * | 2019-12-10 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 基于区块链的数据验证方法、装置、设备及可读存储介质 |
CN110690974A (zh) * | 2019-12-10 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 基于区块链的数据验证方法、装置、设备及可读存储介质 |
CN111444090A (zh) * | 2020-03-24 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 区块链中的合约测试方法、装置、电子设备及存储介质 |
CN111444090B (zh) * | 2020-03-24 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 区块链中的合约测试方法、装置、电子设备及存储介质 |
CN111507723A (zh) * | 2020-06-18 | 2020-08-07 | 海南安迈云网络技术有限公司 | 一种数字资产管理交易加密的方法 |
CN111915296A (zh) * | 2020-07-02 | 2020-11-10 | 连连智能科技有限公司 | 虚拟资源转移方法及系统 |
CN111915296B (zh) * | 2020-07-02 | 2022-11-22 | 众连智能科技有限公司 | 虚拟资源转移方法及系统 |
CN114374502A (zh) * | 2021-12-29 | 2022-04-19 | 国网天津市电力公司 | 基于链上和链下协同的能源数据上传和共识系统及方法 |
CN114900432A (zh) * | 2022-04-06 | 2022-08-12 | 上海能链众合科技有限公司 | 一种元宇宙的背景下去中心化自治组织的管理方法 |
CN114900432B (zh) * | 2022-04-06 | 2023-12-19 | 上海零数众合信息科技有限公司 | 一种元宇宙的背景下去中心化自治组织的管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200349054A1 (en) | 2020-11-05 |
CN110097467B (zh) | 2021-04-13 |
US11301361B2 (en) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110097467A (zh) | 一种针对智能合约安全性和稳定性的侧链测试方法 | |
CN110599147B (zh) | 一种基于区块链的密文检索公平支付方法及系统 | |
CN109194708B (zh) | 一种基于区块链技术的分布式存储系统及其身份认证方法 | |
CN108009917B (zh) | 数字货币的交易验证和登记方法及系统 | |
CN108830602B (zh) | 一种基于变色龙哈希函数的许可链构造及管控方法 | |
CN110110555A (zh) | 一种区块链中的投票方法及装置 | |
CN110537355A (zh) | 基于安全区块链的共识 | |
CN109246137A (zh) | 基于区块链的海上作战数据的安全防护方法及装置 | |
CN108881163A (zh) | 一种带区块发布机制的多中心区块链系统 | |
CN111066283A (zh) | 对区块链网络上实体提供的数据进行通信、存储和处理的系统和方法 | |
CN110288480A (zh) | 一种区块链的私密交易方法及装置 | |
CN110648229B (zh) | 一种半公开的区块链系统及交易方法 | |
CN111709749A (zh) | 一种具有条件隐私保护的可追踪区块链交易系统 | |
CN113781073B (zh) | 一种基于矩阵联盟链的可隐藏实名的资助方法 | |
CN113495920A (zh) | 一种基于区块链的内容审核系统、方法、装置和存储介质 | |
Zhu et al. | Research on the security of blockchain data: A survey | |
Lee | Systematic approach to analyzing security and vulnerabilities of blockchain systems | |
Bao et al. | A survey of blockchain consensus safety and security: State-of-the-art, challenges, and future work | |
CN115270145A (zh) | 一种基于联盟链和联邦学习的用户窃电行为检测方法及系统 | |
CN114386043A (zh) | 一种面向群智感知的去中心隐私保持信誉评估方法 | |
CN110619223A (zh) | 基于区块链的个人征信体系中信用数据安全共享方法 | |
CN111865595A (zh) | 一种区块链的共识方法及装置 | |
CN115987697B (zh) | 基于事件订阅机制的多层级情报数据共享方法及系统 | |
CN115795518B (zh) | 一种基于区块链的联邦学习隐私保护方法 | |
CN112883425A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |