一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链的数据资产流转方法及计算机可读存储介质与流程

2022-04-27 02:40:24 来源:中国专利 TAG:


1.本发明涉及网络信息技术,特别是涉及一种基于区块链的数据资产流转方法及计算机可读存储介质。


背景技术:

2.以太坊(英文ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(ether,简称“eth”)提供去中心化的以太虚拟机(ethereum virtual machine,简称evm)来处理点对点合约。
3.现有的将区块链技术应用于溯源领域的解决方案,将所有流程及相关数据都使用智能合约来设计和处理,导致智能合约消耗大量的算力和存储空间。存储数字资产是通过智能合约来完成所有信息的存储,在智能合约内建立数字资产及相关流转信息和所有权转移信息的数据结构,对数字资产所有的设计和操作都是完全通过调用智能合约来完成,或者像以太坊那样直接以余额作为唯一资产来存储,没有设计一个专门的数据结构来代表数字资产。
4.因此现有使用智能合约实现溯源的方法,消耗算力过大,占用存储过多。


技术实现要素:

5.本发明的一个目的是要提供一种减少区块链的算力和存储空间的基于区块链的数据资产流转方法及计算机可读存储介质。
6.根据本发明的一个方面,提供了一种基于区块链的数据资产流转方法,其包括:
7.发起节点根据流转资产的类型向区块链查询资产信息,资产信息存储于预先建立的资产集合中;
8.发起节点向流转对象节点发起资产流转请求,资产流转请求中包含资产信息;
9.发起节点与流转对象节点进行流转确认,并在确认完成后根据流转资产的类型存储流转信息,并在区块链上发布新的区块。
10.可选地,流转资产的类型包括公开资产流转;资产集合中存储有公开资产标识字典,资产标识字典用于存储资产标识与公开资产信息的对应关系,区块链的节点本地维护的用户状态树中记录有公开资产标识。
11.可选地,在流转资产的类型为公开资产流转的情况下,资产信息包括被流转的资产标识,并且根据流转资产的类型存储流转信息的步骤包括:
12.对公开资产流转进行自动审核;
13.若审核通过,发起节点与流转对象节点在各自用户状态树的资产账户中存储流转后的资产标识,在公开资产标识字典中存储流转的资产产权数据。
14.可选地,对公开资产流转进行自动审核的步骤之前还包括:
15.确定流转的公开资产是否分割,若是,则对公开资产进行分割,然后执行对公开资产流转进行自动审核的步骤。
16.可选地,资产信息还包括:被流转的资产份额;对公开资产进行分割的步骤包括:发起节点与流转对象节点分别对被流转的资产份额进行修改。
17.可选地,流转资产的类型包括隐私资产流转,资产集合中存储有隐私资产哈希值集合,隐私资产哈希值集合用于存储隐私资产的哈希值;区块链的节点本地维护的用户状态树中记录有节点自身的隐私资产哈希值。
18.可选地,在流转资产的类型为隐私资产流转的情况下,资产信息包括被流转的哈希值,发起节点与流转对象节点进行流转确认的步骤包括:发起节点与流转对象节点互相传输被流转的隐私资产的哈希值,经过双方签名后重新生成新的资产证明权属的哈希值。
19.可选地,区块链使用以太坊协议,资产集合使用以太坊的智能合约保存。
20.可选地,在区块链上发布新的区块的步骤包括:在全网广播流转确认区块,由其他节点进行验证,并在验证通过后在区块链上添加流转确认区块。
21.特别地,根据本发明的另一个方面,还提供了一种计算机可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的基于区块链的数据资产流转方法。
22.本发明的基于区块链的数据资产流转方法,资产信息存储于预先建立的资产集合中,发起节点向流转对象节点发起包含资产信息的资产流转请求,流转对象节点利用资产信息进行流转确认,减少了调用智能合约的次数,达到对区块链的算力和存储空间进行更科学的分配的目的,提高了区块链的运行效率。
23.进一步地,本发明的基于区块链的数据资产流转方法,针对公开资产和隐私资产分别进行优化,经过实际测试,资产交易算力和存储消耗均分大大减小,适用的数字资产类型更多。
24.根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
25.后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
26.图1是根据本发明一个实施例的基于区块链的数据资产流转方法的示意图;
27.图2是根据本发明一个实施例的基于区块链的数据资产流转方法中资产信息存储方式的示意图;
28.图3是根据现有技术中世界状态树的示例图;
29.图4是根据本发明一个实施例的基于区块链的数据资产流转方法中世界状态树的示例图;
30.图5是根据现有技术中进行公开资产流转的流程图;
31.图6是根据本发明一个实施例的基于区块链的数据资产流转方法进行公开资产流转的流程图;
32.图7是根据现有技术中进行隐私资产流转的流程图;
33.图8是根据本发明一个实施例的基于区块链的数据资产流转方法进行隐私资产流
转的流程图;以及
34.图9是根据本发明一个实施例的机器可读存储介质的示意框图。
具体实施方式
35.本实施例的基于区块链的数据资产流转方法,基于以太坊的交易过程进行优化改进,大大节省了算力和存储空间。相比较地,传统的以太坊交易过程包括:
36.发送交易请求。发起节点(用户a)按照格式要求在以太坊网络中发起一个交易请求,该请求被传向用户a的对等节点。
37.交易请求验证和广播。网络上的节点(用户b)同步到此交易,检查交易是否有效、格式是否正确。如果符合要求,计算可能的最大交易费用,确定流转对象节点的地址,并在本地的区块链上减去相应的费用,如果账户余额不足,则返回错误,这条交易废弃。对符合要求的交易请求,用户b将其放在交易存储池中,并且转发给其他节点。其他收到交易请求的节点重复用户b的处理过程。
38.记账节点打包交易和执行合约。对于转账交易,获得记账权的节点将该交易和其他交易一起打包到区块中;对于合约交易,该交易和其他交易一起打包到区块中,并在本地的evm(以太坊虚拟机)上运行被调用的合约代码,直到代码运行结束或gas(以太坊的交易手续费)用完。
39.区块广播。用户b把包含用户a的交易请求的区块发送至对等节点,并在全网传播。
40.区块验证同步。其他节点收到该区块后,验证区块,如果区块通过验证,节点将内存池中原来用户a的交易请求删除,同时同步该区块,将其添加到本地的区块链中。对于区块中的执行智能合约的交易,其他节点会在本地的evm 上运行该智能合约,并互相验证运行的结果。
41.上述过程中,流程及相关数据都使用智能合约来设计和处理,而在智能合约内建立数字资产及相关流转信息和所有权转移信息的数据结构,对数字资产所有的设计和操作都是完全通过调用智能合约来完成,导致智能合约消耗大量的算力和存储空间。也即对于公开数字资产交易时,需要用户a先调用智能合约查询出数字资产信息后发送给用户b,用户b再根据收到的信息再调用智能合约验证。
42.本实施例的基于区块链的数据资产流转方法,减少了调用智能合约的次数,解决了上述问题。图1是根据本发明一个实施例的基于区块链的数据资产流转方法的示意图。该基于区块链的数据资产流转方法包括:
43.步骤s102,发起节点根据流转资产的类型向区块链查询资产信息,资产信息存储于预先建立的资产集合中,上述资产可以包括公开资产以及隐私资产,相应地,流转资产的类型可以包括公开资产流转和隐私资产流转。数字资产与传统资产相类似,例如隐私资产可以包括个人银行账户中的财产,其在常规情况下应该保密,确保隐私性;而公开资产可以为个人对于某一音乐的版权、上市公司的季度财报、收购重组等资产信息。数字资产如同传统资产一样,可能面临拆分问题。拆分时有两种情况,一是同一资产拆分为两份,每份有一个账户掌握,类似于一套两间屋的门面房,分别出租给两个人,每个人的使用权确定为自己所租赁的那间房屋,这样在二人账户下,则分别记录自己对应的那间房屋的使用权为100%。第二种情况为同一资产,不同账户按份共有,类似于共有产权的房屋,甲占有30%产
权,乙占有70产权,甲和乙共同持有一套房屋。这种可拆分的资产一般针对于公开资产。
44.资产集合中存储有公开资产标识字典和隐私资产哈希值集合,其中资产标识字典用于存储资产标识与公开资产信息的对应关系,隐私资产哈希值集合用于存储隐私资产的哈希值。
45.对于公开资产,区块链的节点本地维护的用户状态树中记录有公开资产标识以及资产份额;对于隐私资产,区块链的节点本地维护的用户状态树中记录有节点自身的隐私资产哈希值。
46.步骤s104,发起节点向流转对象节点发起资产流转请求,资产流转请求中包含资产信息。
47.在流转资产的类型为公开资产流转的情况下,资产信息包括被流转的资产标识。发起节点与流转对象节点进行公开资产流转确认的过程包括:流转对象节点同一流转请求,智能合约进行自动审核,如需要分割资产,则首先资产分割。也即在对公开资产流转进行自动审核的步骤之前还可以包括:确定流转的公开资产是否分割,若是,则对公开资产进行分割,然后执行对公开资产流转进行自动审核的步骤。
48.资产信息还包括被流转的资产份额;对公开资产进行分割的过程可以为:发起节点与流转对象节点分别对被流转的资产份额进行修改。
49.在流转资产的类型为隐私资产流转的情况下,资产信息包括被流转的哈希值。发起节点与流转对象节点进行隐私资产流转确认的过程包括:发起节点与流转对象节点互相传输被流转的隐私资产的哈希值,经过双方签名后重新生成新的资产证明权属的哈希值。
50.步骤s106,起节点与流转对象节点进行流转确认,并在确认完成后根据流转资产的类型存储流转信息,并在区块链上发布新的区块。
51.对于公开资产,存储公开资产流转信息的过程可以包括:对公开资产流转进行自动审核;若审核通过,发起节点与流转对象节点在各自用户状态树的资产账户中存储流转后的资产标识,在公开资产标识字典中存储流转的资产产权数据。
52.对于隐私资产,存储隐私资产流转信息的过程可以包括:对流转后后的隐私资产的哈希值进行存储。
53.本实施例的区块链使用以太坊协议,资产集合使用以太坊的智能合约保存。在区块链上发布新的区块的步骤包括:在全网广播流转确认区块,由其他节点进行验证,并在验证通过后在区块链上添加流转确认区块。
54.图2是根据本发明一个实施例的基于区块链的数据资产流转方法中资产信息存储方式的示意图。存储数据分为以下几类:
55.(1)隐私资产,仅保存哈希值。其特点为:数据量小、不对外公开,所以在世界状态树上的个人账户中维护。
56.(2)公开资产标识(id),保存id值和简要资产说明(如资产权属。其特点为:数据量小、与公开数据相互链接,在世界状态树上的个人账户中维护。
57.(3)公开资产信息,加密保存所有公开资产信息。其特点为:数据量大、隐私性需结合使用者相关密钥进行管理、对计算及存储空间要求高,结合智能合约进行保存及操作。
58.隐私资产哈希值和公开资产标识保存在资产账户210中,而公开资产信息保存在智能合约数据库中。相比于现有方式中,将隐私资产哈希值、公开资产信息、资产账户信息
统一保存在智能合约数据库。本实施的方式通过不同数据的分类存储,实现在资产流转过程节省算力及存储量。
59.图3是根据现有技术中世界状态树的示例图,图4是根据本发明一个实施例的基于区块链的数据资产流转方法中世界状态树的示例图。
60.现有以太坊采用基于账户的模式,也就是说系统中显示记录着每个账户的当前状态信息,其采用的数据结构为默克尔前缀树(merkle patricia trie,简称mpt)。
61.mpt树的节点包括:根节点301(root),扩展节点302(extension node)、分支节点303(branch node)、叶子节点304(leaf node),其中扩展节点302 只能有一个子节点,分支节点303可以有多个子节点,叶子节点304没有子节点。
62.key只在扩展节点302和叶子节点304中存在,分支节点303中没有key。 value用来存储节点数值的,不同的节点类型对应的value值也会不同,主要如下几种情况:叶子节点304,value值存储的是一个数据项的内容。扩展节点 302,value值存储的是分支节点的哈希值;分支节点303,value值存储的是刚好在分支节点结束时的值,若没有节点在分支节点中结束时,value值没有存储数据。
63.以图3为例,在查询key:355的数据时,从根节点301其实,确定出扩展节点302的key:a71对应的分支节点的哈希值hash,确定出分支节点303,进一步找到叶子节点304key:355对应的value值45。
64.每个运行以太坊客户端的节点都会在本地维护一个用户状态树,当有新的区块打包到区块链上之后,所有的以太坊节点(挖出区块的节点除外)的就会执行最新区块中的交易,对本地用户的状态树进行维护,得到新的用户状态树,状态树中维护着所有账户的当前余额。用户状态树的信息并不保存在区块中,区块中仅仅保存了最新的状态树组成的根哈希值。
65.每次发布新的区块时,每个存有状态树的节点就会根据区块中的交易更新对应的账户树中的内容,每个节点根据区块上的交易独立的修改状态树,最后生成状态树的根哈希值,随后用本地生成的状态树哈希值和新发布区块中的状态树的root字段进行比较,如果相同,表示账户状态和发布区块的节点的账户状态保持了一致。以太坊中每个节点独立的运行每个区块上的交易,随后验证区块,一个合法的区块,所有节点运行过后其账户状态就能保持一致。
66.本实施例的世界状态树中,根节点311(root),扩展节点312(extensionnode)、分支节点313(branch node)、叶子节点314(leaf node)的结构相类似,区别在于叶子节点314并非存储value,而是资产集合320(assets)的信息。在查询到叶子节点key:355的数据时,其得到的是资产集合320的地址。资产集合320存储公开资产标识字典321,以及隐私资产哈希值集合322。
67.基于上述存储结构,对于公开资产,区块链世界状态树资产账户中,记录资产标识及所占产权份额。区块链通过智能合约记录所有上链资产,在资产流转时,由于涉及到资产分割、权属分割等行为会消耗大量算力,且大量数字资产及其详细信息储存在世界状态树中也会消耗大量存储空间的同时进行共识时需要对世界状态树上的数据更新的量太大会影响共识效率,所以将资产记录使用智能合约保存。
68.因此,本实施例的方案在以太坊世界状态树的基础上,将账户余额替换为数字资
产集合(assets),用户账户下的所有数字资产均存在于这个集合中。
69.公开资产流转流程包括:(1)用户a通过智能合约获取资产信息;(2) 用户a向智能合约发起资产流转交易请求;(3)参与交易的用户b同意流转交易请求;(4)智能合约自动审核完成,如有需要,先对资产进行分割;(5) 智能合约将资产权属信息重新赋值;(6)当新区块生成,各节点进行世界状态树维护时,世界状态树上用户a与用户b的个人账户更新自己交易后相应保留的资产标识和产权占比。
70.隐私资产流转流转流程包括:用户a和b交易隐私资产时,不可将资产再次进行拆分,智能合约也不保存隐私资产信息。交易前,用户a和用户b的个人账户中,直接保存隐私资产证明权属的哈希值,交易流转时将哈希值结合流转信息及双方签名进行再次计算,将计算结果作为新的资产证明权属的哈希值。
71.图5是根据现有技术中进行公开资产流转的流程图,图6是根据本发明一个实施例的基于区块链的数据资产流转方法进行公开资产流转的流程图。
72.现有技术中进行公开资产流转的过程包括:
73.步骤s502,用户a准备向用户b进行公开资产转移。
74.步骤s504,用户a通过智能合约查询产权信息。在一个具体实例中,通过智能合约查询产权信息的查询量可能达到100mb。
75.步骤s506,用户a和用户b共同确认交易。
76.步骤s508,产权id存储于智能合约的资产账户。由于资产账户保存在智能合约中,智能合约运行在evm虚拟机之上,所以可能占据20mb以上的空间,并需要与存储量相应的计算量。
77.步骤s510,产权信息使用智能合约进行存储。这可能占据80mb以上的空间,并需要与存储量相应的计算量。
78.上述过程中查询消耗100mb,传输消耗100mb,存储消耗100mb,整体的消耗达到300mb。
79.相对比地,本实施例的基于区块链的数据资产流转方法进行公开资产流转的过程包括:
80.步骤s602,用户a准备向用户b进行公开资产转移。
81.步骤s604,用户a向区块链查询资产id,向用户b发送资产id。直接查询资产账户中的资产id可能需要的查询量可能为1mb,用户a向用户b发送的数据量可能同样为1mb。
82.步骤s606,用户a和用户b共同确认交易。可能占据1mb以上的空间,并需要与存储量相应的计算量。
83.步骤s608,流转后资产id在资产账户存储。这可能占据80mb以上的空间,并需要与存储量相应的计算量。
84.步骤s610,产权信息使用智能合约进行存储。
85.上述过程中查询消耗1mb,传输消耗1mb,存储消耗81mb,整体的消耗大体为83mb。
86.上述两个示例执行大体相当的流转过程,具体的消耗相差较大。现有方式进行公开资产交易时,查询、传输和存储变更消耗的算力是同等的,而本实施例的方案查询和传输消耗的算力极少,存储变更消耗的算力最多,但是也达不到改进前存储变更时消耗的算力值,所以,本实施例的方案可以大大降低公开资产交易时消耗的算力。由于现有方案产权id
存储在智能合约内,由于智能合约运行evm虚拟机之上,需要占用一定的空间及存储时相应计算量。而本实施例的方案,由于产权id存储在资产账户中,相应占用的空间及存储时相应计算量就会减少很多。
87.图7是根据现有技术中进行隐私资产流转的流程图,图8是根据本发明一个实施例的基于区块链的数据资产流转方法进行隐私资产流转的流程图。
88.现有技术中进行隐私资产流转的过程包括:
89.步骤s702,用户a准备向用户b进行隐私资产转移。
90.步骤s704,用户a向区块链查询产权哈希值。在一个具体实例中,通过智能合约查询产权哈希值,由于智能合约运行于evm上,查询消耗算力可能达到20mb。
91.步骤s706,用户a和用户b共同确认交易,隐私资产在智能合约中进行变更。
92.步骤s708,在资产账户中变更哈希存储信息。由于资产账户保存在智能合约中,智能合约运行在evm虚拟机之上,两账户供消耗算力20mb。
93.上述过程中查询消耗20mb,传输消耗1mb,存储消耗20mb,整体的消耗大约41mb。
94.相对比地,本实施例的基于区块链的数据资产流转方法进行隐私资产流转的过程包括:
95.步骤s802,用户a准备向用户b进行隐私资产转移。
96.步骤s804,用户a向区块链查询产权哈希值。查询消耗算力可能为1mb。
97.步骤s806,用户a和用户b共同确认交易,隐私资产在智能合约中进行变更。
98.步骤s808,在资产账户中变更哈希存储信息。两账户消耗算力2mb。
99.上述过程中查询消耗1mb,传输消耗1mb,存储消耗2mb,整体的消耗大约4mb。
100.由此可见,在进行隐私资产交易时,本实施例的方案同样可以大大降低进行隐私资产交易时的算力。
101.本实施例还提供了一种计算机可读存储介质。图9是根据本发明一个实施例的机器可读存储介质90的示意框图。该机器可读存储介质90上存储有机器可执行程序910,机器可执行程序910被处理器执行时实现上述任一种的基于区块链的数据资产流转方法。
102.本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的可读存储介质90包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
103.此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
104.因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现
所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
105.具备上述可读存储介质90的计算设备可以通过网络互联,其可以使用任何合适的接口或协议(诸如因特网小型计算机系统接口等)来传输数据。网络可以是蜂窝网络、无线电网络、广域网(wan))、局域网(lan)或因特网等等,从而可以通过各种网络连接到其他计算设备。
106.至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献