基于区块链的分布式时间认证方法及系统转让专利

申请号 : CN201810560245.8

文献号 : CN110557215B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 涂先锋

申请人 : 涂先锋

摘要 :

本发明公开了一种基于区块链的分布式时间认证方法和系统。该系统由分布于互联网上的认证节点,根据系统指定互联网时间服务器NST和互联网时间同步协议NTP以给定的时间分辨率为tr进行同步取得的时间,以给定的基本时间单位ts对用户提交的待认证数据根据区块生成规则生成在每一个时刻T的认证数据区块,并对该区块上链,完成对该时刻T的数据时间认证。本发明将区块链技术应用在时间认证中,通过布式的、共识的、不可随意篡改的账本记录来提供对特定数据在某个特定的时间存在的、可验证的证明,以建立一种透明、公开、可信、简便和高效时间认证方法及系统。

权利要求 :

1.一种基于区块链的分布式时间认证方法,其特征在于:所述方法包括以下步骤:

系统设置时间分辨率为tr,系统设定认证基本时间单位ts,系统按照网络传输情况确定时间传输误差te,系统指定互联网时间服务器NST,系统指定互联网时间同步协议NTP;

记te为系统按照网络传输情况确定时间传输误差,对于任意当前的以传统计时方式年、月、日、时、分、秒、毫秒等表示的且满足MOD(T,ts)=0的时刻T,拟参与时刻T的认证的节点,需要在[T-nts,T-t0](其中T-t0≦T-te)向系统规则Rconvenor指定的报名节点ET报名,ET根据系统的认证节点报名录用规则Rsign形成时刻T的认证节点集合{Sm},其中m为T时刻被授权认证的节点数,并对所有的Sm授权进行时刻T的认证;

所有参与时刻T认证的节点Sm在经授权后要与NST按照NTP保持时钟同步;

所有需要提交时间认证的用户,在提交认证请求时,需要和待认证数据一起提交系统规定的认证费用c。

2.根据权利要求1所述的基于区块链的分布式时间认证方法,其特征在于:

在[T+te,T+t1](其中te

在(T+t1+te,T+t2](其中te

在[T+t2+te,T+t3)(其中t2+te

(1)每一个Sm根据系统规则Rmaker,在收到的和本节点生成的{(dT,nT)}集中,找到唯一符合生成区块的(dT,nT),如果该(dT,nT),是由本认证节点生成,则让确认数R=R+1接转入下一操作步骤2;否则,对该(dT,nT)签名确认后,发回至该(dT,nT)的生成节点;

(2)当某节点收到签名确认数R超过T时刻认证节点数量m的50%以上(即R>m/2)时,该节点即为当前时刻T被选中的区块生成节点ST,该ST按照系统的区块生成规则Rgenerat,生成T时刻的区块BT,已打包的dT从待认证数据池删除,并将区块BT广播,所有节点将已打包的dT从待认证数据池删除,并将BT进行上链,结束时刻T的认证,转入下一时刻。

3.根据权利要求2所述的基于区块链的分布式时间认证方法,其特征在于:

T时刻的区块BT生成并上链后,系统收取T时刻的认证费用C=∑T时刻所有认证记录x(c为每一认证记录的认证费用),根据系统规定的奖金分配规则Rshares,将收取的费用做如下分配:所有对ST确认的节点均按照系数a1进行平均分配,出块节点ST按系数a2进行分配,报名节点ET按系数a3进行分配,系统平台收入按系数a4进行分配,机动费用系数a5,并且满足以下式子:C=(a1+a2+a3+a4+a5)C,其中:a1+a2+a3+a4+a5=1。

4.根据权利要求3所述的基于区块链的分布式时间认证方法,其特征在于:

在T+t4+te(其中t3+te

说明书 :

基于区块链的分布式时间认证方法及系统

技术领域

[0001] 本发明涉及时间认证技术领域,尤其涉及一种基于区块链的分布式时间认证方法及系统。

背景技术

[0002] 在很多应用场景下,如电子商务交易过程中,我们需要用以证明某份数据在某个特定的时间之前,已经存在的、可验证的证明方法和系统。为此,人们设计了时间戳认证的方法来提供时间戳认证服务,为用户提供一份电子证据,以证明用户的某些数据的产生时间。在实际应用上,它可以使用在包括电子商务、金融活动的各个方面,尤其可以用来支撑公开密钥基础设施的“不可否认”服务。这种认证服务根据认证效果的不同,一般有两种方法来建立,一是自建时间戳,二是具备法律效力的时间戳。这两种时间戳均建立在中心化的认证方式上,对于需要进行认证的用户来说存在以下弊端:
[0003] 1、需要单方面信任时间戳认证服务方,用户自己不能参与认证过程,也不能独立验证。
[0004] 2、验证过程繁琐,尤其当需要具备法律效果时,效率和成本较高。
[0005] 3、存在风险隐患,安全性较低。
[0006] 区块链是一种新型去中心化分布式账本技术,本质上是一个去中心化的数据库,存储在区块链上的信息具有不可伪造和篡改的特点,其共识算法使每个节点都参与到对认证结果的验证过程中,保证区块链上的记录都是可信的,由于所有节点都可对分布式账本进行记录和保存,公共账本的记录不可被伪造和篡改,所以,基于区块链的分布式时间认证方法及系统可以有效的解决原有的中心化的认证方式的不足,使时间认证更加的透明、公开、可信、简便和高效。

发明内容

[0007] 本发明要解决的问题在于,提供一种基于区块链的分布式时间认证方法及系统,将区块链技术应用在时间认证中,通过布式的、共识的、不可随意篡改的账本记录来提供对特定数据在某个特定的时间存在的、可验证的证明,以建立一种透明、公开、可信、简便和高效时间认证方法及系统。
[0008] 本发明提供的一种基于区块链的分布式时间认证方法和系统,所述方法包括以下步骤:
[0009] 系统设置时间分辨率为tr,系统设定认证基本时间单位ts,系统按照网络传输情况确定时间传输误差te,系统指定互联网时间服务器NST,系统指定互联网时间同步协议NTP。
[0010] 对于任意当前的以传统计时方式年、月、日、时、分、秒、毫秒、微秒、纳秒等表示的且满足MOD(T,ts)=0的时刻T,系统的所有认证节点在以下时间范围内进行相应的处理和操作:
[0011] 所有拟成为时刻T的认证节点,即拟参与时刻T的认证的节点,需要在[T-nts,T-t0](其中T-t0≦T-te)向系统规则Rconvenor指定的报名节点ET报名,ET根据系统的认证节点报名录用规则Rsign形成时刻T的认证节点集合{Sm},其中m为T时刻被授权认证的节点数,并对所有的Sm授权进行时刻T的认证,且只有经过授权的节点才能对时刻T进行时间认证。
[0012] 所有参与时刻T认证的节点Sm在经授权后要与NST按照NTP保持时钟同步。
[0013] 所有需要提交时间认证的用户,在提交认证请求时,需要和待认证数据一起提交系统规定的认证费用c。
[0014] 在[T+te,T+t1](其中te
[0015] 在(T+t1+te,T+t2](其中te
[0016] 在[T+t2+te,T+t3)(其中t2+te
[0017] 1、每一个Sm根据系统规则Rmaker,在收到的和本节点生成的{(dT,nT)}集中,找到唯一符合生成区块的(dT,nT),如果该(dT,nT)T是由本认证节点生成,则让确认数R=R+1接转入下一操作步骤2;否则,对该(dT,nT)签名确认后,发回至该(dT,nT)的生成节点。
[0018] 2、当某节点收到签名确认数R超过T时刻认证节点数量m的50%以上(即R>m/2)时,该节点即为当前时刻T被选中的区块生成节点ST,该ST按照系统的区块生成规则Rgenerat,生成T时刻的区块BT,已打包的dT从待认证数据池删除,并将区块BT广播。所有节点将已打包的dT从待认证数据池删除,并将BT进行上链,结束时刻T的认证,转入下一时刻。
[0019] 此时,系统收取T时刻的认证费用C=∑T时刻所有认证记录c(c为每一认证记录的认证费用),根据系统规定的奖金分配规则Rshares,将收取的费用做如下分配:
[0020] 所有对ST确认的节点均按照系数a1进行平均分配,出块节点ST按系数a2进行分配,报名节点ET按系数a3进行分配,系统平台收入按系数a4进行分配,机动费用系数a5,并且满足以下式子:
[0021] C=(a1+a2+a3+a4+a5)C,其中:a1+a2+a3+a4+a5=1
[0022] 在T+t4+te(其中t3+te
[0023] 附图1为时序流程图。其描述了上述方法中各时间节点以及相应时间区间内对应步骤的操作内容。
[0024] 本发明提供的一种基于区块链的分布式时间认证方法和系统,该系统可运行在底层的区块链平台的每个节点上,所述的系统包括如下模块:
[0025] 1、时钟同步模块
[0026] 该模块实现与系统指定的互联网时间服务器NST按照系统指定互联网时间同步协议NTP以系统设置时间分辨率为tr进行时钟同步。
[0027] 2、认证节点报名模块
[0028] 该模块根据系统规则Rconvenor认定报名节点ET,被认证的报名节点ET根据系统的认证节点报名录用规则Rsign形成时刻T的认证节点集合{Sm},并对该集合中的节点进行认证授权后调用模块5进行发布。
[0029] 3、认证请求存储模块
[0030] 该模块通过模块5接收到的用户认证请求数据,根据模块6的检测结果,对不符合系统认证请求规范的数据删除,把满足系统认证请求规范的数据放入待认证数据池中,等待模块4对待认证数据进行处理。
[0031] 4、认证数据打包模块
[0032] 该模块将待认证数据池中的待认证数据按照系统规范格式进行打包处理,待模块7进行数据调用。
[0033] 5、数据收、发模块
[0034] 该模块由系统的其它功能模块调用,以收取和发送本节点所需的相关数据。
[0035] 6、数据检测模块
[0036] 该模块对系统经过模块5收取的数据按照相应的系统规范进行检验,并将检验结果返回该数据的调用模块。
[0037] 7、确认区块生成节点模块
[0038] 根据系统区块生成节点确认规则,对每一时刻符合规则的区块生成节点进行签名确认,并调用模块5发送对该节点在本时刻的确认签名。
[0039] 8、区块生成模块
[0040] 该模块首先对收到的其它节点对本节点成为每一时刻的区块生成节点的签名确认进行计数,如果收到的签名数加上本节点自己的确认超出全部节点数的50%,则按照区块生成规则,生成该时刻的区块。
[0041] 如果在规定时间内,没有新区快生成,则生成空区块。
[0042] 9、奖金分配模块
[0043] 当本节点成为区块生成节点并成功生成区块,则出触发一个智能合约,按照奖金分配规则,对参与本时刻认证的节点进行奖金分配。
[0044] 10、区块链管理模块
[0045] 本模块负责将新区快上链,并负责对区块的查询操作。
[0046] 附图2为模块结构图。其描述了上述各模块之间的相互关系和数据流向。

具体实施方式

[0047] 以下对本发明的具体实施进行说明,但是,此处所描述的具体实施例仅仅是用来解释和理解本发明的,并不用于限定本发明。
[0048] 为了说明本发明所述技术方案,通过具体实施例来说明如下。
[0049] 实施例:
[0050] 1、系统设置时间分辨率为tr=1ms,系统设定认证基本时间单位ts=1s,系统按照网络传输情况确定时间传输误差te=50ms,系统指定互联网时间服务器NST,系统指定互联网时间同步协议NTPv4协议。
[0051] 2、系统相关规则定义如下:
[0052] 系统规则Rconvenor:除创世区块的生成节点由系统指定,每一时刻T的报名认定节点为上一区块生成节点ST-1,如果到T-600ms时该区块没有回应,则由T-2ts时刻的区块生成节点ST-2作为报名认定节点。如果在T-950ms仍然没有回应,则等待至T+950ms时刻,按该时刻T+950ms的步骤进行。
[0053] 系统的认证节点报名录用规则Rsign:首先依据报名节点相对互联网时间服务器NIST的延时长短,按升序进行排序,其次按照报名顺序的先后升序进行排序,取前50个节点。
[0054] 系统的待认证数据打包规则Rpack:对经过用户签名的待认证数据,首先计算出去对应的Hash值,然后将这些Hash值构建成默克尔树结构(Merkle Tree记作MTT)。
[0055] 系统规则Rnonce:该随机值nonce与MTT的根Hash而合并后的Hash值小于给定值N。
[0056] 系统规则Rmaker:首先按照各节点生成的DT中,打包待认证数据项数最多的认证节点作为候选节点,如果有两个或两个以上获选节点时,则再按各候选节点的NT排序,nonce值最小的节点即为区块生成节点。
[0057] 系统的区块生成规则Rgenerat:区块的结构至少包含两各部分,区块头和认证信息,区块头中包含父区块头的Hash、认证数据的默克尔树根的哈希值,区块生成时间,精度为系统指定的时间分辨率Tr,对寻找nonce值的约束,nonce值等;认证信息包含认证信息计数器、认证用户ID(认证用户公钥)、符合规定长度的认证数据、认证费用等。
[0058] 系统规定的奖金分配规则Rshares:所有对ST确认的节点均按照系数a1进行平均分配,出块节点ST按系数a2进行分配,报名节点ET按系数a3进行分配,系统平台收入按系数a4进行分配,机动费用系数a5,并且满足以下式子:
[0059] C=(a1+a2+a3+a4+a5)C,其中:a1+a2+a3+a4+a5=1
[0060] 3、对于任意当前的以传统计时方式年、月、日、时、分、秒等表示的时刻T,系统的所有认证节点在以下时间范围内进行相应的处理和操作:
[0061] 所有拟成为时刻T的认证节点,即拟参与时刻T的认证的节点,需要在[T-1s,T-400ms]向系统规则Rconvenor指定的报名节点ET报名,ET根据系统的认证节点报名录用规则Rsign形成时刻T的认证节点集合{Sm},其中m=50,并对所有的Sm授权进行时刻T的认证,且只有经过授权的节点才能对时刻T进行时间认证。
[0062] 所有参与时刻T认证的节点Sm在经授权后与NST按照NTPv4保持时钟同步。
[0063] 所有需要提交时间认证的用户,在提交认证请求时,需要和待认证数据一起提交系统规定的认证费用c。
[0064] 在[T+te,T+t1](其中t1=250ms)时间区间内,所有的Sm从用户提交的待认证数据的待认证数据池中取出待认证数据,按照系统的待认证数据打包规则Rpack,对待认证数据打包,生成时刻T的待认证数据包dT,并计算满足系统规则Rnonce要求的时刻T的具有规定长度的随机值nonce值nT。
[0065] 在(T+300ms,T+500ms]时间区间内,每一个Sm发送本认证节点的(dT,nT);接收其它认证节点的(dT,nT)。
[0066] 在(T+550ms,T+800ms]时间区间内:
[0067] (1)每一个Sm根据系统规则Rmaker,在收到的和本节点生成的{(dT,nT)}集中,找到唯一符合生成区块要求的(dT,nT),如果该(dT,nT),是由本认证节点生成,则让确认数R=R+1接转入下一操作步骤2;否则,对该(dT,nT)签名确认后,发回至该(dT,nT)的生成节点。
[0068] (2)当某节点收到签名确认数R超过T时刻半数以上认证节点,即收到签名确认数R超过25时,该节点即为当前时刻T被选中的区块生成节点ST,该ST按照系统的区块生成规则Rgenera,生成T时刻的区块BT,已打包的dT从待认证数据池删除,并将区块BT广播。所有节点将已打包的dT从待认证数据池删除,并将BT进行上链,结束时刻T的认证,转入下一时刻。
[0069] 此时,系统收取T时刻的认证费用C=∑T时刻所有认证记录c(c为每一认证记录的认证费用),根据系统规定的奖金分配规则Rshares,将收取的费用做如下分配:
[0070] 所有对ST确认的节点均按照系数a1进行平均分配,出块节点ST按系数a2进行分配,报名节点ET按系数a3进行分配,系统平台收入按系数a4进行分配,机动费用系数a5,并且满足以下式子:
[0071] C=(a1+a2+a3+a4+a5)C,其中:a1+a2+a3+a4+a5=1
[0072] 在T+950ms时刻,如果没有能够生成BT,由上一时刻T-ts区块的nonce值nT-ts的Hash值作为当前时刻的T的nonce值nT,将当前时刻T的认证记录置空,即{dT}=Φ,按照系统的区块生成规则Rgenerat,生成T时刻的区块BT,结束时刻T的认证,等待下一时刻。

附图说明

[0073] 图1是时序流程图。
[0074] 图2是模块结构图。