分布式事务处理及认证系统的制作方法

文档序号:17536909发布日期:2019-04-29 14:05阅读:199来源:国知局
分布式事务处理及认证系统的制作方法

本发明涉及一种在单一体现中规模性地、安全且接近实时地执行事务的系统与方法。



背景技术:

事务处理涉及以大范围的分布式计算机为基础的系统,并且,尤其涉及在支付领域执行事务的多个交易方,同时,还涉及在其它金融资产及商品事务、实体访问控制、对数据的逻辑访问、管理及监控构成物联网(iot)的装置等。

当生成事务处理系统时,工程师必须做出困难的取舍。这包括在速度与灵活性、吞吐量与一致性、安全与性能、一致性与可扩展性等之间做出选择。这种取舍通常影响到整体系统。支付处理系统体现出上述取舍所造成的影响。支付处理中可能需要在一秒钟内处理600到数万笔的事务,然而它只能在系统的工作负荷暂停期间,进行部分处理并存储细节以便进一步处理。这经常会导致需要核对遗失记录、重复事务,以及从事务时间到处理事务的时间之间发生因账户透支导致的信用问题等问题。这些问题并不限于支付。

acid(原子性、一致性、隔离性、以及持久性)是数据库的一致性模型,要求满足下列情况时,各数据库事务必须成功:当整个事务被回滚(原子性)时,始终保持数据库的一致状态(一致性),并且不会彼此干扰(隔离性),以及即使服务器重新启动也必须持久(持久性)。

通常认为该模型无法与大型系统的可用性及性能兼容,大型系统包括例如现有的银行支付网络及其它“大数据”事务系统。相反地,这些系统依赖base一致性(基本可用、软状态、以及最终一致性)。该模型认为数据库足够在最终达到一致的状态。银行系统以该模式运行,这也是为什么它们经常需要暂停任意事务处理,并且执行核对检查以达到一致状态的原因。在大量事务处理中必须做出取舍的概念是cap理论的精神,cap理论主张,一个分布式计算机系统不可能同时满足(c)一致性、(a)可用性、以及(p)分区容错性。对于满足新出现的及现有的需求来说,目前最佳的解决方案包含过多的限制与取舍。

如何核对通过物联网生成的数据的问题逐渐受到更多的关注,这是由于工程师相信当建构网络及事务处理系统时必须做出的取舍将带来影响。影响中的一个是一起构成物联网的装置与服务器之间的通信安全问题。另一个影响是无法确保通过装置收集的数据实际上与通过装置检测的特定事件相关。

以云端为基础的信息存储系统同样呈现出这些取舍的影响,这经常导致大量的服务器及系统只能保证最终的一致性。

因此,需要提供acid一致性给已知的只能受益于base一致性的大型的系统。

发明的内容

综述

根据一方面,提供一种数据事务记录方法,包括:在与第一实体相关的装置:确定第一种子数据;生成所述第一实体与第二实体之间的第一数据事务的记录;通过组合至少所述第一种子数据以及所述第一数据事务的所述记录,确定第二种子数据;通过对所述第二种子数据进行哈希运算生成第一哈希,所述第一哈希包括涉及所述第一实体的数据事务的历史;以及将对于所述第一数据事务的所述记录的所述第一哈希存储在存储器中。根据另一方面,提供一种包括编码部分的计算机可读媒介,当所述编码部分被执行时使计算装置执行该方法。

根据另一方面,提供一种许可装置,用于:从与第一实体相关的装置接收第一哈希,所述第一哈希包括涉及所述第一实体的数据事务的历史;组合所述第一哈希与许可哈希以提供许可输入;通过对所述许可输入进行哈希运算生成第二许可哈希;以及将所述第二许可哈希存储在存储器中。

根据另一方面,提供一种目录装置,用于:从与第一实体相关的装置接收第一哈希,所述第一哈希包括涉及所述第一实体的数据事务的历史;组合所述第一哈希与目录哈希以提供目录输入;通过对所述许可输入进行哈希运算生成第二目录哈希;以及将所述第二目录哈希存储在存储器中。

根据本发明的另一侧面,提供一种从装置访问第一服务的方法,包括:向请求服务器提供所述装置的标识符;根据所述标识符,授权所述装置对于所述第一服务的访问请求;允许所述装置从所述第一服务所在的第一主机服务器访问所述第一服务,所述访问通过所述请求服务器实现。根据另一方面,提供一种装置用于执行该方法。根据另一方面,提供一种包括编码部分的计算机可读媒介,当所述编码部分被执行时使计算装置执行该方法。

根据另一方面,提供一种迁移数据的方法,包括:提供请求,以将第一数据从第一数据存储切换至第二数据存储;根据包括在所述请求中的标识符,从目录服务器确定所述第一数据存储的标识符;将所述第一数据从所述第一数据存储迁移至所述第二数据存储。根据另一方面,提供一种装置用于执行该方法。根据另一方面,提供一种包括编码部分的计算机可读媒介,当所述编码部分被执行时使计算装置执行该方法。

根据另一方法,提供一种通信方法,包括:将第一通信从第一实体传送至第二实体,所述第一通信包括两个或多个数据字段,每个字段包括个别标签;以及将第二通信从所述第一实体传送至所述第二实体,所述第二通信包括两个或多个数据字段,其中在所述第二通信中的字段的顺序不同于在所述第一通信中的字段的顺序。根据另一方面,提供一种装置用于执行该方法。根据另一方面,提供一种包括编码部分的计算机可读媒介,当所述编码部分被执行时使计算装置执行该方法。

根据另一方面,提供一种通过非结构化补充服务数据ussd进行通信的方法,包括:开启第一装置与第二装置间的ussd对话;在所述第一装置生成用于在所述对话中通信的密文;在所述第一装置编码所述密文;将所述经编码的密文从所述第一装置发送至所述第二装置,以用于在所述第二装置进行解密。根据另一方面,提供一种装置用于执行该方法。根据另一方面,提供一种包括编码部分的计算机可读媒介,当所述编码部分被执行时使计算装置执行该方法。

根据另一方面,提供一种在和第一实体相关的第一装置与和第二实体相关的第二装置之间进行通信的方法,包括:在所述第一装置,利用第一共享秘密在所述第一装置与所述第二装置之间生成第一pake对话;从所述第二装置接收注册密钥以及第二共享秘密;对所述第一共享秘密、所述注册密钥以及所述第二共享秘密进行哈希运算,以提供用于生成第二pake对话的第三共享秘密。根据另一方面,提供一种装置用于执行该方法。根据另一方面,提供一种包括编码部分的计算机可读媒介,当所述编码部分被执行时使计算装置执行该方法。

根据另一方面,提供一种访问服务的方法,包括:提供凭证和所述凭证的背景;根据所述凭证和所述背景认证对于所述服务的访问。根据另一方面,提供一种装置用于执行该方法。根据另一方面,提供一种包括编码部分的计算机可读媒介,当所述编码部分被执行时使计算装置执行该方法。

根据另一方面,提供一种在计算机系统中的模块之间进行通信的方法,所述方法包括:将共享存储器信道从第一模块传送至代理;将所述共享存储器信道从所述代理传送至第二模块;其中,所述代理包括切换模块,用于通过绕过所述计算机系统的内核在所述第一模块与所述第二模块之间传递数据;将数据从所述第一模块传送至所述第二模块。根据另一方面,提供一种装置用于执行该方法。根据另一方面,提供一种包括编码部分的计算机可读媒介,当所述编码部分被执行时使计算装置执行该方法。

所述第一种子数据包括起始哈希。所述起始哈希是对有关所述第一实体的先前数据事务的记录进行哈希运算的结果。所述起始哈希包括随机哈希。所述随机哈希包括来自所述装置的签名、生成所述随机哈希的日期和/或时间中的至少一个。

提供第二种子数据还包括:组合第一零知识证明以及第二零知识证明与所述第一种子数据以及所述第一数据事务的所述记录,其中,所述第一零知识证明包括对于所述起始哈希包括涉及所述第一实体的所述先前数据事务的真实哈希的证明;以及所述第二零知识证明包括对于第二哈希包括涉及所述第二实体的先前数据事务的真实哈希的证明。提供第二种子数据,还包括:组合第三零知识证明与所述第一种子数据、所述第一数据事务的所述记录、所述第一零知识证明以及所述第二零知识证明。所述第三零知识证明由随机数据生成。所述第三零知识证明是所述第一零知识证明或所述第二零知识证明的重复。所述第三零知识证明利用对应于所述第二零知识证明的所述第一数据事务的第二记录进行建构。

所述第一数据事务包括至少两个阶段,并且提供第二种子数据包括:组合所述第一零知识证明与所述第一数据事务的第一阶段的记录;以及组合所述第二零知识证明与所述第一数据事务的第二阶段的记录。提供第二种子数据包括:从所述第一数据事务的所述第二阶段的所述记录建构第三零知识证明;以及将所述第二零知识证明及所述第三零知识证明与所述第一数据事务的所述第二阶段的所述记录进行组合。所述第一数据事务包括至少三个阶段,并且提供第二种子数据还包括:组合所述第一零知识证明与所述第一数据事务的第三阶段的记录;以及组合所述第二零知识证明与所述第一数据事务的所述第三阶段的所述记录。

所述第一数据事务包括至少三个阶段,并且提供第二种子数据还包括:组合所述第一零知识证明与所述第一数据事务的第三阶段的记录;以及组合所述第二零知识证明与随机数据。所述第一数据事务包括至少三个阶段,并且提供第二种子数据还包括:组合所述第一零知识证明与所述第一数据事务的第三阶段的记录;以及组合所述第二零知识证明与所述第一数据事务的第四阶段的记录;其中,所述第一数据事务的所述第四阶段是所述第一数据事务的所述第三阶段的重复。

所述第一数据事务包括至少三个阶段,并且提供第二种子数据还包括:组合第三零知识证明与所述第一数据事务的第三阶段的记录。

所述第一零知识证明通过和所述第一实体相关的所述装置进行建构,并且所述第二零知识证明通过和所述第二实体相关的装置进行建构。

建构所述第一零知识证明以及所述第二零知识证明包括使用密钥交换算法。所述密钥交换算法包括pake算法。

所述方法,还包括:将所述第一哈希传送至与所述第二实体相关的装置;从与所述第二实体相关的装置接收第二哈希,其中,所述第二哈希包括涉及所述第二实体的先前数据事务的哈希;以及生成所述第一方与所述第二方之间的第二数据事务的记录;通过组合所述第二数据事务的所述记录与所述第一哈希以及所述第二哈希来确定第三种子数据;通过对所述第三种子数据进行哈希运算生成第三哈希,所述第三哈希包括涉及所述第一实体的数据事务的历史以及涉及所述第二实体的数据事务的历史;以及将对于所述第二数据事务的所述记录的所述第三哈希存储在所述存储器中。

提供第三种子数据还包括:将第三零知识证明以及第四零知识证明与所述第二数据事务的所述记录、所述第一哈希以及所述第二哈希进行组合,其中所述第三零知识证明包括对于所述第一哈希包括所述第一数据事务的真实哈希的证明;以及所述第四零知识证明包括对于所述第二哈希包括涉及所述第二实体的所述先前数据事务的真实哈希的证明。涉及所述第二实体的所述先前数据事务是所述第一数据事务。

所述方法,还包括:将各所述哈希与所述第一实体和/或所述第二实体的标识符进行关联。所述方法,还包括:重新计算所述第一哈希;以及比较所生成的第一哈希与重新计算出的第二哈希从而确定匹配。所述方法,还包括:当所述比较不成功时,取消进一步的数据事务。所述方法,还包括:在系统装置生成对应于所述第一数据事务的系统哈希。

提供第二种子数据还包括:将所述系统哈希与所述第一种子数据及所述第一数据事务的所述记录进行组合。所述系统哈希是在所述系统装置上对先前数据事务的记录进行哈希运算的结果。

提供第二种子数据,还包括:从许可装置接收许可哈希;以及将所述许可哈希与所述第一种子数据以及所述第一数据事务的所述记录进行组合,从而提供所述第二种子数据。

所述方法,还包括:在所述许可装置:接收所述第一哈希;组合所述第一哈希与所述许可哈希从而提供许可输入;通过对所述许可输入进行哈希运算生成第二许可哈希。

提供第二种子数据,还包括:从目录装置接收目录哈希;以及将所述目录哈希与所述第一种子数据以及所述第一数据事务的所述记录进行组合,从而提供所述第二种子数据。

所述方法,还包括:在目录服务器:接收所述第一哈希;组合所述第一哈希与所述目录哈希从而提供目录输入;通过对所述目录输入进行哈希运算生成第二目录哈希。

提供第二种子数据,还包括:从用于所述第一数据事务的加密密钥生成密钥哈希;以及对所述密钥哈希与所述第一种子数据以及所述第一数据事务的所述记录进行组合,从而提供所述第二种子数据。所述加密密钥包括公开密钥或私有密钥。

一旦完成所述第一数据事务,进行所述第一种子数据与所述第一数据事务的所述记录的组合。所述存储器位于远程装置。所述方法,还包括:在所述远程装置,比较所述第一哈希与从其它装置接收的对应的哈希。所述方法,还包括:通知连接至所述装置的其他装置以期待接收所述第一哈希。

所述方法,还包括:将哈希链存储在所述存储器中。所述方法,还包括:将所述哈希链传送至第二存储器,所述第二存储器位于配置成限制对于已传送的所述哈希链的访问的装置上。所述方法,还包括:通过以下操作在所述哈希链中修改或删除哈希:在所述哈希链中重新生成对象哈希;确认所述记录未被修改;记录重新生成的哈希;修改或删除所述记录;通过对所述对象哈希以及被修改/被删除的记录的组合进行哈希运算,生成对于所述记录的新的哈希;以及记录所述新的哈希。所述方法,还包括:使用所述新的哈希生成系统哈希。

所述装置包括服务器。所述装置包括用户装置。所述用户装置包括个人计算机、智能手机、智能平板计算机,或可实现物联网的装置中的至少一个。所述用户装置用于将所述第一哈希存储在所述装置上的存储器中。所述用户装置仅在其从对应的服务器脱机时,将所述第一哈希存储在所述装置上的存储器中。所述装置进一步用于传送所述第一哈希至和所述第二实体相关的装置。所述装置进一步用于将所述第一数据事务的所述记录的经签名、加密的副本传送至和所述第二实体相关的所述装置,其中,所述签名包括针对所述记录的目的地服务器的指示。所述装置用于利用特定的脱机公开密钥对所述记录进行签名。所述装置用于利用属于所述装置的密钥对所述记录进行签名。只有所述目的地服务器能够解密所述第一数据事务的所述记录的所述加密的副本。所述装置配置成:当所述装置重新恢复与其对应的服务器的连接时,将其脱机数据事务的加密的记录以及相关的哈希传送至其对应的服务器。所述装置进一步用于将其所保存的涉及其它实体的数据事务的记录的副本传送至其对应的服务器,以用于发送至对应于所述其它实体的服务器。所述发送包括通知所述记录所适用的全部服务器以期待接收所述记录。所述装置用于生成唯一的内部事务号码,以识别其在所述第一数据事务中的部分。

所述授权包括:根据所述标识符确认用户装置是否得到访问所述第一服务的授权。所述确认包括:根据所述标识符确认用户符合至少一个标准。第一标准存储在所述第一主机服务器或所述请求服务器;以及第二标准位于不同的服务器。所述授权包括:验证所述请求服务器与所述第一主机服务器之间的通信的签名。

所述授权在所述请求服务器中执行。所述授权包括:在所述请求服务器确定所述装置是否预先得到访问所述第一服务的授权。

所述授权在目录服务器中执行。所述授权包括:所述请求服务器从所述目录服务器请求对于所述装置的授权。所述允许包括:所述目录服务器将对于所述第一主机服务器的标识符传送至所述请求服务器。授权所述标识符的数据只存储在所述目录服务器上。

所述方法,还包括:请求对于第二服务的访问;根据所述标识符,授权所述装置访问所述第二服务;允许所述装置通过所述请求服务器访问所述第二服务。所述第二服务位于所述第一主机服务器。所述第二服务位于第二主机服务器。

在第一目录服务器中授权所述装置访问所述第一服务;以及在第二目录服务器中授权所述用户装置访问所述第二服务。

所述方法,还包括:请求访问第三服务;根据所述标识符授权所述装置访问所述第三服务;允许所述装置访问所述第三服务。

所述第二服务位于所述第一主机服务器、所述第二主机服务器或第三主机服务器。在第三目录服务器中授权所述装置访问所述第三服务。

提供标识符包括:所述装置通过加密隧道和所述请求服务器实现通信。所述方法,还包括:对在各相应的服务器处接收的数据进行缓存。各主机服务器提供超过一种服务。

所述装置包括个人计算机、智能手机、智能平板计算机或可实现物联网的装置中的至少一个。

所述迁移包括:在所述目录服务器:对在所述第二数据存储中的数据指定开始时间戳(timestamp);以及对在所述第一数据存储中的数据指定结束时间戳。

所述方法,还包括:指示请求服务器通过所述目录服务器查找在所述第二数据存储的所述用户,其中所述请求服务器在所述结束时间戳之后,尝试通过所述第一数据存储访问数据。在所述第一数据存储中的数据包括关于第一帐户提供者的第一帐户注册;以及在所述第二数据存储在的数据包括关于新的帐户提供者的第二帐户注册。所述迁移包括:将有关所述第一帐户注册的信息,从当前帐户提供者传送至所述新的帐户提供者。所述信息包括注册、余额、组态和/或支付指令中的至少一个。所述迁移包括:确认认证码,所述认证码指出所述第一注册应从当前帐户提供者切换至所述新的帐户提供者。所述第一帐户注册包括第一用户凭证;以及所述第二帐户注册包括第二用户凭证。所述第一用户凭证在第一服务器处进行注册,并且所述第二用户凭证在第二服务器处进行注册。通过所述第一帐户提供者使用所述第一用户凭证接收指向用户的通信;利用所述第二用户凭证,将所述通信指定路由至所述第二帐户提供者。所述方法,还包括:将与利用所述第一凭证的所述第一注册提供者进行的数据事务反转至利用所述第二用户凭证的所述第二注册提供者。所述方法,包括:确定所述用户在所述数据事务期间使用所述第一用户凭证。传送所述通信的服务器必须得到访问所述第二用户凭证的许可。所述第一用户凭证以及所述第二用户凭证相同。

所述装置包括个人计算机、智能手机、智能平板计算机或可实现物联网的装置中的至少一个。

所述方法,还包括:将随机字段加到所述第二通信。各字段包括两个或多个字符,所述方法还包括在至少一个字段中混合不同的字符。

所述方法,还包括:在处理所述第二通信之前,通过所述第二实体在所述第二通信中对所述字段进行解密及排序。所述方法,还包括:由所述第二实体丢弃所述第二实体无法处理的字段。所述第一实体以及所述第二实体中的至少一个包括服务器。所述第一实体以及所述第二实体中的至少一个包括个人计算机、智能手机、智能平板计算机或可实现物联网的装置。

所述编码包括:将所述密文编码为7位或8位的字符串。所述方法,还包括:当所述密文的长度大于所述ussd对话所允许的空间时:将所述密文切割为两个或多个部分;以及分别发送所述两个或多个部分。为在所述第二装置进行解密,包括在所述第二装置处将所述部分重新汇编为完整的密文。

所述方法,还包括:认证所述第一装置及所述第二装置。所述认证包括:利用在两个通信的计算机应用程序之间提供隐私性及数据完整性的算法。所述认证包括利用传输层安全性tls。利用tls进一步包括生成第一对话密钥。

所述方法,还包括:利用所述第一对话密钥对pake协议的协商进行加密,从而生成第二对话密钥;以及利用所述第二对话密钥对所述第一装置与所述第二装置之间的所述对话中的进一步通信进行加密。

所述方法,还包括:认证所述第一实体以及所述第二实体。所述认证包括利用在两个通信的计算机应用程序之间提供隐私性及数据完整性的算法。所述认证包括使用tls。所述方法,还包括:利用第四共享秘密在所述第一装置与第三装置之间生成第二pake对话。所述第四共享秘密包括通过所述第三装置生成的对于所述第一装置的认证码。

所述第一共享秘密包括通过所述第二装置针对所述第一装置生成的认证码。所述认证码和用于所述第一装置的标识符一起被传送至所述第一装置。所述标识符包括所述第一装置的电话号码或序列号。所述第一共享秘密包括与所述第一实体相关的银行卡的个人帐户号码pan。所述第一共享秘密包括和所述第一实体相关的银行卡的经编码的序列号。

所述装置包括个人计算机、智能手机、智能平板计算机或可实现物联网的装置中的至少一个。

对访问所述服务进行认证包括:根据所述凭证和/或所述背景认证对于服务的一部分的访问。所述凭证包括与装置以及所述装置的主要用户相关的第一凭证。所述凭证还包括与装置以及所述装置的次要用户相关的第二凭证。根据所述凭证认证对于所述服务的访问,包括:分别根据所述第一凭证以及所述第二凭证,为所述主要用户以及所述次要用户认证对于不同服务的访问。所述装置包括银行卡,且所述不同服务针对所述主要用户以及所述次要用户具有不同的花费限制。根据所述背景选择所述凭证。所述服务包括根据所述背景选择的多种服务。管理员或用户能够修改、添加或取消所述背景或凭证。所述凭证包括密码、pin和/或其它直接的认证凭证中的至少一个。所述背景包括提供所述凭证的装置、在所述装置上的应用程序、所述装置连接的网络、所述装置的地理位置和/或正在被访问的服务中的至少一个。

所述装置包括个人计算机、智能手机、智能平板计算机或可实现物联网的装置中的至少一个。

所述方法,还包括:在所述第一模块的缓冲存储器中,将多个请求批处理为成批信息;将待传送至所述第二模块的所述成批信息进行排队;设定授权系统功能的至少一个系统旗标;在所述第二模块检查所述至少一个系统旗标;以及在所述第二模块处理所述成批信息。

所述方法,还包括:在所述第一模块与所述第二模块之间建立至少一个共享存储器信道。所述方法,还包括:所述第二模块通过所述至少一个共享存储器信道对所述第一模块进行响应。所述方法,其中,所述至少一个共享存储器信道接收与汇编所述成批信息,并且交付所述存储器的所有权至所述第二模块。所述方法,其中,所述至少一个共享存储器信道通过所述计算机系统的网络堆栈接收成批信息。所述至少一个共享存储器信道包括http网关。所述http网关作为网络服务进行使用。

通信使用密码认证密钥交换协议。所述方法,还包括,在所述计算机系统的网络堆栈中利用零复制的网络连接。所述方法,还包括,在所述计算机系统的网络堆栈中利用用户模式的网络连接。

所述方法,还包括:将数据串行化,使得来自所述第一模块的数据传输的组件被组合为单数据流,并且接着在所述第二模块被分离为所述组件。所述串行化在各模块的边缘处被抽象化。

各模块的缓冲存储器具有可配置的缓冲临界值。所述第一模块以及所述第二模块位于相同的计算装置。所述第一模块以及所述第二模块位于不同的计算装置。

从所述第一模块传送至所述第二模块的数据载有版本id。所述方法,还包括:验证所述版本id对于从所述第一模块传送至所述第二模块的所述数据是否为最新。所述方法,还包括:当所述数据中的任一个得到更新时,重新验证所述版本id是否为最新。当所述版本id未得到验证时,所述数据传输失败。

所述第一模块以及所述第二模块中的至少一个包括至少一个数据服务模块,其中,在所述计算机系统内的各数据活动通过所述至少一个数据服务模块执行。所述至少一个数据服务模块用于和通过核心数据库存储实现的数据存储进行通信。所述至少一个数据服务模块是所述计算机系统的唯一的直接访问所述数据存储的组件。所述核心数据库存储包括至少一个分布式数据库。所述至少一个分布式数据库具有独立的读取及写入访问信道。所述数据存储提供到至少一个异构数据库的接口。所述数据存储提供多种接口类型。所述多种接口类型包括所述核心数据库存储上的结构化查询语言接口、单元格及表格列的接口、文件接口、以及图形接口层中的至少一个。对于所述数据存储层的全部写入通过单一共享模块进行管理,所述单一共享模块控制一个或多个数据事务的全部或一部分。

所述方法,还包括:操作所述共享模块的至少一个冗余备份。所有的数据变更以串行快速序列流过所述单一共享模块。所述单一共享模块使用将自身呈现为数据交易方集群的热备份冗余模型,其中所述数据交易方集群是在分层中的模块集合,并且各模块用于在主控模块失效时控制数据事务。所述方法,还包括:基于通过域配置的规则,在模块或数据存储中对数据进行分割。所述方法,还包括:对数据事务的记录的目标数据或双亲数据事务的记录的目标数据进行哈希运算。所述哈希运算具有与数据分割的数量相同的基数。通过列举的地理区域、姓氏和/或货币中的至少一个对目标数据进行哈希运算。

所述方法,还包括:通过所述至少一个数据服务模块,在多数据分割执行至少一个数据传输。所述方法,还包括:通过多模块而经由所述至少一个数据服务模块完成至少一个数据传输。所述方法,还包括:在所述数据存储中的多数据存储节点上持续进行在所述至少一个数据服务模块上的至少一个数据传输。

所述计算机系统包括多个数据服务模块,并且各数据服务模块管理包括针对相应实例的全部热数据的缓存表示在内的内存/进程数据库引擎。所述计算机系统包括多个数据服务模块,并且各数据服务模块包括多个异构或同构数据库引擎。

所述方法,还包括:利用多版本并发控制对系统进行版本化,使其管理对于所述数据存储的访问的并发性,使得所有的数据读取一致,并且反映对应的数据写入。所述方法,还包括:使用悲观的一致性管理对于所述数据存储的访问的并发性,使数据记录必须写入所述数据存储,并且,必须确认为在任意后续数据事务访问所述数据记录之前被写入。

所述计算机系统还包括应用层,并且其中,所述应用层在所述至少一个数据服务模块确认其已经写入记录并且完成数据传输之前,无法进行数据事务。

第1至第26个方面的所有可选特征参照全部其他方面。能够对所描述的实施例进行变型,例如,可以以任何方式组合所公开的实施例的特征。附图说明

附图说明

下面,参考附图对本发明的示例性实施例进行说明,附图中,相同的附图标记表示相同的部件。

图1为说明tereon的模块化的概念的附图。

图2为说明tereon系统架构的一例的附图。

图2a为说明tereon如何将其服务及装置抽象化为功能域及背景、装置、组件、以及协议的附图。

图3为说明在tls连接上通过中间代理起始的通信的附图。

图4为说明共享存储器以及通往代理存储器的信息的使用的附图。

图4a为说明共享存储器以及信号量切换模块(semaphorehand-over)的附图。

图5为说明有关四个帐户的哈希链的附图。

图6为说明有关在相同的系统上的两个帐户的哈希链的附图。

图6a为说明有关在事务阶段交错的相同的系统上的三个帐户的哈希链的附图。

图7为说明许可哈希的树枝状(dendritic)性质的附图。

图8为说明有关脱机一段时间的四个装置的哈希链的附图。

图9为说明针对两个服务器实施的反向查找功能的附图。

图10为说明在tereon服务器之间建立通信的附图。

图11为说明用户已迁移至另一服务器的通信的附图。

图12为说明目录服务如何引导请求服务器至两个不同的服务器的附图。

图13为说明服务器需要从三个服务器获得凭证以建构多面(multifaceted)凭证的情形的附图。

图14为说明用户和银行的关系的附图。

图15为说明对帐户进行转账的过程的附图。

图16为说明改变注册的移动电话号码的过程的附图。

图17为说明对先前注册的移动电话号码进行维护,从而访问两种货币的附图。

图17a为说明对先前注册的移动电话号码进行维护,从而访问分别在不同服务器上的两种货币的附图。

图18为说明工作流(workflow)的附图。

图19为说明一替代的工作流的附图。

图20为说明一替代的工作流的附图。

图21为说明一示例的计算系统的附图。

概览

本发明涉及一种处理事务的新方法,其无需考虑或受到上述取舍的限制。本发明提供一种实时验证和处理事务的方法,其能够以相比现有的系统具有高出几个数量级的速率验证与处理事务,并实时地结算、处理以及完成上述事务。

实时的结算并非仅限于金融交易。其能够适用于需要、或受益于实时认证、授权、处理、以及完成中的部分或全部的任何事务。这些能够包括访问控制、记录验证、记录及文件交换、命令及控制指令等。

该方法包括七个主要领域:

˙一种用于将极大规模的符合acid的事务写入任意的数据库产品的方法。

˙一种哈希链的实施方式,在单一实时对话的边界内,以极大规模提供跨多个私有分类账(privateledgers)的记录认证,并提供完整的数学证明。

˙一种目录服务,其支持网状网络的事务服务提供方,而不是实施一种生成主要的可扩展性挑战的“轴辐式”架构。

˙一种可扩展架构,其允许商家或用户装置更新其所使用的应用程序(或app),从而,无线地以及逐一地处理事务。

˙一种数据服务层,作为在app之间的支持各种不同的事务类型以及公共数据库结构转换矩阵。

˙一种用于汇编及提供一组点对点(adhoc)凭证的方法,其允许服务或装置访问一组服务或功能。

˙一种用于在包含nfc(近场通信)及ussd(非结构化补充服务数据)的任意协议中生成安全实时的通信的方法。

特别地,本发明的系统提供一种方法,随着事务量的增加,实现实时事务处理,并且以零增加成本完成。

具体实施方式

tereon是一种电子事务处理及认证引擎。可将其实施为一种移动及电子支付处理系统。还能够用在其它实施方式中,例如作为iot通信系统的一部分进行使用。

tereon给任何ip(互联网协议)允许的装置、以及任何可以与该ip允许的装置交互的装置提供事务处理能力。对此的全部要求是各装置具有唯一的id。tereon的使用例的范围包括iot装置到医疗记录的访问及管理,乃至使用通常的例如移动电话、支付终端、或atm(自动柜员机)的支付。在一最初的示例实施方式中,tereon支持移动电话、卡片、零售终端、以及任何唯一的参考id。tereon提供使得客户及商家能够进行支付、接收支付、转移资金、接收资金、进行退款、接收退款、存入资金、提取资金、查看帐户数据、以及查看过去的事务的小型对账单所需的功能。tereon支持跨货币以及跨境事务。因此,客户能够拥有一种货币的一个帐户,但能够以另一种货币进行转账支付。

在tereon的最初的实施方式中,终端用户是否能够执行特定的事务根据其在时间点使用的应用程序而确定。商家或者商家终端可以开始一些事务,而客户装置可以开始其它事务。

在使用tereon进行支付时,事务能够区分为以下模式:进行及接收支付、移动客户至移动商家、移动客户至线上的商家门户、移动客户至客户并不在其中的移动商家、客户账户至在帐户门户内的商家帐户、nfc-tereon卡客户至移动商家、nfc或其它卡客户至卡商家、转移及接收资金、客户帐户至账户门户内的客户帐户、移动客户至移动客户的点对点、移动客户至卡客户的点对点、卡客户至移动客户的点对点、卡客户至卡客户的点对点、移动客户至非用户的点对点、卡客户至非用户的点对点、非用户至非用户的点对点、非用户至移动客户的点对点、以及非用户至卡客户的点对点。非用户可以是指先前未注册支付服务的人,例如没有银行帐户的汇款接收人。

系统架构(systemarchitecture)

在内部,tereon服务器包括两个主要组件,即tereon规则引擎以及智能装置应用服务架构(sdasf)。

sdasf允许tereon管理任意数量的不同的装置及接口。其通过允许tereon使用及链接一列抽象层,从而定义那些装置及接口如何操作,并且由此互联至tereon。

例如,所有的银行卡都将使用基本的卡片抽象层。磁条抽象层将应用于具有磁条的卡、nfc层用于具有nfc芯片的卡、以及微处理器层用于具有芯片触点的卡。当一张卡使用全部三种时,tereon将使用主要卡抽象层以及三个接口层来定义卡。nfc层本身不仅适用于卡,其还能够适用于任何包括移动电话的支持nfc的装置。sdasf使用这些抽象层为各装置或接口创建模块。

在外部,各服务以及各个与装置或网络的连接是一个模块。因此,例如点对点支付服务、存款服务、以及小型对账单的服务均为模块。卡制造商、银行、服务提供方、终端、atm等接口同样均为模块。tereon的架构可以支持任意数量的模块。

模块化视图(modularview)

图1为说明tereon的模块化的概念的附图。实质上,tereon是一个模块集合,其中大多数模块本身包括模块。模块通过它们在其中进行操作的背景及功能域、以及通过确定执行它们需要的功能的商业逻辑所定义。这些功能可以是任意类型的电子交易,例如是管理iot装置的操作以及在iot装置之间的通信、管理及事务电子或数字支付、按需求管理与建构标识或授权凭证、或者管理及运行任何其它形式的电子交易或装置。

tereon服务器

如图1所示,构成tereon服务器102的模块可以在两个层级上进行查看:sdasf104以及规则引擎106。规则引擎106本身定义各模块108(其中一些在图1中显示;这包括定义服务、协议(未示出)、智能装置、终端等的模块)的功能域及背景,并且这些模块108接下来定义sdasf104的结构。sdasf104以及其支持的生成的服务及接口定义供tereon使用的系统协议。然后,这些协议定义tereon可以支持的规则及服务,例如智能装置、终端等,其本身定义tereon提供的功能域及背景。该循环或迭代方法用于确保模块的定义以及其所支持的功能或需求彼此一致。这使得模块能够在不限制系统的操作的情况下,在原位置得到更新、升级、以及更换。

区块及模块使用抽象的应用程序编程接口(api相互连接,其本身定义tereon所提供的功能域及背景。可能时,它们使用定制的信号量切换模块彼此通信,对此的一个例子在图4a中示出并将在下文进行说明,也可以使用共享存储器。以这种方式,可以更新或替换区块及模块的内部的操作及功能,而不损害系统整体的操作。

架构的基础架构组件(frameworkinfrastructurecomponents)

基础架构组件也是模块化的。在sdasf的示例中,该组件本身包括模块。

多接口(multipleinterfaces)

各接口建构为一个独立的连接至内核服务器的模块。由此,tereon的模块化结构使其能够支持多个接口,包含后勤部门及内核系统、卡、票据交换所、商家、移动电话、服务、服务提供方、存储、终端、sms(短信服务)网关、hlr(归属位置寄存器)网关等。

数据库接口支持存储的数据的结构化查询语言(sql)的输入以及图形分析。接口还支持在数据库内对于单独字段的访问控制。不同的用户角色以及授权的层级可以访问定义的数据集以及字段。访问通过各种安全手段进行控制。访问、认证、以及授权在通过行业标准的方式范围内得到实现,包括acl(访问控制列表)、ldap(轻型目录访问协议)、以及自定义的基于角色的访问,例如是单元格及表格列的安全、以及局限于单独角色的访问接口。

电子商务门户(e-commerceportals)

tereon可通过api支持电子商务门户,由此,门户的运营方能够生成用于门户的插件(plug-in)。

规则引擎(rulesengine)

规则引擎106允许通过将事务的各种抽象组件组合在一起来建构新的服务,或者允许新的服务支持新的装置。规则为配置的服务定义商业逻辑,并且服务提供方能够为个别的用户定制这些服务。

规则能够用uml(统一建模语言)或类似简单英语的代码进行定义。引擎将解析规则,并从抽象的组件生成服务。

组件的抽象性质允许新的服务或装置模块能够被快速生成。这使得tereon能够随着需求支持新的服务或装置。

tereon的内部接口与协议无关,这使得外部的协议模块可以互换而不影响功能。例如,为了联接到银行核心系统,自定义数据交换协议可以与组织的一部分一起使用,并且iso20022协议模块与另一部分一起使用。

sdasf104使得tereon能够支持多个智能装置及协议。sdasf104的思想是将实体抽象化为装置类型及协议。sdasf104定义多个协议,并且,各装置调用特定服务或功能所需任何协议。

sdasf104能够通过在现有的设备中添加新的模块进行扩展,而不影响设备的操作。这使得所有的服务都能够在后勤办公室服务器使用任意的较佳方法得到定义。一旦安装在商家终端之后,tereon终端应用程序与sdasf通信,从而向客户提供服务。

图2为说明tereon系统架构200的一例的附图。其中附图及说明通过特定的解决方案对特定的组件进行示例,这仅为在实施例中选择的组件或语言。能够建构定制系统替换这些组件、或使用证明为更有效的其它语言及系统。

tereon服务器

tereon服务202是一种逻辑构造,被认定为单片人工制品。实际上,其作为一组独立的微服务存在,各微服务的功能与范围各不相同。

通信层

通信层204在tls(传输层安全协议)连接上通过中间代理而起始。对此还显示在图3中。tls是密码协议,其在计算机网络,通常是tcp/ip(传输控制协议/互联网协议)网络上提供通信安全。各组件具有acl(访问控制列表),其用于指定哪些用户或系统程序可以访问或连接系统、对象、或者服务。这能够确保只有媒介物可以建立进入、原始连接、提高内在安全以及减少威胁文件。在这一例子中,代理使用本领域所知的具有专门的tereon自定义的http网关平台。

私有dns网络

dns206是目录服务216的基础。目录服务216是高度冗余且是跨地理位置复制的。然而,如将在下面说明,其远超过现有的dns服务所能提供的结构及功能。

抽象化(abstractions)

图2a为说明tereon如何将其服务及装置抽象化为功能域及背景,例如客户或客户活动及规则、商家活动及规则、银行活动及规则、传输活动及规则、装置功能及规则等。图1为说明tereon如何通过将系统的组件及服务抽象化为功能区块或模块来影响这些抽象。

tereon模块由这些抽象建构。各装置、各接口、以及各事务类型被抽象化为其域及背景。这些抽象可重复使用,并且在有意义或允许时,可以连接至其它抽象。例如,充值卡、信用卡、借记卡、以及会员卡模块能够分别使用许多共同的抽象。支付及资金转账模块同样如此。

协议

tereon支持的协议204及212,其本身实施为一种模块。tereon使得这些模块能由需要这些协议的服务或组件进行使用。

保留系统(legacysystems)在其必须添加硬件之前,很难处理数百或数千笔的同步事务。相比更新系统,银行依赖定期结算系统,结算系统需要核对帐户、并且需要承担最高到结算点的信贷风险的高成本。tereon消除了信贷风险以及对于此种账户的需求。它提供了能够承担的系统,系统每秒能够处理数十万笔的事务。tereon用于提高灵活性、支持每台服务器每秒处理数百万笔事务,并且,在高端商用硬件上运行,而不是依赖昂贵的硬件。tereon还支持近线性方式的水平及垂直缩放,而不违背acid保证或影响其实时性能。

许可子系统

tereon许可服务器210允许系统的组件确保其在单一部署的实例内,以及跨部署的实例(例如,彼此通信的独立的客户平台)内,与合法的、授权的、许可的对等系统进行通信,其中单一部署的实例是指,单个实例的微服务在单一机器上进行程序间通信,而不论机器是否为,例如物理机器、逻辑机器、虚拟机、容器(container)、或任何其它用于集合可执行代码的通常的机制,以及跨任意数量或类型的机器。许可平台通过本领域已知的证书授权结构实现。

当组件安装至系统时,它们会以规定的可配置的间隔(例如,每月并提前一周)通过安全的,经认证的连接将其安装细节(组织、组件类型及细节、许可密钥等)以及证书签名请求传送至许可服务器。

证书服务器对这些细节与其授权组件目录进行比较,当匹配时,授予启动安装请求的装置新的证书,该证书在内部证书授权中心(certificateauthority)层级中得到独立的安全签名密钥的签名(通常通过硬件安全模块),能够在规定的时间期间(例如一个月)进行使用。在连接系统中的所有时钟都是同步的。

调用者在启动与其他模块的通信时,能够将证书作为客户端证书使用,并且在作为连接的接收方时,能够将证书作为服务器证书使用。从未接收到私有密钥的许可服务器,不保留可能允许任何其它一方冒充此证书的细节,即使已被盗用。如果愿意,调用者可以从许可服务器请求两个证书,即客户端证书以及服务器证书。

各组件都可以验证服务器及客户端证书是否由受信的经授权的证书授权中心的代理得到签名,并且可以十分自信并不遭受中间人的攻击或监测,即使对方声称是谁。各证书被授予使用代码元数据,其限制各模块如何呈现其本身;例如,作为特定组织的查找服务器。组织确定所有的参与方都操作的经授权的合法有效的实例。

大多数证书被授予固定的期间,并且过期后不再续签。然而,在极少数的证书泄漏、或许可终止或暂停时,会使用吊销列表,并根据异步方式分发到代理服务。始终维护一种活动的证书目录,用于定期审计。

除了双向的验证的优点外(客户端是指自身,各连接中的服务器是指报告方),该实施方式允许组件安全地相互通信,而不要求每个连接的建立都需要和远程许可服务器进行通信,它能够安全地通信,并不会潜在地降低平台的整体可靠性。

站点(site)到站点的通信

站点到站点的通信的促进是通过执行自定义的零复制以及可选的用户模式功能的得到认证与公开的http网关实例212实现。除了站点到站点的连接之外,这也是移动装置、终端、以及其它外部方与实例进行通信的平台。这适用行业标准的入侵检测、速率限制及ddos(分布式拒绝服务)攻击的保护、硬件加密卸载等。在功能上这是一种大型逻辑实例代理机制,支持包括客户端/服务器证书及验证的所有相同功能,同时还使用外部认可的外部方的证书授权中心。

tereon数据服务

tereon系统的关键特点之一是相比在先系统,能够处理更多的事务(就吞吐量而言)。这是由于一种独特的设计实现了高度并发、快速且可扩展的能够处理数据与事务的处理网络,极高效的数据服务层,以及最小化处理开销的算法和定制模块。

所描述的性能特征主要针对扩展,该扩展能够在给定的计算硬件上执行更多操作,从而显著降低运行成本与功耗。然而,设计并不受限于单一系统;tereon系统能够在垂直及水平上扩展相当大的程度,其中各服务都能够在大量装置上同时运行。

为了在单一系统或服务器上实现高水平性能,优选地,系统通过避免不必要的串行化、避免不必要的串流处理(streamprocessing)、避免不必要的存储器复本、避免不必要的从用户至内核模式的转换、避免程序间不必要的背景切换、以及避免随机或不必要的i/o,来最小化处理开销。当系统正确执行时,系统能够实现极高的事务性能。

在传统模型中,服务器a将接收请求。接着,它将建构并串行化查询至服务器b,并且立即将查询传送至服务器b。然后,服务器b将解密(必要时)、去串行化、以及解释查询。接下来,它将生成响应、串行化、以及必要时加密响应,并且将响应传回服务器a或另一服务器。内核及程序背景切换(contextswitch)在每条信息中发生几十次,单一信息以各种形式多次转换,并且存储器复制在多个作业缓冲器之间。这些内核及程序背景切换对每一处理信息施加巨大的处理开销。

通信架构

tereon通过重组系统处理数据及通信的传统方式实现吞吐量。在可能时,tereon绕过操作系统内核以避免由内核施加的处理开销,并且避免经常出现于标准数据管理模型的安全问题。

在系统之内的各数据活动通过数据服务实例214执行。这是一个扩展的面向服务的数据服务层,是系统的唯一具有直接的数据平台访问的组件。因此,在系统上的所有数据活动都必须通过它。

数据服务层214通过单独专用读取及写入访问信道226和数据存储层220进行通信。数据存储层220在内核数据库存储224上得到执行,其本身包括至少一个分布式数据库。这些数据库并不需要提供acid的保证;其通过数据存储层实现管理。

所有对于数据存储层220的的写入都是通过单一共享交易方管理,所有的数据变更以串行快速序列流动,以保持因果关系(causality)。交易方设计使用热备份冗余模型,该模型本身呈现为数据交易方集群222。当交易方因为任何原因而失效或停顿时,则其它交易方中的一个将立即接管。

尽管数据平台支持对所有数据域进行分区,但未在附图中对支持进行显示。当在任何情况下发现单一数据存储层(通过未受限制的数据节点所支持)是被禁止的,或者由于监管而被禁止时,数据可以通过強制或声明方式进行分区,以将不同的交易方存储到不同的数据集群。例如,一个站点可以具有四个数据平台,通过地理或管辖标准对客户进行划分,或者,账户一1-5开头的交易方划分为一集群,6-0开头的则划分为另一集群。对此可能有一些能够进行处理的分支,但这取决于平台是否支持。

图3示出了在通信层204上的通信,该通信层将通信路由至数据服务层214,或从数据服务层214路由通信。当模块350需要和另一模块360通信时,首先启动与代理370的连接,在步骤302传递客户端证书从而进行认证,并且接着在步骤304中,检查在建构时代理证书是否有效且受信任。模块350在步骤306中将信息传递至代理370。代理370在步骤308建立与目标模块360的相关连接;其首先在308处认证其本身,并且在步骤310验证模块的证书是否有效且受信任。接下来,代理37在步骤314中接收模块的响应之前,在步骤312传递启动器(模块350的经确认的细节。代理370在步骤316传回目标(模块360的细节以及其响应。由此,通过代理370在模块350与模块360之间建立信道,其中两个模块以高度置信度相互认证与识别,并且必要时,对所有的通信及数据进行加密。代理370将在步骤318中来自模块350的信息在步骤320中中继至目标模块360,并且,将在步骤322的目标模块的响应在步骤324中中继至模块350。

这些连接根据调用者和接受者的证书细节来使用存活检测机制(keep-alive)以及对话共享(例如,模块350通过代理370“关闭”到目标模块360的连接,并且重新打开端到端连接而不需要实际构建。该连接永远不会为任何其他电路共享)。通信代理370可以是http网关、或者其它适合的模块或组件。

传统上,此种架构通常具有巨大的运行成本,并使用大量存储器。为了使模块350和目标模块360进行通信,传统上需要串行化有效负载、加密有效负载、将其串流至代理370,其中代理370将解密有效负载、去串行化以及解译内容,重新串行化有效负载、以及为目标360对其进行加密之前,先重新串行化有效负载、以及在将其传递至目标模块360之前,为目标模块360对其进行加密。接下来,目标模块306将解密内容、去串行化、以及解译内容。

tereon使用多种技术降低平均及最大延迟、减少存储器加载、以及改善在商用硬件上的单一平台性能。这实现了单片的,程序内的性能,同时维持微服务的所有安全性、维护、以及部署优势。这不会影响此种系统必须提供的高级别安全性与控制。

如在图3中所所示,tereon可以在通信层上使用批量信息模型。信息的传递,例如在步骤306中的从模块350传递至代理370的信息可以是批量信息。然而,tereon可以实现更多。

除了批量信息之外,图4为说明两个服务器模块如何通过代理模块(定制的切换模块)彼此通信,从而协商它们之间的共享存储器信道。步骤402至412类似于图3的步骤302至312,除此之外,当需要时,在步骤302至312中还能够对服务的属性进行检查,从而确认它们与客户端要求相匹配。

模块450至模块460的实例能够使用tls、或者传统的tlshttps,优选地,具有用于调用者事务的http网关的用户模式以及零复制。

当源模块450与目的地模块460为本地时,则在从步骤402至412中通过代理470建立连接之后,调用者以及接收方可以选择性地请求通过共享存储器要求彼此的直接连接,因而其在此具有可选的请求,该方法偏离图3所示的方法。当调用者以及接收方请求彼此的直接连接时,在协商之后,共享信道在步骤414从模块460传输至代理470,并且在步骤416从代理传输至模块450,并且两个模块从点开始使用直接到直接的程序机制,该机制再次使用信号量以及共享存储器。这通过步骤418、420、422中的在模块450与模块460之间的信息进行说明。

在tereon模型中,对于任务来说最理想地,服务器450对本地存储器缓冲器中的多个请求进行批处理,将用于服务器460的信息进行排队,并且跳动(trip)信号量。服务器460检查旗标、处理直接共享存储器、并且在共享存储器中响应。连接根据调用者的证书以及接收方的证书的细节、以及用于通信的共享存储器及信号量,来使用存活检测机制(keep-alive)以及共享存储器。

通过使用上述方法,通信可以避免串行化及串流(假定其内含在机器内)的开销,而到达安全的acl控制的单一调用者目的地。其不需要加密;连接已经在设定时得到验证、认证、以及授权,并且无法被侵占,在适当的情况下,程序可以共享大规模的专有存储器结构。

可能时,代理470以及tereon代码模块(450及460支持零复制的网络连接以及用户模式的网络连接(当使用必需的tcp/ip库进行编译时,http代理可以提供一种避免用于网络封包的内核背景切换的大量成本的解决方案)。这通过代理470以及tereon码模块使用的网络驱动特定代码得到促进。这最小化用于小封包请求及响应的存储器使用;这些包括大量的tereon操作,其中大多数的操作适合单个tcp封包(tcppacket)。

图4a为说明tereon系统如何实施一组定制的信号量切换模块408a,其还可以使用共享存储器,共享存储器用于在tereon系统的任意两个组件(例如,http网关406a以及在tereon内提供功能的微服务410a之间实现有效地数据交换。在图4a中,数据服务层214通过微服务410a进行体现。然而,微服务可以代表任意种类的服务模块。

网络堆栈404a(包括回送(loopback)虚拟装置)接收与集合来自连接服务器402a的请求,接下来,并不是将请求复制到用户模式的目标存储器中,而是简单将存储器的所有权授予接收方,在本例子中是http网关406a。这在存储器开始发生带宽饱和时的非常重的负载下(例如,每秒数百万个请求)具有优势。

自定义的tereon上游(upstream)的http网关模块406a允许本地实例(与http网关实例相关,各容器(container)上或各实体、逻辑、或者虚拟机上都有一个http网关实例)选择性地使用共享存储器和从网关传递至代理存储器的信息,并且对于上游连接来说反之亦然。http网关406a并不串行化请求以及通过传统的机制进行传递,作为替代,当配置为用于共享存储器的上游提供方时,http网关406a使用传递给接收方的共享存储器。

在这种情况下,共享存储器可以已经使用另一http网关、http网关实例、或者其它作为代理的元件进行设置。使用http网关可能尤其有效。

各数据交换模块并非使用操作系统内核所提供的通信钩子(hook),而是各数据交换模块绕过(bypasses)内核;由此,通过避免内核开销而增加系统的吞吐量,并且解决了当数据由内核所提供的服务传入和传出时的不安全问题。在tereon之内,例如使用模块从而直接将数据有效地从系统组件交换至数据服务层214、以及从数据服务层214交换至系统组件。

该架构带来另一优点是http网关406a的效率得到提高,这通过使用允许http网关406a将所有输入数据交给微服务410a的切换模块408来实现,这包括例如,数据服务层214或其它组件、以及从微服务410a或者数据服务层214至http网关406a的所有向外的数据。并非是使用本身有效率的默认的http网关的数据以及信息切换,信号量切换模块,也可以使用共享存储器,允许数据能够绕过内核而直接传递至数据层214,并且从数据层214至http网关406a。这不仅增加系统的吞吐量;还具有保护使用http网关的系统中的常见的漏洞区域的附加优点。

提供共享存储器信道的模块、或和共享存储器信道通信的模块的都可以批处理与串行化、或者去串行化与分离请求。执行作业的模块实质上是模块的功能、以及模块在其正常操作中所带来的处理开销。例如,在一种情况下,本身正在接收大量信息(可以是或者不是请求)的模块可以将其信息传递至共享存储器模块,共享存储器模块本身将为接收方批处理及串行化这些信息,这是由于批处理及串行化的开销可能会阻止模块在负载时有效地处理信息。在另一情况下,模块可以在通过共享存储器信道将批处理传送至接收方之前,将消息批处理及串行化至特定的接收方。

在又一种情况下,传递信息至接收方模块的模块,可能依赖提供批处理及串行化信息的共享存储器信道的模块,然而,接收批量信息的模块本身能够去串行化及分离信息。哪一个模块实现批处理及串行化、或者去串行化及分离作业的问题,实质上是哪种选择为模块的执行提供最佳性能水平。批处理及串行化的顺序取决于信息类型以及通信模块所提供的功能。

tereon使用http网关406a伪装为网络服务(webservice),由此避免网络运营方组织非标准服务的潜在问题。当然,当需要时,tereon可以伪装成任何其它服务,由此轻松地与公知的网络安全配置一共运行。

基于这种设计,系统在整个架构执行模块化方法,其中,系统使用设计为开发可用资源,并且在可能时避免内核开销的模块。作为另外的示例,联网系统,当可能时tereon所使用的模块在网络堆栈404a中支持用户模式的网络连接或零复制的网络连接。这避免了使用进行联网的沉重的开销。模块化设计还允许tereon在多种类型的系统上运行,其中类似的定制模块提供类似的功能,并且可以针对各操作系统或硬件配置进行自定义。

用在图3及图4中所说明的媒介物的方式,允许不论是机器内或机器外的所有的通信都有集中的控制点。其为用于评估及安全控制、监测及审计、以及用于特殊规则或重定向的单一控制点。这保障了即使当系统在操作时也可以灵活地部署系统,而不会引起停机或重大风险。它还可以轻松地促进负载平衡及冗余,而不需要任何客户端察觉或复杂度。

当图3的模块350想要与目标模块360对话时,媒介物的使用允许目标模块360跨“n”个机器而实现负载平衡,并且能够横跨任意数量或类型的机器移动而不需要重新配置所有潜在客户端,而仅简单地重新配置媒介物。

系统使用pake(密码认证密钥交换)协议,协议用于为两个通信方提供相互认证其密钥交换的能力。对于其它众所周知的例如diffie-hellman密钥交换协议的公开密钥交换协议来说无法实现,导致协议易受中间人攻击的伤害。当正确使用pake协议时,可以免受中间人攻击。

在tereon和外部系统(例如,外部装置或服务器)通信的情况下,它为通信系统增加额外的层。许多密钥交换的协议在理论上易受中间人攻击的影响。一旦建立连接,使用证书以及经签名的信息来确认通信是介于两个已知的实体之间后,系统使用pake协议来建立第二安全对话密钥,从而使得通信不受中间人攻击的影响。由此,通信将使用tls对话密钥,以及紧接着使用pake协议的对话密钥,对所有的通信进行加密。

当使用具有不可破坏的身份字符串的装置进行通信时,必要时可以省略tls,而使用pake协议作为主要对话密钥协议。例如,这可能发生在装置是构成物联网的一组组件的小型硬件传感器的情况下。

通信方法

tereon数据服务214根据具有图形功能的键-值存储(key-valuestore),其提供n+1或更大冗余以及可选的多站点的复制,并且通过协调交易方(执行、管理、或控制一个或多个事务的全部或一部分的装置或模块)提供完整的acid保证。数据服务214封装在数据域服务中,除了共享存储器的功能以外,还提供零复制功能以及无限制的读取扩展、存储器内的缓存、以及极高水平的写入性能。这保持在具有可变大小的数据集群中,并具有大的存储器缓存。在极独特的情况下,可以绕过数据服务直接使用键-值存储。

数据服务214提供高性能的传统的sql类型的功能与图形处理,从而支持例如资金流分析等功能。数据服务214与具有高性能的模块通信架构(提供平台的效率及性能)耦合,从而提供极其高效的设计,在商用服务器硬件上(使用绑定的10gbps网络连接)的测试中已经超过280万事务/每秒。

通过实施以下的架构优先级,系统可以显著地降低处理系统内以及系统之间传输信息时所需的内核以及程序背景切换的数量:

a)零复制的网络连接可用于最小化从网络边缘至服务的传输成本。

b)用户模式的网络连接可用于最小化从网络边缘至服务的传输成本。

c)在需要串行化时(主要是当跨机器或服务器的边界时),使用高效的串行化,例如协议缓冲器或avro,而非高开销串行化,例如简单对象访问协议(soap)。这在各服务器的边缘进行抽象化,使得给定的服务器可以轻易地在互联网上与在另一大陆上的对等服务器进行对话,尽管性能及效率较低。

d)服务器具有可配置的缓冲临界值,它们将尝试批处理请求从而最小化程序背景切换,并且最大化任何给定服务器的缓存一致性。例如,当服务器a在20ms内有10,000个请求到达,平台目标是20ms的缓冲器窗口,其需要服务器b协助10,000个请求,于是其收集10,000个请求为单一请求,然后为服务器b对异步信息进行排队、标记信号量。服务器b接着可以快速处理10,000个请求,向服务器a提供单个响应。这可以通过相对于最大响应时间的最优效率进行配置。

实际上,降低内核及程序背景切换的数量已经在平台的性能水平上带来巨大改进。由于批量信息得到传递,tereon模型并不是对每个信息引发多个内核及程序背景切换,而是为每个信息区块引发多个内核及程序背景切换。基于测试可知通过使用该模型,传统模型与tereon模型之间的性能差异为1:1000,而且对于许多作业负载来说是更大的。

然而,模块以及其优点并不限于单一系统。例如,即使存在不在同一机器机器上的服务器a以及服务器b,tereon系统仍然使用高效率的串行化及批处理。不论是否与可选的零复制或用户模式网络连接耦合,tereon模型都能够明显改善网络及处理性能。

测试表明,这些设计元素已经证明本地服务器至服务器每秒操作来回数千万条信息请求及响应(在批量、共享存储器模式中),并且低速时在高速网络线路(例如,绑定的10gbps)上每秒操作数百万次。

由于这些事务都可以实时处理并立即核对,因此具有许多优点-特别是对于银行、iot、医疗、id管理、运输、以及其它需要正确的数据处理的环境。具体地,此类系统当前并未实时核对事务。相反,事务在一段时间后得到核对,有时是批次地进行。这也说明了,例如金融交易通常批次进行,并且在数小时后进行独立的核对流程的原因。通过使用tereon系统,银行能够以一种之前无法实现的方式对所有的金融交易进行核对。这使得银行能够避免对未核对的金融事务生成对账账目(reconciliationaccounts)、或者避免无法准确实现所要求的所有事务在处理时已经完成核对。

事务及数据分区

在tereon系统中的所有原子活动都是事务-它们作为一个整体成功或失败,这也是对于遵循事务acid保证的任何系统的基本要求。这一部分简短地说明了其实现方式,以及tereon对事务及数据分区所采用的方法细节,从而减轻分区对实现事务的acid保证的影响。

如上,tereon平台内的各个数据活动通过tereon数据服务实例214执行,该实例本身可以作为一组微服务410a进行操作。这是一个扩展的面向服务的系统,是系统中唯一具有直接的数据平台访问权限的组件,由此,所有的数据活动都必须通过它。这些数据服务得到扩展,使得系统内的并行事务可以通过不同的数据服务实例完成,使用实例缓存数据mvcc(多版本并发控制)从而确保始终具有一致的数据读取。

数据活动通过原子信息发生到数据服务实例,信息包含整个数据作业;例如,作业可能有关读取若干个相关记录及属性、或根据所依赖的数据或任务组合更新或插入数据。数据服务实例将作业执行为横跨所有后台的事务的的数据存储的两阶段提交事务。

tereon模型通过以下技术保证数据一致性:

a)任意一组读取数据载有版本id。

作为乐观事务,所有写入(更新以及相依插入)验证此版本id对于所有相关的数据而言是最新的。这意味着如果一个源读取三个记录以获得各种帐户属性(例如,许可、余额、以及货币数据),则该数据集群具有一致的版本id。如果之后更新了这些值中的任一个、或者写入相关相依数据(例如,金融转账),则再次将版本id确认为最新,并且如果它不同,例如货币假设发生变化、或者汇率修改,则写入作为整体完全失败。如果适合,重新读取下游服务,并且评估数据是否以任何实质性的方式改变事务。如果没有,则重新提交事务。同样地,如果事务失败,则重复该事务直到超过可配置的重试次数,并且发出硬错误(hardfail)。在正常的情况下,硬错误几乎不可能。

在绝大多数真实世界的情景中,即使事务量以及帐户多样性十分庞大,也不会发生失败的乐观事务。在极少数情况下,数据永不受损,并且处理开销极小。假定使用的平台是永久的历史数据库(在特殊情况下可能需要规定外的删除),该mvcc/乐观模型也完全保护被删除的记录。

b)针对给定的数据分区写入平台(这是与数据服务的水平扩展分开的概念)。

许多数据服务实例可以对一个数据分区进行写入与读取,并且单一数据服务实例可以全部存储至多个数据分区,并且从多个数据分区读取。所有的读取及写入都通过单一主控交易方实例222发生,必要时具有一个或多个冗余操作备份。然而,只有单一实例是持续活动。这保证在所有情况下保持事务及因果的有效性(例如,在一网络断裂(split)期间、或者在短暂的通信延迟期间没有偏斜(skew))。此交易方确认所有乐观事务是否有效,并且在数据服务实例中不断更新缓存管理器,这对于实力具有背景重要性。

c)可选的数据分区

受限于单一交易方可能限制极大的tereon实例的可扩展性(例如,单个组织可能会按照地区管理多个tereon实例)。数据分区的概念是,tereon数据服务集群可以基于按照域配置的tereon规则跨交易方222或者数据存储224划分数据。作为异构的多组件的哈希策略,tereon平台目前支持以下分区规则:

i)对给定元素或任意上级(superior)元素的目标数据(例如,根据父记录的细节哈希)进行哈希运算。高性能哈希的基数(cardinality)等于分区数。

系统目前不提供重新平衡,因此在当前实施方式中,尽管将在未来的实现中提供再次平衡,但必须预先进行哈希运算(尽管目前仍可使用包括原始日期及时间的哈希的多部分规则来增加分区)。

ii)数据配置了给定元素或任何上级元素的目标数据的哈希,例如通过列举的地理区域、按照姓氏a-k或l-z、通过货币等。

针对数据的哈希支持字母与数字、统一码(unicode)、以及其它字符代码的范围、整数范围、浮点范围、枚举集。

iii)以上的组合。

例如,在一实施方式中,两个字母a及b可以指共同横跨整体的地理区域两个独立的数据组,其中数字1及2指该区域的两个分区。例如,单一分区规则可以支持通过例如地理区域的数据规则在顶层的1ab及2ab之间的分区,然后通过账户哈希进一步在a及b之间进行分区。

d)通过单一数据服务实例实现的单一作业可以跨多个数据分区、并且,通过多个交易方完成,并维持在于大量的数据存储节点上。

这呈现出明显的数据完整性的复杂度。然而,由于事务的所有组件都绑定在两阶段的提交封装(wrapper)中,数据的完整性得到保证。针对所有持续的节点及参与者,事务作为一个整体成功或失败,并提供全部相同版本的保证。

这一架构设计融合的最终结果,系统在垂直和水平方面,都具有完全的事务安全性、高度冗余性、以及高度可扩展性。尽管写入事务(在大多数的情况下包括活动的小部分)可能受限于每一分区的单一交易方的事务必要性,添加基于规则的分区,尤其是上级的数据元素,为将系统扩展到概念上的无线程度提供极大的灵活性,甚至是在考虑分支(bifurcating)实例之前,。

tereon数据存储的实施方式

tereon基础架构每秒能够处理超过一百万个acid保证事务。这通过在分布式数据库或数据库224上抽象化或实施数据存储层220实现,上述抽象化与实施是通过为具有单独的读取与写入访问信道226的存储层(storagetier)(这可以在任意深度水平,从通过tereon数据服务的抽象到直接将数据库使用引导至存储层)使用高性能的键/值分布式数据库实现。tereon的对于数据存储的使用与配置是独一无二的。

数据服务层通过其定制的数据交换模块与数据存储层进行通信。数据库本身完全不需要提供任何acid保证,这由数据存储层220进行处理。由于图形功能明显拖慢写入程序,数据库本身也不需要提供图形功能。数据存储层220提供到异构数据层的接口,并且向系统的不同的部分提供所需要的接口功能。因此,写入功能提供快速的单元格及表格列结构,同时读取接口提供图形接口使其能够在微秒内遍历分布式数据存储。

数据存储层在内核数据存储数据库224上提供sql接口以及图形接口层,并且提供使tereon分开的许多重要的架构优点。每个客户端实例(tereon数据服务实例214管理存储器内/程序内的数据库引擎,其包含针对实例的所有的热数据缓存表示。实际上,实例管理数据库引擎以及所有当前事务的数据缓存表示、各当前事务的状态、以及其它信息,该其他信息是在示例运行时,在ram部分或机器的其他快速存储器,或机器的实例的当前状态的信息。

这使得tereon数据服务能够以极高的速率(每一实例每秒有数百万个离散查询,其中热相关数据在本地缓存)使大多数的面相读取的作业更加容易,超出可实现的性能水平的量级是串行化并向外部数据库系统发出的外部或机外请求。当数据不在程序内缓存中时,将从密钥值存储中检索。

mvcc版本系统用于管理并发性,并且数据层的属性是数据永远不会被删除(除为了符合规定而强制删除的情况),其中,系统为数据系统的生命周期保留每一个记录改变的完整历史。这使得例如“asof”查询以及审计任何平台改变等简单操作成为可能。

数据层的写入方式使用单一共享交易方,所有的数据变更都必须流过串行快速序列,并在串行快速序列内处理。这能够确保事务是有效的、一致的,并且最小化更改并发开销,开销对于大多数数据库平台都是繁重的重担。交易方设计使用一种热备份冗余模型。当交易方程序改变时,其通知所有有效的查询引擎(在这种情况下存在于tereon数据服务中),并且适当时,更新存储器内的缓存。

不论数据存储的大小,设计为读取、写入、以及搜索提供微秒级的延迟。它还提供模块化结构,在不影响其操作的情况下,允许升级与更换组件。此数据存储从基础(underlying)的实施方式中抽象出来,并且能够替换为tereon数据服务中的其它存储。

当将数据存储层设定为使用悲观的acid保证226时,那么加入额外的步骤,从而确认在进入下一个事务之前已经写入一条记录,这会增加一个短的延迟,但提供对于acid一致性以及数据完整性的绝对保证。

由于在数据层确认已经写入记录并且完成事务之前无法继续应用层,该设计具有提供acid保证的优点。

这表示,例如在银行、支付、以及其它必须保存因果关系的事务类型中,能够消除由于最终一致性所引起的问题。通过acid保证设计,还消除了当银行系统发现不匹配的程序时,对于用来弥补差额的对账账目(reconciliationaccounts)的需求。实时处理还意味着消除了在最终一致性系统上产生核对过程的时间延迟。

该平台的设计在商用硬件上提供极高水平的冗余和可靠性、和极大的可扩展性(垂直及水平地)。有关交易方系统的可能的限制理论,导致在数据服务中建构分区从而克服这些限制,但在大多数的情况下,永远不用使用平台。

查找/目录服务

tereon系统具有目录服务216,该目录服务是凭证以及信息的目录,其中,信息是在系统中用于识别用户或装置218注册于哪一服务器、或哪一服务器提供特定的功能、资源、设施、事务类型、或者其它类型的服务的信息。由于目录服务存储有关特定用户的不同类型的凭证,因此,目录服务能够进行多种用户218认证方法。例如,用户218可以使用移动电话号码、电子邮件地址、地理位置、pan(主要帐户号码)等进行认证,并且缓存数据,从而不必每次进行认证。

目录服务216提供抽象层,该抽象层将用户的认证id从基础服务、服务器、以及实际的用户帐户分离。这在用户218或商家可用于访问服务的凭证与tereon执行服务本身所需的信息之间提供了抽象化。例如,在支付服务中,目录服务216将简单地链接认证id,例如移动电话号码,或者具有服务器地址的货币代码。并且,绝对没有方法判断用户218是否具有银行帐户、或者用户218使用哪家个银行。

系统架构使得tereon能够提供多个超出现有系统的新颖的服务或特征。

tereon系统架构因其允许可扩展及冗余的系统而十分有益。银行核心系统倾向提供专用于单独的信道的模块,例如卡管理、电子商务、移动支付。此加强了孤岛(silos),并增加了it系统的复杂性。复杂性是银行无法定期更新其服务与系统的原因之一。

tereon的目的在于,使用具有高度可配置性和自定义性的模块架构支持所有装置与所有使用情况。其中的核心是以上论述的sdasf104与商业规则引擎106、以及高度抽象化。就是这一点与可扩展架构一起使tereon具有灵活性。

tereon使运营方能够使用标准的运营方等级(carrier-grade)系统提供并支持许多事务类型。tereon能够支持任意的事务,不论事务是否需要认证。

特殊的程序

特殊程序208理想地使用数据服务的功能。然而,可能存在这样的实例,其特殊要求无法使得对于改变或扩展具有合理性,由此,为从数据直接取回数据库(datalibrary)在特殊程序内进行使用。例如,这能够包括图形功能程序,例如aml(反洗钱)、crm(客户关系管理)、或者erp(企业资源规划)的功能。

多(multiple)服务

由于每个服务都是一个模块,tereon的模块化结构使其能够支持多种类型的服务与装置。例如,在支付中,该结构使tereon能够支持多种支付类型及装置,包含银行、充值卡、信用服务、信用合作社、借记服务、员工计划、电子钱包、忠诚度方案、会员方案、小额贷款、预支付、学生服务、票务、sms通知、hlr查询等。

多端点装置(multipleend-pointdevices)

tereon的模块化结构支持几乎任何直接或间接通信的端点装置,端点装置包含磁条卡、智能卡、功能型电话、智能手机、平板计算机、卡终端、销售点终端、atm、pc、显示器屏幕、电子访问控制、电子商务门户、手环及其它可穿戴装置等。

多数据库

模块化架构具有的另一个优点在于系统并不限于一个数据库。相反,可与多个数据库连接,各数据库具有特定于数据库的模块,由此,可以将数据库用于特定目的、或者使用跨多个异构数据库的数据记录组合。

许可子系统210的实施方式除了提供授权及认证的优点之外,在作为许可目的的证书授权中心使用时具有新颖性。替代各模块信任彼此主张(claim)、在共享的数据库使用简单认证、或者在建立各连接时向单独许可服务器不断进行委托(具有所需的性能及可靠性开销),是用于这种分布式的基于模块的系统最常见的实施模式。在tereon中,许可子系统确保模块之间的连接实质上安全,并且使用最小性能及可靠度开销保持对参与者的可信任的经验证的元数据(metadata)。

实施方式还限制许可服务器泄漏的实例中的潜在漏洞的范围:在传统的部署中,这种损害对于所有组件的焦土政策重建具有意义。在tereon模型中,具有要求一个新的中间签名证书(当未被硬件安全模块保护时)的基于时间的曝光。所有损伤前授予的现有证书将被保留,并且按照正常时间表续订。新证书将在新的授权中心得到授权,并且任何其它恶意证书由于是在危害之后而将被拒绝。这种曝光窗口控制有利于最坏情况。许可服务器保存的数据,在理想地保管签名证书私有密钥的硬件安全模块的外部是完全无特权的信息。

tereon的设计还可以选择将例如移动电话或iot装置的端点装置与小型化的tereon服务器进行组合,小型化的tereon服务器与其它tereon服务器通信以作为此种服务器网络的一部分。它们仍然将和tereon许可服务器210进行通信,也可能与一个或多个运营方运行的tereon服务器进行通信,从而整理数据以及协调活动。然而,端点装置与tereon服务器之间的区别能够是抽象的,其中任何区别只依据装置及服务器所处的使用例。

哈希链

区块链(blockchain)的一大缺点是区块链存储所有先前事务的审计(即,能够在区块链中判断事务历史,并将其用于认证目的)。这表示区块链方法不能够无限扩展,这是由于区块链的大小最终会变得太大而无法在现实的时间范围内进行管理,同时各区块的大小限制区块链可以注册的每秒最大事务量。

第二缺点是事务历史可供访问区块链的任何人使用,并且提供确定事务各方的能力。这导致对于隐私性和/或机密性是最重要的要求的任何有意活动,使用区块链在隐私性及监管上具有极大挑战。

另一缺点是区块链只能哈希事务结果或者最后记录,并且无法验证事务本身的实际程序或者步骤。

在此公开的哈希链尝试通过使用一种特定的哈希方法克服这些问题,从而在事务各方之间保持记录的私有性,并由此提供包含tereon的所有用户的分布式认证网络,而不论它们是运行在开放或私有网络上。

这通过连续构建分布式哈希链实现,该哈希链跨公共及私有网络实时地操作,而不向任何第三方透露基础通信的内容。这与不论它们是否为通信的一方,每一方都必须查看及接受每个通信内容的分布式哈希或者分类账(ledger)(ledger)的标准模型直接形成对比。

当哈希链使用包含零知识证明的协议时,可以认证事务的各步骤以及这些步骤生成的信息或结果。

实施方式可以导致通信方生成相同的中间哈希、或者,它们可以为相同的通信生成唯一的中间哈希。结构还允许各方在现有的算法被弃用时迁移至新的哈希算法,并且不影响哈希链的完整性。这与更新或升级现有的例如区块链的解决方案使用的算法难度直接形成对比。

tereon为事务的每一方(帐户)生成哈希审计链,其中:

tereon生成和记录相关的哈希,并对于记录存储哈希。一旦完成生成记录的动作,使用生成记录的步骤、以及由这些步骤产生的信息或结果,tereon将生成哈希;

tereon使用先前记录哈希,作为当前记录数据的一部分;以及

在任何记录链中的第一哈希都是包括服务器的签名、tereon生成哈希的日期及时间、以及必要时的随机数的随机哈希。

当记录属于涉及两方或多方的动作(action),并且每一方都应记录动作的侧面(side),则对于在动作中的每一方,tereon将:

将记录的每一方的哈希与其它一方或多方进行共享;

使用哈希形成接收方的记录的一部分,tereon将对于接收方的记录生成记录哈希;

生成包括来自其它一方或多方的哈希记录的中间哈希。

与其它的一方或多方共享中间哈希,使得每一方在动作中封装其他方的一部分(当各方使用正确的协议时,由于这些中间哈希完全相同而没有必要进行共享);

在动作记录中包含中间哈希;

生成最终哈希,存储在动作并作为下一个记录的一部分使用;以及

将每个传输的哈希值或使用零知识证明的协议生成的中间哈希值与传输者的id或tereon号码相关联。

如下说明,tereon可以提供acid保证及实时的对话事务、以及所需的处理速度。此外,区块链的流行意味着在还未考虑该领域的发展。

区块链只能在事务完成后对事务记录进行哈希运算。并且,无法保证传递至区块链的记录实际上是事务本身的真实记录。区块链所受到的限制,是因为其基础哈希结构设计为用于数据的静态集合,而不是动态的实时事务,而且其依赖大多数运营方的诚实动作。区块链本身还呈现出只能提供最终一致性的进一步限制;并非通过事务的时间顺序确定acid一致性,而是通过事务被纳入区块中的顺序,以及当几乎同时发现包括稍微不同的事务组的两个或多个区块时,通过共识模型来管理区块链中的分叉(forks)。

图5为说明涉及四个帐户502、504、506及508的哈希链的树枝状(dendritic)性质。帐户可以位于相同的服务器、或者也可以位于不同的服务器上。每个系统可以支持一个或多个服务器,并且每个服务器可以支持一个或多个帐户。帐户的位置无关紧要。图5还说明了发生在成对的帐户之间的五个事务。其中两个事务发生在帐户502及504之间,两个事务发生在帐户502及506之间,并且一个事务发生在帐户506及508之间。在图中,每一方块是关于在列的顶端的帐户的步骤。各步骤有关一个看不见的动作或事务,例如在帐户内的搜索、或者帐户与另一看不见的帐户或系统之间的事务。这些交易或动作是什么无关紧要。重要的是它们涉及在审计中的tereon系统记录。

在步骤510,tereon系统执行h502,即该帐户的先前哈希。如上,第一哈希是具有服务器的签名、tereon生成哈希的日期及时间、以及必要时的随机数的随机哈希。tereon将该哈希添加到发生在步骤510的事务或动作的记录,并且将其作为计算用于该事务的哈希的种子h512。在这一阶段的记录包含h502以及h512。

在步骤512,系统和保持帐户504的服务器交换哈希h510。其将用于帐户504的该事务的哈希h504加到记录,生成中间哈希h512i,将其添加到其记录中,并且接着为了来自帐户504的中间哈希h514i(如下,在步骤514生成)而进行交换。接下来,将该哈希添加到其记录并生成哈希h512。

现在,该哈希h512包含验证步骤512中的帐户502的、以及步骤514的中间阶段的帐户504的哈希链的信息。记录包含h510、h512i、h514i、h504、以及h512。

在步骤514,系统和保持帐户502的服务器交换哈希h504。其将来自帐户502的哈希h510添加到记录,生成中间哈希h514i,然后将其添加到其记录,并且为来自帐户502的中间哈希h512i进行交换。然后,将此哈希加到其记录并生成哈希h514。

现在,该哈希链包含验证在步骤512的帐户502的,及步骤514的的帐户504的哈希链的信息。

该过程执行在帐户502、504、506及508之间的进一步事务,以便使用与上述方法完全相同的方式对各事务生成哈希。例如,在步骤534,系统取在步骤528对于帐户502所生成的先前哈希h528,将此加到用于审计记录的(看不见的)事务或动作的记录中,并且生成该事务的哈希h534。现在,该哈希链包含验证直到步骤534的帐户502、直到步骤526的帐户504、直到步骤530的帐户506、以及在步骤530的来自生成h530的帐户508的中间哈希的帐户508的哈希链的信息。记录包含h534以及h528。tereon在步骤528从包含h530i的记录生成哈希h528,h530i本身是在步骤530从h524生成的。哈希h524包含从验证帐户508直到在步骤524中用于生成h524的帐户508的中间哈希的信息。

核对

如果诈骗者已经改变先前事务记录,为了确保事务无法发生,首先对最后的“n”个事务进行核对。由此,例如在tereon执行步骤522所表示的事务前,它可以首先重新计算步骤516,步骤512等、以此类推直到帐户502的前面“n”个事务的哈希。审计跟踪(audittrail)具有充分的信息来重新计算事务的最终哈希。同样地,保持帐户504的系统可以重新计算步骤526、步骤520等的哈希。对于步骤522的事务,tereon并不需要重新计算帐户506的任何哈希。

在哈希链中,当所记录的哈希与重新计算的哈希不匹配时,则表示记录未授权被更改,并且运营方可以立即调查问题、或者阻止进一步的事务。

系统哈希链

还可以将系统哈希添加到各记录。这将是记录的哈希,其中种子不论动作是否有关正被记录的记录所属的帐户,将是系统上先前动作的哈希。当添加系统哈希时,提供各帐户内的哈希链、以及整体系统的哈希链。

图6为说明有关在相同系统上的两个帐户602及604的哈希链的树枝状性质的附图,其记录所有的系统事件的系统的“系统帐户”是606。不论记录存在于何处,系统都会对生成记录的各动作生成记录的新的哈希。这些是系统哈希h606、h608、h612等。

管理功能还生成系统分配到管理帐户的记录,而不论这些是否有关人工输入或自动化功能。

在步骤608,tereon生成在帐户602中的看不见的动作或事务的记录哈希(用于帐户602的记录包含哈希h602,即针对帐户的先前记录哈希),其中,账户602触发系统的审计记录中的条目(entry),并且,为新系统哈希h608使用h606。系统接着对用于事务的记录来记录该哈希,并在步骤610计算帐户602的哈希h610。

如果系统的计算性能允许,可以对系统哈希使用较強的变化(variation)镜像帐户哈希的操作。

在步骤610,tereon将哈希h602与用于哈希h606的系统帐户606进行交换。其将来自系统帐户606的哈希h606加到其记录,并且生成中间哈希h610i。它在完成在帐户602的看不见的动作或事务之后生成它,其中帐户602触发系统的审计记录中的条目(entry),并且将哈希加到其记录。tereon接着交换中间哈希与中间的系统哈希h608i。接着,将此和h608加到记录并生成新的帐户哈希h610。

在步骤612,tereon将在步骤608生成的哈希h608与在帐户602及604交换。其将在步骤610生成的h610及h604加到其记录,并且生成中间哈希h612i。它与帐户602及604交换它们的中间帐户系统哈希h614si及h616si,并且中间哈希h614i对应于帐户602,而h616i对应于帐户604。接着,生成一个新的系统哈希h612。系统接着记录此哈希。

在步骤614,tereon将在步骤610生成的哈希h610与系统帐户606交换。其将在步骤608生成的来自系统帐户606的哈希h608加到其记录,生成中间帐户系统哈希h614si。它在其用帐户604完成事务(以及交换中间的事务哈希h614i及h616i)之后生成该哈希,将其加到其记录,并且接着将其交换为中间系统哈希h612i。接下来,将此以及h608加到其记录并且生成帐户哈希h614。

在步骤616,tereon交换系统帐户606与哈希h604。其将来自系统帐户的哈希h608加到其记录,生成中间的帐户系统哈希h616si。它在其用帐户602完成事务(以及交换中间的事务哈希h614i及h616i)之后生成该哈希,将哈希加到其记录,并且接着将其交换为中间的系统哈希h612i。接下来,将此以及h608加到其记录并且生成帐户哈希h616。

在步骤612,一个选项是系统将中间的系统哈希h614si发送至帐户604,并且将中间的系统哈希h616si传送至帐户602。这意味着对于那些帐户的最后的记录哈希h614及h616将包含三个中间的系统哈希h614si、h614si及h612i的记录,并由此提供额外的确定性层。

现在,系统哈希链包含每个独立事务的两侧面(sides)以及作为整体的整个事务,由此极大加强了哈希链。

当tereon管理不同系统上的帐户之间的事务时,程序与每个系统的步骤608及610相同。

许可服务器的哈希

以上的哈希有关那些生成在单独的tereon系统上以及在系统之间的哈希。由于这些系统彼此交互,因此它们最终将加入哈希树(hashtree),哈希树包含验证所有这些系统上的事务的信息。然而,这只会以这些系统彼此交互的速率成长。进一步地,系统甚至可以建构另一层,以确保各服务器都将立即加入全局哈希树。这将哈希链与区块链完全区隔开。

当区块链运营方设置私有区块链时,区块链与所有其它的区块链隔离。由于用户无法依赖大型网络的区块链来验证事务,其在整体处理速度上所获得的成果因其可能提供的安全性问题全部丢失。区块链对于安全性的主张中之一是攻击者需要入侵区块链网络的节点以危害其安全(入侵介于25-33%左右之间的节点足以危害区块链)。按照定义,单一私有区块链将数量降低至1。

在哈希链之下,即使私有tereon服务器或网络都可以受益于通过公开tereon服务器及网络所生成的哈希链。操作私有tereon服务器或网络并不表示运营方必须在tereon系统的认证強度上做出妥协,因为系统仍然会是全局哈希链的组件。简单地说,除了与许可服务器相关的事务外,其事务将保持对于系统的完全私有。

为此,各服务器都必须和许可服务器交互,不论其是否与其它tereon服务器交互。当tereon服务器操作在闭环(closed-loop)系统中运行,并且只有当循环(loop)包括多个服务器时,它将只与循环内的其它tereon服务器交互。

通过加上许可服务器哈希,各服务器一旦与许可服务器交互都将加入全局的服务器哈希链,并且必须每天进行。许可服务器哈希实质上通过在tereon服务器与许可服务器之间的双方事务所生成。除了各服务器的系统哈希现在还包含从许可服务器哈希派生的信息,许可服务器事务并不影响在tereon服务器之间的任何基础的数据事务,反之亦然。

图7为说明许可哈希的树枝状性质的附图。在该简单示例中,系统服务器702是闭环系统,系统服务器704及706将与其互连。所有三个系统服务器都必须周期性地和许可服务器708交互。

在其与许可服务器708的最先的讯问(interrogation)中,各服务器从其公开密钥、服务器最早获得许可的日期及时间、以及随机数据集来生成其第一哈希。

在步骤710,tereon使用其哈希h708生成中间许可哈希h710i,将此加到其记录,并且交换其与来自服务器702的中间的系统哈希h712i。接着将此哈希加到其记录,并且接着生成许可哈希h710,并将许可哈希h710加到其记录。

在步骤712,tereon使用其哈希h702生成中间的系统哈希h712i,将此加到其记录,并且交换其与来自许可服务器708的中间的许可哈希h710i。接着将此哈希加到其记录,并且生成系统哈希h712,并将系统哈希h712加到其记录。

在步骤714,tereon使用在步骤710生成的哈希h710生成中间的许可哈希h714i,将此加到其记录,并且交换其与来自服务器704的中间的系统哈希h716i。接着将此哈希加到其记录,并且生成许可哈希h714,并将许可哈希h714加到其记录。

在步骤716,tereon使用其哈希h704生成一中间的系统哈希h716i,将此加到其记录,并且交换其与来自许可服务器708的中间的许可哈希h714i。接着将此哈希加到其记录,并且生成系统哈希h716,并其将系统哈希h716加到其记录。

在步骤718,tereon生成中间的许可哈希h718i,将此加到其记录,并且交换其与来自服务器706的中间的系统哈希h720i。接着将此哈希加到其记录,并且生成许可哈希h718,并将许可哈希h718加到其记录。

在步骤720,tereon使用其哈希h706生成中间的系统哈希h720i,将此加到其记录,并且交换其与来自许可服务器708的中间的许可哈希h718i。接着将此哈希加到其记录,并且生成系统哈希h720,并将系统哈希h720加到其记录。

这三个许可服务器至tereon服务器的事务生成以下结果:

˙在步骤712生成的哈希h712包含验证以下状态的信息:

˙许可服务器708直到中间哈希h710i的哈希链;以及

˙服务器702直到哈希h712的哈希链。

˙在步骤716生成的哈希h716包含验证以下状态的信息:

˙许可服务器708直到中间哈希h714i的哈希链;

˙服务器702直到中间哈希hk702ii的哈希链;以及

˙服务器704直到哈希h716的哈希链。

˙在步骤720生成的哈希h720包含验证以下状态的信息:

˙许可服务器708直到中间哈希h718i的哈希链;

˙服务器702直到中间哈希h(k702ii的哈希链;

˙服务器704直到中间哈希h716i的哈希链;以及

˙服务器706直到哈希h720的哈希链。

˙在步骤718生成的哈希h718包含验证以下状态的信息:

˙许可服务器708直到哈希h718的哈希链;

˙服务器702直到中间哈希h(k702ii的哈希链;

˙服务器704直到哈希h(k704i的哈希链;以及

˙服务器706直到哈希h720的哈希链。

因此,许可及系统哈希所包含的信息使它们能够验证在网络中的各服务器上的事务,不论那些服务器是否互连或为闭环。

tereon可以实施类似于查找目录服务的层,其将以类似于通过许可服务所生成哈希链的方式运行。

脱机事务(off-linetransactions)

使用该方法,由于去除了在装置与其服务器之间具有持续不断的通信链路的必要,脱机事务现在可以具有和在线事务相同的有效性。因此,例如传感器、便携式支付终端等的装置可以在它们之间通信,并且以预定的间隔和其服务器连接从而下载及上传数据。系统将在连接与未连接的环境之间不间断运行。

哈希链允许装置能够在它们无法和其单独的服务器通信时,验证及审计在本身之间的事务,使用商业规则来确定它们是否可以参与脱机事务。当装置再次连接至这些服务器时,将简单地将那些审计及事务记录与服务器进行核对。

图8为说明哈希链的一个示例的附图,涉及暂时从各自的tereon服务器脱机的四个装置。其中三个装置802、804及806是可见的(第四个装置808在步骤828与哈希链交互)。

为了支持装置之间的脱机事务,装置本身将生成它参与各事务的哈希。当装置重新联机并和其服务器通信时,装置将对于事务的哈希传送至其服务器。

如果启动事务的设备处于脱机状态,其将为其事务生成哈希,并且存储哈希。它还会将哈希传送至其对方装置(与其正在事务的装置),并且对方装置将传送其哈希至第一装置。这以与上述哈希链相同的方式实现。装置可以在它们本身之间通过任何双向的信道来通信,双向信道例如,蓝芽、nfc、本地的wi-fi等。它们甚至可以在屏幕上公开各事务阶段的条形码以供其他人读取。各装置还会将事务记录的经签名的加密副本传送至另一装置,其中签名还将包含对于记录的目的地服务器。只有目的地服务器才能够解密记录。

一旦装置重新获得和其tereon服务器的通信,装置会将其脱机事务以及其相关的哈希的加密的记录传送至服务器。还会将其所保持的其它事务,例如来自其对方的记录,的复本传送给服务器,接下来,服务器会将那些记录以及其相关的哈希传送至那些对方装置所注册的服务器。各装置将生成其本身的独有的内部事务号码(例如通过单调计数器生成的事务号码),事务号码用于识别其在事务中的部分。若事务处于联机状态,则装置连接的服务器还将生成一独有的事务号码,而装置以及服务器都将使用事务号码。

装置可以将其唯一的内部的事务号码与时间及日期戳、有关装置时钟偏差的信息、以及其它信息进行结合,从而保存各事务的因果关系。当其各个服务器接收事务信息时,它们将能够重建事务的顺序,从而保存对于所有装置的在线及脱机事务的因果关系。

回到图8,在步骤812中,装置802哈希包含哈希h802的事务的记录、先前记录哈希、以及来自服务器810的哈希h810,由此生成h812。接着,将此哈希传递至服务器810,其中哈希是在步骤814中用来计算h814的记录的一部分。装置802此时间点是在线的,表示其连接至其tereon服务器810。在步骤814,tereon使用h810,即对于服务器810的先前哈希,将此以及h812加到记录,接着计算h814。记录包含h810、h812、以及h814。

如上,当运营方已经配置tereon以包含系统哈希,则其将在计算哈希h814之前,先将此加到记录。然后,记录将包含h812、h810、如果相关时中间的系统哈希、以及h814。

在步骤816,因为无法连接至服务器810,装置802现在是脱机状态。其与装置804进行事务,装置804还与其单独的tereon服务器脱机。装置802及804依照以上概述的哈希程序,从而从装置802生成中间哈希h816、从装置804生成中间哈希h818、从装置802生成哈希h816、以及在步骤818从装置804生成哈希h818。装置802及804现在使用其脱机的公开密钥对其哈希进行签名,并且将其与对于事务的记录的加密的复本一起传递至其它装置。这是装置802失去与服务器810的联后的第一个脱机事务、并且是装置804从其失去与其服务器的联系后的第一个脱机事务。管理员可以配置系统,使得应用程序将直到最近的n个事务传送至与其进行脱机事务的唯一的装置。

对于装置802和装置804之间以及装置804和装置806之间的链中的进一步交易重复该过程。在这些事务中,因为已经分别持有一个副本,装置802及804并不需要交换其对于先前事务的哈希及记录。

装置802将继续以该方式运行,直到其在步骤830与其服务器810重新建立联系。装置802现在上传其脱机事务及其相关联的哈希的所有加密记录,在该例子中分别是在步骤816、822及826所生成的h816、h822、以及h826。它还上传其对于装置804、806及808所保持的加密的事务记录及哈希。服务器存储这些并将其分别上传至对应于装置804、806及808的服务器。服务器810将此上传注册为事务,并且在步骤832生成哈希h832。装置802清除来自装置804、806及808的哈希的记录、以及单独的事务记录,并且在步骤830生成哈希h830。

装置802保持对于在装置806及808之间的事务的哈希以及加密的记录,其结果是在步骤820的哈希h820以及h808。在该例子中,因为发生了多少脱机事务是未知的,h808用于指代该事务的装置808生成的哈希。

服务器810将核对其从装置802接收的脱机记录、以及其从装置804、806及808、以及任何其它包含那些事务的服务器接收的那些记录。因为这与为涉及装置802的事务发送记录的服务器有关,服务器810将知道其将从哪些服务器接收记录。装置802将不会期待从装置808接收记录,因为装置802并未与装置808进行事务。如果装置804或806与连接至其它服务器的脱机装置进行事务,则服务器810可以从那些其它服务器接收额外的记录。

为对事务进行排序与编号,服务器810将使用在事务记录上的时间及日期戳以及签名,并且将它们标记为脱机事务。

脱机模式有多种变化。第一种是在无中间的脱机哈希下进行,并且只需使用各装置的先前事务的哈希。尽管这样失去一层确定性,但仍具有良好的作用。第二种是只对脱机事务生成装置哈希。此稍微简化了在线事务,但是同样会失去一层确定性。第三种变化不是使用特定的脱机的公开密钥对脱机事务的记录进行签名,而是简单地使用装置的密钥来签名各记录。由于会被记录在帐户的审计跟踪中,服务器以及装置都将知道哪些事务在线以及哪些脱机。然而,通过对装置执行独立的密钥以及一系列事务号码,显示相对于在线事务的脱机事务变得不重要。

第四种变化是对于各服务器而言,当其从其连接的装置接收脱机事务的记录时,通知适用这些记录的所有服务器以预期来自那些服务器的记录。例如,在图8中,假设装置804在稍后连接至其服务器,并且装置806与另一装置(未示出)进行事务。一旦装置804和其服务器连接,服务器会将有关装置802的记录传送至服务器810。装置80不与任何其它装置脱机进行事务,不保留对于任何其它装置的脱机的记录。在另一方面,服务器810将其对于装置804的记录传送至对应于装置804的服务器,并且通知服务器其可以预期从装置806接收相同的记录的副本(在步骤826及828的事物期间,装置802将这些传送至装置806)。同样地,一旦装置806连接至其服务器,服务器将其对于装置802的记录传送至服务器810、将对于装置804的记录传送至对应于装置804的服务器、将对于装置808的记录传送至对应于装置808的服务器、以及将对于其它装置的记录传送至其单独的服务器。它还将通知对应于装置802的服务器(服务器810)以及装置804的服务器,以预期来自对应于其它装置的服务器的记录。

使用哈希链并不会给tereon施加不断增加的开销。一个动作很少涉及两方以上,在其确实超过两方时,则动作通常是一对多的转移,其本身就是简单的一对一转移的集合。一对多的转移通常也是一系列一对一的转移,仅为双方动作的集合。

修改记录

当用户修改记录时,tereon不会重写(overwrite)原始记录。相反,tereon将简单地生成一个包含被修改的记录的新记录,并且此将是tereon所参照的版本,直到记录再次被修改;修改是一个动作。这是所有的金融及事务记录会发生的情况,其中例如支付的事务的结果有效地修改先前事务结果;如果运营方使用tereon的子集管理其它记录类型,例如是电子邮件、医疗记录等,也会发生这种情况。通过如此,tereon将保留每个版本记录的副本。

在某些情况下,法院或者法律相关操作中需要运营方完全抹去记录、或者修改原始记录。在这种情况下,tereon将删除或者修改原始的记录内容、也可能删除或修改相关记录内容。tereon可以在不使后续哈希无效的前提下进行实现。

当tereon必须删除或者修改历史记录时,将:

˙重新生成记录的哈希以确认在tereon删除或者修改记录之前,记录未曾被修改或者改变,并且记录重新生成的哈希

˙在原始的记录中的新的字段中记录记录被删除或者修改的内容、以及删除或者修改的原因

˙删除或者修改在记录中的相关字段,并且增加删除或者修改的日期及时间

˙对于记录生成新的哈希;以及

˙记录新的哈希。

基于此,tereon将不需要以任何方式来修改哈希链。从被删除或者修改的记录的原始哈希所生成的有效记录的所有哈希仍然有效。因为删除或者修改是一个动作,系统哈希将包含被删除或者修改的记录的新的哈希。通过这种方式,可以通过找出与重新计算的哈希不匹配的任何记录的哈希轻松识别欺诈活动。

具有零知识证明的哈希链

哈希链提供一个附加层,使得事务的两侧面能够向对方证明它们已经哈希哈希相关的记录。这通过在哈希链内包含密钥交换算法实现,该算法允许一方能够向第二方(检验者)证明记录的哈希是记录的真实哈希。

可以使用任何允许双方协商公共密钥的算法,并且不需要使用零知识证明。但是,使用零知识证明的pake(密码认证的密钥交换)算法在这里使用效率最高。由于每一方都将生成相同的中间哈希,在中间阶段使用正确的pake协议以及零知识证明消除了交换哈希的必要性。

使用例如pake算法等算法,允许双方使用零知识证明生成相同的哈希,每一方都可以更进一步。通过使用可包含及使用构成事务的信息以生成“证明”的零知识证明,每一方都可以生成相同的中间哈希。这消除了彼此交其中间哈希的必要性。这还表示生成记录的步骤以及由这些步骤引起的信息或结果称为哈希链程序的组件。如果涉及超过两个以上的参与者,那么tereon可以使用协议以及零知识证明的群组的变化使得每一方都能够生成公共哈希(commonhash)。

允许每一方生成相同的哈希的pake算法,通常在它们可以生成中间哈希之前进行两次或者三次的信息传递。如果事务只需要两个阶段来完成(例如,请求及接受/验证),则每一方将只生成一个中间哈希。如果事务需要三个阶段,并且算法在两阶段生成一个哈希,则每一方将交换四组信息,重复第三阶段两次,并且生成两个哈希,事务中前两个步骤之后的第一哈希,以及在重复第三步骤之后的第二哈希。

这种零知识证明的一个例子是schnorrnizk证明。如同在用于schnorrnizk证明的说明文件中所示,这种零知识证明可以简单地通过向作为证明的一部分发送的信息添加附加信息以及用于生成作为证明一部分的散列的信息来扩展。

还可以使用另一种方法,例如是在speke(简单密码指数密钥交换)协议中调整生成公共密钥的方法,并且基于上述情况,该方法微不足道。

扩展密钥交换协议以使每一方能够根据事务数据生成公共密钥也是一项微不足道的。同样地,为简洁期间,在此未进行说明。

为了生成公共哈希,每一方简单地生成公共密钥的哈希。因为在该过程中使用该信息来生成公共密钥,从而生成哈希,哈希将包含可以验证事务信息的信息。

两个阶段的事务

为说明工作原理再次参考图5,图5为说明哈希链的有关四个帐户502、504、506及508的树枝状性质的附图。帐户可以是在相同的系统上、也可能在分开的系统上。帐户的位置无关紧要。在步骤512及514的该事务采用两个阶段。

两次传递的pake

在步骤512的第一次传递中,帐户502取在步骤510对于此帐户生成的先前哈希h510,将其加到事务的信息的第一阶段,建构第一零知识证明,并且将其传递至帐户504。零知识证明伴随构成事务的信息的第一阶段以及哈希h510的信息。

在第二次传递中,帐户504取对于帐户的先前哈希h504,将此加到事务的信息的第二阶段,建构第二零知识证明,并且将其传递至帐户502。第二零知识证明伴随着构成事务的信息的第二阶段以及哈希h504的信息。

帐户502及504现在独立地建构哈希h512i514i,其为对于两个帐户的中间哈希。帐户502及504都将此哈希加到其记录。帐户502在步骤512生成其事务记录的哈希h512,并且帐户504在步骤514生成其事务记录的哈希h514。

三次传递的pake

在此例子中,在步骤512及514的事务采用两个阶段,其中pake算法允许每一方能够在三次传递之后建构公共哈希。

如上执行第一次传递以及第二次传递。在第三次传递中,帐户502获取帐户504在第二次传递中传送的信息,使用信息建构第三零知识证明,并将其传送至帐户504。第三零知识证明还伴随着构成事务信息的第二阶段以及哈希h504的信息。

现在,帐户502及504独立地建构哈希h512i514i。帐户502及504都将该哈希加到其记录中。如同在两次传递的pake方法中,帐户502在步骤512生成其事务记录的哈希h512,并且帐户504在步骤514生成其事务记录的哈希h514。

在两种情况下,链包含验证在帐户502中直到步骤512、以及对于帐户504直到步骤514的哈希链的信息。帐户502及504都保持中间哈希h512i514i、以及其记录哈希。然而,这里的中间哈希不同于前面的使用零知识证明的例子中的系统之间交换的中间哈希。这里的中间哈希是在帐户502及504之间的事务的哈希,对于帐户502及504是共同的。哈希是事务的哈希,并且生成为事务的一部分。它与事务同时发生。哈希h512是帐户502的事务记录的哈希,其将包含其私有信息,而帐户504的哈希h514是其事务记录的哈希。因此,帐户502及504可以证明在它们之间的事务中的实际步骤与事务记录。

三个阶段的事务

作为使用图5说明的另一例子,假设在步骤528及530的事务有关三个独立的阶段,而不是两个阶段。

两次传递的pake

在第一次传递中,帐户502取在步骤522对于此帐户生成的先前哈希h522,将此加到事务的信息的第一阶段,建构第一零知识证明,并且将其传递至帐户506。零知识证明伴随着构成事务的信息的第一阶段以及哈希h522的信息。

在第二次传递中,帐户506取在步骤524对于帐户生成的先前哈希h524,将此加到事务的信息的第二阶段,建构第二零知识证明,并且将其传递至帐户502。第二零知识证明伴随着构成事务的信息的第二阶段以及哈希h524的信息。

由于pake算法允许每一方在两次传递之后建构公共哈希,帐户502及506现在可以独立地建构哈希h528i530i。然而,事务仍有第三阶段需要执行。

在此例子中,系统从事务的第三阶段开始,简单地使用pake算法来执行第二组传递。第二组的传递的第二次传递可以简单地使用随机数据。或者,可以重复最后一个阶段,这类似于使用两阶段的事务和三次传递的pake。

对于后者,执行第三次传递(新的pake算法的第一次传递行,其中帐户502取已签名的h528i530i,将此加到事务的信息的第三阶段,使用信息来建构第三零知识证明,并且将其传送此帐户506。执行第四次传递(新的pake算法的第二次传递),其中帐户506取已签名的h528i530i,将此加到帐户502所传送的事务的信息的第三阶段,使用信息来建构第四零知识证明,并且将其传送至帐户502。因为包含事务的所有三个阶段,帐户502及506现在可以独立地建构哈希h528i2530i2。这是在该事务中生成的第二公共哈希,并且现在是帐户502及506之间的事务的哈希。帐户502及506都将此哈希加到其记录。帐户502在步骤528生成其事务记录的哈希h528,并且帐户506在步骤530生成其事务记录的哈希h530。

对于在帐户502、504、506及508之间的进一步事务执行该过程,以便按照与如上示出的完全相同的方式为各事务生成哈希。

三次传递的pake

如上,执行第一次传递以及第二次传递。在第三次传递中,帐户502使用构成事务的信息的第三阶段的信息来建构第三零知识证明,并且将其传送至帐户506。零知识证明伴随着构成事务的信息的第三阶段的信息。

现在,帐户502及506独立地建构哈希h528i530i。帐户502及506都将此哈希加到其记录。帐户502在步骤528生成其事务记录的哈希h528,并且帐户506在步骤530生成其事务的哈希h530。

以上有关图5的例子中,其中系统使用零知识证明生成中间哈希或者事务哈希,哈希h530包含验证帐户502至h528i的所有哈希、帐户504至h526i的所有哈希、帐户508到在帐户506生成h524时所生成的帐户508的中间或事务的哈希的所有哈希、以及帐户506至h530的所有哈希的信息。然而,尽管其验证在其事务网络中的所有哈希,但是帐户506只保存已与其他帐户、系统、或者服务器进行的事务的事务记录。即使其哈希包含帐户502或帐户504可用来验证那些事务的哈希的信息,对于在帐户502及504之间的事务的事务记录内容一无所知。

重要的是,双方使用的独立生成相同的中间哈希的算法,使用双方交换以使事务生效的步骤。因此,生成记录的事务变成哈希链程序的一组件,并且生成哈希链条目(entry)的程序与使得事务生效的程序相同。另一种看待方法是事务作为事务的一部分生成哈希,并且哈希以及其所附的信息成为事务的审计。它们成为一体而且相同。使用区块链,事务的发起者完成事务,并将其其记录发送至区块链从而用于之后的审计,由此,为程序增加另一步骤,而不是被整合在事务中。

由于事务本身变成哈希链所提供的审计跟踪的同时发生的组件,因此,想要获得细节未被审计跟踪捕获及验证的事务成为不可能。大多数的审计跟踪是“在事件之后的”,这是因为完成的事务记录通常是在事务完成之后才被传递至审计系统。在这种情况下,审计接收的记录与事务所生成的记录不同。因此,计算机记录通常是被视为传闻(hearsay)。将零知识证明以及正确的pake或类似的协议整合表示审计跟踪通过事务所生成,并且,事务以及其记录成为审计跟踪的一部分。由于现在是被审计并且实时地进行报告,这对实时事务具有深远影响。

使用零知识证明来建构哈希的程序可以应用到、于在哈希链中生成哈希的任何场景。它可被用于系统哈希、许可服务器哈希、甚至是通过图8所示的脱机哈希。重要的是哈希有关在两个或多个实体之间的事务,不论那些实体是否为参与方、装置、或者系统。程序也不排除使用标准哈希。因此,一种系统对于在帐户之间的事务可以使用零知识证明生成的哈希,而不论装置是在线或者脱机,但是使用标准哈希进行系统哈希以及许可哈希。第二种系统可能对于所有的哈希使用零知识证明,而第三种系统可能只使用标准哈希。

具有多个事务阶段的多次传递的pake

在上述例子中,说明如何在需要两次或三次传递的pake下使用有关两个或三个阶段的事务以使得事务的两边能够生成公共密钥,但是系统并不受限上述示例。实际情况是,相同的方法将适用于一种系统,该系统支持多个阶段的事务以使用需要不同的多次传递的pake。系统简单使用单需要使用许多pake以覆盖事务的所有阶段。它重复最后的阶段任意次数,以生成所需的pake传递来生成最后的公共密钥,从而生成事务哈希。

使用零知识证明的系统哈希链

回到图6,示出了可以使用零知识证明和经典哈希生成的哈希的哈希链。图示出了在同一系统606上的两个帐户602及604、以及系统哈希h606、h608、h612等。不论记录存在于何处,系统对每个生成记录的动作生成记录的新的哈希。如上,帐户之间的事务将使用零知识证明为每个账户生成中间或者事务哈希。系统哈希将包括在生成各记录时的每个记录的系统哈希。

假设在步骤614及616的帐户602及604之间的事务有关三个单独的阶段,其中pake算法允许每一方能够在三次传递之后建构公共哈希。

在事务的第一步骤中,帐户602与系统帐户606对哈希,在此之前的记录的哈希h610,与在步骤608生成的系统哈希h608进行交换。其将此系统哈希以及其哈希h610加到在步骤610生成的事务信息的第一阶段,建构第一零知识证明,并且将其传递至帐户604。零知识证明伴随着构成事务的信息的第一阶段的信息、哈希h610、以及哈希h608。

在事务的第二步骤中,帐户604与系统帐户将哈希,h604与在步骤608生成的系统哈希h608进行交换。其将此系统哈希以及其先前记录的哈希h604加到事务的信息的第一阶段,建构第二零知识证明,并将其传递至602。零知识证明伴随着构成事务的信息的第二阶段的信息、哈希h604、以及哈希h608。

在事务的第三步骤中,系统帐户606将h610以及h604加到其记录,并且生成中间的系统哈希h612i。

在第四步骤中,帐户602使用构成事务的第三阶段的信息来建构第三零知识证明,并且将其传送至帐户604。第三零知识证明伴随着构成事务的信息的第三阶段的信息。

在第五步骤中,帐户602及604独立地建构哈希h614i616i。帐户602及604都将此哈希加到其记录。哈希h614i616i是事务的哈希。

在第六步骤中,帐户602与系统帐户606交换h614i616i以及h612i,将h612i加到其记录,并且在步骤614生成其事务记录的哈希h614。帐户604与系统帐户606交换h614i616i以及h612i,将h612i加到其记录,并且在步骤616生成其事务记录的哈希h616,并且系统帐户606将h614i616i的两个副本加到其记录,并且在步骤612生成新的系统哈希h612。

帐户602在步骤614的事务记录包含哈希h610、哈希h604、系统哈希h608、事务哈希h614i616i、中间的系统哈希h612i、事务的信息的三个阶段、其事务记录、帐户id、以及哈希h614。

帐户604在步骤616的事务记录包含哈希h610、哈希h604、系统哈希h608、事务哈希h614i616i、中间的系统哈希h612i、事务的信息的三个阶段、其事务记录、帐户id、以及哈希h616。

(因为分别在不同的状态下开始及结束事务,帐户602的事务的记录将不同于帐户604的事务记录,并且各帐户具有不同的帐户细节及id。)

系统哈希h612包含单独事务的两侧面的哈希、以及作为一个整体的事务的哈希,因此极大强化哈希链。

如果tereon管理在不同系统上的帐户之间的事务,则过程稍有不同,这是因为每个系统都会将其系统哈希和中间系统哈希与其管理的帐户进行交换。否则,上述参照图6说明的方法是相同的,除了并不是有帐户602及604以及系统606之外,该图将示出具有相关帐户602的系统606,以及具有相关帐户604的第二系统605。在步骤614及616发生的事务导致的系统哈希将表示在步骤612的系统事务,以及对应于帐户604的第二系统605上的等同的事务。实际上,在包含多个可以同时进行事务处理的帐户的系统中,系统将为每个生成记录的交互生成哈希。

尽管图6是示出了顺序的哈希以及中间哈希,但实际并非如此。图6a示出了三个帐户602a、604a及606a,其全部和系统帐户608a一起与在外部的服务器上的帐户进行交互。事务的阶段是交错的,从而说明当事务在系统上同时发生时可能发生的事。为了简单起见,这些全部显示在相同的服务器上。

在以上的例子中,在步骤612a,帐户602a将其哈希h602a与系统608a进行交换,以获取h612a。系统608a现在将生成上述例子所示的中间哈希h616ai。下标“i”用于清楚表示每个事务,每个事务将有关三个系统哈希,在事务之前的原始哈希、在事务的特定的阶段的系统哈希(中间哈希)、以及事务结束时的系统哈希。下标“i”表示中间哈希。根据上述推理,最终的系统哈希将是h616a。在多个并发或者交错的事务下,此标签不再清楚说明发生的事。相反,各系统哈希不论是否在事务期间或者在事务之后生成,都是系统哈希,尽管是先前哈希上的增量。如果三个事务发生使得帐户602a开始,则接着帐户604a开始,帐户606a开始,帐户602a结束,并且帐户606a是在帐户604a结束之前结束,如果在服务器上的或者任何其它帐户上没有其它事务或动作发生,哈希的顺序可能看起来类似以下内容,图与先前图略有不同。

帐户602a将其哈希h610a与系统交换以获得h612a。系统现在使用哈希h610a以生成下一个系统哈希h616a(这最初标记为h628ai,一旦对于帐户602a的事务完成,哈希h628a是对于事务的最后的系统哈希)。

帐户604a将其哈希h614a与系统交换以获得h616a。系统现在使用哈希h614a以生成下一个系统哈希h620a。

帐户606a将其哈希h618a与系统交换以获得h620a。系统现在使用哈希h618a以生成下一个系统哈希h624a。

一旦帐户602a生成其中间或者事务的哈希之后,将交换哈希h622a与系统哈希h624a。系统现在使用哈希h622a以生成下一个系统哈希h628a。

一旦帐户606a生成其中间或者事务的哈希之后,其将交换哈希h626a与系统哈希h628a。系统现在使用哈希h626a以生成下一个系统哈希h632a。

一旦帐户604a生成其中间或者事务的哈希之后,其将交换哈希h630a与系统哈希h632a。系统现在使用哈希h630a以生成下一个系统哈希h636a(未示出)。

哈希链允许系统处理事务、审计事务、以及同时认证事务所传送或生成的数据。这些步骤现在是同时发生的。没有必要假设装置诚实地向审计系统报告事务。事务生成审计,并且审计生成事务。

这改变通过被编程的装置执行的事务的本质。任何被编程的装置,包含iot装置,因为事务以及其审计及认证是同时发生的,现在都可以验证及依赖其与任何其它装置之间传送的事务及数据。

没有必要假设装置将事务的正确的记录传送至审计系统,因为事务以及审计生成为同意程序的一部分,并且这种同时发生的本质改变了审计跟踪的证据的质量。各装置都可以依赖其它装置发送的信息,而不需要作出有关其它装置的诚实性的假设。所传送及接收的数据是经处理的数据、也是被认证及审计的数据。

当和查找服务结合时,在之前没有交互的装置现在也可以彼此认证,确定每个执行的服务或功能,并且接着彼此进行通信,并依赖通信以按照编程内容执行任务,不需要任何人为介入。

哈希链允许包含iot装置的被编程的装置在线以及脱机运行。当脱机时,装置包含时间戳、有关装置的时钟偏斜(skew)的信息、装置的唯一的事务id(例如通过内部的单调计数器所生成的)、以及在事务信息中的其它同步信息,然后,当这些服务器最终从设备或第三方服务器接收离线事务的记录时,它们使服务器能够重建准确的时间线,以保留每个事务的因果关系。哈希链在线上和离线模式下都允许服务器依赖事务记录的内容。

当与保护装置间通信的通信安全模型相结合时,装置以及服务器可以通过不受中间人攻击影响的方式进行通信。tereon允许iot以及其它经编程的装置能够安全地通信,并且依赖那些装置之间传送的数据。

一个例子是iot以及其它被编程装置的网络,装置作为一组工业传感器以及控制器操作。安全模型允许这些装置能够在它们之间安全地通信,并且通过使用查找目录服务,并且由于这些装置添加到原始集合,从而使这些装置与新的装置进行交互。tereon无需进行重新配置,从而使装置识别新装置并且信任新装置。哈希链使得装置能够信任它们之间的通信的内容及定时(timings),并且允许运营方能够依赖所生成及发送的数据,而不需要对所发送的数据的真实性进行任何人为评估。第三方无法干扰数据,数据的审计及认证链是与其发送同时发生的。

当查找服务与安全模型结合时,查找服务使得装置能够生成它们可以信任及认证的adhoc连接,而不需要任何人为干涉。一旦装置被授权并将其细节加到查找服务后,其它装置可以在需要时连接至装置。如果装置以任何方式受到伤害,则可以通过相同的查找服务禁用对该装置的所有访问。

系统提供由其哈希链以及其查找服务所带来的额外的优点。由于所有的装置都是单独地授权及审计,因此系统可以在需要时,指示特定的装置下载那些装置软件的更新,这只能通过安全受信任的来源实现。查找服务将详细说明特定装置所提供及使用的例如服务、接口、以及数据格式。因此,如果装置希望连接至另一装置以访问特定的服务,但是并不具有所必需的软件来支持必要的接口或格式时,则它或它所连接的装置、或者必要时两个装置可以和系统服务器进行通信,从而下载必要的软件或者配置,从而使两个装置能够互相通信。装置在装置间的通信结束之后是否保存软件通过一个或多个装置所执行的服务、以及那些装置的容量进行确定。哈希链表示即使它们删除软件(它们可以在它们再次通信时重新安装该软件),两个装置仍然将保存装置间的通信的完整的审计及记录,必要时,它们可以在之后上传至另一装置或者服务器。该设施扩展至任意类型的装置,例如从完全自主的iot装置到任何其他被编程装置,例如支付装置。

哈希链的分布式记录

为了提供整个哈希链的分布式复制,对于发生在最后一次连接至服务器与当前连接之间发生的所有事务,tereon系统能够将其哈希链上传至中央组的服务器,例如许可服务器、查找服务器、或者其他一组服务器。接着,相同的tereon系统可以下载其它tereon系统的相应哈希链。这为所有tereon系统的所有事务提供了哈希链的分布式分类账(ledger),但并不需要对各事务重新计算每个哈希链的开销。然而,它确实给tereon系统带来了额外的存储开销。中央服务器可以是全局的,例如用于许可证和查找服务器的服务器、或者它们可以特定于行业、区域、或者其它限制。通过约束哈希链的副本的范围,可以减少该变化的计算和存储开销。

并非是限制中央服务器的范围,而是可以下载通过其它系统上传的哈希链的系统。因此,来自一银行的哈希链只能够通过另一银行下载,这通过银行是否和上传银行在相同区域中、或者是否已和其它银行进行事务来进行限制。类似地,医院的系统只能够下载相同区域中的医院上传的哈希链。灵活性不受限制。

在tereon中使用的哈希链具有非常宝贵的性质。它提供本地分类账(ledger),但是具有分布式认证。它将事务信息保持被事务中有关的用户及服务所私有,但它会在所有服务器,服务和装置上分配哈希提供的身份认证。使用零知识证明所生成的哈希为说明此。使用零知识证明生成的哈希说明了这一点。只有特定交易中涉及的系统才能保留事务的信息。但是,随后与这些系统交互的所有系统和装置都会生成包含有关这些系统早期哈希信息的哈希。

因为对于希望隐藏篡改记录的潜在的诈骗者提供无法计算的障碍,分布式认证十分关键。

使用区块链,欺诈者只需要控制25%到33%的服务器来隐藏篡改记录并更改区块链,从而将篡改记录为有效的记录。完成后,该过程几乎无法逆转。

使用tereon哈希链,欺诈者需要控制每个tereon服务器,每个tereon服务和每个tereon装置,并在每个服务器和装置上重新计算链中的每个哈希。这在计算上无法实现。

哈希链能够实现至少和区块链的支持者所预测的与区块链相同程度的经济上的节约与效率。差异在于tereon哈希链实际能够实现;而区块链由于其设计以及在设计中固有的限制,无法实现。

此系统的优点是诈骗者将无法在不重新计算和记录相关的全部的哈希、以及链接的哈希的情况下,从数据库删除或修改记录。尽管在理论上,如果tereon在没有任何系统哈希而且在没有任何与许可服务器的连接下操作,如果任何链接的链涉及与另一个服务器或装置上的一方的交易时,这是可行的,然而,欺诈者还需要重新计算其他服务器或装置上的所有哈希。这样做的困难度随着在原始记录的日期及时间之后与哈希链交互的额外的服务器或装置而呈指数增加。

哈希链使得组织能够保证通过任何装置收集、生成、或者管理的数据的真实性,保证记录的原始内容及完整性,以及保证任何基于先前记录的事务的完整性及内容。这可以应用至任何装置或事务,从支付装置到医疗装置、交通传感器、天气传感器、水流检测器等。

这具有明确的管理上的优点,因为各地的分类账(ledger)是每个单独组织的责任,他们以一种提供共同力量并明确界定责任和问责制的方式向其他组织学习并依赖其他组织。哈希链生成一种技术工具,以实施与支持信息及事务的管理。

此外,当哈希链作为支付系统的组件时,由于tereon处理法定货币,其架构与当前的支付作用的方式一致,并且提供的优势等同于或优于比特币等加密货币。它为成熟的支付服务提供方和中央银行提供“比特币打手”。

哈希链是tereon系统的振奋人心的的部分,能够提供非常安全快速的认证。

tereon的独特的功能之一是生成全面实时的日志及审计跟踪。tereon的事务记录包含事务所需的各击键(keystroke)(除了例如pin及密码的实际的认证凭证)、以及有关事务的所有符合法规及商业需求的数据及元数据。当那些记录存储在多个服务提供方之间时,重要的是使得那些记录是防篡改的,并且使得事务之前及之后的事务序列是防篡改的。

区块链无法这么做。它只能在生成事务记录之后,但是在其被授权之前接受记录。区块链合生(accrete)许多记录,生成一个区块,接着将其加到区块链。它依赖区块链包含本身包含所有有关先前事务的信息的实际状况。由于区块链增加额外的区块,因此其依赖这些区块的存在,从而验证在区块链之内的记录以及所有先前记录。随着文件大小的增加会导致扩展问题,如果存在不一致,则整个分支将丢失身份认证。

与其使用区块链或其衍生物,tereon的哈希链使用哈希策略在不破坏后续的事务的认证的前提下隔离任何可疑的记录,从而用于调查。它还通过为任何记录类型,不论是静态记录或实时事务,定制设计来避免扩展问题。

哈希,包含中间哈希,可以向管理员提供必要的信息,从而快速地遍历哈希链以确定及验证哈希及其单独的记录。记录本身同样如此。

如果发生任何事务或动作发生,则表示先前哈希已得到核对,由此用户及系统可以信任新的事务的输出。因此,tereon在可以在进行事务之前信任各帐户中的累积总计(runningtotal)。哈希链的有效性确认累积总计是正确的。

正是这种能力隔离了修改,删除或篡改记录的效果,将哈希链与区块链及其衍生物区分开来。根据定义,任何成功隐藏在区块链中的修改或篡改记录都将影响整个区块链的重新计算。因为各区块链都必须进行修改,除了通过整个区块链社群的民主决策以外,没有方法来检测及修改篡改或者虚假记录。因此,安全研究者将这一特征确定为区块链设计的主要缺陷。并且无法改变。

对于哈希链,除非攻击者能够重新计算所有后续哈希,否则篡改记录不会影响哈希链的其余部分。由于在任何篡改之前的哈希是有效的,因此基于这些哈希值的任何事务以及与这些哈希相关的值都将保持有效。

用于脱机事务的树枝状哈希链表示服务器可以注册脱机装置执行的离线事务,即使该装置在重新连接到服务器之前丢失或损坏。

哈希链提供验证脱机事务的完整支持,区块链及其衍生物无法实现。操作区块链副本的节点必须在线以验证块。虽然比特币钱包可以离线创建交易,但它无法验证该交易,直到它在线并将该交易的记录推送到节点。即使如此,在节点中的一个赢得竞争以在区块链中生成下一个区块,并且将记录加到区块之前,不对事务进行验证。

目录服务

现有系统,如运输系统,例如emv(europay、mastercard、visa)的支付网络、以及其它传统系统使用轴辐式(hubandspoke)架构,使得所有的事务都经过中央设施(centralutility),这意味着单点故障或漏洞,以及昂贵的扩展成本。

该tereon系统是点对点的,其中一个服务器直接与另一服务器通信,由于哈希链验证发生在对等网络的所有元素之间,这也是安全的哈希链如此重要的原因。

如前,tereon系统具有目录服务216,其为系统中的凭证及信息目录,因为它存储了与特定用户相关的许多不同类型的凭证,能够用于识别用户或者装置218注册到哪一个服务器、或者哪一个服务器提供特定的服务或功能,并且能够实现用户218的多种认证方法。例如,用户218可以使用他们的移动号码,电子邮件地址,地理位置,pan(主帐号)等进行认证,并且高速缓存所有内容,因此不必每次都进行认证。

目录服务216提供抽象层,其将用户的认证id与基础服务,服务器和实际用户帐户分开。这提供了用户218或商家可用于访问服务的凭证与tereon执行服务本身所需的信息之间的抽象。例如,在支付服务中,目录服务216能够链接认证id,例如一移动电话号码、或可能是货币码与服务器地址。绝对没有办法确定用户218是否具有银行账户,或者用户218使用哪个银行。

目录服务216作为在各服务之间的媒介物,使得服务提供方不能看见彼此,由此提供了用户数据安全性。各服务都将定义一组服务所特有的字段(变量)及值。然而,各服务都将具有标识服务的特定字段和值。

当与未知方完成交易时,与用户218相关联的tereon服务器将urn发送到目录服务216,目录服务216回传支付服务提供方的tereon服务器的ip地址,用于用户218所请求的服务。这允许事务能够在点对点的基础上直接在用户218与服务提供方之间完成。此外,tereon服务器将ip地址保存在缓存中,以便任何后续事务都不需要使用目录服务216。

这种抽象化提供对于用户及其服务细节的安全性及隐私性、在不影响公开的用户凭证下增加及修改基础服务的灵活性、以及分段及支持多个服务的能力,如果需要,每个都可以与其他人保持隔离。数据服务中的任何字段都不包含启动事务所必需的数据,并且除了用户的认证id之外没有用户数据存储在目录服务216中。

然而,tereon目录服务216不止于此。它支持多个凭证。因此,用户218可以使用任意数量的凭证作为支付id。例如移动电话号码、pan、电子邮件地址等。只要凭证是唯一的,tereon都可以支持。

目录服务216可以支持多个服务。这是多面凭证或者“心灵感应纸(psychicpaper)”的概念的形成之处。当服务提供方在目录服务216上检查凭证时,只能够看见凭证是否对于其服务注册、以及对服务凭证的tereon服务器注册。服务提供方不能看到用户218可能有权或者注册的任何其它服务的任何细节。

例如,移动电话或者卡可以成为图书馆的图书馆卡凭证、公交车或火车上可以成为运输票、进入房间或设施的安全钥匙、公司食堂的内部支付装置、剧院票、以及超市的标准支付装置。它还可以成为驾驶执照,医疗卡或身份证来证明服务的权利,若服务需要,可以在商家的装置上显示照片id等。对于装置可以成为的凭证类型的限制,即使有也会很少。

虽然很难掩盖卡的原始外观(这可以在卡片包含oled封面或彩色电子纸封面时实现,例如,服务可以指示卡片显示起床和特定凭证或服务所需的信息),但是tereon改变了电话应用程序的外观以反映凭证和服务的性质。

可以为每个服务器实现反向查找功能。功能将允许服务器检查和其通信的服务器是否得到授权及认证。因为在tereon装置,不论是卡、终端、移动电话、或者服务器之间的每个通信都必须得到签名,因此功能并非必须。然而,可能存在操作员需要或希望反向查找带来的附加安全性的情况。在此,目录服务216将包含一些字段,例如是服务、tereon服务器域地址、tereon服务器号码、tereon服务器运营方、生存时间、终端认证id等。在此,服务标签将参考服务器反向查找,而不是事务服务。

图9示出了具有两个服务器,即服务器202a及服务器202b的示例。用户218向服务器202b注册,并且通过连接至服务器202a的终端访问服务。

在步骤902,用户218使用自己的装置来向终端识别自己,装置自动向终端识别自己。如果用户使用智能装置,则终端还会将其身份(identification)传递给用户的装置。(如果用户218使用卡,当装置是微处理器卡时,终端只能将其身份传递至用户的装置。在这种情况下,卡将通过加密隧道(tunnel)和用户所注册的服务器202b通信,以将终端的id传递至服务器202b。)

在步骤904,服务器202a取得由用户装置提供的身份,并根据它维护的列表检查该id。因其并未保存id,之前从未涉及用户218。服务器202a现在联系目录服务216。目录服务216检查在服务器202a的通信上的签名,并且查看其是否有效。目录服务216对于所请求的服务的服务标签来查询id(服务器202a的签名确认服务器得到进行服务请求的授权),并且使用识别服务器202b的信息和存活信息的缓存时间进行响应。

在步骤906,服务器202a现在联系服务器202b以确认用户的装置向服务器202b注册服务。服务器202a还终端的id传递至服务器202b。

在步骤908,如果服务器202b没有这么做,则其可以向目录服务216发出类似的请求,以查询终端所注册的服务器。它还可以确认终端已向服务器202a注册所请求的服务。目录服务216使用识别服务器202a的信息、以及存活信息的缓存时间进行响应。

在步骤910,服务器202a及服务器202b现在直接与彼此通信,以便执行所需的事务。这可以是任何事务,包括支付到开门。

tereon服务器本身包含开启事务所必要的信息,它们将只和其他得到授权及认证的服务器或装置通信。

一旦服务器已经与目录服务216彼此通信,它们将缓存数据,直到数据在其本身的迷你目录(minidirectory)服务中过期。

在这种情况下,在tereon服务器202a及202b之间建立连接的通信是显而易见的。对此,在图10中进行显示。

在步骤1002,用户218使用自己的装置来向连接到服务器202a的终端识别自己,装置自动向终端识别自己。如果用户使用智能装置,则终端还会将其身份(identification)传递给用户的装置。

在步骤1004,服务器202a取得用户的装置提供的身份,并且对照其所维护的列表检查该id。它所保存的数据是有效的,因此服务器202a联系服务器202b以确认该设备仍然向其注册所请求的服务。服务器202a还将终端的id传递至服务器202b。服务器202b确认装置向其进行注册。服务器202a的缓存包含有关终端的id的有效数据,从而联系服务器202b以确认终端仍然向其进行注册。服务器202b对此进行确认。

在步骤1006,服务器202a及服务器202b现在直接与彼此通信,以便执行所需的事务。

如果服务器上的缓存数据过期,则如前,服务器简单地联目录服务216。如果用户218已经迁移到另一服务器,则通信稍微不同。图11对此进行了说明。差异在于,基于现在过时的高速缓存信息的与服务器202b的第一次通信,将迫使服务器202a在目录服务216中查找新的数据。

在步骤1102,用户218使用自己的装置来向连接到服务器202a的终端识别自己,装置自动向终端识别自己。如果用户使用智能装置,则终端还会将其身份(identification)传递给用户的装置。服务器202a取得由用户的装置提供的身份,并且对照其所维持的列表来检查该id。其保存id并且查看缓存的数据是否显示id注册在服务器202b。

在步骤1104,服务器202a现在联系服务器202b以确认用户的装置向服务器202b注册该服务。服务器202a还将终端的id传递至服务器202b。服务器202b响应id不再向其注册。

在步骤1106,服务器202a现在联系目录服务216。目录服务216检查在服务器202a的通信上的签名,并且查看是否有效。目录服务216对所请求的服务的服务标签来查询id,并且使用识别服务器202c的信息以及生存信息的高速缓存时间进行响应。

在步骤1108,服务器202a现在联系服务器202c,以确认用户的装置是对于相同的服务而向服务器202c进行注册。服务器202a还传递终端的id至服务器202c,并且使用对于来自用户的装置的id之新的细节以更新其缓存。

在步骤1110,如果服务器202c尚未已经如此做,则其可以向目录服务216进行类似的请求,以查询终端所注册的服务器。它还可以确认终端已向服务器202a注册所请求的服务。目录服务216使用识别服务器202c的信息以及生存信息的高速缓存时间进行响应。

在步骤1112,服务器202a及服务器202c现在直接彼此通信,以便执行所需的事务。

目录服务216将始终保持用户218已经注册的旧的以及新的用户id的完整踪迹、以及这些id被指定给用户218的日期。

服务器202c只保持有关从id向其注册的日期开始的注册的id的信息。服务器202b将保留有关其服务id的期间的数据。

由目录服务216所提供的抽象层随着其分段服务而进一步发展。因此,在上面的例子中,服务器202a只能够请求识别已经对于所需的服务注册用户的装置的服务器的信息。

服务器202a必须对与装置的每个通信进行签名,并且签名将识别有关通信的服务。如果服务器可以提供多个服务,每个服务将各自有一个私有密钥,并且它将使用密钥对相关的通信进行签名。

tereon服务器本身,在上述情况中是服务器202a及202b,包含查找信息,其从所提供的标签或信息来识别用户的帐户数据。因此,只有服务器202b包含将用户的装置的id映射至用户的帐户的数据;在目录服务216中的信息只是指向服务器202b的指针。用户的装置可以轻易地在不同的服务器注册不同的服务。使得tereon服务器能够找出正确的服务器的是用户的装置id以及定义服务的凭证的组合。

一旦服务器202a和服务器202b通信,并传递服务标签、用户id、以及任何其它相关的事务的数据(例如,年龄、货币、数量等)之后,服务器202b查询相关的用户数据,并且执行其事务的侧面。服务器202a从未看到用户的数据。它所看到的是用户的认证id、以及通过服务器202b传递的事务数据。

同样地,服务器202b从未看到识别终端所连接的帐户信息。它只看到终端id、以及通过服务器202a传递的事务数据。

psychicpaper(心灵感应纸)-多面凭证

目录服务结构的更吸引人的效果之一是当需要时,它为特定服务创建adhoc多面凭证的能力。由于目录服务能够提供那些凭证,并不需要在生成目录服务时对服务提前进行设想。这熟知为“心灵感应纸(psychicpaper)”。

adhoc多面的凭证表示用户的装置成为特定服务可能需要的凭证,而且仅此而已。其确切地传递认证、授权、或者得益于服务的信息,而且是服务提供方所看到的全部。

例如,用户218已经注册了许多不同的服务,例如来自银行的支付服务、以及本地图书馆的图书馆借书服务。因为他在注册tereon时必须提供他的出生日期,所以他可以自动获得年龄验证服。

图12为说明目录服务216是如何根据用户218已经请求的服务将请求服务器(服务器202a)引导至两个不同的服务器(服务器202b及202c)。必要时,也可以使用两个或多个单独的目录服务来提供单独的服务。重要的是,事务数据是摘要的一部分,并与基础帐户数据分开。

用户218需要验证年龄,例如是在酒吧购买酒精饮料(服务2)。在该例子中,步骤1202至1210按照图9中的步骤902至910执行,尽管是在服务器202a及202c之间,而不是在服务器202a及202b之间。一次,在步骤1210,服务器202a和服务器202c直接彼此通信。在该例中,服务器202a想要验证用户218是否超过21岁。服务器202c简单地确认其是否超过21岁。

当运营方由于法律或者法规要求需要额外的确认时,服务器202c可以传送用户218的护照类型的图像以显示在终端上,使运营方可以看到他或她确实正与用户218交谈。服务器还可以传送问题让用户218回答,以便提供额外的真实身份的确认,尽管由于用户218已经向服务器202a识别自己,这样做的必要性很小。运营方不会看到用户的实际年龄或者并非必需的任何个人信息,因为这不是必需的。运营方所需的只是知道用户218足够大,能够购买含酒精饮料。当用户218使用其装置进行支付时,连接至服务器202a的终端将再次联系服务器202c,但这次是为了支付服务(服务1)。

用户218现在前往本地的图书馆借一本书(服务3)。在步骤1212,用户218在图书馆中使用自己的装置向终端识别自己,装置自动地向终端识别自己。在图书馆中的终端连接至服务器202b。当用户使用智能装置,则终端会将其身份传递至用户的装置。

在步骤1214,服务器202b取得用户装置提供的身份,并且对照其所维护的列表来检查该id。它保存id,但是缓存已经过期。服务器202b现在联系目录服务216。目录服务216针对所请求的服务的服务标签查找id,并使用标识服务器202c的信息以及实时信息的缓存时间进行响应。

在步骤1216,服务器202b现在联系服务器202c以确认用户的设备是否向服务器202c注册了它所执行的服务。服务器202b还将终端的id传递至服务器202c,并且使用来自用户的装置的id的新的细节更新其缓存。

在步骤1218,如果服务器202c还没有这么做,则其可以向目录服务216进行类似的请求,以查询终端所注册的服务器。它还可以确认终端已经向服务器202b注册了所请求的服务。目录服务216使用识别服务器202b的凭证进行响应。

在步骤1220,服务器202b及服务器202c现在和彼此直接通信,以便执行所需的事务。服务器202b想知道用户218是否可以借一本书(服务3),并且服务器202c确认用户218注册了图书馆借书服务(这是一项tereon运营方提供给图书馆的服务)。若用户218需要使用其装置来支付费用借书,则终端将再次联系服务器202c,但此次是为了支付服务(服务1)。

服务器202c并不需要提供任何服务给图书馆。用户218可以容易地向另一服务器,例如服务器202d(未示出)进行注册,在这种情况下,服务器202d将向服务器202b确认用户218可以借书。重要的是,在第一种情况下,服务器202a只确认用户218超过21岁。它并不知道他是否可以借书,而且并不知道用户218是否可以通过tereon支付。同样地,服务器202b知道用户218可以借书,但是并不知道他是否超过某一年龄、或者是否可以通过tereon来支付。

如果需要为特定事务集合一组凭证,则请求服务器还可以对单独的服务器进行多个请求。例如,假设用户218想要借一部有年龄限制的电影。在这一例中,请求的服务器将进行两个单独的请求,一个请求是验证用户的年龄,另一个请求是验证是否注册以从图书馆借电影。tereon将集合单独的经验证的凭证,以建构图书馆所需的凭证组。

目录服务216的结构允许将传递单独凭证的服务器分开。因此,请求服务器可以询问任意数量的服务器,以便获得它所需的单独的凭证,以建构确定其是否可以将特定服务所必要的凭证集传送给用户218。

图13为说明服务器202a需要从三个服务器202c、202d及202e获得凭证来建构多面凭证从而向用户218提供服务的情况。例如,在服务器202d上的服务2可以是租一部电影,这将需要年龄验证作为来自服务器202c的第一凭证,来自服务器202d的会员凭证和来自服务器202e的足够的资金凭证。

关系不一定是一对一的,即三个服务器的每一个各自保持一个且仅有一个凭证关系。三个服务器的任一个可以分别向服务器202a递送一个以上的凭证。它们可以只传递一个凭证至服务器202a。凭证的数量无关紧要。重要的是服务器202a可以联系多个外部的服务器以获得其需要的凭证,以使用户218能够访问服务。

可以是用户218访问终端所在的服务器202a已经保持其需要的某些凭证,以便于向用户218传递某些服务。然而,为了数据保护目的,用户218并不想要提供某些细节至服务器202a(例如,年龄等)。如果服务器202a需要做的只是验证用户218是否超过某一年龄、或者是否允许订购某些商品,则其可以简单地联系那些将肯定或否定那些问题的服务器。这对于电子商务网站而言非常有用,它们可以在不知道准确细节的情况下确认某些事实或参数。实质上,目录服务216可以作用为零知识证明的提供方或者机密的公证人。tereon可以向服务器202a证明或反驳事实或参数,而不公开该事实。

因此,特定服务的凭证可能包括来自202a、202c、202d、202e以及其它服务器的凭证。凭证可以在一台服务器上,也可以分散在多个服务器之间。

这是非常强大的,因为这允许个人及组织能够证明他们有权获得服务,而不需要揭示不需要公开的信息。同样地,以电子商务网站的例子而言,用户218可以在网站上注册姓名及地址。然而,他的银行持有其支付凭证,政府服务器注册具有购买限制性的物品的授权,本地铁路公司持有旅行授权,并且健康授权中心的服务器可以确认其年龄。

为服务集合一组adhoc凭证的方法并不只适用于用户及其装置。其还可以良好地适用于独立式传感器、装置、以及服务,例如需要在不同的时间连接至不同的服务的iot装置。当需要这些凭证集时,他们可以简单地集合这些服务所需的凭证。

帐户切换(accountswitching)

经常推迟采用新系统的主要问题,是因为在没有损失或者服务中断的情况下,难以将数据从遗留系统(legacysystem)转移新的系统。相同的问题影响到系统升级,运营方经常选择保留最初的硬件及软件配置,而不是升级和更新,因为他们认为数据会在任何升级或更新中丢失。

目录服务216通过提供将数据,帐户和配置信息从一个服务器或数据存储无缝地移动到另一个服务器或数据存储的机制来克服这些问题。支持机构之间实时转账的一个障碍是如何捕获和处理未确定(in-the-air)支付的问题。该行业目前有一种帐户转账系统,总共花费18个月,其中7天用于最初切换,并且需要18个月才能收到任何支付或转账。这还可以用来从数据存储切换一组数据至另一数据存储。

目录服务216提供抽象层,该抽象层将用户的认证id与基础服务,服务器和实际用户帐户分开。因此,用户218可以在改变他或她的装置所注册的服务以及基础的服务器的同时,维持他或她的认证id。

参照示例,对帐户切换程序进行说明。在例子中,用户218存款至银行a。

图14为说明用户与银行a以及其tereon服务器202a的关系的附图。尽管用户218还不是客户,银行b还支持服务器202b上的tereon。用户218确定将其帐户从银行a移动到银行b。

图15为说明用户218将其帐户从银行a转到银行b的过程的附图。例子中,用户218没有透支,而且也没有从银行a贷款。

在步骤1502,用户218打开银行b的帐户,并且向银行以及其tereon服务器202b注册卡以及移动电话。

在步骤1504,银行b的tereon服务器202b在tereon目录服务216上查找用户的移动电话号码以及卡的pan,并且检测两者都注册到银行a。

在步骤1506,银行b的tereon服务器202b现在联系用户218以确认其是否想要将其注册移到银行b,并且用户218通过输入专门为此目的传送给他的附加的认证码对此进行确认。

在步骤1508,银行b的tereon服务器202b现在联系银行a的服务器202a,并且通知它用户218已经请求将其帐户及id转移到银行b,并且已经对此进行确认。

在步骤1510,银行a的tereon服务器202a现在传送给用户218请求以确认其是否想要移动其帐户,并且用户218确认他的移动请求。

在步骤1512,银行a的tereon服务器202a现在向银行b的tereon服务器202b对此进行确认,并且向银行b的服务器202b通知用户的帐户注册、余额、配置、支付指令等等。银行b的服务器202b以与银行a上的帐户完全相同的方式,或者尽可能接近的方式设置这些帐户,从而提供得到授权的服务。

例如,用户218在银行a拥有三个单独的货币帐户,它允许其能够持有gbp、usd以及eur。然而,银行b只提供gbp以及usd的帐户,但它可以从任何帐户接收和支付eur,或向任何账户接收和支付eur。银行b的服务器202b在用户开启帐户时通知用户218,并且确定将eur转换成为gbp。银行b将接着指示银行a来将eur发送为gbp。

在步骤1514,银行b的tereon服务器202b现在通知目录服务216用户的id现在是向其服务器202b注册。

在步骤1516,银行b的tereon服务器202b通知银行a的服务器202a其已经在目录服务216中注册用户的id,并且指示银行a转账余额至银行b。

在步骤1518,银行a向目录服务216确认它不再管理用户的id。目录服务216针对注册到银行b的新的id设置开始日期和时间,并且针对银行a的旧的注册在字段中设置结束日期和时间。银行a现在设定其目录服务以通知任何服务器,该服务器尝试向它不再持有用户帐户的用户218进行支付,并指示该服务器在目录服务216中查找用户的详细信息。它通过在结束日期字段中输入日期和时间来完成此操作。银行b现在将收到最初被引导到银行a的对用户218的所有支付。

目录服务216现在可以捕获未确定(in-the-air)的支付,这是用户218已经切换到新的帐户之后,对于用户的旧帐户的支付。以类似的方式,tereon还可以捕获从旧的帐户生成的延期支付。一旦转移余额,这些将在新的帐户出现,这项任务需要几分钟,而不用几天,几周或几个月。

在步骤1520,银行a转移余额至银行b。银行b通知银行a已经收到资金。

在步骤1522,银行a关闭用户的帐户,对此通知用户218,并且转移余额至新的银行。

在步骤1524,银行b通知用户218已经从银行a接收到余额。

如果用户218在银行a的帐户的一个或多个中透支,并且银行b同意接收他的业务,则银行b将在步骤516及520中转移余额至银行a,并且用户在银行b的对应的帐户中将为透支状态。用户218还可以确定在其将账户转移到银行b之前,先在银行a的帐户之间转移资金,以便清除任何透支。

对于支付,tereon编号系统区分用户、组织、帐户、服务类型、以及事务。它们都具有单独的编号系统。这些特点允许目录服务器能够管理用户218将其帐户实时地移至新的服务提供方的过程。目录服务216的结构以及实时处理事务的能力允许用户能够在几分钟内改变帐户,而不需要几天。

如上,目录服务216以及所有的事务实时处理,消除了未确定(in-the-air)事务,例如未确定(in-the-air)支付的问题。对于tereon,事务无法进入未确定(in-the-air)状态。它们要么完成要么被取消。

tereon还支持帐户便携性,例如是银行帐户便携性的概念,这个特征会增加市场竞争性,但银行和监管机构认为这是不可能实现的。因为tereon并不直接使用帐户的细节,而是使用独立的凭证来识别各支付人及收款人,因此,它在用户218与用户的银行帐户细节之间插入抽象化。就是目录服务216提供的抽象化使得更容易实现帐户切换及便携性。

改变凭证

目录服务216允许运营方及用户能够用新的凭证取代现有的id凭证,并且能够重新使用过去的凭证而不会与id的先前用户的交易发生混淆。由目录服务216提供的抽象层允许tereon实现此操作。

如果用户218将他或她的帐户转移到另一服务器,则用户218能够保留例如pan的特定的凭证、或者服务器可以给用户218发放新的凭证。在后一种情况下,原始的服务器可以几乎立即重用凭证。因为各凭证都具有反映何时发放给用户218的时间及日期戳,因此特定凭证的新的用户218几乎能够立即使用凭证。

各凭证都具有一个时间以及日期戳,用于确定何时向特定服务器上的特定用户发放。由于各事务还保留时间及日期戳,各tereon服务器保留用于各事务的凭证,tereon简单地使用这些组件将事务路由至正确的目的地。例如,用户218可以使用凭证a,例如移动电话号码从商家购买某物,并且接着几天后当他或她需要使用另一凭证b,例如新的移动电话号码时移到另一家银行。之后,用户218因为物品有缺陷的而将其带回到商家。商家只需要找出事务并且进行退款。尽管原始事务使用凭证a,但是凭证a的服务器报告指出在凭证中的更改的时间及日期戳。商家的服务器查找凭证a,并且发现在事务时使用凭证a的用户218现在使用凭证b。服务器现在联系凭证b的服务器,并且在其确认凭证b的用户218在事务时使用凭证a时,服务器接着开始进行退款。

由于tereon的安全模型需要所有的通信都被签名,用户a可以确定b的用户并非欺骗。服务器202b只有在具有来自许可证服务器的有效许可证时才能对其通信进行签名,并且由于如果服务器202b将发布并将检查设备的许可证,因此只有服务器202b有效时,用户b的设备才能对其通信进行签名。除非用户b知道正确的凭证来授权事务、或者访问在装置上的应用程序,否则用户将不能够完成事务。

在另一例子中,用户可能已经在他或她的电话目录中输入联络人的移动电话号码,并且现在想要对联络人进行突然的p2p转账。tereon在记录中搜索该号码,并发现,如上,联系人已更改了手机号码(如果联络人是tereon用户)。它使用正确的服务器确认使用新号码的用户曾使用在前一服务器上注册的旧号码。tereon还支持其中一个联络人可以设定他或她的帐户的功能,由此,允许目录服务器能够在某些得到认可的联络人尝试通过旧的凭证来和他们进行事务时,更新用户的移动电话号码或者其它的tereon凭证。在此例子中,阿姨的侄女已设定她的帐户以更新所有的家庭成员,下一次她的阿姨访问联络人列表时,她将看见她的侄女的新移动电话号码。

图16为说明服务器202a、服务器202b、以及目录服务216的示例的附图。在此,旧的用户已经将其帐户从服务器202a移到服务器202b。202a是银行a的服务器,202b是银行b的服务器。

旧的用户最初是使用移动电话号码1作为其id。在转移其帐户后,其继续使用移动电话号码1一段时间。在用户218、目录服务216、以及服务器202a及202b之间的通信如上,并且在图15中示出。在目录服务中的条目示出用户218从日期-时间1到日期-时间3使用服务器202a,并且用户从日期-时间2使用服务器202b。略微的重叠是用来确保能够捕获所有未确定(in-the-air)支付,并且在用户没有id注册的服务器上没有时间差。(通过确保帐户迁移到的服务器能够控制该迁移的所有日期时间和id条目,由此避免重叠日期-时间条目,这就是系统迁移的运行方式。)

在某个时间点,用户218决定改变移动电话号码。他将他的新手机号码2作为他的id登记在服务器202b上并注销移动号码1。服务器202b通知目录服务216改变,现在示出用户在日期-时间4开始使用移动电话号码2作为其id,并且移动电话号码1在日期-时间5不再是服务器202b的id。

之后,新的用户在服务器202a生成帐户,并且在日期-时间6注册移动电话号码1作为其id。新用户可以已经得到旧的用户的旧的移动电话、或者移动电话运营方已经释放号码以供重新使用。服务器202a通知目录服务216其已经注册id(在检查该id可用之后),由此目录服务现在示出移动电话号码1从日期-时间6起注册到服务器202a。

在图16所示的例子中,如果旧用户使用银行a202a所发行的卡,则一旦用户218已经转移其帐户至银行b202b,银行可以向用户218发放新卡,其具有向其注册的凭证,例如pan。用户218在接收到该卡后启动卡,并且银行b的服务器202b通知银行a的服务器202a用户的原始的凭证不再使用。银行b向tereon目录服务216注册新的凭证。用户218可以请求保留原始的凭证,在此情况下,如果银行a同意请求,则银行a可能已经收取一笔小的费用。因此,tereon支持卡号或者pan的便携性。

用户可以在未来的某个时间点确定停止使用原先由银行a所发行的卡,由此释放凭证。银行a可能在银行b释放凭证之后、或者在用户已经转移其帐户至银行b之后的整整六个月内都无法重新使用pan凭证;具体时间取决于银行监管机构的允许。在时间之后,它可以使用凭证,因为目录服务216不仅包含移动号码,pan或其他凭证的列表;它还包含这些凭证的注册日期列表以及它们已过期或按用户逐个发布的日期。

帐户切换方法允许系统能够捕获未确定(in-the-air)支付。它还提供一种极有灵活性且強大的方式,可以根据先前事务的凭证来引导先前事务遵循的事务。早期交易的退款就是一个现实世界的例子。对旧id进行退款的商家将能够退还至正确的帐户,这是因为目录服务216能够向服务器指示正确的id,即使随后重新使用原始id。emv和当前的移动查找技术假设数字永远不会被重用。然而不幸的是,数字会被重新使用。

图16对此进行说明。假设介于日期-时间1与日期-时间2之间的某个时间点,旧的用户在移动电话号码1作为其id时使用装置以从商家购买物品。之后,物品具有缺陷,因而用户想要退款。

如果用户218接着在日期-时间1与日期-时间2之间为了退款而前往商家,则tereon系统将引导商家的系统以将退款支付至系统202a上的用户的帐户(因为用户尚未关闭其帐户)。

如果用户218在日期-时间2与日期-时间4之间为了退款而前往商家,则tereon系统将引导商家的系统以将退款支付至服务器202b上的用户的帐户,尽管物品的支付原先是来自于服务器202a。

帐户切换方法还将考虑到用户的新的id。如果用户218接着在日期-时间4之后为了退款而前往商家,并且使用其移动电话号码2作为其id,则tereon系统将引导商家的系统将退款支付至服务器202b上的用户的帐户,即使物品的支付原先是来自于服务器202a,而且即使用户原先是使用移动电话号码1作为其支付id。

这同样适用于pan、电子邮件地址、以及任何其它可重复使用的凭证。(显而易见地,无法重新使用生物识别的凭证。)

系统允许将凭证分段到任何程度的粒度(granularity)。支付中的一个示例涉及货币或货币代码,其中用户可以在相同或不同的服务器上对不同的货币使用不同的id。

图17为说明对于服务器202b、服务器202c、以及目录服务216的一例的附图。用户218已经以一种类似图16的方式,以及在如同图15中的管理服务器间的通信下,从服务器202b迁移其帐户至服务器202c。

用户218最初使用移动电话号码1作为其id。在迁移其帐户之后,他继续将移动号码1用于货币1和货币2的交易一段时间。在目录服务216中的条目示出,用户218从日期-时间1至日期-时间3使用服务器202b,并且用户从日期-时间2开始使用服务器202c。略微重叠是用来确保能够捕获所有未确定(in-the-air)支付,并且保障不存在没有用户注册id的服务器的时间间隔。

在某个时间点,用户218决定使用新的移动设备进行货币2的交易。他将新的移动电话号码2作为他的id与服务器202c一起进行注册用于货币2的交易。服务器202c通知目录服务216改变,现在示出用户在日期-时间4对于所有用货币2的事务开始使用移动电话号码2作为其id,并且移动电话号码1在日期-时间5不再是货币2的事务的id。

图17a为说明对于服务器202b、服务器202c、以及目录服务216的另一例子。在图中,用户218已经用一种类似于在图16中说明的方式,并且是在如图15中所说明管理服务器间的通信下,从服务器202b迁移其货币1帐户至服务器202c。

在迁移帐户之后,用户持续使用移动电话号码1一段时间进行货币1以及货币2的事务。目录服务216中的条目(entry)示出,用户218从日期-时间1至日期-时间3使用服务器202b进行两种货币的事务,并且,从日期-时间2开始使用移动电话号码1作为它的对于服务器202c的id进行货币1事务。目录服务条目(entry)还示出用户继续使用移动号码1作为他的对于服务器202b的id用于货币2的事务。

在某个时间点,用户218决定使用新的移动电话用于货币2的事务。他向服务器202b注册新的移动电话号码2作为id进行货币2的事务。服务器202b通知目录服务216改变,改变后从日期-时间4开始,用户对所有货币2事务使用移动电话号码2作为id,并且,移动电话号码1从日期-时间5不再是任何用货币2的事务的id。

在日期-时间4之前,用户218使用他的移动号码1作为所有交易的id。如果事务使用货币2,则目录服务216简单地引导事务至服务器202b,并且如果事务使用货币1,则引导至服务器202c。用户已经在两个服务器上注册相同的id的事实无关紧要,因为它是管理事务被引导至哪一个服务器的完整的凭证集。在日期-时间2之后第一次用货币1和用户事务的商家系统将永远不会知道用户先前已经使用服务器202b进行该货币事务。同样地,商家系统将不会知道用户在服务器202b使用相同id进行该货币事务,除非系统加入用户的货币2的事务中。

tereon不只是简单地将用户218从一个网络切换至另一个网络。如前,切换用户的常用方法无法处理未确定(in-the-air)支付。如同其发明者所所称,在用户能够独立维护之前,目前可用的最先进的帐户切换系统需要18个月的人工过程来捕获这类支付。在18个月的期间,银行及用户都必须努力确保他们将所有现有支付指示从旧的帐户转移至新的帐户。tereon完全地避开了这个要求。

目前银行无法重新使用任何支付凭证。tereon的帐户切换机制消除了这一限制,由此,监管机构允许时,银行可以在经过某一时间段后重新发行pan以及帐户号码。

尽管对帐户切换功能进行说明,然而该方法具有基本的帐户切换之外的许多应用。例如,当银行核心系统失效时,可以向后援服务提供方提供故障切换(failover),由此提供一种方法,在没有任何信息丢失的情况下,通过从一种数据格式转换成另一数据格式,将数据从一个系统迁移至另一系统。

另一例子是在移动电话系统中提高号码的便携性(numberportability)。目前,如果用户将他或她的移动电话号码从一个提供方切换至另一个提供方,则第一提供方必须将所有的通话重新路由至新的提供方。如果用户接着切换至第三提供方,则第一提供方必须将通话路由至第二提供方,接着,第二提供方必须将通话路由至第三提供方。这么做效率很差且非常昂贵,因此运营方必须支持号码便携性。tereon消除了多次重复路由通话的必要性。

如果运营方使用tereon来支持号码的便携性,则不需要进行多次操作。当用户决定将他或她的号码从第一运营方转移至第二运营方,第二运营方只需通知目录服务器它现在支持该移动电话号码。第一运营方将对号码的通话转移至目录服务器,目录服务器会将通话路由至第二运营方。每当用户转移他或她的号码,新的运营方将通知目录服务器改变,并且目录服务器将简单地将通话路由至服务号码的运营方。(如果用户具有例如iban的全球唯一的银行帐户,tereon将用和支持移动电话号码的便携性相同的方式来支持银行帐户的便携性。)

类似的例子有,运营方将iot服务及装置从一个服务器迁移至另一服务器以便对例如物理机、逻辑机、虚拟机、容器(container)、或者任何其它普遍使用的包含可执行代码的机制的简单迁移无法满足的tereon系统进行升级。

另一个例子是作为系统迁移工具运行。例如,这将是运营方想要将服务以及设备所注册的帐户从一个版本的tereon系统迁移到升级版本的情况。运营方简单地设定旧的服务器以将装置注册、帐户、以及系统配置转移至新的服务器,并且系统将执行转移。每个帐户将与其数据以及审计日志一起转移,并且服务器随着转移的进行而更新目录服务216。现在,当现场的装置,不论是支付装置、交通传感器、iot装置等,希望与其服务器进行通信时,目录服务216将简单地根据它们是否在转移帐户之前或之后联系服务器,来将它们重新引导至旧的或者新的服务器。

以上例子说明了tereon如何提高凭证的便携性,并且支持adhoc多面凭证。这具有深远影响,并且将tereon带入几乎任何需要管理凭证的网络中。

可扩展架构

用于现有的事务处理系统的工作流在本质上都是静态的。实施后,它们很难改变,并且,系统支持的服务或操作也保持不变。

到目前为止,当支付提供方推出一项服务后,则服务的支付模式保持静态。如果想要修改服务,提供方只能够通过推出替代或修改的服务并且发行新的卡或应用程序来支持服务。这也是尽管emv的严重缺陷是众所周知的,但无法对系统进行修复的原因之一,因为这将表示要召回所有现有的emv卡、重新编程及启动emv支付基础架构、并且接着发行新的卡。这需要成千上万的发行方与接收方的配合。

tereon使用sdasf来将所有的功能放到后端(back-end),并且后端可以在整个过程中实时地引导商家装置。这使得服务提供方能够创建与单独用户具有一样粒度的新的服务。

可扩展架构是位于tereon系统之内的架构,并且在不需要重新配置tereon系统的条件下允许增加新的服务。可扩展架构和目录服务216一起作用,从而向tereon系统提供多种优点。

灵活的信息结构

可扩展架构的一部分由灵活的信息结构提供,该结构中,任何数据或记录类型都可提供有可变长度的字段,由此,tereon系统可以修改字段的长度来与传统或者是不兼容的系统一起运行。

可扩展架构允许通过改变程序的标准顺序在通信基础架构增加额外的安全层。在许多行业中,支付就是其中一个例子,通信使用固定的信息结构。这使得通信即使是加密的也会被犯罪分子利用。结构化消息易在深度上受到攻击。尽管组织及其它方仍然可以通过使用哈希运算消息认证码(hmac)来保护信息的完整性,但hmac并不具有信息应具有的绝对保密性。

可扩展架构能够提供设计使得任何事务处理系统消除静态系统的问题。它提供了能够与现有系统和服务一起运行的灵活性,并允许提供方更新现有服务,并构建新服务,而无需重新发布基础架构或发行新的例如卡的终端装置。该架构足够灵活,使提供方能够构建根据独立的个人定制的服务。对此将在下面进行说明。

模糊处理(obfuscation)

任何具有结构化消息格式的系统所面对的理论风险之一是,信息格式的重复使用将为黑客的暴力攻击提供充足的材料。对于没有使用一些形式的随机种子正确运行加密算法的系统来说,情况确实如此。然而,应对此进行克服。

可扩展架构使得运营方及用户能够摆脱在装置以及服务器之间传送结构化消息的需要。作为替代,可对信息进行模糊处理。

在tereon中的每个事务通信都将包括两个或多个字段以及这些字段的标签。并非针对每个通信都依照固定顺序的字段,可以随机改变顺序。由于每个字段将始终伴随有识别标签,因此必须确保在通信的每一端的装置在处理字段之前,都将先解密然后对字段进行排序。

例如,使用javascript对象简谱(json)文件所提供的例子中的摘录(excerpt)(尽管系统能够是或使用其它格式),以下三种版本相同:

·{"version":1,"firstname":"john","lastname":"smith","isalive":true,"age":25}

·{"version":1,"firstname":"john","isalive":true,"lastname":"smith","age":25}

·{"age":25,"firstname":"john","isalive":true,"lastname":"smith","version":1}

攻击者不知道它所具有的如果有的话是哪一个密文包含已知的而且具有相同顺序的信息。模糊化的确切模式,如果有的话将依据所使用的格式和使用的序列化协议,但是原理保持相同。

模糊化模式具有额外的优点。能够在不破坏通信协议的条件下扩展预先定义的通信的内容。如果装置接收到无法处理的字段,会丢弃那些字段以及值。因此,可以包括系统丢弃的一个或多个随机字段及值对(valuepair),但是这为通信增加了额外的不确定性。

以下的三个通信是相同的:

·{"version":1,"firstname":"john","nonce":5780534,"lastname":"smith","isalive":true,"age":25}

·{"whoknows":"698gthgf","version":1,"firstname":"john","isalive":true,"lastname":"smith","age":25}

·{"age":25,"firstname":"john","isalive":true,"lastname":"smith","whatisthis":"jor90%hr,""version":1}

在以上每个通信中,装置将拋弃未知的字段及值对(valuepair)。

字段名可以通过对于各通信,以随机方式进行混合不同字符的方式进一步模糊化。装置将这些字段处理为标准(canonical)形式。

因此,以下的三个通信是相同的:

·{"version":1,"firstname":"john","nonce":5780534,"lastname":"smith","isalive":true,"age":25}

·{"whoknows":"698gthgf","version":1,"firstname":"john","isalive":true,"lastname":"smith","age":25}

·{"age":25,"firstname":"john","isalive":true,"lastname":"smith","whatisthis":"jor90%hr,""version":1}

如果可能包含额外字段的版本2的信息被传送,则任何只理解版本1的装置将拒绝信息、或者,如果向后兼容性(backwardscompatibility)得到确保,则处理其理解的字段并丢弃剩余部分。这可以通过提供字段,该字段能够表明哪些版本与一些字段向后兼容而得到提高。

由此,消除了深度攻击的漏洞。信息结构还可以按照具有可变长度字段的方式被维持。同样地,此实现类似的结果。还是通过使用hmac,能够保护信息的完整性以及保密性。如果终端组织的内核系统需要具有结构化格式的信息,则一旦到达服务器后,tereon将简单地重新建构信息,并且使用组织的内核系统所需的格式格式后重新格式化。因此,可扩展架构能够克服遗留系统的安全问题,而且仍然与这种系统一起运行。

可扩展框架支持任何数据或记录类型,具有如上的安全性和灵活性。

抽象的工作流(workflow)组件

在现有的解决方案中,支付程序能够定义在软件、并且得到实施、测试、与发布。支付事务结构目前是固定的,并且如果不花费大量精力来召回和替换或重新编程装置,终端和服务器,则无法进行更改。

tereon并非如此。相反,它构建了各个组件的支付流程,每个组件都与其连接的组件进行交互。这些组件实质上对程序的工作流(workflow)进行布局。可以更新与添加功能,并且不会影响支付程序。由此,将程序组件从装置中抽象,由此,在定义事务后,可以适用于任意数量的装置,无论是卡、卡终端、移动电话、或者门户网站(webportal)。

每个组件根据其接收的指令结果将指令及信息传递至下一个组件。指令可以是事务的、或者它们可以包含控制,例如下一个组件如何运行(例如,如果是可选的则请求pin、提供一组选择、显示特定信息、以及预期或允许的响应)。

由此,提供一种在不需要重新编程或者替代现有终端的情况下,改变现有的支付服务并且建构新的服务的能力。目前,在支付服务提供方运行支付系统后,在不取代端点的条件下,支付服务提供方无法轻易地改变系统。现有系统实质上时静态的。这将它们替代为动态系统。

可扩展架构使运营方能够使用这些组件计划出用于特定的事务的工作流(workflow)。它能够建构包括决策树等的工作流(workflow)。运营方可以通过简单地重新安排现有的组件、通过增加提供新的功能的新的组件、或者通过移除组件来修改现有的工作流(workflow)。为了在现有的系统中实现上述内容,需要重新编程服务器以及终端,并且可能需要更换卡本身。

这一示例在图18至20中示出。组件本身通过终端屏幕而被表示为区块,以便可视化每个组件的功能。然而,组件同样适用于移动事务、门户网站事务、以及卡终端事务。为了改变现有的工作流(workflow),可以简单改变组件的顺序及连接。为了生成新的工作流(workflow),所需的组件将按照需要的顺序简单地连接在一起。

正常的支付流程将为非接触式、接触式、以及移动支付生成单独的支付程序。因此,如同图18所示,组件1804通常出现在链的左边,在“及时完成事务”的组件1802之后。

然而,如同图19所示,通过将该组件进一步沿右边移动,并且在链中进一步插入两个决策组件1902及1904,运营方可以生成单一支付流程,其可以在单一支付流程中管理接触式、非接触式、以及移动支付。

运营方可以实现更多。运营方希望在程序中进行添加,由此在系统识别客户后,提供特殊的季节性提议(offer)。如同在图20中所示,可以在任何时间将组件1804进一步向右移动,并在其原有位置插入新的组件2002,组件2002在商家需要输入数量及pin之前自动地提供客户提议。例如,运营方可以将该组件配置为在圣诞节的前24天运行,并且在此之后到新年前几天提供一个不同的组件。由此,将动态地改变用于圣诞节及新年假期的支付程序,而不需要运营方召回及重新编程装置。组件将简单地命令显示装置,例如移动电话或卡终端,以将提议显示给客户。运营方可以轻易地通过配置组件1804来禁用pin的要求。同样地,如果组件没有要求pin的功能,则运营方可以更新组件以包含功能。

当运营商希望时,运营方可以更进一步并建构完整的决策树,使客户能够从一定范围的提议中进行选择。当提议的季节结束后,运营方可以简单地移除新的组件,由此,程序恢复到原始结构。

需要引起注意的是,运营方在任何时间都不需要召回装置来改变程序。它只是简单地在后端重新配置程序,然后在其选择的时间及日期实现该更改。

提供tereon服务器内部管理及操作的架构可以按照完全相同的方式进行配置,其中,架构的组件和访问的背景交互,从而管理用户及管理员可以访问的信息和访问信息的方式,以及它们可以执行何种任务。

动态服务

可扩展架构使得组织能够快速地生成及实施新的服务。运营方简单地通过将所需的区块链接在一起,并且定义任何相关的信息来定义这些服务。该架构不需要聘请程序员编写服务代码,而是通过允许营销及it的部门通过撰写定义工作流(workflow)的定义文件、通过使用图形系统“画出工作流(workflow)”、或者通过任何其它定义工作流(workflow)的程序来实现服务。在检查工作流(workflow)后,运营方简单地通过将所定义的步骤或区块链接在一起来实现工作流(workflow),并且tereon使得服务可供所有符合资格的用户使用。

例如,运营方需要使用区块来接受任意值的支付、以及后续的区块来请求pin。然而,如果运营方想要提供访问控制系统,则相同的运营方可以创建区块允许对于一组房间的无pin的访问,同时,使用区块请求pin来访问另一组房间。

这表示,不同于现有的系统,系统允许组织能够设计及实施新的服务、或者修改或移除现有的服务,即使组织已经推出事务处理系统,也不需要更换发行给用户的装置。如果装置了解并且可以操作任意一个步骤,则装置将使用这些步骤来支持组织定义的任何服务。当组织定义服务后,系统将立即使目标用户或用户可以使用这项服务。

抽象装置

可扩展架构进一步采用抽象化原理对装置本身进行抽象化。该架构对于各类别的装置定义有关装置功能的程序组件。该程序组件与功能组件交互。根据可用功能,程序组件将指示功能组件执行任务,例如输出内容和输入内容。

粒度(granularity)

tereon可以单独地识别装置、用户、以及帐户,并且可以在用户使用装置访问服务内访问背景(context)。因此,运营方可以根据独立的用户访问服务内的背景来配置组件和那些组件之内的选项,从而触发动作(action)。tereon有效地允许运营方为每个用户,每个用户装置,以及用户使用该装置访问服务的背景定制服务。

例如,一个用户可以看见在一个事务中的三个提议选项,另一个用户可能只看见他或她自动接收的一个提议,同时第三个用户可能完全看不到提议。

如果程序有关访问记录,例如病患记录,则当用户访问医疗设施或家庭域式,用户能够访问他或她的记录并且管理访问权利。然而,如果用户(或者别人)访问远离这些域的那些记录,则用户可能只看到那些记录的子集合、或者完全不能访问那些记录(根据服务的背景设定)。

如果用户使用卡终端访问服务,则组件将指示卡终端显示相关的信息。如果用户使用移动电话或其它屏幕装置来访问相同的服务,则组件将指示屏幕显示相关信息。通过这种方式,可扩展架构的抽象层变得与装置无关。它可以使用任何合适的显示和访问点来控制用户-系统的交互。

这同样适用于所提供的服务。每个用户的帐户都将具有提供方的默认服务级别。如果运营方增加新服务、或者为一个或多个用户修改现有的服务,则这些用户的帐户将具有这些服务。服务的关键将是其提供方标签、用户的帐户号码、以及用户的装置注册标签的组合。这为用户的服务定义及规则创建了简短的树枝状路径。

例如,发送方可以使用设定有规则以允许交互或者自动传输的移动电话。接收方可能已经将其装置设定为接收自动传输。在这一例中,发送方的装置将简单地通过步骤进行自动传输。服务标签并不包含任何有关传输是否为交互的信息;存储在发送方及接收方的服务器中的服务信息。

如果接收方将装置设定为接受交互或者自动传输,则发送方的装置将询问发送方使用哪一模式。接收方可能已经将其装置设置为接受特定时间之间的自动传输,并且在其它时间接受交互式传输。在此,接收方的tereon服务器将简单地根据接收方的时段来通知发送方的服务器应使用的传输模式。

如果发送方或者接收方的装置只接受交互式传输,则如果接收方与发送方同时在线,它们将通过以下步骤执行传输。如果接收方只有一张卡,则接收方需要前往商家的终端以执行他的事务的一侧面。如果接收方为脱机状态,则发送方完成他的步骤,但是接收方必须接着在tereon完成传输之前完成其在事务中的步骤,例如是接受传输并且输入他的pin。在此之前,类似于处理传输至非tereon用户的方式,tereon将把传输保存在第三方保管(escrow)设施。

动态接口(dynamicinterfaces)

可扩展架构导致依赖背景的服务,例如在活动中帮助用户找到他或她的座位、特定商家的程序等的提议。它允许组织定制每个用户在用户与tereon交互时拥有的服务和体验,服务可用的程度取决于背景、可能出现的按钮、可用的选项等。

每个用户和每个商家可以交互的服务数量完全取决于单独的用户可以访问的服务与商家可以提供的服务之间的重叠。

例如,如果商家可以提供支付、存款、以及取款服务,当用户来到商家并且只能够在该商家处访问支付,则用户及商家将只能看到关于支付的功能,即支付及退款。如果用户来到相同的商家处,而且用户可以访问支付、存款、以及取款,则用户能够看到全部功能。如果商家目前不具有足够的资金支持存款或取款,则当具有完整服务的用户来到商家处时,用户将只能在他或她的装置或者商家的终端上看到支付功能。商家也将不再出现在对于提供存款或取款的商家的任何搜索上。也有情况可能是用户无法在某些商家处访问某些服务,但是可以在另一商家处访问那些服务。架构还将处理上述情形。

动态接口对多面的凭证的使用进行补充,并且使得装置以及其相关的应用程序能够变成类似于如上的“心灵感应纸(psychicpaper)”的东西。在这种情况下,装置只提供可用的服务,并且不论用户可能注册哪些多种服务,接口仅适用于那些可用服务。这类似于一种服务的支付装置、另一服务的运输票、另一服务的房门钥匙等。服务提供方并不需要发行单独的装置以访问其服务,并且降低了提供服务以及升级服务的复杂度及成本。

可扩展架构使得装置能够改变其外观,并且改变使用装置内的或为了使用装置的背景所要求的凭证及服务的呈现。因此,例如它可以修改独立的atm,例如杂货店中的atm的屏幕,以在用户访问atm时在运营方呈现外观及感受,并且只呈现用户已经订阅的服务。

和其它层的交互

可扩展架构在tereon系统之内和其它组件交互的能力是可扩展架构的基本特点。除了本身包括较广的安全模型的背景安全之外,可扩展架构指令可嵌入通过哈希链(与具有零知识证明的哈希链相关)传输的事务信息之内。

脱机模式(off-linemode)

tereon提供三种脱机模式;用户脱机、商家脱机、两者全部脱机。

在前两种情况下,tereon通过方形(square)反方向完成实时事务;即用户通过商家终端以及商家的tereon服务器和他的tereon服务器通信。商家或者用户都不会体验到服务变差。tereon使用pake协议或者具有类似功能的协议,以对于相关装置通过方形(square)的三个侧面来生成安全的路径。

在第三种情况下,当两个装置全部脱机时,直接的印象是tereon无法实时检查用户或商家是否有足够的资金支持事务而由此导致tereon无法克服生成的信用风险。但并非如此。

通过使用可扩展架构的特点以及哈希链的版本,tereon可以确保系统仍然可以检查资金。用户与商家都能够执行全部功能。用户将需要使用移动电话或者微处理器卡,但是用户或者商家都不会体验到它们接受的服务的退步。商家装置以及用户装置都将存储在它们之间的事务的加密细节、以及商家已经做出的先前脱机事务的随机样本。商家装置设定传递给用户的卡或电话的每个事务的副本的最大数量。

tereon将使用商业逻辑、安全模型及哈希链的组合避免任何用户使用脱机装置与在线装置的组合来领取超过帐户内金额的情况。帐户只有在帐户提供信用功能时支持脱机装置。虽然服务提供方的监管机构可能要求提供信贷许可,但脱机逻辑不需要信用(credit)。

如果装置未被授权脱机运行,则当其脱机时,它将无法与任何其它装置进行事务。它的安全性及认证模型将进行阻止,因为其签名将其识别为仅支持在线事务,并且装置将无法处理任何影响其注册的任何帐户的值的事务。

如果装置支持脱机事务,则服务提供方将进行金额限制(信用额度或帐户余额的一部分,这总是在装置在线时更新),即脱机限额。装置只能够授权从帐户转账或支付相当于账户价值或脱机限额的资金。当然,服务提供方可以授权装置接受转账或资金,并且可以限制接受限额(脱机接受限额)。如果用户在第一装置脱机时直接通过门户网站或使用另一在线装置访问帐户,则用户能够授权从帐户转账或支付的金额是帐户余额减去脱机限额的值。

一旦包含相关记录的装置在线后,tereon核对全部脱机事务。当然,它将接收到一些事务的多个副本,由此确认先前内容。

因此,如果服务器从第三方服务器接收与脱机装置的支付或转账相关的脱机交易记录,那么一旦收到足够的交易副本,它就会处理这些交易并将这些资金添加到帐户余额中。同样,如果服务器从第三方服务器接收与脱机装置的支付或转账相关的脱机交易记录,那么一旦收到这些交易的足够副本,它将处理这些交易,并从账户余额和剩余脱机限额中减去这部分资金

尽管以上说明涉及支付,由于易于构想,相同的操作模式可以适用于任意类型的事务系统。例如,iot装置或其它行业组件之间的交互。通过创建包含可以重新排列,插入或删除的模块的工作流(workflow),运营方可以重新配置装置以采用新的方式运行,而不需要召回、重新编程、以及重新安装。

运营方可以在现场重新计划装置、改变它们的运行方式、甚至让装置根据那些装置在运行时检测到的运行环境任何改变来控制其它装置并修改其工作流(workflow)。

需要时,iot装置还可以通过修改构成工作流(workflow)的模块的组件来修改彼此的工作流(workflow)。管理装置间的通信的安全模型将使得通信能够抵抗中间人攻击,同时查找服务将使得装置能够彼此识别与认证。

脱机模式允许装置能够自动地或者半自主地运行并且彼此相互操作、验证及确认装置间的任何事务、以及只在需要时与运营方的系统交互。

下面说明的背景安全模型扩展到例如iot装置的任意类型的装置。只要装置得到授权而运行,并且只要装置的服务列在相关的查找服务中,则任何装置都可以和任何其它装置通信,并且每个装置都将使用哈希链以使其能够信任及验证在装置之间的事务及数据通信,这包括修改装置的工作流(workflow)、升级装置的系统、或者简单地在系统之间传递或核对数据的指令。每个装置都将保留对自身事务的完整审计。

安全

tereon系统使用许多独特的安全模型克服传统事务处理系统中的安全模型及协议所存在的问题与限制。例如,安全模型消除了在装置上存储数据的需求。这是现有系统的主要问题。

安全的ussd

ussd(非结构化补充服务数据)通常作为许多事务类型的通信信道,包括从功能手机或者到功能手机的支付。tereon实现ussd的安全使用。

大多数的实施方式要求用户输入ussd码,或从经编号的菜单中选择动作。一系列非加密的信息来来往往。此导致成本问题,以及降低安全性和用户体验的问题。

tereon不是以出现安全问题的7或8位文本的形式发送信息,tereon以一种新的方式使用ussd以及类似的信道。tereon简单地将其基于对话的短脉冲(short-burst)通信信道。

与现有系统不同,tereon并不修改信息来配合ussd。相反,对于事务对话中的各加密通信,tereon会像通过tcp/ip(即,gprs、3g、4g、wifi等)进行通信一样加密通信以生成密文,然后将密文编码为base64的7位的字符串。接着,tereon检查密文的长度。如果它长于ussd信息中所允许的空间,则将密文切割为两个或多个部分,并使用ussd单独传输。在另一方面,tereon将部分重新汇编为完整的字符串,将其转换回密文,然后对其进行解密。

tereon可以使用这一方法来首先使用tls(传输层安全协议)识别及认证每一方。这将生成第一对话密钥。接着,tereon可以使用该对话密钥加密pake协议的协商,协商生成第二会话密钥,各方将使用该密钥对对话中的所有进一步通信进行加密。

一些功能手机支持wap(无线应用协议)。通过ussd使用wap时,tereon将简单地使用wap协议栈作为跨ussd的通信方式。由此,提供仅作为附加级别的认证的无线传输层安全协议(wtls)层(它比tereon默认使用的tls和高级加密标准256(aes256)加密相对较弱,由此tereon将使用aes256来加密任何事务中的通信)。

这也说明tereon如何保护被认为是缺乏安全性的其它通信信道(例如,nfc、蓝牙等)。通过小心地建构信息对话,可以完全改变ussd以及其它“不安全的”信道的本质。

用于有源装置(activedevices)(以及物联网)的安全模型

用于有源装置,例如移动电话、卡终端等的安全模型以一种类似于卡安全模型的方式实现操作(见下述说明)。由于安全算法在一段时间前被破解,因为未使用sim。相反,使用注册密钥,该密钥被加密并且和在网络所生成的唯一的密钥一起存储在装置上。在移动装置上,tereon可以使用密钥执行查找,以检查移动装置报告的imsi(国际移动用户识别码)是否为真。

当用户第一次执行应用程序(用户可以根据需要拥有多个应用程序)时,应用程序将请求tereon服务器为用户帐户生成的一次性认证码,以及装置的的移动电话号码或序列号(如果应用程序无法最先确定号码)。用户还可以向多个tereon服务器注册他或她的应用程序,其中,每个服务器对于为了向用户提供服务而由服务器操作的每个账户或服务生成唯一的一次性激活代码。

一旦用户输入一次性激活码,应用程序使用该码作为它与服务器之间的共享秘密(sharedsecret),以生成第一pake对话(必要时,在应用程序和tereon服务器使用tls或类似协议相互验证之后)。一旦建立第一pake对话,tereon服务器将向应用程序发送加密和签名的注册密钥以及新的共享秘密。服务器以及应用程序都将使用一次性激活码、注册密钥、以及共享秘密,通过生成全部三个哈希来生成新的共享秘密。

每次服务器与应用程序通信时,它们都将通过对先前共享秘密和先前在在线通信中彼此通信的消息进行哈希运算来创建共享秘密。每次应用程序与服务器彼此通信时,它们都将生成事务内容的哈希,即事务哈希,它们已经在先前交换中对哈希进行交换。它们都使用此事务哈希生成新的共享秘密。

它们都将通过对先前共享秘密和先前在在线通信中彼此通信的消息进行哈希运算来创建共享秘密。

如果用户遗失他或她的装置,或者他或她需要重新注册应用程序或改变装置,则tereon服务器将生成新的一次性认证码以及注册密钥。服务器将传递至应用程序的新的共享秘密,将是从在服务器与应用程序之间交换的先前信息的哈希生成的。

这种密钥转发使得应用程序以及tereon服务器始终为每个pake对话提供新的共享秘密。因此,如果攻击者能够破解tls对话(由于服务器和应用程序都将对他们的消息进行签名,这将非常困难),攻击者仍然需要破解基础pake对话密钥。如果一方管理技术,那么这将为该方提供只适用于对话的密钥。对各通信生成新的密钥的过程表示该方将需要对每个通信重复技术,这是一项在计算上几乎不可能完成的任务。

由于应用程序在任何对话中对特定的服务进行认证,因此用户的应用程序将只和服务交互。服务器将不会知道用户的应用程序注册的其它任何服务。实际上,应用程序类似“心灵感应纸(psychicpaper)”,是一种识别装置,它只提供服务所需的凭证,而不管用户可能注册的多个服务。它可以看起来像对服务的支付装置、对另一服务的运输票、对另一服务的门钥匙等。服务提供者不需要发行单独的装置以访问其服务,由此降低提供服务以及升级服务的复杂性及成本。

安全模型还具有一个额外的优点。如果用户遗失他或她的装置,则用户可以获得具有完全相同号码的新的装置。具有应用程序的旧的装置将无法工作,而新的装置在完成注册后可以工作,这是因为它将具有有效的密钥以及注册代码。尽管从遗失装置到报告遗失之间可能有时间差,但是没有人能够做出任何事务,因为没有人会拥有必要的密码及pin、或者任何其它认证令牌。

用户或者tereon系统的管理员还可以对应用程序进行配置,以在用户可以访问应用程序之前要求密码。该密码使用tereon服务器进行检查。如果有效,则tereon服务器将指示应用程序运行(通过始终签名及加密的通信)。如果密码无效,则tereon服务器将指示应用程序在有限次数内请求新密码。之后,tereon服务器将锁住用户的应用程序,并且用户需要联系管理员解锁应用程序并重新注册设备。

每个凭证都是定时的。这表示用户在一定义的时间期间内具有指定给他或她的特定凭证,并且在时间期间使用凭证发生的所有事务都链接到用户。如果用户随后更改凭证,则原始凭证可以指定给另一用户。然而,查找服务器将继续根据凭证和对这些凭证注册的时间期间的组合来链接事务及凭证。

可以调整相同的模型,从而确保在“物联网”中的装置之间的通信。这里可以使用证书或硬接线序列号来标识每个设备。这将成为当对事务的日期,或者与在设备之间发送的先前信息进行哈希运算时,装置在第一次联系时进行交换的第一个共享秘密。并且,将使用两个号码,一个用于识别装置并且取代pki(公钥基础架构)证书的开放序列号,以及一个作为共享秘密的加密保护的序列号。或者,单一序列号可作为id以及第一共享秘密,并且将通过安全通信信道上传新的密钥(参见关于系统架构中的通信层的讨论)。

tereon的移动安全模型具有另一优点。运营方可以使用它来设定对各个的服务的访问权限,并且具有使服务能够成功的特定用途的装置及网络来配置访问的水平。例如,这表示提供方可以指定管理员可以通过安全的公共网络来观看系统日志,但只能通过内部网络访问系统管理功能,并且规定只能通过固定装置,而不能通过移动装置。

尽管该功能在支付上具有一些应用(其将对系统管理功能的访问确定在所定义的网络及装置内),但它对于需要有限访问敏感或特权内容的其他服务而言也是如此,因此用户可以准确地控制谁可以看到某些数据,这些第三方可以看到哪些数据,以及他们实现访问的的位置。

安全模型使组织能够保证任何装置收集、生成、或者传送的任何数据的隐私性及安全性。这可以适用到任何装置或事务,从支付到医疗装置、交通流量传感器、天气传感器、水流检测器等。

卡安全模型

emv卡以及使用主机卡仿真的移动电话将pin存储在芯片上,或者在电话上的安全的元件中。非接触式卡以及仿真那些卡的移动电话也用一种清楚、或者容易阅读的形式存储大部分卡细节。卡终端对照存储在卡上的pin检查用户输入的pin。这就是emv系统中的许多弱点显露出来的地方,并使得emv容易受到许多详实记录的攻击。

tereon只在卡存储认证密钥,并根据存储在tereon服务上(在不向只看到值是否与实际值相符的管理员公开的数据库的安全区域中)的值来检查所输入的值。它根据服务和特定功能、资源、设施、事务类型,或者由服务所提供的其它类型的服务进行认证。tereon使用两种安全模型,其中一种是另一种的子集。

大多数的卡将显示pan(长的号码)。tereon并不使用该号码来识别帐户。相反,它和移动电话号码相同的方式使用pan;它只是一个访问凭证。每张卡都具有一个加密的pan。卡还具有加密的注册密钥,该密钥将卡识别为对其注册的每个服务有效,这与移动设备上的注册密钥对该设备进行认证的方式非常相似。如果还没有在tereon服务上注册的与加密pan字符串相关的地址的详细信息,该加密代码将具有一个前缀(prefix),只指向商家的tereon服务需要请求的国家的查找目录服务。

当用户将卡呈现给终端时,终端将读取加密的pan,并使用它和加密的注册密钥来通过卡的注册终端验证卡。一旦用户的tereon服务已经验证及认证卡以及商家的tereon服务,则用户的服务将未加密形式的pan传送给商家的tereon服务,由此,可以注册它以及加密的形式到缓存中。因此,如果用户在之后通过例如电子商务门户或者商家终端清楚地输入pan,则服务将知道要联系哪一个其它服务。

如果读卡器因任何原因无法读取卡,则用户或者商家可以打字输入pan,并且商家的tereon服务将使用pan来获得用户的tereon服务的地址。只要凭证注册到用户的帐户,用户可以替代地输入他或她的电子邮件地址、移动电话号码、或者任何其它唯一的凭证。卡的pan只是用户可以使用的众多凭证之一。

一旦商家的tereon服务验证卡之后,商家的终端将设定tls,然后,通过它的哈希密钥设置与其tereon服务的pake对话(每次终端和其服务进行通信时,都对其先前密钥以及其注册密钥进行哈希运算以生成用于pake对话的新的共享秘密)。商家程序将继续直到商家的终端需要请求pin(如果如同由支付服务提供方确定并且置于tereon服务的商业规则引擎中,用户的tereon服务需要该事务的pin)。用户的tereon服务将生成和商家服务的pake对话,然后传送一次性密钥至商家服务,并通过首先使用tls创建的另一pake对话将加密的信息传送至终端。

商家的终端将接收密钥,并且解密信息以显示用户所选的文本(text),该文本表明终端由商家服务授权。用户输入他或她的pin,其通过终端的pake对话和用户服务进行通信。该过程只发生在用户必须在商家终端输入他或她的pin的情况下。商家终端绝对不会明确看到pin,因为这是输入至商家终端从用户的tereon服务访问的安全的应用程序中,并且使用用户的服务在安全的签名密钥交换中发送至终端的第二个一次性密钥进行加密。所有的通信通常将通过商家的服务进行,在终端与用户的tereon服务之间的直接的通信也可以建立在终端支持该功能的地方。

如果卡是微处理器卡(芯片和pin、非接触式或者两者全部),则卡还可以具有在其发行时最初生成的共享秘密。

微处理器卡还将使用pake和其注册的tereon服务(或者用于服务的服务)建立对话。该对话将和卡终端(可以是移动平板电脑、或者pos卡终端)与其tereon服务所建立的对话。这立即消除了现有的终端和芯片以及pin卡所呈现的关键漏洞,这些是通过一些“中间人”或者“楔(wedge)”的攻击干扰及破坏pin验证过程的现有的基础架构的脆弱性。

卡将使用该信道生成密钥,该密钥将发送至它的服务,并且该服务会将密钥发送至商家的终端以对pin进行加密。当卡将存储上一个在线事务的余额时,它还将使用该信道促进脱机事务,该密钥将作为种子生成将用于脱机事务以及一些第三方脱机事务的记录的一系列密钥。

如果卡遗失或者被偷,则tereon的安全模型不需要发行者发行新的pan。

基于背景(context)的安全

大多数的安全协议都使用一些凭证,并且建构在一些基础假设上。就是这些假设可能会导致错误并由此失去安全性。tereon系统并不依赖任何基础假设,除了这一假设,即没有这个系统的通信网络是不安全而且无法被信任的,并且装置运行的环境也可能是不安全的。

tereon系统更进一步查看一组凭证以及提供凭证的背景。这提供额外的安全性,并且确保组织可以使得其员工或成员在某些或所有的情况下能够使用他们自己的装置(有时称为携带自己的设备(byod))的方法之一。

tereon可以不仅使用用户密码、pin,或者其它直接的认证凭证;它还将使用装置的详细信息、装置上的应用程序、装置访问tereon的网络、装置在对话当时和期间的地理位置、以及用户使用装置访问的服务或信息。

tereon获取凭证,并根据通过或对照凭证所设定的背景,控制对于信息的访问,授予适合凭证的访问级别。

例如,试图在未经tereon批准的私有装置上访问深层管理服务的管理员将被阻止访问这些服务,而不论该管理员是否在工作场所中以及在工作场所的网络。然而,同一位管理员可能有权查看相同装置上的某些系统日志。

第二个例子有关背景安全模型管理二级用户(secondaryuser)可以看到的服务。用户拥有提供多种功能的电话或卡,例如没有次数限制的(当然,只能到最高的信用限度或者可用资金)存款、取款、以及支付。用户经常光顾一家咖啡厅,并且总是买一杯咖啡以及杏仁牛角面包。今天,用户将他的卡给了他的儿子,并且对卡设定了40英镑的总花费限制。用户对于他的儿子的使用还设定了第二pin,即是谁带着卡到相同的咖啡厅来买咖啡。通常,因为他过去累积买了6个杏仁牛角面包,今天tereon系统通常会向用户提供一个免费的杏仁牛角面包,并且咖啡厅使用tereon推出提议(offer)给客户。然而,当用户的儿子输入其pin时,tereon系统检测到正在支付的人是用户的儿子(它并不知道父亲的pin),并且因为儿子对坚果过敏,因此阻止今天的提议(offer),父亲已经将儿子的pin链接到他儿子的个人资料。商家看不到有关免费的杏仁牛角面包的任何通知,并且tereon知道用户的儿子无法食用坚果。而商家所能看到只有对一杯咖啡的支付。

用户还允许儿子提取最高到10英镑的现金,但不能够存入资金。因此,当用户的儿子进入可以提供最高到10英镑的取款的商家处时,他将在商家的终端上看到选项。

除了访问控制之外,基于背景的安全性提供进一步功能。根据用户提出或使用装置的背景,装置将只提供背景所必要的凭证;它变成“心灵感应纸(psychicpaper)”。通过这种方式,目录服务216提供可以支持基于背景的安全性的功能。

基于背景的安全性不需要为特定的背景提供单独的凭证及装置。现在单一装置可以成为图书馆的图书馆卡凭证、公交车或火车上的运输票、进出房间或设施的安全钥匙、公司小卖部的内部支付装置、戏院票、超市的标准支付装置、驾照、nhs卡、证明有权获得服务id卡,并且如果需要,可以在商家装置显示照片id等。

由于tereon提供动态、实时的事务处理及结算,管理员或用户可以实时地修改、扩展、甚至取消所允许的背景或凭证。修改立即反映在提供服务的tereon服务器或查找目录服务216,或者两者全部。遗失的装置不再具有一段时间的造成财务或身份暴露的风险。一旦用户或管理员取消或修改凭证或背景,改变将立即生效。

一键式事务

tereon实现一种一键式事务授权以及访问方法,消除了现有系统中的安全缺陷。例如,由于不提供认证,当前无pin或者nfc支付非常危险。在发卡机构取消非接触式emv系统的电话或卡凭证之前,用户仍然对所有支付负责。即使发行方取消装置,但客户仍然必须尝试证明他没有激活支付。如果支付从未要求pin认证,客户要如何证明?这留下一个巨大的漏洞,即允许任何人都能够捡起非接触式卡或电话,而且通过简单的触碰就能够进行支付。在取消装置之前,装置维持有效。

tereon以三种模式中的一种来支持感应式(tap-and-go)支付,每种模式取决于操作背景。这些模式中的一种提供一键式事务,它使用一种方法来识别个人。如果用户以及服务提供方都同意所提供的认证水平满足需要的情况下,系统将提供一键式认证方法,即装置将在屏幕上显示一个大的按钮,或者配置一个大的区域以供用户触碰。其它模式是完全的非触碰模式,例如用户不输入凭证的现有的非接触式事务,以及一种装置彼此识别之后,用户输入他或她的标准支付凭证的模式。

按钮或者区域本身通过触控屏幕提供认证。每个人用一种独特的方式按屏幕,这既取决于按下的位置,也取决于他们使用的按压图案(pressurepattern)。如果个人打算使用该功能,则tereon将要求个人多次按压按钮或区域,直到学习个人的签名为止。屏幕在逻辑上被分成若干个离散的单元格,tereon将查看用户在训练期间接触的单元格的接近度和模式,并且,可能是还查看用户按下屏幕时的压力模式以及任何装置移动。它将使用并监控数据,以建构用来认证用户的档案。

图21为说明计算装置2100的实施方式的框图,其中,在计算装置中可以执行一组指令,使计算装置执行本文所讨论的任何一种或多种方法。在替代实施方式中,计算装置可以连接(例如,联网)到局域网(lan)、内联网、外联网、或者互联网中的其它装置。计算装置在客户-服务器网络环境中以服务器或客户机的容量运行、或者在点对点(或分布式)网络环境中作为对等机运行。计算装置可以是个人计算机(pc)、平板电脑、机顶盒(stb)、个人数字助理(pda)、移动电话、网络装置、服务器、网络路由器、交换器或网桥、处理器、或者任何能够执行一组指定计算机要采取的操作的指令(顺序或其它方式)的机器。此外,尽管只说明了单一计算装置,但是术语“计算装置”还应包括单独或共同执行一组(或多组)指令以执行本文所讨论的任何一种或多种方法的任何机器(例如,计算机)集合。

示例的计算装置2100包括通过总线(bus)2130彼此通信处理装置2102、主存储器2104(例如,只读存储器(rom)、闪存、如同步dram(sdram)或者rambusdram(rdram)的动态随机存取存储器(dram)等)、静态存储器2106(例如,闪存、静态随机存取存储器(sram)等),以及辅助存储器(例如数据存储装置2118)。

处理装置2102代表一个或多个通用处理器,例如微处理器、中央处理单元等。具体地,处理装置2102可以是复杂指令集计算(cisc)微处理器、精简指令集计算的(risc)微处理器、超长指令字(vliw)微处理器、实现其它指令集的处理器,或者实现指令集组合的处理器。处理装置2102还可以是一个或多个专用处理装置,例如特殊应用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置2102用于执行处理逻辑(指令2122),以执行本文的操作及步骤。

计算装置2100可以进一步包括网络接口装置2108。计算装置2100还可包括视频显示器单元2110(例如,液晶显示器(lcd)或阴极射线显像管(crt))、字母与数字输入装置2112(例如,键盘或者触控屏幕)、光标控制装置2114(例如,鼠标或者触控屏幕)、以及音频装置2116(例如,扬声器)。

数据存储装置2118可包含一个或多个计算机可读存储媒介(或者更具体地,一个或多个非暂时性计算机可读存储媒介)2128,在该媒介上存储有一组或多组指令2122,其体现在此的方法或功能中的一个或多个。指令2122还可以在通过计算机系统2100执行的期间,完全或者至少部分地存在于主要存储器2104内和/或处理装置2102内,主要存储器2104以及处理装置2102还构成计算机可读存储媒介。

如上的各种方法可以通过计算机程序实施。计算机程序包含计算机代码,该代码用于指示计算机执行上述各种方法中的一或多种的功能。用于执行该方法的计算机程序和/或代码可以提供在例如计算机的装置、一个或多个计算机可读媒介、或者更一般地,在一种计算机程序产品上。计算机可读媒介可以是暂时的或非暂时的。一个或多个计算机可读媒介可以是例如电子、磁性、光学、电磁、红外线、或者半导体系统,或者是用于数据传输的传播媒介,例如,用于通过互联网下载代码。或者,一个或多个计算机可读媒介可以采用一种或多种物理计算机可读媒介的形式,例如是半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、硬磁盘和光盘,例如cd-rom、cd-r/w或dvd。

在一实施方式中,本文的模块、组件以及其它特点可以实现为离散组件,或者作为个性化服务器的一部分集成在例如是asic、fpga、dsp或类似装置的硬件组件的功能中。

“硬件组件”是有形的(例如,非暂时性)物理组件(例如,一组一个或多个处理器),其能够执行某些操作,并且按照某一实体方式进行配置。硬件组件可以包括永久地配置为执行某些操作的专用的电路或逻辑。硬件组件可以是或包括特殊用途的处理器,例如现场可编程门阵列(fpga)或asic。硬件组件还可以包括为执行某些操作而由软件暂时配置的可编程的逻辑或电路。

由此,“硬件组件”一词应理解为包括可物理构造、永久配置(例如,硬接线(hardwired))、或者暂时配置(例如,编程),从而以某一方式来运行、或者执行某些本文的特定操作的有形实体。

例如,机器可以是物理机、逻辑机、虚拟机、容器(container)、或者任何其它普遍使用的用于包含可执行的代码的机制。机器可以是单一机器,也可以使多台连接或分布式机器,不论机器是否为相同类型或为多种类型。

此外,模块及组件可以作为硬件装置内的固件或功能电路来实现。此外,模块及组件可以在硬件装置及软件组件的任意组合、或者只在软件中实现(例如,存储或以其他方式包含在机器可读媒介或传输媒介中的代码)。

除非明确说明反例的情况,可以从以下讨论中明显看出,在整个说明中使用的例如“传送”、“接收”、“确定”、“比较”、“允许”、“维护”、“识别”或类似术语是指计算机系统或者类似电子计算装置的动作及过程,其中,类似电子计算装置将在计算机系统的寄存器和存储器中表示为物理(电子)量的数据处理并转换为在计算机系统的寄存器或存储器、或者其它信息存储、传输或显示装置内的以物理量表示的其它数据。

应理解,以上说明只用于说明的目的而非用于限定。在阅读和理解上述说明后,本领域技术人员将明显了解许多其他实现。虽然本发明是参照具体实施例进行描述,但应当认识到,本发明不仅限于所描述的实施例,而且可以在权利要求的精神和范围内进行修改和变更。因此,本说明书以及附图是用于说明而非进行限制。因此,应参照权利要求以及与该权利要求享有同等权利的全部范围进行确定。

各个方面的所有可选特征参照全部其他方面。能够对所描述的实施例进行变型,例如,可以以任何方式组合所公开的实施例的特征。

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