CN112384921A - 保护区块链上数据安全的方法及装置和电子设备 - Google Patents
保护区块链上数据安全的方法及装置和电子设备 Download PDFInfo
- Publication number
- CN112384921A CN112384921A CN202080002393.3A CN202080002393A CN112384921A CN 112384921 A CN112384921 A CN 112384921A CN 202080002393 A CN202080002393 A CN 202080002393A CN 112384921 A CN112384921 A CN 112384921A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- chain
- user
- transaction
- assets
- 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
Links
Images
Classifications
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书实施例提供一种保护区块链上数据安全的方法及装置和电子设备。所述方法包括:从区块链读取目标智能合约对应合约账户中维护的链上用户资产;将所读取到的链上用户资产与本地维护的链下用户资产进行对账;在所述链上用户资产与链下用户资产不一致时,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种保护区块链上数据安全的方法及装置和电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
本说明书实施例提供的一种提高信息安全的方法及装置和电子设备。
根据本说明书实施例的第一方面,提供一种保护区块链上数据安全的方法,所述方法包括:
从区块链读取目标智能合约对应合约账户中维护的链上用户资产;
将所读取到的链上用户资产与本地维护的链下用户资产进行对账;
在所述链上用户资产与链下用户资产不一致时,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用。
可选的,所述区块链中所有涉及用户资产的智能合约中都声明有全局闭锁逻辑;
所述向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
向所述区块链发送调用所述目标智能合约的交易;以使所述区块链中节点响应所述交易,根据所述交易中指示的目标智能合约的合约地址和所要执行的闭锁逻辑,调用所述目标智能合约中声明的闭锁逻辑,禁止所述区块链中所有涉及用户资产的智能合约的调用。
可选的,所述禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
关闭所有涉及用户资产的智能合约提供的用户资产出账和入账接口,以冻结智能合约中的用户资产。
可选的,所述本地维护的链下用户资产,通过与智能合约相同的业务逻辑进行链下维护;每次区块链响应涉及用户资产的交易,都会将交易同步到链下,以对链下用户资产进行更新。
可选的,所述方法还包括:
在所述链上用户资产与链下用户资产不一致时,向管理方发送携带有不一致资产的告警消息,以使所述管理方对所述区块链中不一致的资产进行处理。
根据本说明书实施例的第二方面,提供一种保护区块链上数据安全的装置,所述装置包括:
获取单元,从区块链读取目标智能合约对应合约账户中维护的链上用户资产;
对账单元,将所读取到的链上用户资产与本地维护的链下用户资产进行对账;
闭锁单元,在所述链上用户资产与链下用户资产不一致时,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用。
可选的,所述区块链中所有涉及用户资产的智能合约中都声明有全局闭锁逻辑;
所述闭锁单元中,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
向所述区块链发送调用所述目标智能合约的交易;以使所述区块链中节点响应所述交易,根据所述交易中指示的目标智能合约的合约地址和所要执行的闭锁逻辑,调用所述目标智能合约中声明的闭锁逻辑,禁止所述区块链中所有涉及用户资产的智能合约的调用。
可选的,所述闭锁单元中,禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
关闭所有涉及用户资产的智能合约提供的用户资产出账和入账接口,以冻结智能合约中的用户资产。
可选的,所述本地维护的链下用户资产,通过与智能合约相同的业务逻辑进行链下维护;每次区块链响应涉及用户资产的交易,都会将交易同步到链下,以对链下用户资产进行更新。
可选的,所述装置还包括:
告警单元,在所述链上用户资产与链下用户资产不一致时,向管理方发送携带有不一致资产的告警消息,以使所述管理方对所述区块链中不一致的资产进行处理。
根据本说明书实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为上述任一项保护区块链上数据安全的方法。
本说明书实施例,提供了一种保护区块链上数据安全的方案,通过链下风控系统维护的链下资产账本对链上智能合约维护的合约账本进行独立审计,以发现链上资产的异常,并紧急全局闭锁所有对用户资产的出入账。
附图说明
图1是一示例性实施例提供的一种保护区块链上数据安全的系统示意图图;
图2是一示例性实施例提供的一种保护区块链上数据安全的方法的流程图;
图3是一示例性实施例提供的一种电子设备的结构示意图;
图4是一示例性实施例提供的一种保护区块链上数据安全的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实现方式并不代表与本说明书一个或多个实施例相一致的所有实现方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为了方便理解,以下首先介绍区块链中的一些技术概念。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
其中,去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者(也可称为区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
在区块链领域,有一个重要的概念就是账户(Account);以以太坊为例,以太坊通常将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户,也称之为用户账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。
以以太坊为例,账户的结构体通常包括Balance,Nonce,Code和Storage等字段。其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;
Code字段,用于维护该账户的合约代码;在实际应用中,Code字段中通常仅维护合约代码的hash值;因而,Code字段通常也称之为Codehash字段。
Storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。合约账户的存储内容通常会构建成MPT(MerklePatricia Trie)树的数据结构存储在上述独立的存储空间之中;其中,基于合约账户的存储内容构建成的MPT树,通常也称之为Storage树。而Storage字段通常仅维护该Storage树的根节点;因此,Storage字段通常也称之为StorageRoot字段。
其中,对于外部账户而言,以上示出的Code字段和Storage字段的字段值均为空值。
在实际应用中,不论是公有链、私有链还是联盟链,都可能提供智能合约(Smartcontract)的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链,其核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,EVM直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。
智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的合约地址;合约代码(Code)和账户存储(Storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
前述提到,包含创建智能合约的交易的Data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,高级语言可以采用诸如Solidity、Serpent、LLL语言等。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
以Solidity语言为例,用其编写的合约代码与面向对象编程语言中的类(Class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储(Storage)字段中的值,用于保存合约的状态。
智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
以往智能合约的业务逻辑只在链上运行,用户资产的安全和保护的工作也由智能合约本身来执行。但智能合约的自身特性限制了安全逻辑不可能太复杂,因此一旦合约代码出现安全问题,即使导致用户资产有误,也无法及时发现错误,更无法及时处理错误。因此,由于没有监控智能合约异常的机制,因此也就无法及时对智能合约进行干预,更无法及时减少用户资产的损失。
为此,本说明书提供了一种保护区块链上数据安全的方法的方案。旨在通过链下风控系统维护的链下资产账本对链上智能合约维护的合约账本进行独立审计,以发现链上资产的异常,并紧急全局闭锁所有对用户资产的出入账。
以下将本说明书提供的技术方案称为协同自动闭锁机制(CooperativeAutomatic Lockdown Mechanism,CALM)。其中,所述紧急全局闭锁(Global EmergencyLockdown,GEL)。
请参见图1一示例性实施例提供的保护区块链上数据安全的系统架构图。该系统至少包括区块链系统和风控系统。所述风控系统是区块链系统之外的系统,也就是说风控系统相对于区块链是链下系统或链外系统。
其中,区块链系统中发布有各种智能节约。对于涉及用户资产的智能合约(以下称为资产合约),资产合约对应的合约账户中维护有用户持有的用户资产的资产详情。例如,合约账户的Storage字段维护的用户资产表,该用户资产表记录了用户账户的地址与用户资产的资产状态之间的映射关系。
除了资产合约在链上维护有用户资产表之外,该系统还在链下的本地账户中另建一份独立的资产对账表,该资产对账表记录了用户账户的地址与用户资产的资产状态之间的映射关系。该资产对账表以与资产合约相同的业务逻辑进行独立维护和审计。
每次涉及到链上账户和资产的变动时,都会同步在链下的资产对账表中予以更新。同时以链下资产对账表与资产合约的合约账户中的用户资产表进行实时核对和和审计。
所述风控系统可以周期性对链上合约账户和链下本地账户进行对账。例如,风控系统可以采用金融级风控标准,使用独立的高可用主从热备集群,7x24小时不间断运行。CALM每5秒检查一次链上合约账户的用户资产表中记录的用户资产的资产状态,对资产合约维护的所有用户资产进行严格的记账和对账。一旦发现链上用户资产与链下用户资产不一致,就立即自动触发全局紧急闭锁,禁止区块链上所有资产合约中的出入账接口,把用户资产损失降至最低。以及可以通知管理方,启动运营团队快速反应机制,人工介入和排查问题。
请参见图2,图2是一示例性实施例提供的一种保护区块链上数据安全的方法的流程图。所述方法应用于风控系统,包括以下步骤:
步骤210,从区块链读取目标智能合约(即前述的资产合约)对应合约账户中维护的链上用户资产;
步骤220,将所读取到的链上用户资产与本地维护的链下用户资产进行对账;
步骤230,在所述链上用户资产与链下用户资产不一致时,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用。
该实施例中,如图1所示的,区块链中涉及用户资产的资产合约,资产合约对应的合约账户中维护有用户持有的用户资产的资产详情。例如,合约账户的Storage字段维护的用户资产表,该用户资产表记录了用户账户的地址与用户资产的资产状态之间的映射关系。
除了资产合约在链上维护有用户资产表之外,在链下的本地账户中另建一份独立的资产对账表,该资产对账表记录了用户账户的地址与用户资产的资产状态之间的映射关系。该资产对账表以与资产合约相同的业务逻辑进行独立维护和审计。
其中,所述本地账户可以是由风控系统维护的,也可以是由其它数据主体维护的。例如,中心化的服务器,第三方的数据库系统等,甚至还可以是另一个区块链系统。本说明书中并不本地账户所在的数据主体进行限定。
风控系统在获取到链上用户资产和链下用户资产后,可以以链下用户资产为准对链上用户资产进行审计,如果发现某用户的链上用户资产与链下用户资产不一致,则说明该用户的链上用户资产存在异常。此时,为了把用户资产损失降至最低,需要立即自动触发全局紧急闭锁,禁止区块链上所有资产合约中的出入账接口。
在实现是,可以在区块链中所有涉及用户资产的智能合约中都声明全局闭锁逻辑;则所述步骤230,具体可以包括:
在所述链上用户资产与链下用户资产不一致时,向所述区块链发送调用所述目标智能合约的交易;以使所述区块链中节点响应所述交易,根据所述交易中指示的目标智能合约的合约地址和所要执行的闭锁逻辑,调用所述目标智能合约中声明的闭锁逻辑,禁止所述区块链中所有涉及用户资产的智能合约的调用。
该实施例中,将紧急全局闭锁的合约代码写入所有资产合约中,从而在发现链上用户资产出现异常时,触发目标智能合约的紧急全局闭锁,以实现全部资产合约下用户资产的冻结,从而避免进一步用户资产的损失。
在一实施例中,所述禁止所述区块链中所有涉及用户资产的智能合约的调用,具体可以包括:
关闭所有涉及用户资产的智能合约提供的用户资产出账和入账接口,以冻结智能合约中的用户资产。
在本说明书中,资产合约对外通过出账和入账接口来供外部用户进行调用,以实现对合约账户维护的用户资产的更新。其中,入账接口用于增加用户账户对应的用户资产;出账接口用于减少用户账户对应的用户资产。
通过将资产合约的出入账接口关闭,使得对用户资产的操作无法被响应执行,在技术上实现了用户资产的冻结。
如前所述的,所述本地维护的链下用户资产,通过与智能合约相同的业务逻辑进行链下维护;每次区块链响应涉及用户资产的交易,都会将交易同步到链下,以对链下用户资产进行更新。
通常,区块链中的节点设备在收到调用资产合约的资产交易后,可以与其它节点设备一起对该资产交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这资产交易与其它交易一起打包进区块,在区块链中进行持久化存证。
对于打包进区块的上述资产交易,区块链中的节点设备均可以执行上述资产交易,在本地的EVM中运行该资产交易所调用的上述资产合约中的业务逻辑对应的执行代码,执行资产交易动作。
例如,在实现时,资产合约的执行结果可以是以交易执行日志(Log)的形式,存储到MPT收据树中;或者,也可以以Key-Value对的形式存储到智能合约的Storage树中。因此,通过监听到MPT收据树或者资产合约的Storage树,来获取上述业务的执行结果。
对于大多数区块链模型,通常都会使用Merkle树;或者,基于Merkle树的数据结构,来存储和维护数据。以以太坊为例,以太坊使用了MPT树(一种Merkle树变种),作为数据组织形式,用来组织和管理账户状态、交易信息等重要数据。
以太坊针对区块链中需要存储和维护的数据,设计了三棵MPT树,分别是MPT状态树、MPT交易树和MPT收据树。其中,除了以上三棵MPT树以外,实际上还存在一棵基于合约账户的存储内容构建的Storage树。
MPT状态树,是由区块链中所有账户的账户状态(state)数据组织成的MPT树;MPT交易树,是由区块链中的交易(transaction)数据组织成的MPT树;MPT收据树,是区块中的交易在执行完毕后生成的与每笔交易对应的交易(receipt)收据组织成的MPT树。以上示出的MPT状态树、MPT交易树和MPT收据树的根节点的hash值,最终都会被添加至对应区块的区块头中。
其中,MPT交易树和MPT收据树均与区块相对应,即每一个区块都有自己的MPT交易树和MPT收据树。而MPT状态树是一个全局的MPT树,并不与某一个特定的区块相对应,而是涵盖了区块链中所有账户的账户状态数据。
对于组织成的MPT交易树、MPT收据树和MPT状态树,最终都会在采用多级数据存储结构的Key-Value型数据库(比如,LevelDB)中进行存储。
需要说明的是,区块链每产生一个最新区块,则在该最新区块中的交易被执行之后,区块链中这些被执行交易的相关账户(可以是外部账户也可以是合约账户)的账户状态,通常也会随之发生变化;
例如,当区块中的一笔“转账交易”执行完毕后,与该“转账交易”相关的转出方账户和转入方账户的余额(即这些账户的Balance字段的字段值),通常也会随之发生变化。
而节点设备在区块链产生的最新区块中的交易执行完毕后,由于当前区块链中的账户状态发生了变化,因此节点设备需要根据区块链中所有账户当前的账户状态数据,来构建MPT状态树,用于维护区块链中所有账户的最新状态。
也即,每当区块链中产生一个最新区块,并且该最新区块中的交易执行完毕后,导致区块链中的账户状态发生了变化,节点设备都需要基于区块链中所有账户最新的账户状态数据,重新构建一棵MPT状态树。换句话说,区块链中每一个区块,都有一个与之对应的MPT状态树;该MPT状态树,维护了在该区块中的交易在执行完毕后,区块链中所有账户最新的账户状态。
类似的,资产合约的合约账户中Storage树维护的用户账户对应用户资产的状态也会更新为最新的资产状态。本说明书的风控系统是读取资产合约维护的Storage树,从而获取链上用户资产的详情。
本地账户维护的链下用户资产,基于前述资产合约响应资产交易时执行的相同业务逻辑,同步更新链下用户资产。
由于本地账户和合约账户基于相同的业务逻辑来维护用户资产,因此在正常情况下,两者的用户资产应该是一致的。
返回到前述传统智能合约存在的问题:智能合约的业务逻辑只在链上运行,用户资产的安全和保护的工作也由智能合约本身来执行。但智能合约的自身特性限制了安全逻辑不可能太复杂,因此一旦合约代码出现安全问题,即使导致用户资产有误,也无法及时发现错误,更无法及时处理错误。因此,由于没有监控智能合约异常的机制,因此也就无法及时对智能合约进行干预,更无法及时减少用户资产的损失。
而本说明书实施例,通过链下风控系统维护的链下资产账本对链上智能合约维护的合约账本进行独立审计,能够及时发现链上资产的异常,并紧急全局闭锁所有对用户资产的出入账。
另一方面,由于能够及时发现链上资产的异常,因此在所述链上用户资产与链下用户资产不一致时,可以快速向管理方发送携带有不一致资产的告警消息,以使所述管理方对所述区块链中不一致的资产进行处理。具体地,该告警信息中可以携带定位的异常用户资产的位置,以方便管理方快速定位问题,快速排除和处理。减少由于紧急全局闭锁导致区块链系统不可用的时间。
在上述实施例中,均是由链下的风控系统来进行对账、审计,即链下风控系统获取链上用户资产,以与链下用户资产进行对账。
而本说明书提供的另一种实施例中,还可以是由链上部署的风控智能合约,获取链下本地账户维护的资产对账表,以与链上目标智能合约的合约账户维护的用户资产表进行对账。
通常,区块链上部署的智能合约,通常只能引用区块链上存储的数据内容;而在该实施例中,风控智能合约需要引用的链下(链外)资产对账表,该资产对账表属于区块链的外部数据。
在这种需求下,上述风控智能合约,可以通过Oracle预言机,来引用链下本地账户维护的资产对账表,以实现区块链上智能合约与真实世界的数据实体之间的数据交互。其中,资产对账表所属的链外的数据实体,可以包括诸如部署在链外的中心化的服务器或者数据中心等等。
在一种实施例中,所述链外的数据实体也可以是区块链系统。即,链下本地账户维护的资产对账表位于另一个区块链系统,形成了两个不同的区块链系统之间的数据引用,这种情况称为跨链中继。跨链中继用于连接两个区块链,Oracle预言机也可以用于连接两个区块链,实现区块链与另一区块链的数据交互。
在实际应用中,在为区块链上的智能合约部署预言机时,可以先在区块链上部署一个与预言机对应的预言机智能合约;其中,该预言机智能合约用于维护预言机发给区块链上的智能合约的外部数据;例如,预言机发给区块链上的智能合约的外部数据,可以存储在预言机智能合约的账户存储空间中。
当区块链上的目标智能合约被调用时,可以从该预言机智能合约的账户存储空间中,来读取该目标智能合约所需的外部数据,来完成智能合约的调用过程。
需要说明的是,预言机在向区块链上的智能合约发送外部数据时,可以采用主动发送的方式,也可以采用被动发送的方式。
在一种实现方式中,链外的数据实体可以将需要提供给目标智能合约的外部数据,利用预言机的私钥进行签名后,发送给上述预言机智能合约;例如,在时间时,可以采用周期性发送的方式,将签名后的上述外部数据发送给上述预言机智能合约;
而在上述预言机智能合约可以维护预言机的CA证书,在收到链外的数据实体发送的外部数据后,可以使用该CA证书中维护的该预言机的公钥,对该外部数据的签名进行验证,并在验证通过后,将链外的数据实体发送的外部数据在该预言机智能合约的账户存储空间中进行存储。
在上述实施例中,风控智能合约,还可以通过事件机制来获取链上与链下用户资产不一致的事件,从而触发紧急全局闭锁。
其中,事件机制是智能合约与链外实体进行交互的一种方式。对于区块链上部署的智能合约来说,通常无法直接与链外实体进行交互;例如,智能合约在调用完成后,通常无法将智能合约的调用结果,点对点的发送给智能合约的调用发起方。
当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以利用智能合约的事件机制,与上述预言机进行交互,并由上述预言机将该目标智能合约所需的外部数据,发送至该预言机智能合约的账户存储空间中。
例如,当区块链上的目标智能合约被调用时,如果从该预言机智能合约的账户存储空间中,并未读取到该目标智能合约所需的外部数据,此时该预言机智能合约,可以生成一个外部数据获取事件,并将该外部数据获取事件记录到调用该智能合约的那笔交易的交易日志中,并将该交易日志存储到节点设备的存储空间;而上述预言机可以监听节点设备的存储空间中存储的该预言机智能合约产生的交易日志,并在监听到交易日志中的外部数据获取事件后,响应监听到的该外部数据获取事件,将上述目标智能合约所需的外部数据,发送给上述预言机智能合约。
智能合约在调用的过程中产生的调用结果(包括中间结果和最终的调用结果),通常都会以事件(Event)的形式,记录到调用该智能合约的那笔交易的交易日志(transaction logs),在节点设备的存储空间中进行存储。而需要与智能合约进行交互的链外实体,则可以通过监听节点设备的存储空间中存储的上述交易日志的方式,来获取智能合约的调用结果;
例如,以以太坊为例,交易日志最终会作为调用该智能合约的那笔交易笔交易的收据(receipt)的一部分内容,存储在以上描述的MPT收据树中。而与智能合约进行交互的链外实体,可以监听节点设备的存储空间中存储的MPT收据树上的交易收据,并从监听到的交易收据中,来获取智能合约生成的事件。
与上述方法实施例相对应,本说明书还提供了一种保护区块链上数据安全的装置的实施例。
本说明书的保护区块链上数据安全的装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
从硬件层面而言,如图3所示,为本说明书的保护区块链上数据安全的装置所在电子设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图4是本说明书一示例性实施例示出的一种保护区块链上数据安全的装置的框图。
请参考图4,所述保护区块链上数据安全的装置可以应用在前述图3所示的电子设备中,所述装置包括:
获取单元410,从区块链读取目标智能合约对应合约账户中维护的链上用户资产;
对账单元420,将所读取到的链上用户资产与本地维护的链下用户资产进行对账;
闭锁单元430,在所述链上用户资产与链下用户资产不一致时,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用。
可选的,所述区块链中所有涉及用户资产的智能合约中都声明有全局闭锁逻辑;
所述闭锁单元430中,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
向所述区块链发送调用所述目标智能合约的交易;以使所述区块链中节点响应所述交易,根据所述交易中指示的目标智能合约的合约地址和所要执行的闭锁逻辑,调用所述目标智能合约中声明的闭锁逻辑,禁止所述区块链中所有涉及用户资产的智能合约的调用。
可选的,所述闭锁单元430中,禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
关闭所有涉及用户资产的智能合约提供的用户资产出账和入账接口,以冻结智能合约中的用户资产。
可选的,所述本地维护的链下用户资产,通过与智能合约相同的业务逻辑进行链下维护;每次区块链响应涉及用户资产的交易,都会将交易同步到链下,以对链下用户资产进行更新。
可选的,所述装置还包括:
告警单元,在所述链上用户资产与链下用户资产不一致时,向管理方发送携带有不一致资产的告警消息,以使所述管理方对所述区块链中不一致的资产进行处理。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实现方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种保护区块链上数据安全的方法,其特征在于,所述方法包括:
从区块链读取目标智能合约对应合约账户中维护的链上用户资产;
将所读取到的链上用户资产与本地维护的链下用户资产进行对账;
在所述链上用户资产与链下用户资产不一致时,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用。
2.根据权利要求1所述的方法,其特征在于,所述区块链中所有涉及用户资产的智能合约中都声明有全局闭锁逻辑;
所述向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
向所述区块链发送调用所述目标智能合约的交易;以使所述区块链中节点响应所述交易,根据所述交易中指示的目标智能合约的合约地址和所要执行的闭锁逻辑,调用所述目标智能合约中声明的闭锁逻辑,禁止所述区块链中所有涉及用户资产的智能合约的调用。
3.根据权利要求1所述的方法,其特征在于,所述禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
关闭所有涉及用户资产的智能合约提供的用户资产出账和入账接口,以冻结智能合约中的用户资产。
4.根据权利要求1所述的方法,其特征在于,所述本地维护的链下用户资产,通过与智能合约相同的业务逻辑进行链下维护;每次区块链响应涉及用户资产的交易,都会将交易同步到链下,以对链下用户资产进行更新。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述链上用户资产与链下用户资产不一致时,向管理方发送携带有不一致资产的告警消息,以使所述管理方对所述区块链中不一致的资产进行处理。
6.一种保护区块链上数据安全的装置,其特征在于,所述装置包括:
获取单元,从区块链读取目标智能合约对应合约账户中维护的链上用户资产;
对账单元,将所读取到的链上用户资产与本地维护的链下用户资产进行对账;
闭锁单元,在所述链上用户资产与链下用户资产不一致时,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用。
7.根据权利要求6所述的装置,其特征在于,所述区块链中所有涉及用户资产的智能合约中都声明有全局闭锁逻辑;
所述闭锁单元中,向所述区块链发起交易;以使所述区块链中节点响应所述交易,禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
向所述区块链发送调用所述目标智能合约的交易;以使所述区块链中节点响应所述交易,根据所述交易中指示的目标智能合约的合约地址和所要执行的闭锁逻辑,调用所述目标智能合约中声明的闭锁逻辑,禁止所述区块链中所有涉及用户资产的智能合约的调用。
8.根据权利要求6所述的装置,其特征在于,所述闭锁单元中,禁止所述区块链中所有涉及用户资产的智能合约的调用,包括:
关闭所有涉及用户资产的智能合约提供的用户资产出账和入账接口,以冻结智能合约中的用户资产。
9.根据权利要求6所述的装置,其特征在于,所述本地维护的链下用户资产,通过与智能合约相同的业务逻辑进行链下维护;每次区块链响应涉及用户资产的交易,都会将交易同步到链下,以对链下用户资产进行更新。
10.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-5中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/120477 WO2022077181A1 (zh) | 2020-10-12 | 2020-10-12 | 保护区块链上数据安全的方法及装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112384921A true CN112384921A (zh) | 2021-02-19 |
Family
ID=74590111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080002393.3A Pending CN112384921A (zh) | 2020-10-12 | 2020-10-12 | 保护区块链上数据安全的方法及装置和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112384921A (zh) |
WO (1) | WO2022077181A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948358A (zh) * | 2021-03-18 | 2021-06-11 | 上海能链众合科技有限公司 | 一种链上冰封表维护办法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171489A (zh) * | 2017-12-18 | 2018-06-15 | 深圳前海微众银行股份有限公司 | 数据清算方法、系统和计算机可读存储介质 |
CN108282474A (zh) * | 2018-01-18 | 2018-07-13 | 山东大学 | 基于区块链的数字资产交易一致性的维护方法 |
US20190253257A1 (en) * | 2018-02-14 | 2019-08-15 | Alibaba Group Holding Limited | Asset management method and apparatus, and electronic device |
CN111475521A (zh) * | 2020-06-24 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 基于区块链的货物管理方法及装置和电子设备 |
CN111681017A (zh) * | 2020-08-14 | 2020-09-18 | 支付宝(杭州)信息技术有限公司 | 基于区块链的货物批量验真方法及装置、电子设备 |
-
2020
- 2020-10-12 WO PCT/CN2020/120477 patent/WO2022077181A1/zh active Application Filing
- 2020-10-12 CN CN202080002393.3A patent/CN112384921A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171489A (zh) * | 2017-12-18 | 2018-06-15 | 深圳前海微众银行股份有限公司 | 数据清算方法、系统和计算机可读存储介质 |
CN108282474A (zh) * | 2018-01-18 | 2018-07-13 | 山东大学 | 基于区块链的数字资产交易一致性的维护方法 |
US20190253257A1 (en) * | 2018-02-14 | 2019-08-15 | Alibaba Group Holding Limited | Asset management method and apparatus, and electronic device |
CN111475521A (zh) * | 2020-06-24 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 基于区块链的货物管理方法及装置和电子设备 |
CN111681017A (zh) * | 2020-08-14 | 2020-09-18 | 支付宝(杭州)信息技术有限公司 | 基于区块链的货物批量验真方法及装置、电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948358A (zh) * | 2021-03-18 | 2021-06-11 | 上海能链众合科技有限公司 | 一种链上冰封表维护办法 |
CN112948358B (zh) * | 2021-03-18 | 2024-05-28 | 上海零数众合信息科技有限公司 | 一种链上冰封表维护办法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022077181A1 (zh) | 2022-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11195231B2 (en) | Transaction processing in a service blockchain | |
US10931440B2 (en) | Transaction processing in a service blockchain | |
CN110706114B (zh) | 一种基于区块链的违约资产处理方法、装置及电子设备 | |
CN111681017B (zh) | 基于区块链的货物批量验真方法及装置、电子设备 | |
WO2021197097A1 (zh) | 跨链数据订阅 | |
CN113836227B (zh) | 一种基于区块链的资产申购方法、装置及电子设备 | |
WO2021017438A1 (zh) | 基于区块链的电子票据作废方法及装置、电子设备 | |
CN111539731A (zh) | 基于区块链的联邦学习方法及装置和电子设备 | |
US20200175583A1 (en) | Blockchain-based leasing | |
CN110473030B (zh) | 基于区块链的电子票据号码申领方法及装置、电子设备 | |
CN112101938B (zh) | 基于区块链的数字印章使用方法、装置及电子设备 | |
WO2021017442A1 (zh) | 基于区块链的电子票据报销方法及装置、电子设备 | |
EP3961453B1 (en) | Method and apparatus for invoking smart contract, electronic device, and storage medium | |
CN109547488A (zh) | 一种基于联盟区块链的可信数据计算及交换系统 | |
CN111753335A (zh) | 区块内容的编辑方法及装置 | |
CN111639125A (zh) | 基于区块链的资源流通方法及装置 | |
CN112200569B (zh) | 基于区块链的数字印章使用方法、装置及电子设备 | |
CN111383122A (zh) | 基于区块链的资产管理方法、装置及电子设备 | |
CN114780285A (zh) | 区块链数据恢复方法及装置、电子设备 | |
CN112100588A (zh) | 基于区块链的数字印章申领方法、装置及电子设备 | |
CN111681150A (zh) | 基于区块链的危化品管理方法及装置、电子设备 | |
CN110443612B (zh) | 一种基于区块链的报销费用分割方法、装置及电子设备 | |
CN111475522A (zh) | 基于区块链的仓单数据管理方法及装置、电子设备 | |
CN110458538B (zh) | 基于区块链的状态机维护方法及装置、电子设备、存储介质 | |
CN111679902B (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 |