CN116010371A - 基于区块链系统的数据处理方法、装置、介质及电子设备 - Google Patents
基于区块链系统的数据处理方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN116010371A CN116010371A CN202111229470.1A CN202111229470A CN116010371A CN 116010371 A CN116010371 A CN 116010371A CN 202111229470 A CN202111229470 A CN 202111229470A CN 116010371 A CN116010371 A CN 116010371A
- Authority
- CN
- China
- Prior art keywords
- data account
- blockchain
- data
- chain
- account
- 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
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请的实施例提供了一种基于区块链系统的数据处理方法、装置、介质及电子设备。该区块链系统中的链上地址关联有数据账户,所述方法包括:接收区块链使用方发送的用于进行数据账户迁移的第一交易信息;对第一交易信息进行共识处理;在对第一交易信息共识完成后,根据新链上地址对应的公钥对第一交易信息中包含的签名信息进行验证,并验证区块链使用方的原链上地址是否与待迁移数据账户相关联;若对签名信息验证通过、且原链上地址与待迁移数据账户相关联,则将待迁移数据账户从与原链上地址相关联调整为与新链上地址相关联。本申请实施例的技术方案可以将链上数据的迁移转化为链上数据账户的迁移,极大地降低了更换链上公私钥时的数据迁移成本。
Description
技术领域
本申请涉及计算机及通信技术领域,具体而言,涉及一种基于区块链系统的数据处理方法、装置、介质及电子设备。
背景技术
在区块链技术中,区块链使用方需要使用一对非对称密码学公私钥来参与区块链网络中的通信交互,私钥用来对上链交易进行签名,公钥在区块链网络中公开,区块链网络中所有的节点均可以使用该公钥验证交易的有效性。在该种方式下,已经上链的交易被打包到区块里记录下来,若区块链使用方想要更换公私钥,意味着之前使用原公私钥签名上链的交易都要舍弃,如果将原公私钥对应的链上资源迁移到新公私钥对应的链上地址里,那么会产生极大的迁移成本。
发明内容
本申请的实施例提供了一种基于区块链系统的数据处理方法、装置、介质及电子设备,进而至少在一定程度上可以将链上数据的迁移转化为链上数据账户的迁移,极大地降低了更换链上公私钥时的数据迁移成本。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种基于区块链系统的数据处理方法,所述区块链系统中的链上地址关联有用于存储数据的数据账户,所述方法包括:接收区块链使用方发送的用于进行数据账户迁移的第一交易信息,所述第一交易信息中包含有待迁移数据账户、第一字符串、所要迁移到的新链上地址、所述新链上地址对应的公钥、所述新链上地址对应的私钥对所述第一字符串的签名信息;对所述第一交易信息进行共识处理;在对所述第一交易信息共识完成之后,根据所述新链上地址对应的公钥对所述第一交易信息中包含的签名信息进行验证,并验证所述区块链使用方的原链上地址是否与所述待迁移数据账户相关联;若对所述签名信息验证通过、且所述原链上地址与所述待迁移数据账户相关联,则将所述待迁移数据账户从与所述原链上地址相关联调整为与所述新链上地址相关联。
根据本申请实施例的一个方面,提供了一种基于区块链系统的数据处理装置,所述区块链系统中的链上地址关联有用于存储数据的数据账户,所述装置包括:接收单元,配置为接收区块链使用方发送的用于进行数据账户迁移的第一交易信息,所述第一交易信息中包含有待迁移数据账户、第一字符串、所要迁移到的新链上地址、所述新链上地址对应的公钥、所述新链上地址对应的私钥对所述第一字符串的签名信息;第一处理单元,配置为对所述第一交易信息进行共识处理;验证单元,配置为在对所述第一交易信息共识完成之后,根据所述新链上地址对应的公钥对所述第一交易信息中包含的签名信息进行验证,并验证所述区块链使用方的原链上地址是否与所述待迁移数据账户相关联;第二处理单元,配置为若对所述签名信息验证通过、且所述原链上地址与所述待迁移数据账户相关联,则将所述待迁移数据账户从与所述原链上地址相关联调整为与所述新链上地址相关联。
在本申请的一些实施例中,基于前述方案,所述第一交易信息由所述区块链使用方的原链上地址对应的私钥进行签名;所述第一处理单元配置为:在接收到所述第一交易信息之后,通过所述区块链使用方的原链上地址对应的公钥对所述第一交易信息进行签名验证,并在验证通过后对所述第一交易信息进行打包,以对打包生成的区块进行共识处理。
在本申请的一些实施例中,基于前述方案,所述数据账户包括业务数据账户;所述接收单元还配置为:接收用于创建业务数据账户的第二交易信息,所述第二交易信息中包含有待创建的业务数据账户信息;所述第一处理单元还配置为:对所述第二交易信息进行验证和共识处理;所述数据处理装置还包括:第三处理单元,配置为在对所述第二交易信息共识完成之后,根据所述第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户,并将创建的业务数据账户与所述第二交易信息的发送方链上地址进行关联。
在本申请的一些实施例中,基于前述方案,所述待创建的业务数据账户信息包括:待创建的业务数据账户标识和待创建的业务数据账户所需的字段信息;所述第三处理单元配置为:若根据所述待创建的业务数据账户标识检测到不存在对应的业务数据账户,则创建与所述业务数据账户标识对应的业务数据账户,并根据所述字段信息创建对应的字段。
在本申请的一些实施例中,基于前述方案,所述第三处理单元还配置为:在根据所述第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户之后,将创建的业务数据账户的操作权限分配给所述第二交易信息的发送方。
在本申请的一些实施例中,基于前述方案,所述数据账户包括业务数据账户;所述接收单元还配置为:接收用于触发区块链智能合约执行合约内注册方法的第三交易信息,所述区块链智能合约内包含的注册方法用于创建业务数据账户;所述第一处理单元还配置为:对所述第三交易信息进行共识处理;所述数据处理装置还包括:第四处理单元,配置为在对所述第三交易信息共识完成之后,触发所述区块链智能合约创建业务数据账户,并将创建的业务数据账户与所述第三交易信息的发送方链上地址进行关联。
在本申请的一些实施例中,基于前述方案,所述第四处理单元还配置为:在触发所述区块链智能合约创建业务数据账户之后,将创建的业务数据账户的操作权限分配给所述区块链智能合约。
在本申请的一些实施例中,基于前述方案,所述第四处理单元还配置为:在触发所述区块链智能合约创建业务数据账户之后,根据所述区块链智能合约的地址信息生成创建的业务数据账户的标识。
在本申请的一些实施例中,基于前述方案,所述数据账户包括系统数据账户,所述系统数据账户是在所述区块链系统中注册链上地址之后自动生成的,所述系统数据账户用于存储对应的链上地址所需的数据。
在本申请的一些实施例中,基于前述方案,所述接收单元还配置为:接收用于访问数据账户的第四交易信息,所述第四交易信息中包含有待访问的数据账户信息和访问需求信息;所述第一处理单元还配置为:对所述第四交易信息进行验证和共识处理;所述数据处理装置还包括:第五处理单元,配置为在对所述第四交易信息共识完成之后,根据所述第四交易信息的发送方链上地址查找所述待访问的数据账户信息,若查找到所述待访问的数据账户信息、且所述第四交易信息的发送方有权限访问查找到的数据账户,则根据所述访问需求信息对查找到的数据账户进行访问。
在本申请的一些实施例中,基于前述方案,所述访问需求信息包括需要变更的字段内容信息。
在本申请的一些实施例中,基于前述方案,所述接收单元还配置为:接收用于触发区块链智能合约执行的第五交易信息;所述第一处理单元还配置为:对所述第五交易信息进行验证和共识处理;所述数据处理装置还包括:第六处理单元,配置为在对所述第五交易信息进行验证和共识处理之后,触发所述区块链智能合约执行,在所述区块链智能合约的执行过程中,调用数据账户访问接口对与所述区块链智能合约对应的数据账户进行访问。
在本申请的一些实施例中,基于前述方案,与所述区块链智能合约对应的数据账户包括:根据所述区块链智能合约的地址信息生成的业务数据账户的标识所对应的数据账户;其中,所述数据账户访问接口在确定所述区块链智能合约有权限访问与所述区块链智能合约对应的数据账户时,执行对与所述区块链智能合约对应的数据账户的访问操作。
在本申请的一些实施例中,基于前述方案,所述区块链使用方发送的交易信息中包含有交易类型字段,所述交易类型字段的值用于表示交易信息的功能类型。
在本申请的一些实施例中,基于前述方案,所述数据账户包括业务数据账户,同一个链上地址关联有至少一个业务数据账户,不同的业务数据账户对应于不同的业务类型。
在本申请的一些实施例中,基于前述方案,所述区块链系统中包含有数据账户树,所述数据账户树与所述区块链系统中的链上地址相关联,所述数据账户树中包含有根节点和处于所述根节点下的至少一个数据账户。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的基于区块链系统的数据处理方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述实施例中所述的基于区块链系统的数据处理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的基于区块链系统的数据处理方法。
在本申请的一些实施例所提供的技术方案中,由于区块链系统中的链上地址关联有用于存储数据的数据账户,因此区块链节点在接收到区块链使用方发送的用于进行数据账户迁移的第一交易信息之后,通过对第一交易信息进行共识处理,并在对第一交易信息共识完成之后,若根据新链上地址对应的公钥对第一交易信息中包含的签名信息验证通过、且原链上地址与待迁移数据账户相关联,则将待迁移数据账户从与原链上地址相关联调整为与新链上地址相关联,使得可以将链上数据的迁移转化为链上数据账户的迁移,极大地降低了更换链上公私钥时的数据迁移成本,有效提升了区块链的便利性和可维护性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了区块链网络的结构示意图;
图2示出了区块链中各区块的连接关系示意图;
图3示出了在账户模型中的账户变动示意图;
图4示出了UTXO模型的实现过程示意图;
图5示出了数据账户与链上地址的绑定关系示意图;
图6示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图7示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图;
图8示出了根据本发明的一个实施例的数据区块在进行共识的过程示意图;
图9示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图;
图10示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图;
图11示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图;
图12示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图;
图13示出了以太坊数据的结构示意图;
图14示出了根据本申请的一个实施例的交易信息的结构示意图;
图15示出了根据本申请的一个实施例的交易触发的业务数据账户创建流程中交易信息内input字段的内容示意图;
图16示出了根据本申请的一个实施例的合约触发的业务数据账户创建流程示意图;
图17示出了根据本申请的一个实施例的合约触发的链上数据账户写入流程示意图;
图18示出了根据本申请的一个实施例的链上数据账户迁移的示意图;
图19示出了根据本申请的一个实施例的基于区块链系统的数据处理装置的框图;
图20示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在参考附图以更全面的方式描述示例实施方式。然而,示例的实施方式能够以各种形式实施,且不应被理解为仅限于这些范例;相反,提供这些实施方式的目的是使得本申请更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,本申请所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,有许多具体细节从而可以充分理解本申请的实施例。然而,本领域技术人员应意识到,在实施本申请的技术方案时可以不需用到实施例中的所有细节特征,可以省略一个或更多特定细节,或者可以采用其它的方法、元件、装置、步骤等。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(即区块),每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
如上所述,区块链本质上是一个去中心化的数据库,而区块链是由区块链网络中的节点共同维护的。比如,在图1所示的区块链网络中,可以包括多个节点101,多个节点101可以是形成区块链网络的各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当区块链网络中的任意节点接收到输入信息时,区块链网络中的其它节点便根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有其它节点的节点标识,以便后续根据其它节点的节点标识,将生成的区块广播至区块链网络中的其它节点。每个节点中可维护一个节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(InternetProtocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。
区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图2所示,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值等,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值等,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
区块链网络中各个节点可以是服务器,也可以是终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(Cloud Computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。各个节点之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在相关技术中,区块链主要有两种记录保存方式,一种是账户/余额模型,一种是UTXO(Unspent Transaction Output,未消费的交易输出)模型。为了说明这两种记录保存方式的不同,假设存在如下的场景:张三获得了12.5个虚拟资源。过了几天,张三将其中2.5个虚拟资源支付给李四。又过了几天,张三和李四各出资2.5个虚拟资源凑成5个虚拟资源付给王五。
如果是账户/余额模型的设计,那么张三、李四、王五这3个人在数据库中会各有一个账户,则他们三人的账户变化如图3所示,即每次账户变动仅更改账户中的余额即可。
如果是UTXO模型的设计,那么每笔交易都有若干交易输入,也就是资源来源,并且也都有若干笔交易输出,也就是资源去向。一般来说,每一笔交易都要花费(spend)一笔输入,产生一笔输出,而其所产生的输出,就是“未花费过的交易输出”,也就是UTXO。
具体来说,图4中所示的交易号为#1001的交易是第一个交易,即张三意外获得了12.5个虚拟资源。第一个交易在被区块链中的各个节点共识确认后,记录在区块链网络中。
过了几天,张三打算付2.5个虚拟资源给李四,张三就发起一笔交易号为#2001的交易,这个交易的资源来源项写着“#1001(1)”,也就是#1001号交易(张三意外获得虚拟资源的那个交易)的第一项UTXO。然后在本交易的交易输出UTXO项中,把2.5个虚拟资源的收款人地址设为李四的地址。
需要注意的是,这一笔交易必须将前面产生那一项12.5个虚拟资源的输出项全部消耗,而由于张三只打算付给李四2.5个虚拟资源,为了要消耗剩下的10个虚拟资源,只好把剩余的那10个虚拟资源支付给自己,这样才能符合输入与输出配平的规则。
再过几天,张三和李四打算合起来给王五付5个虚拟资源。那么张三或李四发起一笔交易号为#3001的交易,在交易输入部分,有两个资源来源,分别是#2001(1)和#2001(2),代表第#2001号交易的第(1)和第(2)项UTXO。然后在这个交易的输出部分如法炮制,给王五5个虚拟资源,把张三剩下的7.5个虚拟资源发还给自己。以后王五若要再花这5个虚拟资源,就必须在交易里注明资源的来源是#3001(1)。
因此,在基于UTXO模型的区块链网络中,每个交易数据都会存在输入信息和输出信息,除了第一个交易之外,其它的交易数据的输入信息都会引用一个UTXO,并且输出信息都会产生一个UTXO。当一个新的交易数据的输入引用了一个UTXO之后,该被引用的UTXO会被删除,并且会新产生一个UTXO。
无论是账户/余额模型还是UTXO模型,链上数据资源一般都会和链上地址绑定,若区块链使用方需要更换链上地址,必须要将原地址的数据资源迁移到新公私钥对应的链上地址中,而原地址的数据资源分散在区块链系统和各个业务合约内部,迁移非常困难。为了解决数据资源迁移困难的问题,本申请提出了构建链上数据账户服务,区块链需要在链上实现数据账户服务来绑定链上地址。具体如图5所示,整个链上数据由所有的数据账户组成,链上地址在链上的所有数据全部由多个数据账户承载,并聚合在链上地址下,一个链上地址可以绑定多个业务数据账户,合约可以为链上地址建立一个合约内使用的数据账户(如图5中所示的系统数据账户),存储合约内该链上地址相关的数据(如余额balance等),当链上地址参与链上数据变更时,需要修改链上地址对应的数据账户的数据。同时,数据账户与链上地址的映射关系由节点本地世界状态树维护。
基于图5所示的系统架构,在本申请的一个实施例中,如果区块链使用方想要实现数据账户的迁移,那么如图6所示,区块链使用方可以使用区块链使用方终端601生成用于进行数据账户迁移的第一交易信息,该第一交易信息中包含有待迁移数据账户、第一字符串(可以是随机字符串或指定字符串)、所要迁移到的新链上地址、新链上地址对应的公钥、新链上地址对应的私钥对第一字符串的签名信息,然后区块链使用方终端601将该第一交易信息发送给区块链共识节点。
区块链共识节点在接收到区块链使用方终端601发送的用于进行数据账户迁移的第一交易信息之后,可以在区块链网络中对第一交易信息进行共识处理,在对第一交易信息共识完成之后,根据第一交易信息中包含的新链上地址对应的公钥对第一交易信息中包含的签名信息(即新链上地址对应的私钥对第一字符串的签名信息)进行验证,并验证区块链使用方的原链上地址是否与待迁移数据账户相关联。
区块链共识节点在对前述签名信息验证通过、且原链上地址与待迁移数据账户相关联的情况下,将待迁移数据账户从与原链上地址相关联调整为与新链上地址相关联。
可见,本申请实施例的技术方案将链上数据的迁移转化为链上数据账户的迁移,极大地降低了更换链上公私钥时的数据迁移成本,有效提升了区块链的便利性和可维护性。
以下对本申请实施例的技术方案的各种实现细节进行详细阐述:
图7示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图,该区块链系统中的链上地址关联有用于存储数据的数据账户,该基于区块链系统的数据处理方法可以由区块链共识节点来执行。具体而言,参照图7所示,该基于区块链系统的数据处理方法至少包括步骤S710至步骤S740,详细介绍如下:
在步骤S710中,接收区块链使用方发送的用于进行数据账户迁移的第一交易信息,该第一交易信息中包含有待迁移数据账户、第一字符串、所要迁移到的新链上地址、新链上地址对应的公钥、新链上地址对应的私钥对第一字符串的签名信息。
在本申请的一个实施例中,区块链使用方发送的交易信息中包含有交易类型字段,该交易类型字段的值用于表示交易信息的功能类型。比如,第一交易信息中包含的交易类型字段的值用于表示第一交易信息是用于进行数据账户迁移的交易信息。
可选地,区块链系统中的数据账户可以包括系统数据账户和业务数据账户。系统数据账户是在区块链系统中注册链上地址之后自动生成的,且系统数据账户用于存储对应的链上地址所需的数据,比如余额balance等。业务数据账户是用于存储业务对应的数据,且同一个链上地址可以关联有至少一个业务数据账户,不同的业务数据账户可以对应于不同的业务类型,比如业务A对应于一个业务数据账户1,该业务数据账户1用于存储业务A的业务数据;业务B也对应一个业务数据账户2,该业务数据账户2用于存储业务B的业务数据。
在本申请的一个实施例中,区块链系统中可以包含有数据账户树,具体可以参照图5所示,区块链系统中的链上地址与外部账户状态信息相关联,外部账户状态信息中包含有nonce(随机数)、数据账户树root。数据账户树中包含有根节点和处于根节点下的至少一个数据账户。
在本申请的一个实施例中,待迁移数据账户是需要进行迁移的数据账户,比如区块链使用方1需要更换公私钥,那么需要迁移的数据账户可以是区块链使用方1的原公私钥所对应的数据账户,也即区块链使用方1的原链上地址所关联的数据账户。
可选地,区块链使用方可以通过区块链使用方终端来发送密钥变更请求,区块链使用方终端比如可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能家电、车载终端等。第一字符串比如可以是随机字符串或者可以是指定的字符串信息等。
可选地,如果第一交易信息由区块链使用方的原链上地址对应的私钥进行了签名,那么区块链共识节点在接收到第一交易信息之后,可以通过区块链使用方的原链上地址对应的公钥对第一交易信息进行签名验证,并在验证通过后对第一交易信息进行打包生成区块,然后在区块链系统中对打包生成的区块进行共识处理。
在步骤S720中,对第一交易信息进行共识处理。
可选地,对第一交易信息进行共识处理的过程可以是对第一交易信息进行打包生成区块,然后在区块链系统中进行广播来实现在很短的时间内完成对交易的验证和确认。在进行共识处理的过程中,可以采用如下的共识算法:PoW(Proof of Work,工作量证明机制)、PoS(Proof of Stake,权益证明)、DPoS(Delegated Proof of Stake,委托权益证明)、PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错系统)等。
其中,在PoW算法中,每个共识节点为整个系统提供计算能力(简称算力),通过一个竞争机制,让计算工作完成最出色的节点获得系统的奖励,也即获得记账权。
PoS算法是通过持有Token的数量和时长来决定节点获得记账的机率,类似于股票的分红制度,持有股权越多的人就能够获得更多的分红,Token相当于区块链系统的权益。
DPoS算法是基于PoS算法衍生出的更专业的解决方案,类似于董事会投票,指拥有Token的人投票给固定的节点,选举若干代理节点,由代理节点负责验证和记账,不同于PoW和PoS的全网都可以参与记账竞争,DPoS的记账节点在一定时间段内是确定的。
PBFT算法是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制,每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。PBFT的通信机制如图8所示:
客户端(可以是形成要记录在区块链上的数据区块的共识节点)发起共识请求,并将共识请求发送至处于领导状态的领导共识节点A;继续进入添加实体阶段,由领导共识节点A将共识请求所对应的数据区块广播至区块链网络中其它未处于领导状态的共识节点(共识节点B、C、D…);继续进入追加响应阶段,由其它共识节点将接收到的共识内容广播至其它各共识节点,并在接收到预设数量(2f+1)的其它共识节点所广播的共识内容一致时,进入确认阶段,各共识节点再将确认结果反馈至领导共识节点A。领导共识节点A在接收到预设数量(2f+1)的其它区块链节点反馈确认通过时,则判定完成共识向客户端反馈共识完成的结果。其中,f是小于(N-1)/3的最大整数,N是区块链网络中共识节点的数量。f是算法能容忍的区块链网络中作恶的共识节点的数量。
当共识成功后,区块链网络中的各个共识节点就可以将区块添加到区块链上,即完成上链,并将区块存储至共识节点中。
继续参照图7所示,在步骤S730中,在对第一交易信息共识完成之后,根据新链上地址对应的公钥对第一交易信息中包含的签名信息进行验证,并验证区块链使用方的原链上地址是否与待迁移数据账户相关联。
需要说明的是:根据新链上地址对应的公钥对第一交易信息中包含的签名信息(该签名信息即为新链上地址对应的私钥对第一字符串的签名信息)进行验证可以是根据新链上地址对应的公钥对该签名信息进行逆签名运算,以确定是否能够得到原始的第一字符串。
验证区块链使用方的原链上地址是否与待迁移数据账户相关联主要是为了验证待迁移数据账户是否是原链上地址所关联的数据账户,避免对与原链上地址不相关的数据账户进行迁移,以保证数据账户迁移的安全性。
在步骤S740中,若对第一交易信息中包含的签名信息验证通过、且原链上地址与待迁移数据账户相关联,则将待迁移数据账户从与原链上地址相关联调整为与新链上地址相关联。
在本申请的一个实施例中,将待迁移数据账户从与原链上地址相关联调整为与新链上地址相关联即为将待迁移数据账户与原链上地址进行解绑,然后将待迁移数据账户与新链上地址进行绑定。
可选地,如果对第一交易信息中包含的签名信息验证不通过,或者原链上地址与待迁移数据账户不相关,那么可以拒绝响应该第一交易信息,或者返回数据账户迁移失败的通知信息。
图7所示实施例的技术方案可以将链上数据的迁移转化为链上数据账户的迁移,极大地降低了更换链上公私钥时的数据迁移成本,有效提升了区块链的便利性和可维护性。
图9示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图,该区块链系统中的链上地址关联有用于存储数据的数据账户,该数据账户包括业务数据账户,该基于区块链系统的数据处理方法可以由区块链共识节点来执行。具体而言,参照图9所示,该基于区块链系统的数据处理方法至少包括步骤S910至步骤S930,详细介绍如下:
在步骤S910中,接收用于创建业务数据账户的第二交易信息,该第二交易信息中包含有待创建的业务数据账户信息。
在本申请的一个实施例中,区块链使用方发送的交易信息中包含有交易类型字段,该交易类型字段的值用于表示交易信息的功能类型。比如,第二交易信息中包含的交易类型字段的值用于表示第二交易信息是用于创建业务数据账户的。
可选地,待创建的业务数据账户信息可以包括:待创建的业务数据账户标识和待创建的业务数据账户所需的字段信息。该字段信息比如可以是字段名称、字段类型等,该字段信息用于存储对应的业务数据。
在步骤S920中,对第二交易信息进行验证和共识处理。
可选地,区块链共识节点在接收到第二交易信息之后,可以根据第二交易信息的类型来验证第二交易信息中所包含的内容,比如在确定第二交易信息是用于创建业务数据账户的交易信息之后,验证其中是否包含有待创建的业务数据账户标识、待创建的业务数据账户所需的字段信息等。
可选地,对第二交易信息进行共识处理的过程可以参照前述实施例的技术方案,不再赘述。
在步骤S930中,在对第二交易信息共识完成之后,根据第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户,并将创建的业务数据账户与第二交易信息的发送方链上地址进行关联。
在本申请的一个实施例中,根据第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户的过程可以是:若根据待创建的业务数据账户标识检测到不存在对应的业务数据账户,则创建与业务数据账户标识对应的业务数据账户,并根据字段信息创建对应的字段。可选地,如果根据待创建的业务数据账户标识检测到已经存在对应的业务数据账户,那么可以返回创建失败的提示信息。
在本申请的一个实施例中,在根据第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户之后,可以将创建的业务数据账户的操作权限分配给第二交易信息的发送方。该实施例的技术方案使得要求创建业务数据账户的区块链使用方拥有对所创建的业务数据账户的操作权限,该操作权限比如可以是读取权限、写入权限、修改权限等。
图9所示实施例的技术方案是通过交易信息来触发进行业务数据账户创建的过程。以下结合图10介绍本申请实施例中通过智能合约来触发进行业务数据账户创建的过程:
图10示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图,该区块链系统中的链上地址关联有用于存储数据的数据账户,该数据账户包括业务数据账户,该基于区块链系统的数据处理方法可以由区块链共识节点来执行。具体而言,参照图10所示,该基于区块链系统的数据处理方法至少包括步骤S1010至步骤S1030,详细介绍如下:
在步骤S1010中,接收用于触发区块链智能合约执行合约内注册方法的第三交易信息,该区块链智能合约内包含的注册方法用于创建业务数据账户。
在本申请的一个实施例中,区块链使用方发送的交易信息中包含有交易类型字段,该交易类型字段的值用于表示交易信息的功能类型。比如,第三交易信息中包含的交易类型字段的值用于表示第三交易信息是用于触发区块链智能合约执行合约内注册方法的。
在步骤S1020中,对第三交易信息进行共识处理。
可选地,对第三交易信息进行共识处理的过程可以参照前述实施例的技术方案,不再赘述。
在步骤S1030中,在对第三交易信息共识完成之后,触发区块链智能合约创建业务数据账户,并将创建的业务数据账户与第三交易信息的发送方链上地址进行关联。
在本申请的一个实施例中,区块链智能合约创建的业务数据账户可以用于存储区块链智能合约在执行时所产生业务数据。可选地,在触发区块链智能合约创建业务数据账户之后,可以将创建的业务数据账户的操作权限分配给区块链智能合约,该操作权限比如可以是读取权限、写入权限、修改权限等。
可选地,在触发区块链智能合约创建业务数据账户之后,可以根据区块链智能合约的地址信息生成创建的业务数据账户的标识。比如可以将区块链智能合约的地址信息作为创建的业务数据账户的标识,进而可以便于根据区块链智能合约的地址信息检索到对应的业务数据账户。
图10所示实施例的技术方案是通过区块链智能合约来触发进行业务数据账户创建的过程。
图11示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图,该基于区块链系统的数据处理方法可以由区块链共识节点来执行。具体而言,参照图11所示,该基于区块链系统的数据处理方法至少包括步骤S1110至步骤S1140,详细介绍如下:
在步骤S1110中,接收用于访问数据账户的第四交易信息,该第四交易信息中包含有待访问的数据账户信息和访问需求信息。
在本申请的一个实施例中,区块链使用方发送的交易信息中包含有交易类型字段,该交易类型字段的值用于表示交易信息的功能类型。比如,第四交易信息中包含的交易类型字段的值用于表示第四交易信息是用于访问数据账户的。待访问的数据账户信息可以是待访问的数据账户的标识信息;访问需求信息可以是需要变更的字段内容信息,如需要变更的字段、针对该字段需要变更的具体内容。
在步骤S1120中,对第四交易信息进行验证和共识处理。
可选地,区块链共识节点在接收到第四交易信息之后,可以根据第四交易信息的类型来验证第四交易信息中所包含的内容,比如在确定第四交易信息是用于访问数据账户的之后,验证其中包含的待访问的数据账户信息是否存在等。
可选地,对第四交易信息进行共识处理的过程可以参照前述实施例的技术方案,不再赘述。
在步骤S1130中,在对第四交易信息共识完成之后,根据第四交易信息的发送方链上地址查找待访问的数据账户信息。
在本申请的一个实施例中,由于链上地址是与数据账户关联的,因此可以根据第四交易信息的发送方链上地址来索引到与该发送方链上地址相关联的数据账户,然后从中查找到待访问的数据账户信息,进而判断第四交易信息的发送方是否有权限访问查找的数据账户。
在步骤S1140中,若查找到待访问的数据账户信息、且第四交易信息的发送方有权限访问查找到的数据账户,则根据访问需求信息对查找到的数据账户进行访问。
图11所示实施例的技术方案是通过交易信息来触发进行数据账户访问的过程。以下结合图12介绍本申请实施例中通过智能合约来触发进行数据账户访问的过程:
图12示出了根据本申请的一个实施例的基于区块链系统的数据处理方法的流程图,该基于区块链系统的数据处理方法可以由区块链共识节点来执行。具体而言,参照图12所示,该基于区块链系统的数据处理方法至少包括步骤S1210至步骤S1240,详细介绍如下:
在步骤S1210中,接收用于触发区块链智能合约执行的第五交易信息。
在本申请的一个实施例中,区块链使用方发送的交易信息中包含有交易类型字段,该交易类型字段的值用于表示交易信息的功能类型。比如,第五交易信息中包含的交易类型字段的值用于表示第五交易信息是用于触发区块链智能合约进行执行的。
在步骤S1220中,对第五交易信息进行验证和共识处理。
可选地,区块链共识节点在接收到第五交易信息之后,可以根据第五交易信息的类型来验证第五交易信息中所包含的内容,比如在确定第五交易信息是用于触发区块链智能合约进行执行的之后,验证其中包含的触发智能合约执行的方法是否有效等。
可选地,对第五交易信息进行共识处理的过程可以参照前述实施例的技术方案,不再赘述。
在步骤S1230中,在对第五交易信息进行验证和共识处理之后,触发区块链智能合约执行。
需要说明的是:智能合约是一段程序,它以计算机指令的方式实现了传统合约的自动化处理。简单讲,智能合约就是在区块链上触发执行的一段代码,智能合约程序不只是一个可以自动执行的计算机程序,它本身就是一个系统参与者,对接收到的信息进行回应,可以接收和储存信息,也可以向外发送信息。
在步骤S1240中,在区块链智能合约的执行过程中,调用数据账户访问接口对与区块链智能合约对应的数据账户进行访问。
可选地,与区块链智能合约对应的数据账户包括:根据区块链智能合约的地址信息生成的业务数据账户的标识所对应的数据账户。其中,数据账户访问接口(即Application Programming Interface,应用程序编程接口)在确定区块链智能合约有权限访问与区块链智能合约对应的数据账户时,执行对与区块链智能合约对应的数据账户的访问操作。
以下结合图示对本申请实施例的技术方案的实现细节进行详细阐述:
本申请实施例的技术方案主要是在区块链上构建链上数据账户服务,链上数据账户服务详细阐述分为四个部分:链上数据账户存储结构、链上数据账户创建、链上数据账户使用和链上数据迁移。
链上数据账户存储结构:链上数据账户与链上地址之间的映射关系需要进行存储,并要保持区块链节点的全局一致,因此需要将该映射关系存储到区块链上,存储方式要遵守区块链的数据存储原则。以下以以太坊(是一个开源的有智能合约功能的公共区块链平台)为例进行说明:
如图13所示,以太坊数据以链上账户为单位进行组织,账户数据的变更引起账户状态变化,从而引起以太坊状态变化。以太坊的账户分为外部账户和合约账户,本申请实施例的技术方案可以用于改造用户掌握和使用的外部账户,外部账户的索引是链上地址,该链上地址是链上公钥通过映射算法映射成唯一的id字符串。即链上地址与外部账户状态信息相关联,外部账户状态信息中包含有nonce(随机数)、balance(余额)等。
如图5所示,如果采用数据账户方案,需要在世界态链上账户树之上来建立数据账户,原有的链上账户树结构不变,链上账户状态信息包含了一个数据账户树,数据账户树内包含了多个数据账户及其数据。当执行链上数据变更操作时,通过交易内的链上地址索引到对应的数据账户树,更改数据账户树内对应的账户数据即可。需要说明的是:在该方案中,链上账户的数据(账户存储数据的默克尔树)是绑定在数据账户下面,由此可以实现低成本迁移数据账户至新的链上地址。
链上数据账户区分为系统数据账户和业务数据账户。系统数据账户是用于存储区块链系统本身针对该链上地址所需要的数据,包括balance(余额)等等,系统数据账户在链上地址最初注册在世界状态树时就会自动创建。业务数据账户是链上地址自发创建的、用于存储业务数据的账户,业务数据账户可以建立多个,分别对应不同的业务。
本申请的实施例中还改造了交易信息的结构,具体地,以以太坊中的交易信息为例进行说明,如图14所示,相比以太坊原有的地址交易,基于数据账户的交易(即新型交易)增加了交易类型字段(即tx type字段),该字段用于标识交易是普通的链上地址交易(和原来的交易一致),还是迁移数据账户等特殊交易。
在图14中,“nonce”是交易发起者填写的序列号,代表此交易的发送者已发送过的交易数;“gas price”表示交易者愿意支付的gas价格,gas是一笔交易过程中计算消耗的基本单位;“start gas”表示交易者愿意花费的最大gas数量,即本次交易允许消耗的最大gas数量;“to”表示交易接收方地址;“value”表示交易转移的数额;“input”表示交易的附加数据;“from”表示交易发送方地址;“sign”表示交易的签名数据。
链上数据账户创建:链上数据账户区分为系统数据账户和业务数据账户,系统数据账户随着链上地址的注册而自动创建并绑定。业务数据账户有两种创建形式:
1、交易触发的业务数据账户创建形式:发送创建业务数据账户类型的交易,触发区块链系统调用“创建业务数据账户”的系统API(如CreateDataAccount)执行创建业务数据账户的方法;
2、合约触发的业务数据账户创建形式:区块链系统对智能合约开放创建业务数据账户的系统API(如CreateDataAccount),智能合约可以调用该方法为区块链使用者(对应于链上地址)创建业务数据账户。
上述两种创建形式,最终都是调用了区块链节点程序的创建业务数据账户方法,区别在于是直接由交易触发,还是是由合约触发。合约触发的好处是合约内的用户状态数据可以放入用户链上地址的数据账户,合约只维护合约的全局状态数据即可,实现合约数据和用户数据的解耦,同时合约代用户创建数据账户时,可以指定账户的写入读取权限仅限本合约,避免用户直接恶意操控数据账户内的数据。交易触发的账户归属权完全归区块链使用者,即区块链使用者具有全部操作权限。
交易触发的业务数据账户创建流程如下:
1、上链者(即区块链使用方)拥有一个链上地址。
2、上链者构造创建业务数据账户的交易,交易类型是“业务数据账户创建”,交易内“input”字段内可以包含如下参数:待创建的业务数据账户标识、业务数据账户所需的字段key和字段类型。通过这些参数填充交易内的“input”字段,然后使用链上地址的私钥签名交易,发送至区块链。
具体如图15所示,“input”字段中包含有业务数据账户标识“account id”和账户字段列表“account fields list”,其中,账户字段列表“account fields list”中包含了各个字段及相应的类型。
3、共识节点收到交易后,根据交易类型验证交易内容和签名,验证成功后打包成区块进行共识。
具体地,在根据交易类型确定是业务数据账户创建交易时,可以验证“input”字段的内容,同时使用链上地址的公钥对私钥签名进行验证。
4、共识节点在验证通过之后,执行该创建账户类型交易,触发系统API(如CreateDataAccount),若待创建的业务数据账户ID已存在、“input”字段里的参数非法,则返回交易执行失败的通知消息。如果待创建的业务数据账户ID不存在、且“input”字段里的参数合法,则通过全局账户状态树索引到该链上地址,在该链上地址的数据账户树中建立一个新的数据账户,并建立相应的字段,并将操作权限(如读取权限、写入权限等)设置为交易发送者。然后共识节点返回交易上链执行成功的消息,整个创建流程完成。
合约触发的业务数据账户创建流程如图16所示,具体过程如下:
1、假设存在一个使用链上数据账户体系的智能合约,并提供了用户注册方法。上链者若想使用该智能合约,必须先在智能合约内进行注册。
2、上链者构造交易,触发合约内的注册方法发送交易至区块链。
3、交易在区块链中共识完成之后,节点执行该交易,即通过运行合约虚拟机执行智能合约内的注册方法,方法内部实现时调用创建数据账户API为交易发送者创建链上数据账户的操作,指定的数据账户ID可由智能合约自己指定,一般为了避免冲突,选择使用本合约地址作为数据账户ID较为合适,创建的时候指定该数据账户的读写操作权限必须为本合约地址,禁止他人随意更改。
4、交易执行完成,最终的结果是合约为上链者创建了一个在本智能合约内的新的数据账户,本智能合约具有操作权限。
链上数据账户的使用:
假设上链者(即区块链使用方)已经完成一个链上数据账户的创建(交易触发或合约触发均可),有三种方法使用该链上数据账户:
1、通过交易触发完成链上数据账户的写入。
2、区块链系统对合约开放写入链上数据账户的方法API(如UpdateDataAccount),通过合约触发完成链上数据账户的写入。
3、区块链系统自身的链上数据写入功能,涉及到用户数据变更的都会触发用户的系统数据账户的写入。比如转账功能,节点程序会自动触发用户系统数据账户的balance字段发生变更,对用户本身无感知。
以下详细说明交易触发的链上数据账户写入过程和合约触发的链上数据账户写入过程:
交易触发的链上数据账户写入流程如下:
1、上链者在本地构造交易。将交易类型指定为“写链上数据账户类型”,在交易内填充待改动数据账户标识ID、变更的数据value,并使用链上地址的私钥签名交易,发送至区块链。
2、共识节点收到交易后,根据交易类型验证交易内容和签名,即验证交易中的内容是否合法,并使用链上地址的公钥对私钥签名进行验证,验证成功后打包成区块进行共识。
3、共识节点执行该写链上数据账户类型交易,触发系统API(如UpdateDataAccount)在全局账户状态树中索引到该链上地址,在该链上地址的数据账户树中索引待改动的数据账户,判断交易发送者是否有修改权限,若没有,则返回错误消息。
4、若交易发送者有修改权限,则基于交易中包含的变更的数据value进行修改,交易执行成功。
合约触发的链上数据账户写入流程如图17所示,具体过程如下:
1、上链者在本地构造正常的合约交易。
2、共识节点收到该合约交易之后,验证交易;验证完成后,打包交易至区块链网络中进行共识。
3、共识完成后,区块链中所有节点执行该交易,交易会触发合约的执行,即通过运行合约虚拟机执行智能合约,智能合约执行过程中,涉及到用户数据变更的操作均调用写入链上数据账户的API。
4、API会验证合约地址是否有权限修改该数据账户(即将合约地址作为数据账户id的数据账户),若没有权限,则返回错误消息。
链上数据迁移过程:
本申请实施例的技术方案可以在用户链上地址变更的情况下,最大化减少迁移链上数据成本,具体需要结合链上数据账户体系,以极大地降低数据迁移成本,具体流程如下:
1、上链者构造“数据账户迁移”类型的交易,该交易中包含有如下参数:待迁移数据账户ID列表(如果该项为空,则默认为原链上地址关联的全部数据账户)、迁移至的新链上地址、新链上地址对应的公钥、随机待签名字符串、新链上地址对应私钥对该随机待签名字符串的签名信息。
2、使用原私钥对整个交易进行签名,发送至区块链。
3、共识节点收到交易后,验证交易,打包交易至区块链进行共识;共识完成后,执行交易。
4、执行该迁移链上数据账户类型的交易时,触发系统API(如MoveDataAccount)首先验证交易参数内的签名串(即通过新链上地址对应的公钥对随机待签名字符串的签名信息进行验证),以及原链上地址是否拥有参数内的待迁移数据账户列表,验证通过后会将原链上地址的待迁移数据账户变更至新的链上地址。
5、交易执行成功后,代表迁移成功,此时新的链上地址就继承了原链上地址的链上数据。
具体如图18所示,将链上地址A关联的数据账户全部迁移至链上地址B,迁移完成后,链上地址A将不再维护数据账户树根root,由链上地址B的账户存储该数据账户树根root。
本发明上述实施例的技术方案,通过在区块链上构建数据账户服务,一个链上地址可以绑定多个数据账户,该链上地址有权限迁移绑定数据账户的所有数据,进而将链上数据的迁移转化为链上数据账户的迁移,极大地降低了更换链上公私钥时的数据迁移成本,有效提升了区块链的便利性和可维护性。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的基于区块链系统的数据处理方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的基于区块链系统的数据处理方法的实施例。
图19示出了根据本申请的一个实施例的基于区块链系统的数据处理装置的框图,该区块链系统中的链上地址关联有用于存储数据的数据账户,该基于区块链系统的数据处理装置可以设置在区块链共识节点内。
参照图19所示,根据本申请的一个实施例的基于区块链系统的数据处理装置1900,包括:接收单元1902、第一处理单元1904、验证单元1906和第二处理单元1908。
其中,接收单元1902配置为接收区块链使用方发送的用于进行数据账户迁移的第一交易信息,所述第一交易信息中包含有待迁移数据账户、第一字符串、所要迁移到的新链上地址、所述新链上地址对应的公钥、所述新链上地址对应的私钥对所述第一字符串的签名信息;第一处理单元1904配置为对所述第一交易信息进行共识处理;验证单元1906配置为在对所述第一交易信息共识完成之后,根据所述新链上地址对应的公钥对所述第一交易信息中包含的签名信息进行验证,并验证所述区块链使用方的原链上地址是否与所述待迁移数据账户相关联;第二处理单元1908配置为若对所述签名信息验证通过、且所述原链上地址与所述待迁移数据账户相关联,则将所述待迁移数据账户从与所述原链上地址相关联调整为与所述新链上地址相关联。
在本申请的一些实施例中,基于前述方案,所述第一交易信息由所述区块链使用方的原链上地址对应的私钥进行签名;所述第一处理单元1904配置为:在接收到所述第一交易信息之后,通过所述区块链使用方的原链上地址对应的公钥对所述第一交易信息进行签名验证,并在验证通过后对所述第一交易信息进行打包,以对打包生成的区块进行共识处理。
在本申请的一些实施例中,基于前述方案,所述数据账户包括业务数据账户;所述接收单元1902还配置为:接收用于创建业务数据账户的第二交易信息,所述第二交易信息中包含有待创建的业务数据账户信息;所述第一处理单元1904还配置为:对所述第二交易信息进行验证和共识处理;所述数据处理装置1900还包括:第三处理单元,配置为在对所述第二交易信息共识完成之后,根据所述第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户,并将创建的业务数据账户与所述第二交易信息的发送方链上地址进行关联。
在本申请的一些实施例中,基于前述方案,所述待创建的业务数据账户信息包括:待创建的业务数据账户标识和待创建的业务数据账户所需的字段信息;所述第三处理单元配置为:若根据所述待创建的业务数据账户标识检测到不存在对应的业务数据账户,则创建与所述业务数据账户标识对应的业务数据账户,并根据所述字段信息创建对应的字段。
在本申请的一些实施例中,基于前述方案,所述第三处理单元还配置为:在根据所述第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户之后,将创建的业务数据账户的操作权限分配给所述第二交易信息的发送方。
在本申请的一些实施例中,基于前述方案,所述数据账户包括业务数据账户;所述接收单元1902还配置为:接收用于触发区块链智能合约执行合约内注册方法的第三交易信息,所述区块链智能合约内包含的注册方法用于创建业务数据账户;所述第一处理单元1904还配置为:对所述第三交易信息进行共识处理;所述数据处理装置1900还包括:第四处理单元,配置为在对所述第三交易信息共识完成之后,触发所述区块链智能合约创建业务数据账户,并将创建的业务数据账户与所述第三交易信息的发送方链上地址进行关联。
在本申请的一些实施例中,基于前述方案,所述第四处理单元还配置为:在触发所述区块链智能合约创建业务数据账户之后,将创建的业务数据账户的操作权限分配给所述区块链智能合约。
在本申请的一些实施例中,基于前述方案,所述第四处理单元还配置为:在触发所述区块链智能合约创建业务数据账户之后,根据所述区块链智能合约的地址信息生成创建的业务数据账户的标识。
在本申请的一些实施例中,基于前述方案,所述数据账户包括系统数据账户,所述系统数据账户是在所述区块链系统中注册链上地址之后自动生成的,所述系统数据账户用于存储对应的链上地址所需的数据。
在本申请的一些实施例中,基于前述方案,所述接收单元1902还配置为:接收用于访问数据账户的第四交易信息,所述第四交易信息中包含有待访问的数据账户信息和访问需求信息;所述第一处理单元1904还配置为:对所述第四交易信息进行验证和共识处理;所述数据处理装置1900还包括:第五处理单元,配置为在对所述第四交易信息共识完成之后,根据所述第四交易信息的发送方链上地址查找所述待访问的数据账户信息,若查找到所述待访问的数据账户信息、且所述第四交易信息的发送方有权限访问查找到的数据账户,则根据所述访问需求信息对查找到的数据账户进行访问。
在本申请的一些实施例中,基于前述方案,所述访问需求信息包括需要变更的字段内容信息。
在本申请的一些实施例中,基于前述方案,所述接收单元1902还配置为:接收用于触发区块链智能合约执行的第五交易信息;所述第一处理单元1904还配置为:对所述第五交易信息进行验证和共识处理;所述数据处理装置1900还包括:第六处理单元,配置为在对所述第五交易信息进行验证和共识处理之后,触发所述区块链智能合约执行,在所述区块链智能合约的执行过程中,调用数据账户访问接口对与所述区块链智能合约对应的数据账户进行访问。
在本申请的一些实施例中,基于前述方案,与所述区块链智能合约对应的数据账户包括:根据所述区块链智能合约的地址信息生成的业务数据账户的标识所对应的数据账户;其中,所述数据账户访问接口在确定所述区块链智能合约有权限访问与所述区块链智能合约对应的数据账户时,执行对与所述区块链智能合约对应的数据账户的访问操作。
在本申请的一些实施例中,基于前述方案,所述区块链使用方发送的交易信息中包含有交易类型字段,所述交易类型字段的值用于表示交易信息的功能类型。
在本申请的一些实施例中,基于前述方案,所述数据账户包括业务数据账户,同一个链上地址关联有至少一个业务数据账户,不同的业务数据账户对应于不同的业务类型。
在本申请的一些实施例中,基于前述方案,所述区块链系统中包含有数据账户树,所述数据账户树与所述区块链系统中的链上地址相关联,所述数据账户树中包含有根节点和处于所述根节点下的至少一个数据账户。
图20示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图20示出的电子设备的计算机系统2000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图20所示,计算机系统2000包括中央处理单元(Central Processing Unit,CPU)2001,其可以根据存储在只读存储器(Read-Only Memory,ROM)2002中的程序或者从存储部分2008加载到随机访问存储器(Random Access Memory,RAM)2003中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 2003中,还存储有系统操作所需的各种程序和数据。CPU 2001、ROM 2002以及RAM 2003通过总线2004彼此相连。输入/输出(Input/Output,I/O)接口2005也连接至总线2004。
以下部件连接至I/O接口2005:包括键盘、鼠标等的输入部分2006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分2007;包括硬盘等的存储部分2008;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分2009。通信部分2009经由诸如因特网的网络执行通信处理。驱动器2010也根据需要连接至I/O接口2005。可拆卸介质2011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2010上,以便于从其上读出的计算机程序根据需要被安装入存储部分2008。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分2009从网络上被下载和安装,和/或从可拆卸介质2011被安装。在该计算机程序被中央处理单元(CPU)2001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (20)
1.一种基于区块链系统的数据处理方法,其特征在于,所述区块链系统中的链上地址关联有用于存储数据的数据账户,所述方法包括:
接收区块链使用方发送的用于进行数据账户迁移的第一交易信息,所述第一交易信息中包含有待迁移数据账户、第一字符串、所要迁移到的新链上地址、所述新链上地址对应的公钥、所述新链上地址对应的私钥对所述第一字符串的签名信息;
对所述第一交易信息进行共识处理;
在对所述第一交易信息共识完成之后,根据所述新链上地址对应的公钥对所述第一交易信息中包含的签名信息进行验证,并验证所述区块链使用方的原链上地址是否与所述待迁移数据账户相关联;
若对所述签名信息验证通过、且所述原链上地址与所述待迁移数据账户相关联,则将所述待迁移数据账户从与所述原链上地址相关联调整为与所述新链上地址相关联。
2.根据权利要求1所述的基于区块链系统的数据处理方法,其特征在于,所述第一交易信息由所述区块链使用方的原链上地址对应的私钥进行签名;所述数据处理方法还包括:
在接收到所述第一交易信息之后,通过所述区块链使用方的原链上地址对应的公钥对所述第一交易信息进行签名验证,并在验证通过后对所述第一交易信息进行打包,以对打包生成的区块进行共识处理。
3.根据权利要求1所述的基于区块链系统的数据处理方法,其特征在于,所述数据账户包括业务数据账户,所述方法还包括:
接收用于创建业务数据账户的第二交易信息,所述第二交易信息中包含有待创建的业务数据账户信息;
对所述第二交易信息进行验证和共识处理;
在对所述第二交易信息共识完成之后,根据所述第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户,并将创建的业务数据账户与所述第二交易信息的发送方链上地址进行关联。
4.根据权利要求3所述的基于区块链系统的数据处理方法,其特征在于,所述待创建的业务数据账户信息包括:待创建的业务数据账户标识和待创建的业务数据账户所需的字段信息;
根据所述第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户,包括:
若根据所述待创建的业务数据账户标识检测到不存在对应的业务数据账户,则创建与所述业务数据账户标识对应的业务数据账户,并根据所述字段信息创建对应的字段。
5.根据权利要求3所述的基于区块链系统的数据处理方法,其特征在于,所述方法还包括:
在根据所述第二交易信息中包含的待创建的业务数据账户信息创建业务数据账户之后,将创建的业务数据账户的操作权限分配给所述第二交易信息的发送方。
6.根据权利要求1所述的基于区块链系统的数据处理方法,其特征在于,所述数据账户包括业务数据账户,所述方法还包括:
接收用于触发区块链智能合约执行合约内注册方法的第三交易信息,所述区块链智能合约内包含的注册方法用于创建业务数据账户;
对所述第三交易信息进行共识处理;
在对所述第三交易信息共识完成之后,触发所述区块链智能合约创建业务数据账户,并将创建的业务数据账户与所述第三交易信息的发送方链上地址进行关联。
7.根据权利要求6所述的基于区块链系统的数据处理方法,其特征在于,所述方法还包括:
在触发所述区块链智能合约创建业务数据账户之后,将创建的业务数据账户的操作权限分配给所述区块链智能合约。
8.根据权利要求6所述的基于区块链系统的数据处理方法,其特征在于,在触发所述区块链智能合约创建业务数据账户之后,根据所述区块链智能合约的地址信息生成创建的业务数据账户的标识。
9.根据权利要求1所述的基于区块链系统的数据处理方法,其特征在于,所述数据账户包括系统数据账户,所述系统数据账户是在所述区块链系统中注册链上地址之后自动生成的,所述系统数据账户用于存储对应的链上地址所需的数据。
10.根据权利要求1所述的基于区块链系统的数据处理方法,其特征在于,所述方法还包括:
接收用于访问数据账户的第四交易信息,所述第四交易信息中包含有待访问的数据账户信息和访问需求信息;
对所述第四交易信息进行验证和共识处理;
在对所述第四交易信息共识完成之后,根据所述第四交易信息的发送方链上地址查找所述待访问的数据账户信息;
若查找到所述待访问的数据账户信息、且所述第四交易信息的发送方有权限访问查找到的数据账户,则根据所述访问需求信息对查找到的数据账户进行访问。
11.根据权利要求10所述的基于区块链系统的数据处理方法,其特征在于,所述访问需求信息包括需要变更的字段内容信息。
12.根据权利要求1所述的基于区块链系统的数据处理方法,其特征在于,所述方法还包括:
接收用于触发区块链智能合约执行的第五交易信息;
对所述第五交易信息进行验证和共识处理;
在对所述第五交易信息进行验证和共识处理之后,触发所述区块链智能合约执行;
在所述区块链智能合约的执行过程中,调用数据账户访问接口对与所述区块链智能合约对应的数据账户进行访问。
13.根据权利要求12所述的基于区块链系统的数据处理方法,其特征在于,与所述区块链智能合约对应的数据账户包括:根据所述区块链智能合约的地址信息生成的业务数据账户的标识所对应的数据账户;
其中,所述数据账户访问接口在确定所述区块链智能合约有权限访问与所述区块链智能合约对应的数据账户时,执行对与所述区块链智能合约对应的数据账户的访问操作。
14.根据权利要求1至13中任一项所述的基于区块链系统的数据处理方法,其特征在于,所述区块链使用方发送的交易信息中包含有交易类型字段,所述交易类型字段的值用于表示交易信息的功能类型。
15.根据权利要求1至13中任一项所述的基于区块链系统的数据处理方法,其特征在于,所述数据账户包括业务数据账户,同一个链上地址关联有至少一个业务数据账户,不同的业务数据账户对应于不同的业务类型。
16.根据权利要求1至13中任一项所述的基于区块链系统的数据处理方法,其特征在于,所述区块链系统中包含有数据账户树,所述数据账户树与所述区块链系统中的链上地址相关联,所述数据账户树中包含有根节点和处于所述根节点下的至少一个数据账户。
17.一种基于区块链系统的数据处理装置,其特征在于,所述区块链系统中的链上地址关联有用于存储数据的数据账户,所述装置包括:
接收单元,配置为接收区块链使用方发送的用于进行数据账户迁移的第一交易信息,所述第一交易信息中包含有待迁移数据账户、第一字符串、所要迁移到的新链上地址、所述新链上地址对应的公钥、所述新链上地址对应的私钥对所述第一字符串的签名信息;
第一处理单元,配置为对所述第一交易信息进行共识处理;
验证单元,配置为在对所述第一交易信息共识完成之后,根据所述新链上地址对应的公钥对所述第一交易信息中包含的签名信息进行验证,并验证所述区块链使用方的原链上地址是否与所述待迁移数据账户相关联;
第二处理单元,配置为若对所述签名信息验证通过、且所述原链上地址与所述待迁移数据账户相关联,则将所述待迁移数据账户从与所述原链上地址相关联调整为与所述新链上地址相关联。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至16中任一项所述的基于区块链系统的数据处理方法。
19.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至16中任一项所述的基于区块链系统的数据处理方法。
20.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取并执行所述计算机指令,使得所述计算机设备执行如权利要求1至16中任一项所述的基于区块链系统的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111229470.1A CN116010371A (zh) | 2021-10-21 | 2021-10-21 | 基于区块链系统的数据处理方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111229470.1A CN116010371A (zh) | 2021-10-21 | 2021-10-21 | 基于区块链系统的数据处理方法、装置、介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010371A true CN116010371A (zh) | 2023-04-25 |
Family
ID=86021683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111229470.1A Pending CN116010371A (zh) | 2021-10-21 | 2021-10-21 | 基于区块链系统的数据处理方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010371A (zh) |
-
2021
- 2021-10-21 CN CN202111229470.1A patent/CN116010371A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11477032B2 (en) | System and method for decentralized-identifier creation | |
US11921703B2 (en) | Dag based methods and systems of transaction processing in a distributed ledger | |
US11025435B2 (en) | System and method for blockchain-based cross-entity authentication | |
US11533164B2 (en) | System and method for blockchain-based cross-entity authentication | |
US11611560B2 (en) | Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform | |
US11636095B2 (en) | System and method for providing a representational state transfer proxy service for a blockchain cloud service | |
US11418510B2 (en) | Systems, methods, and apparatuses for implementing a role based access control and authorization validator via blockchain smart contract execution using distributed ledger technology (DLT) | |
Du et al. | An optimized consortium blockchain for medical information sharing | |
CN113711536B (zh) | 从区块链网络中提取数据 | |
CN112000976B (zh) | 区块链系统的认证管理方法、装置、介质及电子设备 | |
TWI717927B (zh) | 具有運算池之混合區塊鏈架構 | |
US20240054125A1 (en) | Systems and methods of transaction identification generation for transaction-based environment | |
CN112154434A (zh) | 区块链上智能合约组的自动数据投影 | |
CN115705571A (zh) | 保护可审计的帐户的隐私 | |
CN112926981B (zh) | 用于区块链的交易信息处理方法、装置、介质及电子设备 | |
CN116010371A (zh) | 基于区块链系统的数据处理方法、装置、介质及电子设备 | |
CN116015614A (zh) | 基于区块链系统的密钥处理方法、装置、介质及电子设备 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
US20240137208A1 (en) | Asset transferring method and apparatus based on multiple blockchains, device, medium, and product | |
CN115996131A (zh) | 基于区块链的密钥处理方法、装置、介质及电子设备 | |
CN116957566A (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: 40085234 Country of ref document: HK |