本发明涉及数据存储技术领域,尤其涉及一种基于智能合约的芯片研发交易数据存储方法及系统。
背景技术:
芯片又称微电路(microcircuit)、微芯片(microchip)、集成电路(integratedcircuit,ic),具体是指内含集成电路的硅片,具有较小的体积,通常是计算机其其他电子设备的重要组成部分。芯片研发是一个复杂的过程,一般需要经过软件实现芯片功能、形成综合网表、电路图设计、性能仿真验证、版图布局布线、版图对电路图验证、工艺设计规则验证、版图的物理验证、流片验证等多个环节,因此一个芯片的研发通常需要多个厂商的相互配合。
目前,在芯片研发和芯片交易过程中,相互配合的厂商之间存在交易行为,而交易双方进行交易的规则通过线下合同进行约束,当出现违约行为时维权困难,且交易过程所产生的交易数据无法安全存储以备作为证据使用,从而导致芯片研发交易的安全性较低。
因此,针对以上不足,需要提供一种能够提高芯片研发交易安全性的数据存储方法。
技术实现要素:
本发明要解决的技术问题在于芯片研发和芯片交易过程中出现违约后难以追责,且难以获取芯片研发或芯片交易过程中的交易数据,造成芯片研发与芯片交易安全性较低,针对现有技术中的缺陷,提供一种防止交易方违约且便于获取交易数据作为证据的技术方案。
为了解决上述技术问题,本发明提供了一种基于智能合约的芯片研发交易数据存储方法,包括:
在区块链上存储针对一芯片研发交易目标的智能合约;
获取预设时间段内至少两个交易节点根据所述智能合约参与所述芯片研发交易目标的过程中所产生的交易数据和智能合约消息数据;
确定针对所述预设时间段的至少两个共识节点;
利用所述至少两个共识节点依次循环对根据所述交易数据和所述智能合约消息数据而获得的区块头进行至少一次哈希运算,其中,每一次哈希运算获得一个哈希值;
将目标共识节点确定为记账节点,其中,所述目标共识节点优先运算出小于预设的自主挖矿目标值的哈希值;
通过所述记账节点将所述交易数据和所述智能合约消息数据存储在生成的新区块中,并将所述新区块链接到区块链上。
可选地,当所述芯片研发交易目标为芯片实物买卖业务时,所述智能合约包括:
a1:指示买方交易节点输入的订单信息;
a2:判断买方交易节点是否支付与所述订单信息相对应的费用,如果是,执行a3,否则执行a1;
a3:判断卖方交易节点是否确认收款,如果是,执行a4,否则执行a2;
a4:指示卖方交易节点进行芯片实物发货;
a5:判断买方交易节点是否确认收货,如果是,确定交易结束,否则执行a4。
可选地,当所述芯片研发交易目标为芯片知识产权买卖业务时,所述智能合约包括:
b1:指示买方交易节点对卖方所销售的芯片知识产权的内容进行预览;
b2:判断买方交易节点是否支付与所述芯片知识产权相对应的费用,如果是,执行b3,否则执行b1;
b3:判断卖方交易节点是否确认收款,如果是,执行b4,否则执行b2;
b4:指示卖方交易节点对所述芯片知识产品的内容进行下载,并确定交易结束。
可选地,当所述芯片研发交易目标为芯片知识产权授权使用业务时,所述智能合约包括:
c1:指示买方交易节点对卖方所授权使用的芯片知识产权的内容进行预览;
c2:判断买方交易节点是否签署保密协议,如果是,执行c3,否则执行c1;
c3:指示买方交易节点对所述芯片知识产权进行试用;
c4:指示买方交易节点签署授权合同;
c5:判断买方交易节点是否支付获得使用所述芯片知识产权的费用,如果是,执行c6,否则执行c4;
c6:判断卖方交易节点是否确认收款,如果是,执行c7,否则执行c5;
c7:指示买方交易节点获得使用所述芯片知识产权的使用授权;
c8:判断卖方交易节点针对所述芯片知识产权的授权是否到期,如果是,确定交易结束,否则执行c7。
可选地,当所述芯片研发交易目标为芯片研发业务时,所述智能合约针对雇主交易节点和每一个雇员交易节点均包括:
d1:指示雇主交易节点提出芯片研发任务;
d2:指示雇员交易节点针对所述芯片研发任务中的一个研发模块设定研发节点和研发费用;
d3:判断雇主交易节点是否接受所述研发节点和所述研发费用,如果是,执行d4,否则执行d2;
d4:指示雇员交易节点对所述研发模块进行研发;
d5:判断雇主交易节点是否确认研发过程符合所述研发节点,如果是,执行d6,否则执行d4;
d6:判断雇主交易节点是否支付研发费用,如果是,执行d7,否则执行d5;
d7:判断雇员交易节点是否确认收款,如果是,确定所述研发模块的研发结束,否则执行d6。
可选地,所述确定针对所述预设时间段的至少两个共识节点,包括:
从至少两个系统节点中选择至少两个共识节点,其中,所述系统节点为始终在线稳定运行的节点;
或者,
从至少一个授权节点中筛选出至少一个目标授权节点,将所述至少一个目标授权节点和至少两个系统节点确定为所述共识节点,其中,所述系统节点为始终在线稳定运行的节点,所述授权节点为具有共识权限的从业用户节点,所述授权节点被选中作为所述目标授权节点的概率与所述授权节点对应的参与度成正比,所述参与度由所述授权节点的在线时间和评价得分中的部分或全部而确定。
可选地,所述利用所述至少两个共识节点依次循环对根据所述交易数据和所述智能合约消息数据而获得的区块头进行至少一次哈希运算,包括:
分别生成与每一个所述共识节点相对应的积分奖励交易信息,其中,针对每一个所述共识节点,如果该共识节点为所述系统节点,则该共识节点对应的所述积分奖励交易信息包括奖励积分值和奖励节点标识,所述奖励节点标识用于标识一个所述目标授权节点,如果该共识节点为所述授权节点,则该共识节点对应的所述积分奖励交易信息包括所述奖励积分值;
针对每一个所述共识节点,对该共识节点对应的所述积分奖励交易信息、所述交易数据和所述智能合约消息数据进行打包获得相对应的区块主体,并对所述区块主体进行哈希运算获得与该共识节点相对应的第一merkle树根哈希值;
根据预先确定的节点排序结果,每一个所述共识节点依次对相对应的区块头进行至少一次哈希运算而获得至少一个哈希值,其中,针对每一个所述共识节点,与该共识节点相对应的所述区块头包括有与该共识节点相对应的所述第一merkle树根哈希值、所述区块链上末位区块的第二merkle树根哈希值和自主挖矿随机数,所述自主挖矿随机数按照预设的规则变化,使得该共识节点每次对所述区块头进行哈希运算时所述区块头中包括有不同的所述自主挖矿随机数。
可选地,所述将目标共识节点确定为记账节点之后,进一步包括:
如果所述记账节点为所述系统节点,根据与所述记账节点相对应的所述积分奖励交易信息包括的所述奖励积分值和所述奖励节点标识,向所述奖励节点标识所标识的所述目标授权节点发放与所述奖励积分值相对应的积分;
如果所述记账节点为授权节点,根据与所述记账节点相对应的所述积分奖励交易信息包括的所述奖励积分值,向所述记账节点发放与所述奖励积分值相对应的积分。
本发明还提供了一种基于智能合约的芯片研发交易数据存储系统,包括:至少两个系统节点和至少两个交易节点,其中,
所述系统节点为始终在线稳定运行的节点;
所述至少两个系统节点,用于在区块链上存储针对一芯片研发交易目标的智能合约,并获取预设时间段内所述至少两个交易节点根据所述智能合约参与所述芯片研发交易目标的过程中所产生的交易数据和智能合约消息数据,以及确定针对所述预设时间段的至少两个共识节点;
所述至少两个共识节点,用于依次循环对根据所述交易数据和所述智能合约消息数据而获得的区块头进行至少一次哈希运算,并将目标共识节点确定为记账节点,其中,每个所述共识节点每一次哈希运算获得一个所述哈希值,所述目标共识节点优先运算出小于预设的自主挖矿目标值的哈希值;
所述记账节点,用于将所述交易数据和所述智能合约消息数据存储在生成的新区块中,并将所述新区块链接到区块链上。
可选地,该基于智能合约的芯片研发交易数据存储系统进一步包括:至少一个授权节点、至少一个普通节点和至少一个访客节点;
所述授权节点为具有共识权限的从业用户节点;
所述普通节点为联盟内具有区块读取权限的从业用户节点;
所述访客节点为联盟外具有从区块链中读取与其自身相关的所述交易数据和所述智能合约消息数据的用户节点;
所述普通节点,用于递交成为授权节点的申请,并在申请审批通过后成为所述授权节点;
所述访客节点,用于递交成为普通节点的申请,并在申请审批通过后成为所述普通节点。
实施本发明的基于智能合约的芯片研发交易数据存储方法及系统,具有以下有益效果:
1、将针对一芯片研发交易目标的智能合约存储到区块链上,使得交易节点根据存储在区块链上的智能合约参与该芯片研发交易目标,从而可以约束交易双方按照智能合约进行交易,否则直接按照智能合约给予惩处。另外,通过快速共识方法选举出记账节点,由记账节点将交易过程所产生的交易数据和智能合约消息数据存储到区块链中,保证交易数据和智能合约消息数据的可追溯和防篡改,便于将交易数据和智能合约消息数据作为证据使用,从而可以提高芯片研发和芯片交易过程的安全性。
2、智能合约的代码和状态都在区块链上,以使得所有人都可以看到智能合约,且智能合约不依赖某个特定的硬件设备,智能合约的代码可由所有共识节点来执行。智能合约作为一种链上代码,可以具有高效实时更新、准确执行、无人为干预、可分布式监督和仲裁、较低的运行成本等优点。基于智能合约将交易双方直接联系在一起,而无中间商存在,从而避免高昂中介费用的存在。基于智能合约和区块链,可以保证所有交易和消息都得到应有的验证,保证交易的多样性、智能性、安全性和扩展性,同时增强研发交易平台的可靠性、可监管性和稳定性。
3、通过存储不同类型的智能合约在区块链上,可以实现芯片实物买卖交易、芯片知识产权买卖交易、芯片知识产权授权使用交易以及芯片研发交易,保证芯片研发和芯片交易过程中参与方能够履行各自义务、遵守约定的规则,从而可以提高芯片研发和芯片交易的安全性。
4、可以仅从系统节点中选择节点作为共识节点,也可以将系统节点与从授权节点中选择的目标授权节点作为共识节点,在实际业务实现过程中可以根据需求灵活确定选择共识节点的方法,从而可以提高共识的灵活性。
5、由各个共识节点依次循环对相应的区块头进行哈希运算,将优先运算出小于自主挖矿目标值的哈希值的共识节点确定为记账节点,从而可以缩短选举记账节点所需的时间,即实现了快速共识,提升了共识的效率。另外,由于各个共识节点运算出小于自主挖矿目标值的哈希值的概率相同,从而保证共识过程中各个共识节点之间的公平,从而可以保证共识过程的可靠性。
6、由于系统节点具有较高的可信性,在每一个区块生成过程中均会参与共识,因此将系统节点排列在各个目标授权节点之前。目标授权节点的参与度可以表征目标授权节点的可信性,参与度越高说明相应目标授权节点的可信性越高,因此按照相应参与度由大至小的顺序将各个目标授权节点排列在各个系统节点之后,使得对应参与度较高的目标授权节点可以优先对应参与度较低的目标授权节点进行哈希运算,一方面保证了共识过程的公平性,另一方面保证共识结果的安全性。
7、通过生成积分奖励交易信息,在确定出记账节点之后,根据积分奖励交易信息向参与共识过程的一个授权节点发放积分,积分可以提升节点的参与度,还可以作为虚拟货币在芯片研发和芯片交易过程中用于货币支付,从而可以对授权节点进行激励,保证授权节点积极参与共识过程,保证共识过程可以正常进行。
8、由于区块主体中包括有对应于记账节点的积分奖励交易信息,因此积分奖励交易信息同样被存储到区块链中,后续可以从区块链中读取积分奖励交易信息以对积分发放过程进行追溯,保证积分发放过程的公平性。
附图说明
图1是本发明实施例一提供的一种基于智能合约的芯片研发交易数据存储方法的流程图;
图2是本发明实施例二提供的一种芯片实物买卖智能合约的流程图;
图3是本发明实施例三提供的一种芯片知识产权买卖智能合约的流程图;
图4是本发明实施例四提供的一种芯片知识产权授权使用智能合约的流程图;
图5是本发明实施例五提供的一种芯片研发智能合约的流程图;
图6是本发明实施例七提供的一种记账节点确定方法的流程图;
图7是本发明实施例十提供的一种基于智能合约的芯片研发交易数据存储系统的示意图;
图8是本发明实施例十一提供的一种基于智能合约的芯片研发交易数据存储系统的示意图。
图中:701:系统节点;702:交易节点;801:核心层;802:授权层;803:普通层;804:访客层;805:系统节点;806:授权节点;807:普通节点;808:访客节点;809:授权节点;810:授权节点;811:普通节点;812:访客节点。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示,本发明实施例提供的基于智能合约的芯片研发交易数据存储方法,可以包括如下步骤:
步骤101:在区块链上存储针对一芯片研发交易目标的智能合约;
步骤102:获取预设时间段内至少两个交易节点根据智能合约参与芯片研发交易目标的过程中所产生的交易数据和智能合约消息数据;
步骤103:确定针对预设时间段的至少两个共识节点;
步骤104:利用至少两个共识节点依次循环对根据交易数据和智能合约消息数据而获得的区块头进行至少一次哈希运算,其中,每一次哈希运算获得一个哈希值;
步骤105:将优先运算出小于预设的自主挖矿目标值的哈希值的一个共识节点确定为记账节点;
步骤106:通过记账节点将交易数据和智能合约消息数据存储在生成的新区块中,并将新区块链接到区块链上。
本发明实施例提供的基于智能合约的芯片研发交易数据存储方法,将针对一芯片研发交易目标的智能合约存储到区块链上,使得交易节点根据存储在区块链上的智能合约参与该芯片研发交易目标,从而可以约束交易双方按照智能合约进行交易,否则直接按照智能合约给予惩处。另外,通过快速共识方法选举出记账节点,由记账节点将交易过程所产生的交易数据和智能合约消息数据存储到区块链中,保证交易数据和智能合约消息数据的可追溯和防篡改,便于将交易数据和智能合约消息数据作为证据使用,从而可以提高芯片研发和芯片交易过程的安全性。
在本发明实施例中,智能合约的代码和状态都在区块链上,以使得所有人都可以看到智能合约,且智能合约不依赖某个特定的硬件设备,智能合约的代码可由所有共识节点来执行。智能合约作为一种链上代码,可以具有高效实时更新、准确执行、无人为干预、可分布式监督和仲裁、较低的运行成本等优点。基于智能合约将交易双方直接联系在一起,而无中间商存在,从而避免高昂中介费用的存在。基于智能合约和区块链,可以保证所有交易和消息都得到应有的验证,保证交易的多样性、智能性、安全性和扩展性,同时增强研发交易平台的可靠性、可监管性和稳定性。
需要说明的是,交易双方根据智能合约进行交易过程中所产生的交易数据用于记录研发成果交付、款项支付等过程,而智能合约消息数据是指智能合约执行过程中所产生的阶段性数据。
芯片研发交易目标可以为芯片买卖交易业务或者芯片研发业务,其中,芯片买卖交易包括芯片实物买卖业务、芯片知识产权买卖业务和芯片知识产权授权使用业务。下面通过实施例二至五分别对芯片研发交易目标为芯片实物买卖业务、芯片知识产权买卖业务、芯片知识产权授权使用业务和芯片研发业务时智能合约包括的内容进行说明。
实施例二
在实施例一所提供基于智能合约的芯片研发交易数据存储方法的基础上,当芯片研发交易目标为芯片实物买卖业务时,智能合约定义交易双方按照图2所示的流程方法进行芯片实物买卖,具体包括如下步骤:
步骤201:指示买方交易节点输入的订单信息;
步骤202:判断买方交易节点是否支付与订单信息相对应的费用,如果是,执行步骤203,否则执行步骤201;
步骤203:判断卖方交易节点是否确认收款,如果是,执行步骤204,否则执行步骤202;
步骤204:指示卖方交易节点进行芯片实物发货;
步骤205:判断买方交易节点是否确认收货,如果是,确定交易结束,否则执行步骤204。
在交易双方进行芯片实物买卖时,买方交易节点对应于芯片实物交易中的买方,卖方交易节点对应于芯片实物交易中的卖方,根据智能合约定义的芯片实物交易规则,卖方首先填写订单(包括数量、地址、用户信息等),然后利用第三方支付进行费用支付,卖方确认收款后进行芯片实物发货,买方确认收货之后交易结束。
实施例三
在实施例一所提供基于智能合约的芯片研发交易数据存储方法的基础上,当芯片研发交易目标为芯片知识产权买卖业务时,智能合约定义交易双方按照图3所示的流程方法进行芯片知识产权买卖,具体包括如下步骤:
步骤301:指示买方交易节点对卖方所销售的芯片知识产权的内容进行预览;
步骤302:判断买方交易节点是否支付与芯片知识产权相对应的费用,如果是,执行步骤303,否则执行步骤301;
步骤303:判断卖方交易节点是否确认收款,如果是,执行步骤304,否则执行步骤302;
步骤304:指示卖方交易节点对芯片知识产品的内容进行下载,并确定交易结束。
在交易双方进行芯片知识产权买卖时,买方交易节点对应于芯片知识产权买卖中的买方,卖方交易节点对应于芯片知识产权买卖中的卖方,根据智能合约定义的芯片知识产权交易规则,买方经过内容预览后觉得满意就进行费用支付,卖方确认收款后,提供下载地址和密钥给买方,买方进行内容下载,下载成功后交易结束。
需要说明的是,在实施例三和下述的实施例四中,芯片知识产权是指芯片研发过程中所需的虚拟知识产权,比如针对芯片所设计的电路图、性能仿真验证结果、版图布局布线等。
实施例四
在实施例一所提供基于智能合约的芯片研发交易数据存储方法的基础上,当芯片研发交易目标为芯片知识产权授权使用业务时,智能合约定义交易双方按照图4所示的流程方法进行芯片知识产权授权使用,具体包括如下步骤:
步骤401:指示买方交易节点对卖方所授权使用的芯片知识产权的内容进行预览;
步骤402:判断买方交易节点是否签署保密协议,如果是,执行步骤403,否则执行步骤401;
步骤403:指示买方交易节点对芯片知识产权进行试用;
步骤404:指示买方交易节点签署授权合同;
步骤405:判断买方交易节点是否支付获得使用芯片知识产权的费用,如果是,执行步骤406,否则执行步骤404;
步骤406:判断卖方交易节点是否确认收款,如果是,执行步骤407,否则执行步骤405;
步骤407:指示买方交易节点获得使用芯片知识产权的使用授权;
步骤408:判断卖方交易节点针对芯片知识产权的授权是否到期,如果是,确定交易结束,否则执行步骤407。
在交易双方进行芯片知识产权授权使用交易时,买方交易节点对应于需要使用芯片知识产权的买方,卖方交易节点对应于拥有芯片知识产权的卖方,根据智能合约定义的芯片知识产权授权使用规则,买方首先芯片知识产权预览,若感兴趣就签署保密协议(non-disclosureagreement,nda),然后买方进行芯片知识产权的试用,若试用满意就签订授权合同,并进行费用支付,卖方确认收款后,授权卖方进行使用。另外,卖方的授权使用到期后授权交易结束。
实施例五
在实施例一所提供基于智能合约的芯片研发交易数据存储方法的基础上,当芯片研发交易目标为芯片研发业务时,雇主可能将一个芯片研发任务拆分成多个研发模块,由多个雇员分别对各个研发模块进行研发,智能合约定义雇主与每一个雇员按照图5所示的流程方法进行芯片研发,具体包括如下步骤:
步骤501:指示雇主交易节点提出芯片研发任务;
步骤502:指示雇员交易节点针对芯片研发任务中的一个研发模块设定研发节点和研发费用;
步骤503:判断雇主交易节点是否接受研发节点和研发费用,如果是,执行步骤504,否则执行步骤502;
步骤504:指示雇员交易节点对研发模块进行研发;
步骤505:判断雇主交易节点是否确认研发过程符合研发节点,如果是,执行步骤506,否则执行步骤504;
步骤506:判断雇主交易节点是否支付研发费用,如果是,执行步骤507,否则执行步骤505;
步骤507:判断雇员交易节点是否确认收款,如果是,确定研发模块的研发结束,否则执行步骤506。
在交易双方进行芯片开发交易时,雇主交易节点对应于提出芯片开发需求的雇主,雇员交易节点对应于根据开发需求进行芯片开发的雇员,智能合约包括一个雇主和至少一个雇员,因为一个芯片的研发可能需要多方技术力量的合作。根据智能合约定义的芯片研发交易规则,雇主提出研发任务,假设这个任务包含两个模块。雇员1根据模块1的需求设定模块1的研发节点和研发预算,雇员2根据模块2的需求设定模块2的研发节点和研发预算。若雇主接受了雇员的模块研发方案,则雇员1和雇员2分别开展模块1开发和模块2开发。一旦到了研发节点,则雇主判断雇员是否满足研发节点要求,若满足则进入下一个研发阶段。若雇员所有的研发节点均满足研发要求,则雇主支付研发费用。雇员确认收款后,模块研发任务结束。
综合上述实施例二至五,通过存储不同类型的智能合约在区块链上,可以实现芯片实物买卖交易、芯片知识产权买卖交易、芯片知识产权授权使用交易以及芯片研发交易,保证芯片研发和芯片交易过程中参与方能够履行各自义务、遵守约定的规则,从而可以提高芯片研发和芯片交易的安全性。
实施例六
在实施例一所提供基于智能合约的芯片研发交易数据存储方法的基础上,步骤103确定对应于预设时间段的共识节点时,可以通过如下两种方式确定共识节点:
方式一:仅从系统节点中选择节点作为共识节点,即共识节点中不包括授权节点。
具体地,可以将所有的系统节点全部选择作为共识节点,也可以从所有系统节点中选择部分系统节点作为共识节点。由于系统节点是可以始终在线稳定运行的节点,系统节点的数量、运行的稳定性和安全性均具有可靠的保证,因此从系统节点中选择节点作为共识节点,并保证所有共识节点均属于系统节点,可以保证共识节点进行共识过程的稳定性。
方式二:从授权节点中选择一个或多个目标授权节点,进而将选择出的目标授权节点和全部的系统节点作为共识节点。具体地,在从授权节点中选择目标授权节点时,可以根据各个授权节点对应的参与度来选择目标授权节点,其中,对应参与度较高的授权节点被选中作为目标授权节点的概率较高,而授权节点对应的参与度由该授权节点的在线时间和评价得分中的部分或全部确定。
需要说明的是,从授权节点中选择出的目标授权节点均是处于在线状态的,非在线状态的授权节点不会被选中作为目标授权节点,从而保证后续快速共识过程可以正常进行。
针对每一个授权节点,该授权节点的在线时间越长,说明该授权节点参与共识或者进行芯片研发交易的累计时间越长,该授权节点的可信程度越高。另外,授权节点每次参与芯片研发或者芯片交易后,会根据芯片研发或者芯片交易的实际完成情况为授权节点评分,进而授权节点的累计评价得分越高说明该授权节点的信誉越好。从而可以根据授权节点的在线时长和评价得分来确定对应的参与度,在线时长越长且评价得分越高的授权节点的参与度越高,对应参与度越高的授权节点的可信度越高。
在从各个授权节点中选择共识节点时,对应参与度越高的授权节点被选中作为共识节点的概率越高,但并非按照对应参与度由高至低的顺序直接选择对应参与度较高的授权节点作为共识节点,这可以保证从授权节点中选择共识节点的公平性。
从授权节点中选择目标授权节点,将目标授权节点与所有系统节点确定为共识节点,由于系统节点的存在可以保证共识结果的可靠性,选择部分授权节点作为共识节点参与共识过程,可以提高共识过程和共识结果的公信力。
综上,可以仅从系统节点中选择节点作为共识节点,也可以将系统节点与从授权节点中选择的目标授权节点作为共识节点,在实际业务实现过程中可以根据需求灵活确定选择共识节点的方法,从而可以提高共识的灵活性。
实施例七
在实施例一至六中任一实施例所提供基于智能合约的芯片研发交易数据存储方法的基础上,步骤104利用各个共识节点依次循环对根据交易数据和智能合约消息数据而获得的区块头进行至少一次哈希运算而获得相对应的至少一个哈希值,进而步骤105根据共识节点运算出的哈希值从共识节点中确定记账节点。如图6所示,具体确定记账节点的过程可以通过如下步骤实现:
步骤601:分别生成与每一个共识节点相对应的积分奖励交易信息。
针对所确定出的各个共识节点中的每一个共识节点,根据该共识节点的来源不同,所生成的对应于该共识节点的积分奖励交易信息也不同,具体地:
针对任意一个为系统节点的共识节点,针对该共识节点所生成的积分奖励交易信息包括有奖励积分值和奖励节点标识。其中,奖励节点标识用于标识一个目标授权节点,而奖励积分值则定义了所要奖励的积分数额。另外,奖励节点标识所标识的目标授权节点是从各个目标授权就中选择出来的,而对应参与度越高的目标授权节点被选中的概率越高。
针对任意一个为授权节点的共识节点,针对该共识节点所生成的积分奖励交易信息仅包括有奖励积分值。
步骤602:每一个共识节点对相对应的积分奖励交易信息以及交易数据和智能合约消息数据进行打包,获得相对应的区块主体,并对获得的区块主体进行哈希运算而获得相对应的第一merkle树根哈希值。
针对每一个共识节点,该共识节点对其所对应的积分奖励交易信息以及所获取到的交易数据和智能合约消息数据进行打包,获得与该共识节点相对应的区块主体,之后通过预先设定的哈希算法对打包获得的区块主体进行哈希运算,获得与该共识节点相对应的第一merkle树根哈希值。
步骤603:根据预先确定的节点排序结果,每一个共识节点依次对相对应的区块头进行至少一次哈希运算获得至少一个哈希值,直至有共识节点运算出小于自主挖矿目标值的哈希值。
预先对各个共识节点进行排序而获得相对应的节点排序结果,之后根据节点排序结果,各个共识节点依次循环对相对应的区块头进行哈希运算,每个共识节点每次对其相对应的区块头进行至少一次哈希运算,每一次哈希运算均获得一个哈希值。其中,针对任意一个共识节点,该共识节点对应的区块头包括有与该共识节点相对应的第一merkle树根哈希值、区块链上末位区块的第二merkle树根哈希值和自主挖矿随机数,自主挖矿随机数可以按照预设的规则变化,使得该共识节点每一次对相应区块头进行哈希运算时区块头中的所包括的自主挖矿随机数均不同。
例如,通过对区块链上的末位区块进行哈希运算,获得第二merkle树根哈希值。100个共识节点按照已经确定出的节点排序结果,依次对各自对应的区块头进行10次哈希运算,每一次对区块头进行哈希运算获得相对应的一个哈希值,直至有共识节点运算出小于自主挖矿目标值的哈希值。针对任意一个共识节点x,根据节点排序结果轮到共识节点x进行哈希运算时,共识节点x对其对应的区块头x进行10次哈希运算,其中,区块头x包括有共识节点x运算出的第一merkle树根哈希值x、第二merkle树根哈希值、自主挖矿随机数、版本号、时间戳和自主挖矿目标值等信息。共识节点x每对区块头x进行一次哈希运算,区块头x中的自主挖矿随机数加1,比如,共识节点x第一次对区块头x进行哈希运算时区块头x所包括的自主挖矿随机数为0,共识节点x第二次对区块头x进行哈希运算时区块头x所包括的自主挖矿随机数为1,共识节点x第三次对区块头x进行哈希运算时区块头x所包括的自主挖矿随机数为2。再比如,之前各个共识节点所进行的哈希运算中均没有运算出小于自主挖矿目标值的哈希值,当共识节点x对区块头x进行第五次哈希运算时,运算出的哈希值小于自主挖矿目标值,则所有共识节点停止对区块头进行哈希运算。
步骤604:将优先运算出小于自主挖矿目标值的哈希值的共识节点确定为记账节点。
各个共识节点依次循环对相应的区块头进行哈希运算获得哈希值,当首个运算出小于自主挖矿目标值的哈希值的共识节点出现后,所有共识节点停止对区块头进行哈希运算,将该优先运算出小于自主挖矿目标值的哈希值的共识节点确定为记账节点。
需要说明的是,共识节点在对区块头进行哈希运算时,具体可以采用pow(proofofwork,工作量证明机制)算法对区块头进行哈希运算。
针对任意一个共识节点,该共识节点对应的区块头中包括有与该共识节点相对应的第一merkle树根哈希值、第二merkle树根哈希值和自主挖矿随机数。由于不同共识节点所生成的积分奖励交易信息不同,因此不同共识节点所对应的第一merkle树根哈希值不同,从而保证不同共识节点在首次对相应区块头进行哈希运算所获得的哈希值不同。另外,针对同一个区块头,由于相应共识节点每次对该区块头进行哈希运算后,该区块头中的自主挖矿随机数都会发生变化,使得任意两次哈希运算中该区块头所包括的自主挖矿随机数不同,从而保证同一个共识节点不同次哈希运算可以获得不同的哈希值。
由各个共识节点依次循环对相应的区块头进行哈希运算,将优先运算出小于自主挖矿目标值的哈希值的共识节点确定为记账节点,从而可以缩短选举记账节点所需的时间,即实现了快速共识,提升了共识的效率。另外,由于各个共识节点运算出小于自主挖矿目标值的哈希值的概率相同,从而保证共识过程中各个共识节点之间的公平,从而可以保证共识过程的可靠性。
需要说明的是,在步骤603各个共识节点对区块头进行哈希运算之前,需要确定针对各个共识节点的节点排序结果,以使各个共识节点可以根据该节点排序结果依次进行哈希运算。具体地,在从授权节点中选择出目标授权节点之后,根据按照对应参与度由大至小的顺序将各个目标授权节点排列在各个系统节点之后,进而根据排序后的各个共识节点获得对应于各个共识节点的节点排序结果。
由于系统节点具有较高的可信性,在每一个区块生成过程中均会参与共识,因此将系统节点排列在各个目标授权节点之前。目标授权节点的参与度可以表征目标授权节点的可信性,参与度越高说明相应目标授权节点的可信性越高,因此按照相应参与度由大至小的顺序将各个目标授权节点排列在各个系统节点之后,使得对应参与度较高的目标授权节点可以优先对应参与度较低的目标授权节点进行哈希运算,一方面保证了共识过程的公平性,另一方面保证共识结果的安全性。
实施例八
在实施例七所提供记账节点确定方法的基础上,步骤604确定出记账节点之后,可以根据与记账节点相对应的积分奖励交易信息进行积分发放,根据记账节点为系统节点或者授权节点的不同,积分发放方式不同,具体如下:
如果记账节点为系统节点,则根据与记账节点相对应的积分奖励交易信息包括的奖励积分值和奖励节点标识,向奖励节点标识的目标授权节点发放与奖励积分值相对应的积分;
如果记账节点为授权节点,则根据与记账节点相对应的积分奖励交易信息包括的奖励积分值,向记账节点发放与奖励积分值相对应的积分。
由于系统节点没有相对应的从业单元或从业个人,因此向系统节点发放积分没有意义,当系统节点被确定为记账节点后,根据此前记账节点生成的积分奖励交易信息,将积分发放给记账节点此前随机确定出的一个目标授权节点,当目标授权节点被确定为记账节点后,根据此前记账节点生成的积分奖励交易信息,将积分发放给记账节点本身,作为进行新区块生成及上链处理的奖励。
通过生成积分奖励交易信息,在确定出记账节点之后,根据积分奖励交易信息向参与共识过程的一个授权节点发放积分,积分可以提升节点的参与度,还可以作为虚拟货币在芯片研发和芯片交易过程中用于货币支付,从而可以对授权节点进行激励,保证授权节点积极参与共识过程,保证共识过程可以正常进行。
实施例九
在实施例七和实施例八所提供基于智能合约的芯片研发交易数据存储方法的基础上,步骤106由记账节点将交易数据和智能合约消息数据存储在新区块中,具体可以通过如下方式实现:
获取记账节点进行哈希运算获得小于自主挖矿目标值的哈希值时所对应的区块头;
将获取到的区块头与记账节点对应的区块主体相组合,获得新区块。
由于同一共识节点每次对区块头进行哈希运算时区块头中的自主挖矿随机数均不相同,因此需要获取到记账节点运算出小于自主挖矿目标值的哈希值时所对应的区块头。另外,记账节点对应的区块主体中包括有相应的积分奖励交易信息、交易数据和智能合约消息数据,因此将对应于记账节点的区块头和区块主体组合所生成的新区块中包括有交易数据和智能合约消息数据,进而在将新区块链接到区块链上之后,便实现了将交易数据和智能合约消息数据存储到区块链上。
另外,由于区块主体中包括有对应于记账节点的积分奖励交易信息,因此积分奖励交易信息同样被存储到区块链中,后续可以从区块链中读取积分奖励交易信息以对积分发放过程进行追溯,保证积分发放过程的公平性。
需要说明的是,当记账节点将新区块链接到区块链上之后,新区块便成为了区块链上的末位区块,对新区块整体进行哈希运算而获得的第二merkle树根哈希值将被存储到下一次所生成的新区块中。
实施例十
本发明一个实施例提供了一种基于智能合约的芯片研发交易数据存储系统,如图7所示,该系统可以包括:至少两个系统节点701和至少两个交易节点702,其中,
系统节点701为始终在线稳定运行的节点,交易节点702为参与芯片研发交易目标的节点,系统节点701之间、交易节点702之间以及系统节点701与交易节点702之间均通过点对点通信;
至少两个系统节点701,用于在区块链上存储针对一芯片研发交易目标的智能合约,并获取预设时间段内至少两个交易节点根据智能合约参与芯片研发交易目标的过程中所产生的交易数据和智能合约消息数据,以及确定针对预设时间段的至少两个共识节点;
至少两个共识节点,用于依次循环对根据交易数据和智能合约消息数据而获得的区块头进行至少一次哈希运算,并将目标共识节点确定为记账节点,其中,每个共识节点每一次哈希运算获得一个哈希值,目标共识节点优先运算出小于预设的自主挖矿目标值的哈希值;
记账节点,用于将交易数据和智能合约消息数据存储在生成的新区块中,并将新区块链接到区块链上。
需要说明的是,上述实施例十所提供的基于智能合约的芯片研发交易数据存储系统与上述实施例一至九所提供的基于智能合约的芯片研发交易数据存储方法基于同一构思,具体内容可以参见上述实施例一至九中的叙述,再次不再赘述。
实施例十一
在实施例十所提供基于智能合约的芯片研发交易数据存储系统的基础上,该系统可以进一步包括:至少一个授权节点、至少一个普通节点和至少一个访客节点;
授权节点为具有共识权限的从业用户节点,普通节点为联盟内具有区块读取权限的从业用户节点,访客节点为联盟外具有从区块链中读取与其自身相关的交易数据和智能合约消息数据的用户节点,系统节点、授权节点、普通节点和访客节点中任意两个节点之间通过点对点通信;
普通节点,用于递交成为授权节点的申请,并在申请审批通过后成为授权节点;
访客节点,用于递交成为普通节点的申请,并在申请审批通过后成为普通节点。
需要说明的是,参与芯片研发交易目标的交易节点可以是授权节点、普通节点或者访客节点。
在本发明实施例中,如图8所示,芯片研发交易数据存储系统可以包括四层,分别为核心层801、授权层802、普通层803和访客层804,而该系统所包括的节点分为四种,分别为系统节点805、授权节点806、普通节点807和访客节点808。系统节点805是平台公认的始终在线的稳定运行的节点;授权节点806是具有共识权力的从业单位节点或从业个人节点,且授权节点806之间对区块链进行同步;普通节点807是联盟内的普通从业单位节点或普通从业个人节点,不过问记账过程(即区块构造过程)也不需同步区块链但具有区块读取权;访客节点808是联盟外的节点,没有记账权和区块读取权,但具有交易权并能读取与自身有关的交易数据。
核心层801的功能是完成区块链共识。该层可以只由系统节点805组成,也可以由全部系统节点805和部分选中的授权节点809组成,这个选项可以提高共识的灵活性。可以只由系统节点805进行共识从而保证稳定性,也可以让部分授权节点809参与共识而提高公信力。这里被选中的授权节点809都是当前区块共识时在线的授权节点810。由于每次区块的共识过程中,核心层801里每次选到的授权节点809可能不一样,所以核心层801和授权层802是动态变化的。
授权层802由当前不参与共识的所有授权节点806组成,其功能相当于维护授权节点、受理普通节点811成为授权节点806的申请和选取授权节点810进入核心层801参与共识。由于每次区块的共识过程中,授权层802里每次选出的授权节点810可能不一样,所以核心层801和授权层802是动态变化的。
普通层803包括所有联盟内的普通从业单位节点和从业个人节点,具有读取区块数据的权力,其功能相当于维护普通节点、受理访客节点812成为普通节点807的申请和递交普通节点811进入授权层802的申请。普通层相对稳定,但也会有所变动,因为普通层的普通节点811可以申请成为授权节点806,而访客节点812在具备从业能力或资格后也可申请成为普通节点807。
访客层804包括所有联盟外的访客节点,具有交易权,不具备区块读取权限但具有读取与访客节点808自身有关的交易数据的权限。其功能相当于维护访客节点、递交访客节点812进入普通层802的申请。访客层804是动态变化的,任何具有上网能力的计算机都可以成为访客节点808。
综上所述,本发明实施例提供的基于智能合约的芯片研发交易数据存储方法及系统,将针对一芯片研发交易目标的智能合约存储到区块链上,使得交易节点根据存储在区块链上的智能合约参与该芯片研发交易目标,从而可以约束交易双方按照智能合约进行交易,否则直接按照智能合约给予惩处。另外,通过快速共识方法选举出记账节点,由记账节点将交易过程所产生的交易数据和智能合约消息数据存储到区块链中,保证交易数据和智能合约消息数据的可追溯和防篡改,便于将交易数据和智能合约消息数据作为证据使用,从而可以提高芯片研发和芯片交易过程的安全性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。