事件预测方法及装置、电子设备
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种事件预测方法及装置、电子设备。
背景技术
对于尚未完成的事件,往往需要等待该事件完成后,才能够准确获知该事件的结果。但是,一些场景下希望提前获知事件的结果,比如基于该事件的结果来提前采取应对措施,再比如基于该事件的结果确定是否需要对关联事件的处理方案进行调整等。
在相关技术中,可以通过多种方式对事件进行结果预测,比如根据历史数据的预测分析,再比如通过样本训练出的预测模型进行预测分析等。由于使用的预测数据、采用的预测方式、所处的预测环境等存在差异,使得不同参与方在参与到针对同一事件的结果预测时,往往得到的预测结果也不尽相同,甚至存在较大偏差。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种事件预测方法及装置、电子设备。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种事件预测方法,应用于区块链节点;所述方法包括:
获取参与方针对指定事件确定的预测结果;
调用智能合约,所述智能合约被用于将所述预测结果发布至区块链的第一区块,并基于区块链中的第二区块的区块内容确定所述指定事件的实际结果,以根据所述预测结果与所述实际结果的比较结果确定所述参与方对所述指定事件的预测情况;其中,所述第二区块的区块高度大于所述第一区块的区块高度。
根据本说明书一个或多个实施例的第二方面,提出了一种事件预测装置,应用于区块链节点;所述装置包括:
第一获取单元,获取参与方针对指定事件确定的预测结果;
调用单元,调用智能合约,所述智能合约被用于将所述预测结果发布至区块链的第一区块,并基于区块链中的第二区块的区块内容确定所述指定事件的实际结果,以根据所述预测结果与所述实际结果的比较结果确定所述参与方对所述指定事件的预测情况;其中,所述第二区块的区块高度大于所述第一区块的区块高度。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述实施例中任一所述的事件预测方法。
附图说明
图1是一示例性实施例提供的一种事件预测方法的流程图。
图2是一示例性实施例提供的一种预测事件结果的示意图。
图3是一示例性实施例提供的一种智能合约实施的功能逻辑的流程图。
图4是一示例性实施例提供的一种设备的结构示意图。
图5是一示例性实施例提供的一种事件预测装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是一示例性实施例提供的一种事件预测方法的流程图。如图1所示,该方法应用于区块链节点,可以包括以下步骤:
步骤102,获取参与方针对指定事件确定的预测结果。
在一实施例中,预测结果可以由参与方输入,比如可以向参与方提供输入界面,使得参与方可以基于该输入界面而输入预测结果,再比如可以采集参与方的输入语音,从输入语音中识别出参与方希望输入的预测结果。其中,当参与方输入预测结果时,应当确保该预测结果满足预设格式,比如该预测结果可以为指定长度的字符串或其他格式,本说明书并不对此进行限制。
在一实施例中,区块链节点可以在参与方的请求下,调用预设的用于生成预测结果的智能合约,使得该智能合约可以通过预定义的随机算法而自动生成预测结果。当然,参与方可以对智能合约自动生成的内容进行查看,从而将该内容确认为预测结果;或者,指示智能合约重新生成新的内容,直至参与方对生成的内容予以确认。
在一实施例中,一个或多个参与方可以对同一事件进行预测,使得区块链上可以存在分别对应于各个参与方的预测结果;其中,每一参与方可以存在对应的唯一标识,使得每一参与方发布的预测结果可以与其唯一标识进行关联,以便于对区块链上发布的各个预测结果进行有效区分。
在一实施例中,指定事件为被指明确定需要进行结果预测的任意事件,比如某一路口的交通状况、某一地区的水稻收成、某一海域的台风形成时间等,本说明书并不对此进行限制。
步骤104,调用智能合约,所述智能合约被用于将所述预测结果发布至区块链的第一区块,并基于区块链中的第二区块的区块内容确定所述指定事件的实际结果,以根据所述预测结果与所述实际结果的比较结果确定所述参与方对所述指定事件的预测情况;其中,所述第二区块的区块高度大于所述第一区块的区块高度。
在一实施例中,可以在区块链的客户端上创建交易(transfer),从而通过该交易将参与方输入的预测结果发布至区块链上,成为区块链的分布式数据库中的一笔数据。
需要指出的是:区块链中的交易,存在狭义的交易以及广义的交易之分。狭义的交易是指用户向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易可以是用户在区块链中发起的一笔转账。而广义的交易是指用户向区块链发布的一笔具有业务意图的业务数据;例如,运营方可以基于实际的业务需求搭建一个联盟链,依托于联盟链部署一些与价值转移无关的其它类型的在线业务(比如,事件预测、租房业务、车辆调度业务、保险理赔业务、信用服务、医疗服务等),而在这类联盟链中,交易可以是用户在联盟链中发布的一笔具有业务意图的业务消息或者业务请求。本说明书中的交易,应当倾向于理解为广义上的交易。
在一实施例中,由于区块链采用分布式数据库,使得发布至区块链上的预测结果无法被篡改,可以确保预测结果真实、可靠。
在一实施例中,当预测结果被发布至区块链中的第一区块,而实际结果来自区块高度大于第一区块的第二区块时,基于区块链中各个区块之间的链式关系,使得预测结果的加入可以增加实际结果的不确定性,可以极大地降低不法分子操控实际结果的可能性。
在一实施例中,所述智能合约用于在区块链中产生第三区块后,确定所述实际结果;其中,所述第三区块的区块高度大于所述第二区块,且高度差为预设数值。换言之,智能合约虽然基于第二区块的区块内容来确定实际结果,但是产生该第二区块后并不立即确定实际结果,而是等待预设数量个区块之后,才确定该实际结果,保证了第二区块的安全性,使得攻击者必须连续攻击第二区块与第三区块之间的所有区块,使得攻击成本极高,可以极大地降低不法分子操控实际结果的可能性。
在一实施例中,区块链节点可以获取所述参与方确定的与所述预测结果相关联的随机性内容;其中,所述智能合约还用于将所述随机性内容发布至所述第一区块;或者,所述智能合约还用于将所述随机性内容发布至区块链的第四区块,且所述第二区块的区块高度大于所述第四区块的区块高度。通过增加随机性内容,可以进一步强化对实际结果的随机化影响,从而进一步降低不法分子操控实际结果的可能性。
在一实施例中,所述实际结果还与区块链中的一个或多个其他区块的区块内容相关,使得不法分子即便具备区块攻击能力,也必须分别攻击第二区块和该其他区块才能够达成目的,造成了极高的攻击成本,可以极大地降低不法分子操控实际结果的可能性。
在一实施例中,上述的一个或多个其他区块可以包括:包含至少一条针对所述指定事件的预测结果的区块,这样可以使得所有预测结果均可以影响到实际结果,可以增加实际结果的不确定性。
在一实施例中,所述智能合约用于通过下述公式对所述第二区块和m个其他区块的区块内容进行处理,以确定出所述实际结果:
H’1=H(Hn,Hm),
H’i=H(H’(i-1),H(m-i+1)),其中1<i≤m;
其中,H为预设的哈希函数,Hn为与所述第二区块的区块内容相关的哈希值,Hi为与第i个其他区块的区块内容相关的哈希值,所述实际结果为H’m。
在一实施例中,在通过上述公式进行计算的过程中,m个其他区块之间可以按照预设顺序进行依次排列,形成第1个其他区块、……、第m个其他区块,比如该预设顺序可以包括区块高度从小至大的顺序,本说明书并不对此进行限制。
在一实施例中,智能合约还可以用于:将H’m的字符数量压缩为预设数量。比如,当哈希函数H生成的哈希值为256位、预设数量为8位时,可以将该256位的H’m压缩为8位字符串,以作为本说明书中的实际结果。换言之,由于预先定义了实际结果的格式为“8位字符串”,因而需要按照该格式来生成实际结果;类似地,参与方所确定的预测结果也应当符合该“8位字符串”的格式。
在一实施例中,区块链节点可以根据所述参与方对所述指定事件的预测情况,将第一资产凭证分配至所述参与方。例如,区块链节点可以调用用于分配资产凭证的智能合约,使得该智能合约运行后可以根据参与方的预测情况和针对资产凭证的分配规则,自动将第一资产凭证分配至参与方。由于智能合约上的处理逻辑为公开内容,并且整个处理过程由智能合约自动完成、不存在人工干预,使得无论是对预测结果和实际结果的比较还是对第一资产凭证的分配,都能够确保客观、公正。
在一实施例中,当预测结果与实际结果相匹配时,表明提供该预测结果的参与方对于上述指定事件的结果预测具有一定的准确度。那么,通过向参与方分配第一资产凭证,可以控制各个参与方对于资产凭证的持有量,从而在一定程度上对于各个参与方实现标记作用:持有资产凭证越多的参与方对于事件结果的预测能力越强,因而在后续的事件预测过程中,能够据此快速筛选出预测能力强的参与方,以从这些参与方处获得可能相对更加准确的预测结果。
在一实施例中,第一资产凭证可以包括区块链智能资产凭证。智能资产凭证用于表征一定的权益,以实现对参与方准确预测上述指定事件的激励,有助于该参与方继续参与对后续事件的预测,从而实现良性循环。比如参与方在区块链上实施预设操作时,譬如该预设操作可以包括发布交易、发起共识(例如基于PBFT实用拜占庭容错算法而发起)等,可以通过向各个区块链节点分配一定量的智能资产凭证,以促使该预设操作能够尽快顺利完成。再比如参与方可以通过在区块链上扮演锚点(anchor)角色的区块链节点,将持有的智能资产凭证兑换为等价的链外权益凭证。
在一实施例中,第一资产凭证可以包括链外权益凭证。链外权益凭证用于表征一定的权益,以实现对参与方准确预测上述指定事件的激励,有助于该参与方继续参与对后续事件的预测,从而实现良性循环。比如参与方在区块链上实施预设操作时,譬如该预设操作可以包括发布交易、发起共识(例如基于PBFT实用拜占庭容错算法而发起)等,可以将链外权益凭证兑换为区块链内等价的智能资产凭证、并通过向各个区块链节点分配一定量的智能资产凭证,以促使该预设操作能够尽快顺利完成。其中,链外权益凭证可以包括用于表征任意类型的链外权益的凭证,譬如在会员系统内的会员积分、在交易平台上的优惠券、兑换券、抵价券等,本说明书并不对此进行限制。
在一实施例中,所述指定事件包括一个或多个子事件,所述预测结果用于对所述一个或多个子事件进行结果预测。例如,当预测结果、实际结果均为预设长度的字符串时,该字符串可以被划分为若干组,每组包含一个或多个字符串、对应于上述的一个子事件。其中,所述智能合约被用于在所述预测结果对所述一个或多个子事件的结果预测均正确的情况下,将所述第一资产凭证分配至所述参与方。换言之,当预测结果对指定事件的结果预测完全正确时,该预测结果被智能合约判定为匹配于该指定事件的实际结果;例如,当预测结果和实际结果均为“02-05-12-15-23-26”时,该指定事件包含6个子事件,可以判定为预测结果对指定事件的结果预测完全正确。
在一实施例中,所述指定事件包括多个子事件;当所述第一资产凭证被分配至所述参与方时,所述第一资产凭证所表征的权益大小正相关于被所述预测结果准确预测的子事件在所述多个子事件中的占比。例如,当预测结果与实际结果完全相同时,即被所述预测结果准确预测的子事件在所述多个子事件中的占比为100%,第一资产凭证所表征的权益大小可以为预设的最大值;当预测结果与实际结果完全不相同时,即被所述预测结果准确预测的子事件在所述多个子事件中的占比为0%,第一资产凭证所表征的权益大小可以为预设的最小值(0或其他预设值)。例如,当预测结果和实际结果均为“02-05-12-15-23-26”时,可以判定被所述预测结果准确预测的子事件在所述多个子事件中的占比为100%;当预测结果为“02-06-13-15-20-26”、实际结果为“02-05-12-15-23-26”时,该指定事件包含6个子事件,可以判定被所述预测结果准确预测的子事件在所述多个子事件中的占比为50%。
在一实施例中,第一资产凭证所表征的权益大小可以采用线性变化,例如占比为30%时,权益大小为预设最大值的30%,又例如占比为80%时,权益大小为预设最大值的80%等。在另一实施例中,第一资产凭证所表征的权益大小可以采用非线性变化,例如占比为30%时,权益大小为预设最大值的10%,再例如占比为80%时,权益大小为预设最大值的50%,又例如占比为95%时,权益大小为预设最大值的80%等。
在一实施例中,所述指定事件包括多个子事件,当预测结果与实际结果并非完全一致时,不论被所述预测结果准确预测的子事件在所述多个子事件中的占比为何,均可以判定为两者不匹配,从而不向参与方分配资产凭证。
在一实施例中,区块链节点可以确定所述参与方持有的第二资产凭证被冻结,以作为用于担保所述预测结果的有效性的担保凭证;其中,所述智能合约用于在所述预测结果不匹配于所述实际结果的情况下解除所述参与方对所述担保凭证的持有关系。通过将参与方持有的第二资产凭证冻结为担保凭证,使得该担保凭证被用于对参与方提供的预测结果进行担保,可以对参与方设置一定的参与门槛,避免随意参与而影响对上述指定事件的准确预测。
在一实施例中,当第二资产凭证表征的权益越大时,表明参与方对自身提供的预测结果越自信,那么当预测结果与实际结果相匹配时,在一定程度上表明参与方确实具备极强的预测能力,因而通过将所述第一资产凭证所表征的权益大小设定为与所述第二资产凭证表征的权益大小呈正相关,可以对相应的参与方的预测能力进行更为准确地标记,以及对相应参与方进行更大程度的激励。
在一实施例中,即便参与方并未冻结形成担保凭证,仍然可以参与对指定事件的结果预测,并在预测结果与实际结果相匹配的情况下获得上述的第一资产凭证。在另一实施例中,当参与方并未冻结形成担保凭证时,参与方输入的预测结果被判定为无效,使其无法真正参与到对指定事件的结果预测;或者,在预测结果与实际结果相匹配的情况下,虽然可以向该参与方分配第一资产凭证,但是该第一资产凭证无法表征任何权益相当于未分配任何资产凭证,使得该参与方的参与无意义。
图2是一示例性实施例提供的一种预测事件结果的示意图。如图2所示,假定用户A希望参与针对事件B的结果预测,该用户A可以通过安装有客户端的手机21输入预测结果。该预测结果可以由用户A通过任意方式获得,比如由用户A通过图2中未示出的服务器对历史数据进行大数据分析得到,又比如由用户A根据自身经验而得到,本说明书并不对此进行限制。类似地,用户A还可以通过手机21输入其他与预测相关的信息。
设备22被配置为区块链中的一个区块链节点,该设备22可以接收手机21发送的预测结果;基于手机21运行的客户端上的已登录账号,该预测结果可以被确定为来自用户A。当然,手机21也可以将上述的预测结果等信息发送至区块链中的其他区块链节点,这些区块链节点的处理过程与设备22类似,可以参考本说明书中对于设备22的相关描述。而其他用户也可以对事件B进行结果预测,并通过自身使用的手机或其他电子设备将预测结果等信息发送至设备22或其他区块链节点处,这些用户的处理过程与用户A类似,可以参考本说明书中对于用户A的相关描述。
设备22可以在区块链中对用户A输入的预测结果等信息进行共识,使得该预测结果等信息在通过共识后被发布至区块链,以记录至区块链的分布式数据库中,即“上链”。本说明书并不限定采用的共识算法的类型;例如,当设备22所处的区块链为联盟链或公有链时,该设备22可以基于诸如PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)算法向其他区块链节点发起共识,并在通过共识后将该预测结果发布至区块链,使其被记录至区块链的分布式数据库中;再例如,当设备22所处的区块链为公有链时,该设备22可以与其他区块链节点基于POW(Proof of Work,工作量证明)算法、POS(Proof of Stake,股权证明)算法或其他算法竞争记账权,并由获得记账权的区块链节点向相应区块内记入交易数据,而当包含用户A输入的预测结果等信息的交易被记入时,该预测结果等信息可以被记录至区块链的分布式数据库中。
为了确定用户A输入的预测结果与实际结果是否相匹配,尤其是为了避免在处理过程中涉及到人为干预、确保准确度和有效性,可以预先在区块链上创建智能合约,该智能合约中定义有用于确定预测结果与实际结果之间的匹配情况的功能逻辑,设备22可以通过调用该智能合约,使得该智能合约通过其功能逻辑自动实施下述操作:将预测结果等信息发布至区块链上,确定事件B的实际结果,对预测结果与实际结果进行比较,分配资产凭证等。
在一实施例中,智能合约可以由区块链上的交易或其他智能合约进行调用,以触发其自动实施相关功能逻辑,譬如上述用于确定预测结果与实际结果之间的匹配情况的功能逻辑等。设备22可以通过在区块链中发布交易或调用其他智能合约,以实现对上述智能合约的调用;或者,可以由其他区块链节点对上述智能合约进行调用,本说明书并不对此进行限制。在被调用后,上述的智能合约可以在设备22上运行,以自动实施上述的功能逻辑。
为了便于理解,下面结合彩票投注场景,对图2所示实施例中提及的智能合约所实施的功能逻辑进行详细描述。其中,图3是一示例性实施例提供的一种智能合约实施的功能逻辑的流程图。如图3所示,该功能逻辑可以包括以下步骤:
步骤302,智能合约确定已提交的投注交易。
在一实施例中,手机21可以向用户A提供彩票投注界面,使得用户A可以通过该彩票投注界面选择投注号码,并由被选中的投注号码组合形成用户A投注的彩票号码,即投注号码。
在一实施例中,用户A可以在彩票投注界面中设定投注金额。用户A可以针对同一投注号码支付一注或多注资金(每注资金的金额为预设的单注金额),以作为该投注号码对应的投注金额。
在一实施例中,手机21可以为用户A的投注行为生成一随机数,该随机数可以用于增加最终的开奖结果的随机性,降低开奖结果被操控的可能性,提升彩票的公平性和公正性。针对用户A的投注行为,手机21可以自动生成上述的随机数,该过程可以对用户A不可见;或者,彩票投注界面可以提供一随机数生成选项,使得用户A可以手动触发生成该随机数,并且可以向用户A出示该随机数;或者,用户A可以手动输入一随机数,本说明书并不对此进行限制。
在一实施例中,在完成对上述投注号码、投注金额和随机数等的设定后,手机21可以创建相应的投注交易,并利用用户A的私钥对该投注交易进行签名后,将该投注交易提交至区块链中,使得区块链节点可以针对该投注交易调用智能合约,而该智能合约可以基于如图3所示的功能逻辑完成后续的处理过程。
步骤304,智能合约验证交易合法性。
在一实施例中,智能合约可以针对投注交易的合法性进行验证,比如签名是否符合要求、投注号码是否符合预设格式、用户A的区块链账户是否足够支付该投注金额等。当通过验证后,可以转入步骤306,否则智能合约可以忽略当前的投注交易。
步骤306,智能合约触发转移投注资金。
在一实施例中,智能合约可以从用户A的区块链账户向预设的彩票账户进行投注资金的转移,且转移金额为上述的投注金额。不论用户A对应的投注号码是否中奖,被转移的投注资金都不会返还给用户A,这些投注资金被作为用户A对彩票开奖过程的参与条件。
步骤308,智能合约在区块链账本中记录投注信息和资金转移信息。
在一实施例中,区块链中的各个区块链节点处分别维护有内容统一的区块链账本,智能合约可以将投注交易中记录的投注信息(如投注人、投注号码、投注金额、投注时间戳等)和步骤306中转移投注资金所产生的资金转移信息在区块链中进行发布,以记录至区块链账本中。
步骤310,智能合约确定区块链中是否已产生高度为N的区块;若已产生,则转入步骤312。
步骤312,智能合约确定区块链中是否已产生高度为N+M的区块;若已产生,则转入步骤314。
在一实施例中,N和M均为预定义的任意正整数。对于N而言,应当确保该高度N大于其他参与本次彩票开奖的投注号码所在的区块链节点;比如用户A的投注号码(包含于上述的投注信息中)可以位于区块链中高度为K的区块中,且应当确保N>K。换言之,对于所处区块的高度大于N的投注号码,都应当认为在本次彩票开奖过程中无效。当然,并非所有区块高度小于N的区块中,包含的投注号码都有效,因而可以对能够参与本次彩票开奖的区块高度进行限定,比如对于高度属于[T0,T1]、其中T0<N<T1的区块,其中包含的投注号码被认为可以参与本次彩票开奖,而其他高度过大或过小的区块均无法参与。
其中,M可以为预定义的任意正整数;当然,可以针对M的取值进行限制,比如限制为T1<N<N+M<T2。基于下述步骤314中对开奖结果的计算过程,可以获知开奖结果可以与高度为N~N+M的区块均相关,使得不法分子需要连续攻击N~N+M的所有区块,才有可能操控开奖结果,从而造成极大的攻击成本,使得开奖结果被操控的可能性极低,有助于保证开奖结果的公平有效。
步骤314,智能合约计算开奖结果。
在一实施例中,智能合约可以分别确定出高度为N的区块,以及区块链中包含与本次彩票开奖相关的投注号码(比如投注号码所在区块的高度属于[T0,T1]这一范围)的m个区块,并分别获取这些区块的哈希值(哈希值与对应区块的区块内容相关),比如:高度为N的区块对应于哈希值Hn,而m个区块对应的哈希值分别为H1~Hm(譬如可以按照区块高度从小至大的顺序进行排列)。进一步的,智能合约可以按照下述公式进行计算:
H’1=H(Hn,Hm),
H’i=H(H’(i-1),H(m-i+1)),其中1<i≤m;
其中,H为预设的哈希函数,H(Hn,Hm)表示通过该哈希函数H对Hn和Hm进行哈希运算、得到相应的哈希值为H’1;类似地,H(H’(i-1),H(m-i+1))表示通过该哈希函数H对H’(i-1)和H(m-i+1)进行哈希运算、得到相应的哈希值为H’i。最终,可以计算得到计算结果为H’m。
在一实施例中,计算结果H’m的字符长度可能大于实际所需的长度,因而智能合约可以通过预定义的压缩函数C对该计算结果H’m进行压缩,得到最终的开奖结果为C(H’m)。例如,该压缩函数C可以用于选取H’m开头、结尾或中间位置处的若干字符,当然本说明书并不对此进行限制。
步骤316,智能合约在区块链账本中记录开奖结果。
在一实施例中,与步骤308相类似的,智能合约可以在区块链中对开奖结果进行发布,使得开奖结果被记录至区块链节点维护的区块链账本中。
步骤318,智能合约根据投注信息和开奖结果,确定中奖用户和奖金。
在一实施例中,智能合约可以从区块链账本中分别读取各个用户对应的投注信息,并将其与开奖结果进行比较,以确定各个用户的中奖情况。例如,智能合约可以读取用户A对应的投注信息,该投注信息中包含用户A设定的投注号码,那么根据该投注号码与作为开奖结果的字符串之间的匹配情况,以及预定义的中奖规则,智能合约可以确定该用户A是否中奖;如果用户A被确认为中奖,那么智能合约可以根据中奖等级对应的单注奖金、用户A为投注号码支付的投注金额等,确定用户A能够获得的奖金金额。
步骤320,智能合约发放奖金。
在一实施例中,以用户A为例,智能合约可以按照确定的奖金金额,自动从预定义的奖金发放账户向用户A的区块链账户进行转账,完成奖金发放操作;类似地,智能合约可以自动完成所有奖金发放操作。由于奖金发放过程由智能合约自动完成,不仅能够简化用户操作、提升发放效率,而且具有极高的安全性。
图4是一示例性实施例提供的一种设备的示意结构图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行,在逻辑层面上形成事件预测装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图5,在软件实施方式中,该事件预测装置应用于区块链节点;该装置可以包括:
第一获取单元51,获取参与方针对指定事件确定的预测结果;
调用单元52,调用智能合约,所述智能合约被用于将所述预测结果发布至区块链的第一区块,并基于区块链中的第二区块的区块内容确定所述指定事件的实际结果,以根据所述预测结果与所述实际结果的比较结果确定所述参与方对所述指定事件的预测情况;其中,所述第二区块的区块高度大于所述第一区块的区块高度。
可选的,所述智能合约用于在区块链中产生第三区块后,确定所述实际结果;其中,所述第三区块的区块高度大于所述第二区块,且高度差为预设数值。
可选的,还包括:
第二获取单元53,获取所述参与方确定的与所述预测结果相关联的随机性内容;
其中,所述智能合约还用于将所述随机性内容发布至所述第一区块;或者,所述智能合约还用于将所述随机性内容发布至区块链的第四区块,且所述第二区块的区块高度大于所述第四区块的区块高度。
可选的,所述实际结果还与区块链中的一个或多个其他区块的区块内容相关。
可选的,所述一个或多个其他区块包括:包含至少一条针对所述指定事件的预测结果的区块。
可选的,所述智能合约用于通过下述公式对所述第二区块和m个其他区块的区块内容进行处理,以确定出所述实际结果:
H’1=H(Hn,Hm),
H’i=H(H’(i-1),H(m-i+1)),其中1<i≤m;
其中,H为预设的哈希函数,Hn为与所述第二区块的区块内容相关的哈希值,Hi为与第i个其他区块的区块内容相关的哈希值,所述实际结果为H’m。
可选的,所述智能合约还用于:将H’m的字符数量压缩为预设数量。
可选的,所述预测结果由所述参与方输入,或者由用于生成预测结果的智能合约通过预定义的随机算法而自动生成。
可选的,还包括:
分配单元54,根据所述参与方对所述指定事件的预测情况,将第一资产凭证分配至所述参与方。
可选的,所述第一资产凭证包括:区块链智能资产凭证或者链外权益凭证。
可选的,还包括:
确定单元55,确定所述参与方持有的第二资产凭证被冻结,以作为用于担保所述预测结果的有效性的担保凭证;
其中,所述智能合约用于在所述预测结果不匹配于所述实际结果的情况下解除所述参与方对所述担保凭证的持有关系。
可选的,所述第一资产凭证所表征的权益大小与所述第二资产凭证表征的权益大小呈正相关。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。