用于向分布式分类账系统中的金融工具提供金融数据的系统和方法与流程

文档序号:15307721发布日期:2018-08-31 21:16阅读:177来源:国知局

本申请要求2016年3月31日提交的美国临时专利申请no.62/15,919和2017年3月29日提交的美国专利申请no.15/473,127的优先权,这两个申请的全部内容通过引用并入本文。



背景技术:

一些类型的分布式分类账系统能够使智能合约由系统存储以供执行。这些系统的分布式应用和其它配置可以建立在这种智能合约之上以提供各种功能。

然而,使用智能合约来提供功能具有局限性。存储在分布式分类账系统中的智能合约本身并不具有直接访问分布式分类账系统外的数据的权限,这限制了它们在需要这种信息的情况下的有用性。存储在分布式分类账系统中的智能合约通常也不能以完全自主的方式来运作,这限制了它们在期望智能合约基于例如外部信息来采取一些动作的情况下的有用性。此外,存储在分布式分类账系统中的数据通常是公开可见的,这限制了存储在分布式分类账系统中的依赖这些数据的智能合约的专有的有用性和安全性。

此外,这些限制在金融领域可能会加剧,例如,金融工具(financialinstrument)的结算可以取决于一些预定的金融资产或指数的当前价格等。

因此,需要一种以改进的方式向分布式分类账系统中的金融工具提供金融数据的系统和方法。

附图说明

为了能够理解本发明的特征,下面描述了许多附图。然而,附图仅示出了本发明的特定实施例,并且因此不应被认为是对本发明范围的限制,因为本发明可以包括其它等效实施例。

图1是描绘了用于向分布式分类账系统中的金融工具合约提供金融数据的系统的实施例的示意图。

图2是描绘了oracle系统的oracle合约的实施例的示意图。

图3是描绘了金融工具合约的实施例的示意图。

图4是描绘了oracle系统的oracle服务器系统的实施例的示意图。

图5是描绘了分布式分类账系统的实施例的示意图。

图6是描绘了分布式分类账系统的分布式节点的实施例的示意图。

图7是描绘了用于向分布式分类账系统中的金融工具合约提供金融数据的方法的实施例的流程图。

图8是描绘了用于注册金融工具合约以进行金融数据传输的方法的实施例的流程图。

图9a-9c是分别描绘了从金融工具合约接收的注册数据、指示所请求的金融数据的注册数据的第一部分以及指示所请求的传输时间表的注册数据的第二部分的实施例的示意图。

图10是描绘了向金融工具合约传输所请求的金融数据的方法的实施例的流程图。

图11是描绘了所传输的金融数据的实施例的示意图。

图12是描绘了响应于所传输的金融数据执行工具功能的方法的实施例的流程图。

具体实施方式

oracle(甲骨文)系统和相关方法的实施例以为金融工具合约提供对分布式分类账系统外的数据的访问权限的方式,向分布式分类账系统中的金融工具合约提供金融数据,提高了金融工具合约自主运作的能力,并维护了金融数据请求和传输的金融数据的隐私性。

oracle系统可以注册金融工具合约以接收所请求的金融数据传输。为了执行注册,分布式分类账系统中的oracle智能合约可以从金融工具智能合约中接收包含表示所请求的金融数据和传输时间表的注册数据的注册交易,并且将注册数据存储在分布式分类账系统中的数据结构中。在分布式分类账系统外部的oracle服务器系统可以监测分布式分类账系统以用于创建新的分类账结构,并且响应于新的分类账结构(例如区块链系统中的区块链的区块)的创建,读取包含新的分类帐结构中的注册数据的数据结构,并配置控制系统以相应地执行数据传输。

然后,oracle系统可以将所请求的金融数据传输给金融工具合约。为了执行金融数据传输,oracle服务器系统可以监测触发金融数据传输的条件的发生,例如预定的传输时间或条件,并且因此检索和/或计算所请求的金融数据。然后,oracle服务器系统可以根据所请求的时间表生成并向分布式分类账系统的至少一个节点发送包含所请求的金融数据的交易。在实施例中,oracle服务器系统可以将所生成的交易定址到oracle合约,然后可以响应于接收到交易而调用金融工具合约以传输所请求的金融数据。可替代地,oracle服务器系统可以直接将所生成的交易定址到金融工具合约,诸如通过生成用于交易的分布式分类账系统的新地址和生成用于将金融工具合约的交易识别为可信的相应代码。

响应于接收到交易,金融工具可以基于所传输的金融数据执行动作。例如,金融工具可以基于所接收的金融数据来确定至少一个值,诸如金融工具的、金融工具的一部分的、或金融工具的中间支付的货币值。然后,金融工具可以基于所确定的值来调用功能,例如关闭金融工具的基础交易、进行中间支付的功能等等。

图1描绘了用于向分布式分类账系统中的金融工具提供金融数据的系统20的示例性实施例,该系统包括:oracle系统24,其包括分布式分类账系统32中的oracle合约28和oracle服务器系统36;分布式分类账系统32中的金融工具合约40;一个或更多个合约对方系统44;以及金融工具所有者系统48。分布式分类账系统32提供了分布式分类账以存储交易、智能合约和相关数据。金融工具合约40(即分布式分类账系统32的智能合约)代表了金融工具。oracle合约28(即分布式分类账系统32的智能合约)和oracle服务器系统36向金融工具合约40提供金融数据传输服务。一个或更多个合约对方系统44由金融工具的一个或更多个合约对方使用以与金融工具合约40进行交互。所有者系统48由金融工具的所有者使用以与金融工具合约40进行交互。

图2描绘了oracle合约28的示例性实施例,其包括注册功能52、注册数据结构56、注册数据读取功能60和金融数据功能64。智能合约可以包括程序指令,其可以由分布式分类账系统的组件响应于在分布式分类账系统中发送的定址到智能合约的交易来执行。如上所述,如此处所讨论的,oracle合约28向金融工具合约40提供金融数据传输服务。

注册功能52是提供如下服务的程序功能:注册金融工具合约40以用于金融数据传输。注册功能52可以通过从金融工具定址到oracle合约28的交易来调用。注册功能52接收来自调用金融工具合约40进行注册的请求作为输入以接收所指示的金融数据传输服务,并且因此将所接收的注册数据存储在分布式分类账系统32中的oracle合约28的注册数据结构56中。

注册数据结构56是分布式分类账系统32中的oracle合约28的数据结构,用于存储oracle合约28的数据。响应于接收到来自金融工具合约40的注册数据传输服务的请求,注册功能52将注册数据存储在注册数据结构56中。

注册数据读取功能60是读取存储在注册数据结构56中的数据的程序功能。注册数据读取功能60是可以由oracle服务器系统36调用的读取调用。读取调用可以通过执行oracle合约28来直接调用,诸如不需要定址到oracle合约28的交易。注册数据读取功能60接收读取存储在注册数据结构56中的注册数据的请求作为输入,并且作为响应读取并提供存储在注册数据结构56中的注册数据作为输出。

金融数据功能64是将所请求的金融数据提供给提出请求的金融工具合约40的程序功能。金融数据功能64可以由来自oracle服务器系统36的定址到oracle合约28的包含所请求的金融数据的交易来调用。金融数据功能64接收所请求的金融数据和提出请求的金融工具合约40的地址作为输入,并且作为响应调用提出请求的金融工具合约40以传输所请求的金融数据。可替代地,为了传输所请求的金融数据,金融数据功能64可以生成交易并向分布式分类账系统32的分布式节点116发送该交易,该交易定址到提出请求的金融工具合约40并包含所请求的金融数据。

在实施例中,oracle合约28可以仅包括本文中参考图2描绘或讨论的特征的任何子集或替代连接。

在实施例中,oracle合约28可以包括以替代的方式组织为一个或更多个程序功能的上述或本文其它地方讨论的功能,并且本文讨论的系统和方法可以替代地使用这种替代的程序功能。例如,代替执行上述所指示的功能的多个单独的程序功能,oracle合约28可以包括相应的单个程序功能,较少数量的单独的程序功能,或甚至更多数量的执行功能的程序功能。

图3描绘了金融工具合约40的示例性实施例,其包括注册功能68、注册数据结构72、金融数据功能76、金融数据结构80、交易逻辑功能84、合约对方访问功能88、法律数据结构92和所有者访问功能96。金融工具合约40可以表示在分布式分类账系统32中存储和执行的金融工具。金融工具可以例如是债券、期权合约、差价合约、合并资产、股指期货等,以及其它金融工具类型。

注册功能68是请求注册金融工具合约40以用于金融数据传输的程序功能。当金融工具合约40的一个或更多个合约对方创建和签署金融工具合约时,可以由金融工具合约50来调用注册功能68。注册功能68读取存储在注册数据结构72中的注册数据,并且生成并向分布式分类账系统32的分布式节点116发送定址到oracle合约28并包含注册数据的交易,以请求注册金融数据传输。

注册数据结构72是分布式分类账系统32中的金融工具合约40的数据结构,用于存储金融工具合约40的注册数据。注册数据定义了所请求的金融数据传输,并且可以包括正被请求的金融数据的标识的指示,以及所请求的金融数据要被传输的时间表的指示。在实施例中,鉴于许多分布式分类帐系统的组件的公共性质,存储在注册数据结构72中的以及最终传输到oracle合约28的注册数据被加密以保护数据的隐私。注册数据可以在分布式分类账系统32的外部被加密,并且作为创建金融工具合约40的过程的一部分或者在这种过程之后被写入到注册数据结构72。

金融数据功能76是接收所请求的金融数据的程序功能。金融数据功能76可以通过oracle合约28的包含所请求的金融数据的功能调用来调用,或者通过来自oracle服务器系统36的定址到金融工具合约40的、包含所请求的金融数据的交易来调用。金融数据功能76接收所请求的金融数据作为输入,并且作为响应执行以下操作中的至少一个:将接收到的金融数据存储在金融数据结构80中;或调用另一功能,诸如交易逻辑功能84。

金融数据结构80是分布式分类账系统32中的金融工具合约40的数据结构,用于存储由金融工具合约40接收的金融数据。响应于接收到包含所请求的金融数据的交易,金融数据功能76将所接收的金融数据存储在金融数据结构80中。

交易逻辑功能84是基于所接收的金融工具数据执行金融工具合约40的动作的程序功能。交易逻辑功能84可以由诸如金融数据功能76的另一功能调用。交易逻辑功能84可以执行以下中的一个或更多个:从调用功能接收金融数据或从金融数据结构80中检索金融数据;基于金融数据评估至少一个值;确定是否需要任何动作以响应所评估的值,如果是,则执行该动作,例如关闭全部或部分的金融工具40或由金融工具表示的交易头寸等。

所有者访问功能96是为金融工具的所有者提供对金融工具合约40的访问权限(例如,追踪其当前或预计的状态和/或金融价值)的程序功能。所有者访问功能96是可以由所有者系统48调用的读取调用。响应于被调用,所有者访问功能96可以读取最近接收到的金融数据,并且提供金融工具合约40的信息作为输出,例如金融数据、通过基于金融数据计算出的金融工具的值(诸如当前或预计的关盘值、中间支付值等),或其组合。

合约对方访问功能88是使金融工具的一个或更多个合约对方能够签署金融工具合约40的程序功能。合约对方签署功能88可以由来自合约对方系统44的定址到金融工具合约40的交易来调用。响应于被调用,合约对方签署功能88可以执行以下操作中的一个或更多个:为合约对方提供对金融工具的法律数据(例如定义了金融工具的法律合约)的访问权限,或者接收金融工具的合约对方的签名。

法律数据结构92是分布式分类账系统32中的金融工具合约40的数据结构,用于存储金融工具合约40的法律数据,例如金融工具的法律合约。

在实施例中,金融工具合约40可以仅包括本文中参考图3描绘或讨论的特征的任何子集或替代连接。

在实施例中,金融工具合约40可以包括以替代的方式组织为一个或更多个程序功能的上述或本文其它地方讨论的功能,并且本文讨论的系统和方法可以替代地使用这种替代的程序功能。例如,代替执行上述所指示的功能的多个单独的程序功能,金融工具合约40可以包括相应的单个程序功能,较少数量的单独的程序功能,或甚至更多数量的执行该功能的程序功能。

图4描绘了oracle服务器系统36的实施例,其包括分布式分类账系统接口模块100、oracle服务器系统控制模块104、金融数据系统模块108和注册数据库模块112。如本文所讨论的,oracle服务器系统36位于分布式分类账系统32的外部,并且与oracle合约28一起为金融工具合约40提供金融数据传输服务。

分布式分类账系统接口模块100提供了oracle服务器系统36和分布式分类账系统32之间的通信接口。接口模块100可以与分布式分类账系统32的通信接口进行交互,以在oracle服务器系统36和分布式分类账系统32之间传送数据(诸如交易和读取调用的数据),以提供金融数据传输服务。

oracle服务器控制模块104提供控制逻辑以结合oracle合约28来实施金融数据传输服务。例如,控制模块104可以控制:读取和解密来自oracle合约28的注册数据结构56的注册数据,以注册金融工具从而接收所请求的金融数据;根据所请求的时间表从金融数据系统108检索和潜在地计算所请求的金融数据;根据所请求的时间表生成和发送以金融工具合约40为最终目标的包含所请求的金融数据的交易,等等。

金融数据系统模块108提供了可以传输到金融工具合约40的金融数据源。金融数据系统108可以包括一个或更多个应用程序接口(api)和金融信息数据库。api接收来自oracle服务器控制模块104对所识别的金融信息的请求作为输入,从金融数据数据库中读取所请求的金融数据,并且将所请求的金融数据作为输出提供给oracle服务器控制模块104。在实施例中,包括金融数据系统108的整个oracle服务器系统36包含在单个安全区域内,并且因此oracle服务器控制模块104可以请求并接收来自金融数据系统模块108的金融数据,而不需要数据加密以及在请求和接收来自安全区域以外的数据源的数据时可能需要的进一步的架构安全特征。

注册数据库模块112为从金融工具接收的注册数据提供了存储空间。oracle服务器控制模块104可以执行对oracle合约28的注册数据读取功能60的调用,从而从金融工具合约40接收由oracle合约28存储的注册数据,如果注册数据被加密则对注册数据进行解密,并将注册数据或基于注册数据的数据存储在注册数据库模块112中。

在实施例中,oracle服务器系统36可以仅包括本文中参照图4描绘或讨论的特征的任何子集或替代连接。

图5描绘了包括多个分布式节点116的分布式分类账系统32的示例性实施例。分布式节点116被布置为对等网络,其中每个节点116可以使用对等通信协议连接到一个或更多个其它节点116。至少一个分布式节点116还连接到oracle服务器系统36,至少一个分布式节点116连接到合约对方系统44,并且至少一个分布式节点116连接到金融工具所有者系统48。作为对等网络,各个分布式节点116之间的连接的配置可以根据对等协议的操作而随时间改变。

在实施例中,分布式分类账系统32可以是区块链系统,其中包括存储在分布式分类账中的交易和其它数据的分布式分类账以结构化数据块序列的形式来提供,所述结构化数据块序列也称为区块链。在其它实施例中,分布式分类账系统32可以是另一种类型的分布式分类账系统,而不是区块链系统,其中包括存储在分类账中的交易和其它数据的分类账可以被组织为不同于区块链的区块的结构。

图6描绘了分布式分类账系统32的分布式节点116的示例性实施例,其包括分类账结构存储模块120、通信模块124、虚拟机模块128和分类账结构创建模块132。分类账结构存储模块120存储由分布式分类账系统32的分类账组织成的数据结构。在分布式分类账系统32是区块链系统的实施例中,分类账结构存储模块120是存储区块链系统的区块的区块存储模块。通信模块124执行该分布式节点116和其它分布式节点116以及连接到该分布式节点116的其它系统或组件之间的通信,例如,oracle服务器系统36、合约对方系统44、金融工具所有者系统48等中的一个或更多个。虚拟机模块128执行存储在分布式分类账系统32的分布式分类账上的合约。分类账结构创建模块132执行算法以将交易和其它数据并入分布式分类账系统32的分类账结构中,诸如所选复杂度的数据加密算法。在分布式分类账系统32是区块链系统的实施例中,分类账结构创建模块132是执行用于将交易和其它数据并入区块链系统的区块链的区块中(也被称为挖掘区块链系统的区块)的算法的区块创建模块。

在实施例中,分布式节点116可以仅包括本文中参照图6描绘或讨论的特征的任何子集或替代连接。

用于提供金融数据的系统20的组件,诸如oracle服务器系统36、分布式分类账系统32、合约对方系统44和金融工具所有者系统48,可以实现为硬件、软件或硬件和软件的混合。例如,orcale服务器系统36、分布式分类账系统32的节点116、合约对方系统44、金融工具所有者系统48中的每一个和/或其组合的任何单独的一个、子集或所有,可以使用处理器和非临时性存储介质来实现,其中非临时性机器可读存储介质包括程序指令,所述程序指令在由处理器执行时执行本文所讨论的所述组件的功能的实施例。

在实施例中,oracle服务器系统36可以是由金融数据服务提供者拥有或操作的计算机系统,例如台式计算机、笔记本电脑、移动计算设备、网络设备、服务器、因特网服务器、云服务器等;分布式分类账系统32的分布式节点116各自可以是由金融数据服务提供者或其它实体拥有或操作的计算系统,例如台式计算机、笔记本电脑、移动计算设备、网络设备、服务器、因特网服务器、云服务器等;合约对方系统44可以是由合约对方拥有或操作的计算机系统,例如台式计算机、笔记本电脑、移动计算设备、网络设备、服务器、因特网服务器、云服务器等;并且所有者系统48可以是由金融工具所有者拥有或操作的计算机系统,例如台式计算机、笔记本电脑、移动计算设备、网络设备、服务器、因特网服务器、云服务器等。

oracle系统24以可定制的时间表向金融工具合约40提供可定制的金融数据,由此提供外部数据和可定制心跳包,其中基于该外部数据可以评估金融工具合约40的交易逻辑,并且可定制心跳包使得金融工具合约40能够以高度的安全性和更大的自主性来执行该交易逻辑。

图7是描绘了向金融工具合约提供金融数据的方法700的示例性实施例的流程图。所述方法起始于步骤702。在步骤704,oracle系统24注册金融工具合约40以接收所请求的金融数据传输。例如,oracle合约28可以从金融工具合约40接收注册交易,并且oracle服务器系统32可以基于注册交易的注册数据来读取和配置相应的oracle控制系统104。在步骤706,oracle系统24将所请求的金融数据传输给金融工具合约40。例如,oracle服务器系统36可以根据所请求的时间表检索、计算所请求的金融数据等,并将所检索到的金融数据传输给目标为金融工具合约40的交易。在步骤708,根据金融数据来执行金融工具合约40的票据功能。例如,响应于接收金融数据,金融工具合约30可以评估诸如金融工具的货币值之类的值,并结束基础交易或因此对金融工具进行中间支付。

随着进一步的金融工具与oracle合约注册,图7的方法700可以随时间重复地执行。

在实施例中,向金融工具合约提供金融数据的方法可以仅包括上述参照图7描绘或讨论的特征的任何子集或替代顺序。

另外,随着进一步的金融数据被传输到金融工具合约40和/或金融工具合约40的进一步的动作被执行,方法700的某些步骤可以随时间重复地执行,诸如步骤706和/或708。

图8是描绘方法800的示例性实施例的流程图,其用于执行图7的方法700的步骤704,即注册金融工具合约以进行金融数据传输。所述方法800起始于步骤802。在步骤804,oracle合约28从金融工具合约40接收定址到oracle合约28的交易,请求注册金融数据传输。该交易调用oracle合约28的注册功能52。该交易包括注册数据,注册数据包括所请求的金融数据的标识的指示以及所请求的数据将被传输所按照的时间表的指示。

所请求的金融数据的标识的指示可以包括一个或更多个特定金融数据块的标识,基于金融数据计算的一个或更多个金融数据值,或其组合。特定金融数据块的标识的指示可以包括对应于特定金融数据块的一个或更多个指示符(例如代码),所述金融数据块例如特定股权、金融指数、商品期货、利率等中的一个或更多个。在实施例中,所请求的金融数据的标识的指示包括标识所请求的金融数据的一个或更多个路透工具代码(ric)。待计算的金融数据值的标识的指示可以包括根据金融数据来执行的计算的一个或更多个定义,或者由oracle系统定义的一个或更多个预定计算的选择,以及要对其进行计算的特定金融数据块的标识。

所请求的数据将按照其传输的时间表的指示可以包括一个或更多个时间或条件的指示,在该时间或在该条件下所请求的数据将被传输。所请求的数据将被传输的时间的指示可以包括金融数据将被传输的分钟、小时、天或月中的一个或更多个,诸如以重复的方式。在其下所请求的数据将被传输的条件的指示可以包括数字或逻辑条件的指示,在满足数字或逻辑条件时,所请求的数据将被传输,该条件例如一个或更多个特定金融数据块或所计算的金融数据值必须经过(例如上升超过该阀值或下降至该阀值以下)的一个或更多个阀值。

图9a描绘了包含在交易中的用于注册金融工具合约40以进行金融数据传输的注册数据rd的实施例。注册数据rd包括第一部分fd和第二部分sd,其中第一部分fd例如包括一个或更多个数据位或数据字,包含所请求的金融数据的标识的指示,第二部分sd例如包括一个或更多个数据位或数据字,包含所请求的数据将按照其传输的时间表的指示。

图9b更详细地描绘了注册数据rd的第一部分fd的实施例,其包括多个数据段fd1...fdn,例如每个包括一个或更多个数据位或数据字。在示例性实施例中,每个数据段包括标识特定金融数据量的代码,例如特定股权、金融指数、商品期货、利率等。例如,一个数据段可以利用代码ftse来指示金融时报证券交易所100指数(financialtimesstockexchange100index),并且另一数据段可以利用代码dax来指示德国股票指数(germanstockindex)。在另一示例性实施例中,多个数据段的子集包括待执行的一个或更多个计算的指示,并且多个数据段的另一子集包括要对其执行计算的特定金融数据块的指示。例如,一组数据段可以指示要计算的多个股权的值的加权平均值,另一组数据段可以使用相应的代码来指示包含在加权平均值中的每个股权,并且又一组数据段可以指示每个股权的权重(例如潜在地表示包含在金融工具中的每个股权的数值)。

图9c更详细地描绘了注册数据rd的第二部分sd的实施例,其包括多个数据段sd1...sdn,例如每个数据段包括一个或更多个数据位或数据字,每个数据段指示所请求的数据将被传输的时间或条件的方面。在示例性实施例中,第一数据段指示金融数据将被传输的时间的分钟,第二数据段指示金融数据将被传输的时间的小时,第三数据段指示金融数据将被传输的时间的月份中的某天,第四数据段指示金融数据将被传输的时间的年份中的某月,并且第五数据段指示金融数据将被传输的星期中的某天。指定的时间可以是重复的传输时间。数据段可以使用类似克龙(cron)的语法,诸如用数字来指示特定的分钟(例如,0-59),小时(例如0-23),月中的某天(例如,1-31),月(例如1-12),星期几(例如0-6)等,以及用字符指示某些预定置换,诸如*来指示对此没有限制。例如,包括0,0,*,*,*的第二数据部分sd可以指示金融数据将在每一月(*)的每一周(*)的每一天(*)的第一小时(0)的第一分钟(0)开始时进行传输。在另一示例性实施例中,一个或更多个数据段指示一个或更多个特定金融数据块或计算出的金融数据值必须满足(例如上升超过阀值或下降至阀值以下)以触发数据传输的一个或更多个阈值。

在实施例中,包含在请求注册金融工具合约40的交易中的注册数据被加密。注册数据可以由分布式分类账系统32外部的系统(例如由金融工具所有者系统48)加密,并且在其创建时以加密的形式存储在金融工具合约40中,或者被发送到金融工具合约40并在稍后以加密的形式由金融工具合约40存储。在实施例中,注册数据可以使用oracle系统36的公钥来加密。在其它实施例中,注册数据可以使用非公用私钥加密系统(诸如零知识证明、同态加密或环签名中的一个或更多个)来加密。

返回图8,在步骤806,确定是否存在足够的款项以用于请求注册金融工具合约40进行金融数据传输的交易。金融数据传输服务可能需要支付。在实施例中,支付需要伴随注册金融数据传输的请求。伴随的支付可以包括分布式分类账系统32中的有价商品,诸如由分布式分类账系统32内的oracle系统24定义的具有预定值的代币或代币的链接,或者由分布式分类账系统定义的一些其它货币或价值机制。例如,根据所请求的金融数据块的数量、所请求的金融数据将被传输的速率或其组合,用于金融数据传输服务的支付可能需要一些代币。在这样的实施例中,在步骤806,oracle系统24可以确定是否有足够数量的代币额外到或链接到请求注册的交易。替代地,伴随的支付可以采取其它形式,例如真实世界的货币、付款账户等或其链接。在其它实施例中,支付可以安排为与请求注册金融数据传输分开。例如,oracle系统24可以经由分布式分类账系统32外部的机制(例如经由oracle服务器系统36和金融工具所有者系统48之间的安全连接)接收来自金融工具的所有者的付款。作为响应,oracle系统24可以将金融工具合约40的地址添加到oracle系统24可以接受注册请求并提供金融数据传输的地址列表。在这样的实施例中,在步骤806,oracle系统24可以确定请求金融数据传输的金融工具合约的地址是否在经批准的地址的列表上。

如果在步骤806确定出不存在足够的款项用于请求注册的交易,则该方法进行到步骤822,即方法结束。如果在步骤806确定出存在足够的款项用于请求注册的交易,则该方法进行到步骤808。

在步骤808,oracle合约28将包含在交易中的注册数据存储在oracle合约28的注册数据结构56中。oracle合约28可以将注册数据作为被调用的注册功能52的一部分存储在注册数据结构56中。在注册数据被加密的实施例中,oracle合约28可以将注册数据以其加密的形式存储在注册数据结构56中。

在步骤810,oracle服务器系统36的组件通过监测分布式分类帐系统32以用于创建新的分类账结构而监测分布式分类账系统32以用于由oracle合约28存储新的注册数据。存储在分布式分类账系统32中的新的交易和数据可能仅在新的交易和数据已经以新的分类帐结构的形式并入到分布式分类账之后才对分布式分类账系统32外部的系统可见。如上所述,新的分类账结构由分布式分类账系统32的分类账结构创建过程来创建。在分布式分类账系统32是区块链系统的实施例中,oracle服务器系统36通过监测分布式分类帐系统32以用于创建区块链中的新的区块而监测分布式分类账系统32以用于由oracle合约28存储新的注册数据。

在步骤812,基于由oracle服务器系统36对分布式分类账系统32的监控,确定是否已经创建了分布式分类账系统32的新的分类账结构(例如,区块链系统的区块链的新的区块)。如果在步骤812,还没有创建新的分类账结构,则该方法继续步骤810的为了新的分类账结构监测分布式分类账系统32。如果在步骤812确定出已经创建新的分类账结构,则该方法进行到步骤814。

在步骤814,oracle服务器系统36从新的分类账结构中读取注册数据结构56,以确定新的分类账结构中的任何新的注册数据。为了读取注册数据结构56,分布式分类账系统接口模块100在oracle服务器控制模块104的控制下与分布式分类账系统32的分布式节点116进行通信,以调用oracle合约28的注册数据读取功能60从注册数据结构56中读取新的注册数据。在注册数据被加密的实施例中,oracle服务器系统36可以以注册数据加密的形式从注册数据结构56中读取注册数据。

在步骤816,在注册数据被加密的实施例中,oracle服务器系统32解密注册数据。在使用oracle系统的公钥对注册数据进行加密的实施例中,oracle服务器控制模块104可以使用其私钥对注册数据进行解密。在注册数据使用非公用私钥加密系统(诸如零知识证明、同态加密或环签名中的一个或更多个)来加密的实施例中,oracle服务器控制模块104根据所使用的这些加密方案中的特定一种来解密注册数据。在注册数据未被加密的实施例中,省略步骤816。

在步骤818,oracle服务器系统36将注册数据存储在注册数据库模块112中。例如,oracle服务器控制模块104控制注册数据在注册数据库模块112中的存储。在注册数据最初被加密的实施例中,oracle服务器系统36将解密的注册数据存储在注册数据库模块112中。

在步骤820,oracle服务器系统36配置其组件以按所要求的时间表来执行所请求的金融数据的传输。例如,oracle服务器控制模块104例如通过设置控制所请求的金融数据的传输的执行的一个或更多个控制数据变量和/或数据寄存器的值来配置该模块的控制算法。该方法结束于步骤820。

随着额外的金融工具注册以用于金融数据传输,图8的方法800可以随时间重复地执行。

在其它实施例中,注册金融工具合约40以用于金融数据传输的方法可以仅包括上述参照图8描绘或讨论的特征的任何子集或替代顺序。

图10是描绘方法1000的示例性实施例的流程图,其用于执行图7的方法700的步骤706,即向金融工具合约传输所请求的金融数据。所述方法1000开始于步骤1002。在步骤1004,oracle服务器系统36监测时间的流逝、金融数据值和/或计算值以识别所请求的金融数据的计划传输时间和/或条件的发生或即将发生。oracle服务器控制模块104可以通过将时钟或其它时间组件的输出或当前或计算出的金融数据值与计划发生数据传输的预定时间或值进行比较来执行监测。在实施例中,可以根据由秒、分、小时、天、月等中的一个或更多个的流逝所标记的时间系统来执行时间监测。在其它实施例中,可以根据由新的分类帐结构的创建标记的时间系统来执行对时间流逝的监测。

在步骤1006,基于所述监测来确定是否已经满足触发条件以执行计划的数据传输活动。在实施例中,触发条件可以是达到计划时间、金融数据值或计算的金融数据值,使得例如所请求的金融数据在计划的时间或者在实现特定的金融数据值或计算的金融数据值时被检索和/或计算。在其它实施例中,触发条件可以是在计划数据传输时间之前达到预定时间增量,使得例如剩余足够的时间用于检索和/或其它传输活动,使得实际的传输在计划时间发生。在以足够高的速度运行的系统中,这两种方法之间的差异可能很小。

如果在步骤1006,触发条件没有满足,则该方法继续进行步骤1004的监测。如果在步骤1006,触发条件已经满足,则该方法进行步骤1008。

在步骤1008,oracle服务器系统36从金融数据系统108检索并且必要时进一步计算所请求的金融数据。为了检索金融数据,oracle服务器控制模块104例如通过向金融数据系统108(例如向金融数据系统108的api)发出标识金融数据的数据请求来从金融数据系统108请求金融数据,作为响应,生成包含所请求的金融数据(包含在金融数据系统108的数据库中)的输出。请求中的金融数据的标识可以包括标识注册数据中的金融数据的标识符,例如标识金融数据的一个或更多个代码(例如ric代码)。为了计算金融数据,oracle服务器控制模块104从金融数据系统108请求形成计算基础的金融数据,然后基于检索的金融数据执行对所请求的金融数据值的计算。在实施例中,要被执行计算的金融数据可能已经作为步骤1004的监测条件的一部分被检索,并且在这种情况下可以可选地省略金融数据的额外检索。

在步骤1010,oracle服务器系统36确定是否加密待传输的金融数据。oracle服务器控制模块104可以基于各种因素来确定是否加密金融数据,例如oracle系统36的特定实例是如何配置的,金融工具合约40是否请求加密的数据等。加密待传输到金融工具合约40的金融数据可以通过防止其它实体查看传输到金融工具合约40的金融数据来提供操作orcale系统24和金融工具合约40的增强的隐私性。加密金融数据可能需要金融工具合约40和金融工具所有者系统48参与所传输的金融数据的解密过程。另一方面,传输未加密的所请求的金融数据可以减少金融工具合约40和金融工具所有者系统48由于需要解密数据而所带来的任何负担。虽然这可能使传输的金融数据暴露于降低的隐私,但如果其与加密请求一起发生就可以减少担忧,这可以用于减少所传输的数据的整体暴露。

如果在步骤1010确定加密金融数据,则该方法进行到步骤1012。如果在步骤1010确定不加密金融数据,则该方法进行到步骤1014。

在步骤1012,金融数据被加密。金融数据可以由oracle服务器控制模块104加密。在实施例中,金融数据使用金融工具合约40或金融工具所有者系统48的公钥或其中一个指定的公钥来加密。在其它实施例中,金融数据使用非公用私钥加密系统(诸如零知识证明、同态加密或环签名中的一个或更多个)来加密。

在步骤1014,oracle服务器系统确定是否通过oracle合约28或通过分布式分类账系统32中的不同地址来将所请求的金融数据传输到金融工具合约40。oracle服务器控制模块104可以基于各种因素(诸如金融工具合约40或所有者的偏好,oracle系统32的特定实例是如何配置的等等)来确定是否通过oracle合约28或通过不同地址来传输所请求的金融数据。通过oracle合约28传输所请求的金融数据可以为金融数据提供到达金融工具合约40的可信通道,因为所请求的金融数据将通过金融工具合约40向其发送金融数据请求的相同合约来到达。然而,始终通过oraclce合约28传输所请求的金融数据可能是可预测的,由此使数据传输受到不希望的监视和潜在的盗窃。通过与oracle合约28的地址不同的分布式分类账系统32中的地址(例如对于每次新传输,具有新地址)来传输所请求的金融数据可以降低金融数据传输的可预测性,并由此降低其引起的注意力和偷窃的风险。通过不同的地址传输所请求的金融数据可能需要进一步的安全特征,以为金融工具合约40提供可信的数据源。

在步骤1014,如果确定通过oracle合约28来将所请求的金融数据传输到金融工具合约40,则该方法进行到步骤1016。在步骤1016,oracle服务器系统36生成包含所请求的金融数据的、定址到oracle合约28的交易,并且将该交易发送到分布式分类账系统32的至少一个节点116。作为分类帐结构挖掘过程的一部分,分布式分类帐系统32将交易结合到新的分类帐结构中,并且因此由oracle合约28来执行。交易调用oracle合约28的一个或更多个功能,例如金融数据功能。

对于在注册数据中标识的每个特定的金融数据类型,包含在交易中的金融数据包括在计划的传输时间或条件或与所述时间的预定偏差处有效的金融数据值。图11描绘了包含在交易中的金融数据dfd的实施例,包括一个或更多个数据段dfd1...dfdn,例如每个数据段包括一个或更多个数据位或数据字,每个数据段包括对应于注册数据中标识的特定金融数据类型的、在当前计划的传输时间有效的金融数据值。例如,如果注册数据包括代码ftse和dax,则金融数据可以包括在当前的计划传输时间有效的这些指数中的每一个的值。

在步骤1018,oracle合约28调用金融工具合约40以传输所请求的金融数据。该调用可以包括由oracle合约进行的金融工具合约40的一个或更多个功能(诸如金融数据功能76)的调用,诸如在由分布式分类账系统的分布式节点执行oracle合约的期间。响应于该调用,诸如可以通过分布式节点来检索和执行金融工具合约,以执行金融工具合约的一个或更多个功能。所调用的功能从oracle合约接收所请求的金融数据作为输入,并且作为响应执行以下中的一个或更多个:将金融数据存储在金融工具合约40的金融数据结构80中;触发金融工具合约的另一功能,例如交易逻辑功能84,等。可替代地,为了传输金融数据,在步骤1018,oracle合约28可以替代地生成包含所请求的金融数据的、定址到金融工具合约40的交易,并且将该交易发送到分布式分类账系统32的至少一个节点116。所述方法结束于步骤1026。

在步骤1014,如果确定通过不同的地址来将所请求的金融数据传输到金融工具合约40,则该方法进行到步骤1020。在步骤1020,oracle服务器系统36在分布式分类账系统32中生成新的地址。为了生成新的地址,分布式分类账系统接口模块100在oracle服务器控制模块104的控制下与分布式分类账系统32的分布式节点116进行通信,以调用分布式分类账系统32的地址生成功能。

在步骤1022,oracle服务器系统36检索或生成用于金融数据传输的密码。当oracle系统24对于每次传输都使用新的地址向金融数据工具40传输金融数据时,传输可伴随密码以将从新的地址到金融工具合约40的传输识别为可信的传输。在实施例中,oracle服务器系统36可以例如经由金融工具所有者系统48或oracle服务器系统36的安全网站或入口网站来从金融工具所有者检索或接收用于每次金融数据传输的新的密码。可替代地,在其它实施例中,oracle服务器系统36自身可以生成用于每次金融数据传输的新的密码,并向金融工具所有者提供所生成的密码,例如经由金融工具所有者系统48或oracle服务器系统36的安全网站或入口网站。

在步骤1024,oracle系统服务器系统36生成包含所请求的金融数据和密码的、定址到金融工具合约40的交易,并且将该交易发送到分布式分类账系统32的至少一个节点116。作为分类帐结构挖掘过程的一部分,分布式分类帐系统32将交易结合到新的分类帐结构中,并且因此由金融工具合约40来执行。金融工具合约40检查密码以确定传输是否可信,例如通过将该密码与其从金融工具所有者系统48接收的相应的密码进行比较,或者首先执行所接收的密码的散列并将该散列与其从金融工具所有者系统48接收到的散列的密码进行比较。如上所述,交易调用金融工具合约40的一个或更多个功能,诸如金融数据功能76,作为响应执行以下中的一个或更多个:将金融数据存储在金融工具合约40的金融数据结构80中;触发金融工具合约40的另一功能,例如交易逻辑功能84,等。所述方法结束于步骤1026。

随着额外的金融数据传输和/或额外的金融工具注册以用于金融数据传输,图10的方法1000可以随时间重复地执行。

在其它实施例中,执行向金融工具合约40传输金融数据的方法可以仅包括上述参照图10描绘或讨论的特征的任何子集或替代顺序。

例如,向金融工具合约40传输金融数据的方法的实施例可以根据已知的规划来配置,例如总是对金融数据进行加密或不加密和/或总是通过oracle合约28来发送金融数据或总是不通过oracle合约28来发送金融数据,或是上述情况的一些混合组合,并且省略了图10中所描绘的确定步骤和相应的未使用的步骤。

图12是描绘方法1200的示例性实施例的流程图,其用于执行图7的方法700的步骤708,即根据金融数据执行工具功能。在步骤1204,响应于接收包含计划的金融数据传输的交易或调用,金融工具合约40基于所接收的金融数据来评估至少一个值。为了评估该值,由包含金融数据的调用或交易调用的功能(例如金融数据功能76)可以响应于接收到所述包含金融数据的交易或调用而调用另一功能(例如交易逻辑功能84)来执行所述值的评估。可替代地,由包含金融数据的调用或交易调用的功能本身可以执行该值的评估。所评估的值可以是基于金融数据的金融工具的或金融工具的某些部分或机制的货币估值,例如基于金融数据的应由金融工具进行的支付的值,例如要由债券支付的息票的值,这可能取决于金融数据中包含的利率。

在步骤1206,金融工具合约40基于根据金融数据确定的值来执行一个动作。为了执行该动作,由金融数据功能76调用的交易逻辑功能84确定是否需要响应于所评估的值而进行任何动作,例如通过以下中的一个或更多个:将所评估的值与阈值进行比较;或者根据金融工具的定义来确定需要的预定动作。例如,交易逻辑功能84可以响应于评估值与阈值的比较来关闭金融工具的全部或一部分或关闭由金融工具表示的交易头寸,例如响应于金融工具值降低至阈值以下,如在止损定义的金融工具的情况下,或金融工具的值上升超过阈值,如在盈利水平定义的金融工具的情况下。在另一示例中,交易逻辑功能84可以根据评估值进行支付或触发金融工具的支付或触发调整由金融工具表示的交易头寸,例如基于金融数据的利率而进行或触发债券契据的息票支付。

在步骤1206中,如果所执行的动作是关闭金融工具,则金融工具合约40还发送定址到oracle合约28的交易,指示不再需要金融数据传输。作为相应,oracle系统24停止向金融工具合约40传输金融数据。这样,oracle系统24不会将不必要的交易传输到分布式分类账系统32,消除了这种不必要的交易的成本和性能消耗。

在oracle系统24将一个或更多个计算的金融数据值传输给金融工具合约40的实施例中,方法1200可以可选地省略步骤1204,并且在步骤1206中基于所接收的计算的金融数据值而不是由金融工具合约40本身计算的值来执行动作。可替代地,步骤1204中的方法可以计算另一金融值,并且在步骤1206中基于所计算的另一金融值来执行该动作。

随着额外的金融工具传输和/或额外的金融工具注册以用于金融数据传输,图12的方法1200可以随时间重复地执行。

在其它实施例中,根据金融数据来执行工具功能的方法可以仅包括上述参照图12描绘或讨论的特征的任何子集或替代顺序。

在实施例中,提供金融数据服务的方法可以包括图7、8、10和12的方法的任何组合,或者这些方法的特征的任何子集和/或替代顺序的任何组合。

上述系统和方法的一些进一步的具体示例可以是说明性的。在第一个进一步的具体示例中,金融工具可以在特定时间请求单块金融数据。由金融工具合约表示的金融工具可以是例如具有固定到期时间的欧元-美元(eur-usd)外汇市场(forex)二元期权合约。当日外汇市场二元期权可能每小时到期,而每周二元期权可能在周五下午3点到期。因此,金融工具合约可以在到期日/时间向oracle合约提交货币对价格(即欧元和美元)的请求,并且oracle系统可以在到期日/时间将包含货币对价格的单个交易传输给期权金融工具合约。

在另一个进一步的具体示例中,金融工具可以请求每天在交易关闭时发送一次金融数据。由金融工具合约表示的金融工具可以是例如可以产生隔夜融资费用的差价合约。该过程通常在英国(uk)时间晚上10点完成。金融工具合约可以向oracle合约发送每天在uk时间晚上10点向金融工具合约发送伦敦银行同业拆借利率(libor)的请求。

在另一个进一步的具体示例中,金融工具可以请求金融数据被安排为尽可能频繁地发送,例如在分布式交易系统的每个分类账结构中发送一次,例如在区块链系统的每个区块中发送一次。由金融工具合约表示的金融工具可以是例如由十五个或更多的股票组成的一篮子资产,其中金融工具的值是使用这些标的资产的加权和来计算的。金融工具合约可以在每个分类帐结构中向oracle合约请求所有这些15种股票的价格,并且oracle系统可以在每个分类账结构中传输包含所有15种价格的单个交易。

在另一个进一步的具体示例中,金融工具合约可以请求在要返回的某一特定价格穿过某一阈值时安排发送金融数据。由金融工具合约表示的金融工具可以是股指期货,其可以设定为如果指数值跌至10%以下(止损)或上涨超过其初始值的10%以上(获利极限)则关闭部分或全部头寸。因此,金融工具合约请求只有在这些条件得到满足时才需要oracle合约发送单个交易,这样显著减少了在金融工具合约在交易时间期间在每个分类帐结构中利用指数值更新时所需的交易数量。

在本文所讨论的系统和方法的可替代实施例中,代替或除了oracle系统24将所请求的金融数据或计算的金融数据值传输到金融工具合约40之外,oracle系统24可以将基于所指示的金融数据或传输条件的信息(例如当满足所指示的条件时执行金融工具合约40的至少一个功能的指令)传输到金融工具合约40。例如,在注册金融工具合约40时,从金融工具合约40接收的注册数据,代替或除了金融数据的指示和/或基于所指示的金融数据进行的计算之外,可以包括金融工具合约40的至少一个交易逻辑条件,例如当特定指示的金融数据或计算满足特定条件时(例如,穿过特定阈值的特定指数等),执行特定的金融工具功能(例如,关闭金融工具,关闭金融工具的至少一部分,支付金融工具等)。作为响应,在生成和传输目标为金融工具合约40的包含数据的交易时,oracle系统24可以监测所指示的交易逻辑条件,并且在满足所指示的条件时发送交易,而不是或除了在计划的时间发送。代替或除了所请求的金融数据之外,交易还可以包括基于所指示的金融数据、条件或计算的信息,诸如当金融数据满足所指示的条件时执行所指示的金融工具功能的指令。

本文所讨论的oracle系统24、oracle服务器系统36、oracle合约28、金融工具合约40、分布式分类账系统32、合约对方系统44和金融工具所有者系统48以及向金融工具合约提供金融数据、注册用于金融工具传输的金融工具合约、向金融工具合约传输所请求的金融数据、并且响应于所传输的金融数据执行金融功能的相关方法700、800、1000、1200的额外实施例是可行的。例如,本文描述的这些系统和方法的任何实施例的任何特征可以用在这些系统和方法的任何其它实施例中。而且,这些系统和方法的实施例可以仅包括本文所讨论的这些系统和方法的组件或特征的任何子集。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1