1.一种随机数提供方法,其特征在于,包括:
接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;
接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数;
对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;
基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方。
2.根据权利要求1所述的方法,其特征在于,所述对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数包括:将所述多个源随机数拼接形成第一字符串,对所述第一字符串经所述不可逆算法进行计算,并将得到的计算值记为随机数种子;
将所述随机数种子与所述订购方的附加信息进行拼接形成第二字符串,对所述第二字符串经所述不可逆算法进行计算,并将得到的计算值作为所述随机数;
所述订购方的附加信息包括:订单编号和/或订购方的身份ID。
3.根据权利要求1或2所述的方法,其特征在于,所述基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方包括:如果当前未有订购方提交订单请求,则丢弃已生成的所述随机数或者所述随机数种子。
4.根据权利要求1所述的方法,其特征在于,所述接收多个数据提供方提交的数据承诺之前还包括:获取订购方提交的购买随机数的订单请求所对应的订单编号并广播;
所述接收的多个数据提供方提交的所述数据承诺中还包括所述订单编号;
所述对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数包括:对已接受的同一所述订单编号的所述数据承诺所对应的所述源随机数经所述不可逆算法进行计算,生成所述随机数;
所述基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方包括:基于订购方提交的购买随机数的所述订单编号,将基于相同所述订单编号生成的所述随机数提供给所述订购方。
5.一种随机数提供装置,其特征在于,包括:
承诺存储模块,用于接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;
承诺验证模块,用于接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数;
随机数生成模块,用于对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;
随机数提供模块,用于基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方。
6.根据权利要求5所述的装置,其特征在于,所述随机数生成模块包括:种子生成单元,用于将所述多个源随机数拼接形成第一字符串,对所述第一字符串经所述不可逆算法进行计算,并将得到的计算值记为随机数种子;
随机数生成单元,用于将所述随机数种子与所述订购方的附加信息进行拼接形成第二字符串,对所述第二字符串经所述不可逆算法进行计算,并将得到的计算值作为所述随机数;
所述订购方的附加信息包括:订单编号和/或订购方的身份ID。
7.根据权利要求5或6所述的装置,其特征在于,所述随机数提供模块还用于:如果当前未有订购方提交订单请求,则丢弃已生成的所述随机数或者所述随机数种子。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:订单获取模块,用于获取订购方提交的购买随机数的订单请求所对应的订单编号并广播;
所述接收的多个数据提供方提交的所述数据承诺中还包括所述订单编号;
所述随机数生成模块,还用于对已接受的同一所述订单编号的所述数据承诺所对应的所述源随机数经所述不可逆算法进行计算,生成所述随机数;
所述随机数提供模块,还用于基于订购方提交的购买随机数的所述订单编号,将基于相同所述订单编号生成的所述随机数提供给所述订购方。