在具有原始作品数据的区块链上存储和验证衍生作品数据
文献发布时间:2023-06-19 11:54:11
背景技术
受版权保护的作品的全部或一部分都可以在衍生作品中复制和使用。对于原始作品的所有者而言,可能很难标识包含原始作品的全部或一部分的衍生作品。所有者也难以跟踪衍生作品以及表明衍生作品包含原始作品的一部分的证据。同样,另外的下游用户可能很难将衍生作品追溯到原始作品。
本公开正是针对这些和其它考虑而提出的。
发明内容
所公开的技术涉及用于将原始作品数据与用于验证衍生作品数据是原始作品数据的衍生物的代码一起存储在衍生作品数据区块链上的系统和方法。该技术涉及从提交实体接收衍生作品数据以及证明数据,该证明数据表明衍生作品是原始作品的衍生物。如果衍生作品数据被验证为衍生物,则将衍生作品数据附加到衍生作品数据区块链。所公开的技术提供了可靠、透明且可追踪的衍生作品数据管理的方法。
所公开的用于存储原始作品数据并且搜索衍生作品的技术的特定示例涉及:接收原始作品数据并且将原始作品数据存储在区块链中。该技术还涉及:接收衍生作品数据和与衍生作品数据是否是原始作品数据的衍生物相关的证明数据。响应于接收到衍生作品数据,该技术涉及:通过确认衍生作品数据是原始作品数据的衍生物来验证接收到的证明数据,将衍生作品数据附加到区块链,并且将接收到的证明数据与原始作品数据相关联地存储在区块链中。
原始作品数据的示例包括:源代码、目标代码、可执行文件、文字文本、音频文件、图像文件、视频文件、图形文件、生物医学/健康/医疗数据记录、图形模型、视频游戏和遗传数据。
在一些示例中,通过确认衍生作品数据是原始作品数据的衍生物来验证接收到的证明数据包括将值传送到从其接收证明数据的实体。
在特定示例中,将原始作品数据存储在区块链中包括:对于原始作品数据的一个或多个部分中的每一个,计算针对原始作品的部分的熵值,并且将所计算的熵值与原始作品数据的部分相关联地存储在区块链中。在这些示例中,通过确认衍生作品是原始作品的衍生物来验证接收到的证明数据包括:计算衍生作品数据的至少一部分的熵值,在区块链中搜索针对原始作品数据的一个或多个部分的所存储的熵值,以获得与针对衍生作品数据的部分计算的熵值的阈值差内的至少一个所存储的熵值。
在其他示例中,计算原始作品的至少一部分的第一熵涉及:通过分析原始作品内的数据子集来计算第一熵签名。计算衍生作品的至少一部分的第二熵涉及:通过分析衍生作品内的数据子集来计算第二熵签名。以及确定第二熵是否在与第一熵的阈值差内涉及:将第一熵签名与第二熵签名进行比较来确定第二熵签名是否在与第一熵签名的阈值差内。
在又其他示例中,通过确认衍生作品是原始作品的衍生物来验证接收到的证明数据包括:将原始作品中的一个或多个数据子集与衍生作品中的数据子集进行比较,以及确定原始作品中的数据子集中的一个与衍生作品中的数据子集之间的相关性是否在相关性阈值内。
在又其他示例中,通过确认衍生作品是原始作品的衍生物来验证接收到的证明数据包括:将原始作品数据输入到针对原始作品与衍生作品的区别训练的预测模型;将衍生作品数据提交到预测模型;从预测模型接收针对衍生作品数据的输出预测值;以及如果输出预测值满足预测阈值,则确定衍生作品数据是原始作品数据的衍生物。在另外的示例中,预测模型可以使用以下中的一个或多个:线性回归模型、逻辑回归模型、决策树、支持向量机、朴素贝叶斯机、k均值聚类、梯度引导算法、卷积神经网络、循环神经网络和多实例学习算法。
在附加示例中,证明数据可以包括原始作品的第一数据指纹和与衍生作品对应的衍生数据指纹。验证衍生作品数据是原始作品的衍生物涉及确定衍生数据指纹是否在第一数据指纹的相似性阈值内。
在一些附加示例中,将原始作品数据存储在区块链中包括:将原始作品数据存储在包括Merkle树、Patricia trie或修改的Merkle Patricia trie中的至少一个的数据结构中,以及将数据结构存储在区块链中。
应当理解的是,上述主题也可被实现为计算机控制的装置、计算机过程、计算系统、或诸如计算机可读介质之类的制品。通过阅读以下详细描述并且查看相关联的附图,这些和各种其它特征将是显而易见的。提供本发明内容以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。
本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本发明内容用于限制所要求保护的主题的范围。另外,所要求保护的主题不限于解决在本公开的任何部分中提到的任何或所有缺点的实现。
附图说明
参照附图描述具体实施例。在附图中,参考数字的最左边的数字标识该参考数字首次出现的附图。不同附图中的相同附图标记表示相似或相同的项目。
图1是示出用于衍生作品数据区块链的系统的说明性示例的架构图;
图2A是示出衍生作品数据区块链的说明性示例的数据架构图,其中原始作品数据被存储在原始作品数据区块中,并且衍生作品数据以及证明数据、衍生物来源标识、和提交来源标识使用添加到衍生作品数据区块链的衍生作品数据区块来保护;
图2B是示出衍生作品数据区块链的另一说明性示例的数据架构图,其中原始作品数据被分解为多个元素,使用对应的熵计算将该多个元素存储在原始作品数据区块中,并且区块链上的每一个衍生作品数据区块以以下形式来标识在衍生作品中使用的原始作品数据的元素以及证明数据:针对衍生作品中的元素的熵计算、针对衍生作品的来源的标识符、以及针对标识和提交的衍生作品数据的来源的标识符;
图2C是示出衍生作品数据区块链的又一说明性示例的数据架构图,其中原始作品数据被存储在原始作品数据区块中的Merkle Patricia trie中,并且区块链上的每一个衍生作品数据区块标识针对衍生作品中使用的原始作品数据的元素的键以及针对衍生作品的来源的标识符和针对标识和提交的衍生作品数据的来源的标识符;
图3A是示出来自原始实体的原始作品数据在图2B的区块链示例上被提交并且存储,以及衍生作品数据在区块链上被提交、确认、和保护的说明性示例的数据架构图;
图3B是示出根据图3A的示例的包括用于确认和附加涉及区块链上的熵计算的衍生作品数据的验证代码的衍生作品数据区块的说明性示例的数据架构图;
图3C是示出来自原始实体的原始作品数据被提交并且存储在区块链上的说明性示例的数据架构图,其中通过将来自衍生作品的数据与针对原始作品的数据和在区块链上被保护的衍生作品数据进行比较来确认衍生作品数据;
图3D是示出来自原始实体的原始作品数据被提交并且存储在图2C的区块链示例上,以及衍生作品数据在区块链上被提交、确认、和保护的另一说明性示例的数据架构图;
图3E是示出包括用于在根据图3D的示例的区块链上确认和附加衍生作品数据的验证代码的衍生作品数据区块的说明性示例的数据架构图;
图4A是示出用于在衍生作品数据区块链上接收和存储原始作品数据的过程的说明性示例的控制流程图;
图4B是示出用于计算针对原始作品数据的元数据并且保护在衍生作品数据区块链上的元数据的过程的与图2B的衍生作品数据区块链相关的说明性示例的控制流程图;
图4C是示出用于提交到衍生作品数据区块链的证明数据的验证过程的示例的控制流程图;
图4D是示出用于提交到衍生作品数据区块链的证明数据的与图2B的衍生作品数据区块链相关的搜索过程的示例的控制流程图;
图4E是示出用于提交到衍生作品数据区块链的证明数据的与图2C的衍生作品数据区块链相关的搜索过程的示例的控制流程图;
图4F是示出基于针对提交到衍生作品数据区块链的证明数据的预测建模的验证过程的示例的控制流程图;
图4G是示出用于添加到被分配到不可信节点的衍生作品数据区块链分类账的衍生作品数据区块的验证过程的示例的控制流程图;
图5是示出用户提交来源使用应用编程接口将衍生作品数据和信息提交到衍生作品数据区块链的说明性示例的数据架构图;
图6A是示出基于图1的衍生作品数据区块链的区块的区块链分类账的简化示例的数据架构图;
图6B是示出智能合约代码、交易和消息的说明性示例的数据架构图,该智能合约代码、交易和消息被捆绑到区块中,使得它们的完整性在密码上是安全的,并且使得可以将它们附加到区块链分类账;
图6C是示出用于将数据存储在区块链分类账中的修改的Merkle-Patricia trie结构的说明性示例的数据架构图;
图7是示出针对能够实现本文介绍的技艺和技术的方面的计算系统的说明性计算机硬件和软件架构的计算机架构图;
图8是示出能够实现本文介绍的技巧和技术的方面的分布式计算环境的示图;以及
图9是示出能够实现本文介绍的技巧和技术的方面的计算设备的计算设备架构的计算机架构图。
具体实施方式
以下详细描述了用于将原始作品数据存储在衍生作品数据区块链中以及从提交者接收衍生作品数据、确认衍生作品数据与原始作品数据相关、以及将衍生作品数据存储在区块链中的技术。
原始作品数据,例如源代码、目标代码、可执行文件、文字文本、音频文件、图像文件、视频文件、图形文件、生物医学、健康或医疗数据记录、图形模型、视频游戏、或基因数据,被安全地维护在区块链上。衍生作品数据,例如来自使用原始作品数据的全部或一部分的作品的数据,或证明数据,可以被提交、确认并且与原始作品数据相关联地安全地存储在区块链上。用于确认证明数据的代码可以被安全地维护在区块链上,并且可用于广泛访问,例如公共透明访问。
使用区块链技术的开源或公共透明性方面的一些实施方式可以包括将值传送给提交者的技术,提交者提供被确认为表明衍生作品数据与原始作品数据相关的证明数据。
传统上,对于原始作品的所有者来说,找到并且证明原始作品的全部或一部分已被另一人使用来创建衍生作品是有挑战性的。在网络空间的巨大深度和广度中,可能难以定位衍生作品。
所有者开发证明衍生作品与原始作品相关的证明数据也可能在计算上是昂贵的。非所有者几乎没有动机来标识衍生作品或开发证明数据。
另外,创建了被标识为衍生物的实体可能更喜欢查看独立创建或公开披露的证明数据。寻求许可或以其他方式使用衍生作品的一方也可以在获得许可或承担使用之前从访问独立创建的或公开可访问的证明数据中受益。
所公开的技术可以为用于维护原始作品数据以及收集和安全地存储表明另一作品是从原始作品衍生而来的证明数据的信息和过程提供透明性、可追溯性和安全性。使用衍生作品数据区块链来以可被搜索的形式安全地存储原始作品数据,并且通过提交搜索衍生作品并且开发证明数据的实体来针对原始作品数据验证衍生作品数据。
通过提交实体并且表明衍生作品数据与原始作品数据相关来独立开发的证明数据可以被确认并且安全地存储在区块链中,并且可供被标识为拥有或使用衍生作品的实体或寻求在许可或使用该作品之前确定该作品是否是衍生物的实体访问。可以激励提交实体,以搜索衍生作品并且通过以下来开发表明衍生作品是从原始作品衍生而来的证明数据:如果证明数据被确认,则将值传送给提交实体。
这些是简化的示例,并且在用于使用区块链来管理衍生作品数据的技术中可以考虑许多因素,如将在下面更详细地讨论的。
如将在本文中更详细地描述的,可以理解的是,本文所述的技艺和技术的实施方式可以包括使用固态电路、数字逻辑电路、计算机组件、和/或在一个或多个输入设备上执行的软件。本文所述的信号可以包括用于传达衍生作品数据的改变状态的模拟和/或数字信号。
尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中呈现了本文所述的主题,但本领域的技术人员将认识到,可以结合其它类型的程序模块来执行其它实施方式。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构、和其它类型的结构。另外,本领域的技术人员可以理解,本文所述的主题可以使用其它计算机系统配置来实践,包括多处理器系统、大型计算机、基于微处理器或可编程消费电子产品、小型机、手持式设备等等。
通过使用本文所述的技术,使用衍生作品数据区块链来以可搜索的形式维护针对原始作品的数据。此外,使用衍生作品数据区块链来收集、确认、并且安全地维护由提交实体开发和提交的表明另一作品是从原始作品衍生而来的证明数据。用于验证证明数据以及原始作品数据和证明数据的脚本代码可以被安全地维护,并且可以使用区块链广泛地访问。
在以下详细描述中,参考形成其部分的附图,并且在附图中通过图示的方式示出具体配置或示例。现在参考附图,其中在所有的若干附图中,相同的数字表示相同的元素,将描述计算系统的方面、计算机可读存储介质、以及使用原始作品数据验证并且存储在区块链上的衍生作品数据的计算机实现的方法。如以下将参考附图更详细地描述的,存在可体现本文所述的功能和技术的多个应用程序和服务。
图1是示出使用衍生作品数据区块链140来安全地维护针对原始作品的数据以及表明其他作品是从原始作品衍生而来的证明数据的衍生作品数据管理系统100的说明性示例的架构图。在图1的示例中,衍生作品数据区块链140可以基于私有区块链平台或公共可用的区块链平台,例如ETHEREUM或BITCOIN。可以使用脚本语言,例如用于ETHEREUM的SOLIDIFY脚本语言或用于BITCOIN的SCRIPT语言来实现代码,用于搜索原始作品数据以及向衍生作品数据区块链140提交、确认、和附加衍生作品数据,或者将值传送到将衍生作品数据提交到衍生作品数据区块链140的实体。
拥有或管理原始作品的实体使用客户端/服务器120A通过创建原始数据区块142A来发起衍生作品数据区块链140,该原始数据区块142A可以是针对区块链的起源区块。原始数据区块142A可以包括以可搜索形式存储的针对原始作品的数据,或者可以向包括原始作品数据的可搜索数据结构提供根节点。在所示的示例中,客户端/服务器120A提供针对原始数据区块142A的原始作品数据。
在图1的示例中,可以使用客户端/服务器120A、120B、120C或120D来向衍生作品数据区块链140提交证明数据。客户端/服务器120可以彼此通信以及与支持和维护区块链140的服务器的网络通信。例如,来自瑞士的ETHERIUM FOUNDATION的ETHERIUM区块链平台提供了提供脚本功能的分散的、分布式计算平台和操作系统。
在该示例中,提交到衍生作品数据区块链140的证明数据可以由维护在区块链上的脚本确认,并且证明数据当验证时可以被附加到的衍生作品数据区块链140并被附加在衍生作品数据区块142B、142C、142D和142E中。原始作品数据被安全地存储在衍生作品数据区块链140中,并且可以被其他实体访问。例如,通过使用可以访问区块链信息的应用,衍生作品数据区块链140可以对公众可见。或者,在另一示例中,衍生作品数据区块链140可以被限制为仅对区块链140中标识的客户端/服务器120可见。通过提供对衍生作品数据区块链140的访问,该方法可以提供对原始作品数据以及衍生作品数据连同用于验证衍生作品数据的脚本的完全或部分透明性。
图2A是基于图1的衍生作品数据区块链分类账140的区块142A-E的衍生作品数据区块链分类账200的简化示例的数据结构图。图2A的衍生作品数据区块链分类账200示例被简化以示出区块210A-E的区块头、元数据和签名,以演示使用区块链存储可追踪的和安全的原始作品数据和衍生作品数据。总而言之,区块链分类账可以是全球共享的交易数据库。
区块链分类账200可以被布置为Merkle树数据结构、链表、或允许密码完整性的任何类似的数据结构。区块链分类账200允许验证数据尚未被破坏或篡改,因为任何篡改企图都将改变区块的消息认证码(或具有区块的消息认证码),而指向该区块的其他区块将不再对应。在图2A的一个实施例中,每个区块可以指向另一区块。区块可以包括一个或多个交易。每个区块可以包括指向另一区块的指针,以及另一区块的散列(或消息认证码函数)。
区块链分类账中的每一个区块可以可选地包括与被执行以验证区块链分类账中的数据区块的完整性的证明功能相关的证明数据字段。该证明数据字段可以指示应得的报酬。证明可以是作品的证明、股权的证明、研究的证明、或指示应得的报酬的任何其它数据字段。例如,作品的证明可以指示已经执行了计算工作。作为另一示例,股权的证明可以指示一定量的加密货币已经被持有特定量的时间。例如,如果已持有10个单位的加密货币10天,则股权的证明可以指示10*10=100个时间单位已产生。研究的证明可以指示已经进行了研究。在一个示例中,研究的证明可以指示已经执行了特定量的计算作品——例如探索在计算搜索有效药物化合物过程中分子是否以特定方式相互作用。
图2A的示例中的衍生作品数据区块链200的区块210示出原始作品数据连同衍生作品数据被安全地存储在区块链上,衍生作品数据包括证明衍生作品数据是从原始作品数据中导出的证明数据。使用区块链上的新的衍生作品数据区块来保护衍生作品数据。在该示例中,拥有或管理原始作品的用户使用客户端/服务器120A来发起衍生作品数据区块链分类账并且保护原始作品数据。所有者使用客户端/服务器120A来签署起源区块210A,并且其中创建了区块链200的区块链系统基于证明函数来验证起源数据区块。
此后,其他实体(例如在该示例中使用客户端/服务器120A-D的实体)可以提交声称示出衍生作品是从原始作品的全部或一部分中衍生而来的证明数据。使用存储在区块链200的区块210内的脚本来验证证明数据,并且如果验证,则将其附加到新的衍生作品数据区块210B-E中的区块链。在该示例中,每个添加的衍生作品数据区块210B-E由提交证明数据的实体签名,并且将区块提交到区块链200以由区块链平台验证。
图2B是示出衍生作品数据区块链250的另一说明性示例的数据架构图,其中原始作品数据被分解为多个元素,该多个元素使用对应的熵计算被存储在原始作品数据区块中。在该示例中,原始作品数据被分解为元素,例如来自原始作品的代码或数据的子部分,针对每个元素计算熵值,并且这些元素和对应的熵值被存储在原始作品数据区块260A中的树或数组结构中。
诸如客户端/服务器120A-D的用户之类的实体标识衍生作品,并且以针对衍生作品的元素计算的熵值的形式生成证明数据。实体提交一个或多个元素标识符和对应的熵计算值形式的证明数据,例如(element_1,entropy_1A),以及针对衍生物来源的标识符,例如Derivative_sourceID(标识符A),以及针对提交实体的标识符,例如Submission_sourceID(标识符2)。验证脚本验证所提交的证明数据表明衍生作品的所提交的元素是从原始作品衍生而来的,并且将衍生作品数据存储在附加到区块链250的衍生作品数据区块中。随后的衍生作品数据提交被类似地处理并且被附加到区块链。
图2C是示出衍生作品数据区块链270的不同方法的说明性示例的数据架构图,其中原始作品数据被存储在原始作品数据区块280A中的修改的Merkle Patricia trie结构中。备选地,原始作品数据区块280A可以是由多个数据区块组成的修改的Merkle Patriciatrie结构的根节点。
在该示例中,诸如客户端/服务器120A-D的用户之类的实体标识衍生作品,并且以键值的形式生成证明数据,该键值索引到与原始作品数据的元素有关的Merkle Patriciatrie结构中的叶节点。实体提交键值,例如(keyA),以及针对衍生物来源的标识符,例如Derivative_sourceID(标识符A),以及针对提交实体的标识符,例如Submission_sourceID(标识符2)。验证脚本验证所提交的键表明衍生作品的所提交的元素是从原始作品衍生而来的,并且将衍生作品数据存储在附加到区块链270的衍生作品数据区块280B-E中。随后的衍生作品数据提交被类似地处理并且被附加到区块链270。
图3A是示出来自原始实体的原始作品数据在衍生作品数据区块链320上被提交并且存储,以及衍生作品数据在根据图2B的区块链示例的区块链上被提交、确认和保护的说明性示例的数据架构图300。
在302处,原始实体(例如标识符1)使用客户端/服务器120A提交具有与存储在原始作品数据区块322A中的原始作品数据的元素对应的值的original_work_data和entropy_data,以及针对原始作品数据的所有者的标识符,例如Owner_sourceID(标识符1)。在该示例中,原始实体签署,例如SIGNATURE(标识符1签名),原始作品数据区块322A以将区块提交到区块链。
在304处,使用客户端/服务器120B的提交实体(例如标识符2)提交derivative_work_data_A,例如元素标识符或来自衍生作品本身的数据,以及proof_data_A,例如entropy_data_A,以及针对衍生作品的来源的标识符,例如Derivative_sourceID(标识符A),以及针对提交实体的标识符,例如Submission_sourceID(标识符2)。使用由区块链320保护的验证脚本来验证证明数据,以及所提交的数据被附加到衍生作品数据区块322B中的区块链320。
类似地,在306处,使用客户端/服务器120C的另一提交实体(例如标识符2)提交derivative_work_data_B,例如元素标识符或来自衍生作品本身的数据,以及proof_data_B,例如entropy_data_B,以及针对衍生作品的来源的标识符,例如Derivative_sourceID(标识符B),以及针对提交实体的标识符,例如Submission_sourceID(标识符3)。使用由区块链320保护的验证脚本来验证证明数据,以及所提交的数据被附加到衍生作品数据区块322C中的区块链320。
图3B是示出根据图3A的示例的包括用于确认和附加涉及区块链上的熵计算的衍生作品数据的验证代码的衍生作品数据区块322B的说明性示例的数据架构图。区块322B中的代码可以由区块链平台或其他主机执行,以执行包括在代码中的方法。
区块322B包括验证脚本,在该示例中,该验证脚本计算针对所提交的derivative_work_dataa的熵值,并且使用所计算的熵值来搜索针对具有基本相似的熵值的元素或原始作品的original_work_data。该验证脚本调用Calculate_entropy脚本以计算熵值,例如熵签名,并且使用所计算的熵值调用Search_for_match脚本。
Search_for_match脚本搜索包括original_work_data的元素的树结构,以获得具有在针对derivative_work_data计算的熵值的预定的阈值内的熵值的元素。如果找到匹配的熵元素,则脚本将TRUE返回给验证脚本,验证脚本使用derivative_work_data、proof_data、Derivative_sourceID和Submission_sourceID来创建衍生作品数据区块,并且将该区块附加到区块链。
在该示例中,如果发现所提交的derivative_work_data与original_work_data的元素匹配,则调用传送脚本,例如transfer_value(Submission_sourceID),以将值传送到提交实体作为用于标识衍生作品的奖励。该奖励是作为众包激励提供的,以鼓励提交实体搜索衍生作品。
在不脱离所公开的技术的范围的情况下,可以使用许多备选实施方式。在一个备选实施方式中,derivative_work_data可以包括引用original_work_data的元素的元素标识符。然后,可以将针对derivative_work_data的熵值或签名与针对original_work_data的元素的熵值或签名进行比较。
图3C是示出具有另一备选实施方式的衍生作品数据区块322B的示例的数据架构图,其中通过将来自衍生作品的数据与针对原始作品的数据以及被保护在区块链上的derivative_work_data进行比较来验证衍生作品数据。在该示例中,验证脚本使用接收到的derivative_work_data调用Compare_original_work_data,这将返回指示derivative_work_data中与original_work_data匹配的的数据字节数的match_length值。
在该示例中,Compare_original_work_data脚本使用derivative_work_data的滑动窗口来与以最小窗口大小(例如256字节)开始的original_work_data进行比较。当在滑动窗口中找到针对derivative_work_data的匹配时,增加窗口的长度,并且执行基于较大窗口的搜索。搜索继续递增滑动窗口的长度,直到匹配失败,这建立了匹配的数据窗口的最长长度,并且长度值被返回到验证脚本。
如果从Compare_original_work_data脚本获得的match_length大于预定的MATCH_THRESHOLD值,那么认为derivative_work_data被验证。验证脚本使用derivative_work_data、Derivative_sourceID和Submission_sourceID创建衍生作品数据区块,并且将该区块附加到区块链。
图3D是示出来自原始实体的原始作品数据被提交并存储在根据图2C的示例的区块链上的修改的Merkle-Patricia trie结构中,以及基于衍生作品数据的键形式的证明数据在区块链上被提交、验证和保护的的又一说明性示例的数据架构图330。
在332处,原始实体(例如标识符1)使用客户端/服务器120A提交original_work_data以及针对原始作品数据的所有者的标识符,例如Owner_sourceID(标识符1),该original_work_data在原始作品数据区块342A的修改的Merkle-Patricia trie结构中被分解并且存储。在该示例中,原始实体签署,例如SIGNATURE(标识符1签名),原始作品数据区块342A以将该区块提交到区块链。
使用修改的Merkle-Patricia trie结构,例如在ETHERIUM中使用的结构,以在任意长度的二进制数据,例如256位二进制片段和任意长度的二进制数据之间映射,并且提供标识给定的键值对的集合的单个值。键提供通过trie结构到存储在叶节点中的对应值的路径。从根节点开始,键的每一个字符确定跟随的子节点,直到到达叶节点。在该示例中,将original_work_data分解为元素值,这些元素值存储在由键引用的叶节点中。
为了使树在密码上安全,每个节点可以通过其散列来引用,该散列可用于在数据库中查找。在这种场景下,根节点成为针对整个数据结构的密码指纹。在该示例中,提交实体搜索original_work_data,以获得与derivative_work_data匹配的值,并且确定要用于访问original_work_data trie结构中的值的键。
在该示例中,提交实体(例如标识符2)使用客户端/服务器120B搜索original_work_data以获得与它发现的derivative_work_data_A匹配的值数据。在334处,提交实体标识符2提交针对original_work_data trie中的匹配值的键(keyA)以及derivative_work_data_A、针对衍生作品的来源的标识符,例如Derivative_sourceID(标识符A)、以及针对提交实体的标识符,例如Submission_sourceID(标识符2)。使用由区块链340保护的验证脚本来验证证明数据keyA,并且提交的derivative_work_data_A和证明数据keyA被附加到衍生作品数据区块342B中的区块链340。
类似地,在336处,另一提交实体(例如标识符2)使用客户端/服务器120C提交keyB,该keyB引用与通过提交实体标识符3发现的derivative_work_data_B匹配的original_work_data trie中的值、以及derivative_work_data_B、针对衍生作品的来源的标识符,例如Derivative_sourceID(identifierB)、以及针对提交实体的标识符,例如Submission_sourceID(标识符3)。使用由区块链320保护的验证脚本来验证证明数据keyB,并且提交的derivative_work_data_B和证明数据keyB被附加到衍生作品数据区块342C中的区块链340。
图3E是示出包括用于在根据图3D的示例的区块链上验证和附加衍生作品数据的验证脚本的衍生作品数据区块342B的说明性示例的数据架构图。验证脚本使用接收到的键调用Search_trie_for_match脚本。Search_trie_for_match脚本使用键来遍历trie结构,并且如果该键引用结构中的叶节点,则返回存储在叶节点中的值。如果该键不引用有效的叶节点,则脚本返回失败指示FALSE。
如果Search_trie_for_match脚本返回对应于键的值,则将来自original_work_data的值与接收到的derivative_work_data进行比较,以验证匹配。如果找到匹配,则将接收到的衍生作品数据、键、Derivative_sourceID和Submission_sourceID附加到衍生作品数据区块中的区块链340。
本领域普通技术人员将容易理解,在不脱离所公开的技术的教导的情况下,可以修改上面的示例以适合各种实现方式。
图4A是示出用于在衍生作品数据区块链上接收和存储原始作品数据的过程400的说明性示例的控制流程图。在402处,从针对原始作品的所有者来源实体接收原始作品数据。在404处,原始作品数据被存储在衍生作品数据区块链中。如上所述,可以将原始作品数据分解为子元素并且作为数组存储或在修改的Merkle-Patricia trie中存储,但是在不背离所公开的技术的范围的情况下,也可以使用许多其它方法来存储原始作品数据,例如存储在数据文件、平面文件或链表中。
图4B是示出用于计算针对原始作品数据的元数据并且保护在衍生作品数据区块链上的元数据的过程410的与图2B的衍生作品数据区块链相关的说明性示例的控制流程图。在412处,针对原始作品数据的一个或多个部分生成针对原始作品数据的元数据,例如熵值、熵签名、指纹或反映数据的标识特征的其他形式。例如,可以将原始作品数据分解为多个元素,并且针对每个元素计算熵值。
在该示例中,在414处,将在412处生成的元数据与原始作品数据一起存储。例如,针对原始作品数据的每一个元素的熵签名可以与该元素一起存储。或者,在另一示例中,可以使用熵值或签名作为索引来将熵值或签名映射到元素。在不脱离所公开的技术的情况下,可以使用各种方法。
图4C是示出用于提交到衍生作品数据区块链的证明数据的验证过程420的示例的控制流程图。在422处,从提交来源实体接收衍生作品数据和证明数据以及针对衍生作品的来源的标识符。
在424处,检查接收到的证明数据以验证衍生作品数据是原始作品数据的衍生物。如上所述,存在许多与所公开的技术一致的验证方法。例如,可以将针对衍生作品数据的熵值或签名与针对原始作品数据或原始作品数据的元素的熵值或签名进行比较。在另一示例中,使用接收到的衍生作品数据来搜索原始作品数据以进行匹配。在又一示例中,使用键来引用原始作品数据trie中的值以及来自trie的与接收到的衍生作品数据进行比较的值。
如果证明数据验证失败,则在426至428处控制分支,其中拒绝提交衍生作品数据。如果证明数据通过验证,则在426到430处控制分支,其中生成包括接收到的衍生作品数据、证明数据、衍生作品来源标识符、和提交者来源标识符的衍生作品数据区块,并且在432处,将衍生作品数据区块附加到与原始作品数据相关联的区块链。
在一些实施方式中,控制继续到434,其中值被传送到由提交来源标识符标识的提交实体。所传送的值可以采取各种形式,例如加密货币、对计算机资源的访问、或可用于购买的信用和折扣、以及声誉价值,例如被标识为高提交者。提供值传送特征可以激励实体搜索和标识衍生作品,例如针对衍生作品的众包搜索。
图4D是示出用于提交到衍生作品数据区块链的证明数据的与图2B的衍生作品数据区块链相关的搜索过程440的示例的控制流程图。在该示例中,在442处,针对从提交实体接收的衍生作品数据的至少一部分生成特征元数据,例如熵值或签名或指纹。在一些实施方式中,接收到的衍生作品数据可以被分解为多个更小的部分,这些更小的部分被分离地搜索。
在444处,使用针对接收到的衍生作品数据计算的元数据来搜索原始作品数据。例如,搜索树或索引以获得具有相同或相似元数据的原始作品数据的元素。在一个场景中,搜索针对原始作品数据的元素计算的熵签名,以获得在针对衍生作品数据的熵签名上的匹配。在另一场景中,搜索针对原始作品数据的元素计算的熵值,以获得针对衍生作品数据计算的熵值的匹配。在又一场景中,通过使用散列函数来使用来自衍生作品数据的指纹以搜索针对原始作品数据的trie结构。
在446处,在该示例中,如果针对衍生作品数据的全部或一部分的特征元数据,例如熵值、签名、或指纹,在针对原始作品数据的全部或一部分的特征元数据的阈值范围内,则控制分支到448以返回TRUE值。例如,如果针对衍生作品数据计算的熵值与针对原始作品数据的元素的熵水平之间的差小于预定的阈值,则将衍生作品数据验证为原始作品数据的衍生物。
如果特征元数据不在针对原始作品数据的特征元数据的阈值范围内,则在该示例中,控制分支到450以获得原始作品数据的下一部分,例如数组的元素树的节点,用于在446处与针对衍生作品数据的特征元数据进行比较。例如,将针对衍生作品数据的全部或一部分计算的特征元数据值与针对原始作品数据数组或树中的每一个元素的特征元数据值进行比较。可以针对衍生作品数据的附加部分重复该过程。如果到达原始作品数据的结尾时没有找到匹配,则在452至456处控制分支以返回FALSE值。
图4E是示出与图2C的衍生作品数据区块链相关的搜索过程460的示例的控制流程图,其中衍生作品数据的子集被用于搜索原始作品数据的匹配子集。例如,在464处,将包括在462处选择的衍生作品数据的子集的滑动窗口缓冲区与原始作品数据的子集进行比较。
在466处,如果衍生作品数据的子集与原始作品数据的子集之间的相关性满足预定的相关性阈值,则控制分支到468以返回TRUE,指示衍生作品数据被验证为原始作品数据的衍生物。如果不满足相关性阈值,则控制分支到470以获得原始作品数据的下一子集,以用于在464处与衍生作品数据的子集进行比较。如果在472遇到原始作品数据的结尾,则控制分支到474以返回FALSE,指示衍生作品数据验证失败。可以针对衍生作品数据的多个子集重复该过程。
在一个示例场景中,在逐字节的基础上将衍生作品数据的256字节子集与原始作品数据顺序地进行比较,以标识衍生作品数据与原始作品数据之间的相关性。如果在256字节子集上找到匹配,则衍生作品数据子集的大小被增加到512字节,并且与原始作品数据中的相邻数据进行比较。增加衍生作品数据子集的大小,直到找不到匹配为止。如果衍生作品数据子集的大小大于1024字节的相关性阈值,则验证衍生作品数据。
图4F是示出基于针对提交到衍生作品数据区块链的证明数据的预测建模的验证过程480的示例的控制流程图。在该示例中,在482处,在原始作品数据与衍生作品数据的区别上训练预测模型。预测模型可以使用一种模型方法或多种方法,例如线性回归模型、逻辑回归模型、决策树、支持向量机、朴素贝叶斯机、k均值聚类、梯度引导算法、卷积神经网络、循环神经网络或多实例学习算法。
在484处,将衍生作品数据提交到预测模型以产生指示衍生作品数据是原始作品数据的衍生物的可能性的输出预测值。在486处,如果输出预测值满足预定的阈值,则控制分支到487以返回TRUE,指示衍生作品数据被验证为原始作品数据的衍生物。否则,控制分支到488以返回FALSE,指示衍生作品数据验证失败。
图4G是示出用于添加到被分配到不可信节点的衍生作品数据区块链分类账的衍生作品数据区块的确认过程490的示例的控制流程图。
在过程490中,当创建衍生作品数据区块,例如衍生作品数据区块142B-E,并且将其附加到图1的衍生作品数据区块链140时,在492处,将附加交易广播到不可信节点的集群。在494处,节点竞争以计算用于附加交易的确认解决方案。在496处,获胜节点广播用于衍生作品数据区块的确认解决方案,并且将衍生作品数据区块添加到其衍生作品数据区块链分类账的副本。在498处,响应于获胜节点的广播,其他节点按照获胜节点建立的交易顺序将衍生作品数据区块添加到它们的衍生作品数据区块链分类账的副本。分散的确认协议可以维护衍生作品数据区块链分类账的完整性和安全性。
对衍生作品数据区块链的内容的访问可以通过多种方式处理。为了最大的透明度和访问,可以在公共区块链上发起衍生作品数据区块链,数据可供任何可以访问区块链的人使用。或者,衍生作品数据区块链可以被配置为加密原始作品数据或衍生作品数据以限制访问,从而使数据受到严格控制。例如,只有被标识的选定的提交实体可以被提供对衍生作品数据区块链的访问。
取决于区块链平台的脚本能力,衍生作品数据区块链的数据区块可以包括更广泛的代码执行。应当理解的是,诸如智能合约内的脚本技术之类的区块链技术的使用在这种上下文中提供了实施方式的配置中的高度灵活性和变化,而不脱离本公开的教导。
图5是示出用户将衍生作品数据提交到由区块链平台520支持的衍生作品数据区块链,例如图3A的衍生作品数据区块链320的说明性示例的数据架构图500。在该示例中,提交应用程序接口(API)510向支持衍生作品数据区块链的区块链平台520提供接口。区块链平台520支持智能合约522,该智能合约522包括具有代码的脚本524,该脚本524当由区块链平台520执行时,执行关于衍生作品数据区块链的操作。
在图5的示例中,在智能合约522中定义了三个脚本,反映了图3B的衍生作品数据区块322B。验证脚本524A验证用户提交的衍生作品数据是存储在衍生作品数据区块链中的原始作品数据的衍生物。Calculate_entropy脚本524B计算由用户提交提交的针对衍生作品数据的熵值。Search_for_match脚本524C搜索原始作品数据以获得具有相似熵值的熵值。传送脚本524D将值传送到已经提交了经验证的衍生作品数据的用户。所示脚本524仅仅是示例,并且可以使用如区块链平台520上所提供的智能合约522中的可执行脚本的能力定义许多其他不同或附加脚本。
图5示出用户系统502通过API 510在消息504中提交衍生作品数据,例如submit(derivative_work_data,proof_data,Derivative_sourceID,Submission_sourceID)。API510调用智能合约522,智能合约522使得区块链平台520执行验证脚本524A以验证在消息504中提交的衍生作品数据。验证脚本524A调用Calculate_entropy脚本524B以获得熵值,并且调用具有该熵值的Search_for_match脚本524C以搜索具有匹配熵值的原始作品数据的元素。如果找到匹配,则在506处,验证脚本524A调用传送脚本524D以使用用户系统502将值传送到例如Submission_sourceID。
图6A是示出基于图1的衍生作品数据区块链140的区块142A-E的区块链分类账600的简化示例的数据架构图。图6A的区块链分类账600示例被简化以示出类似于图2A中的区块210A-E的区块头、元数据和签名,以演示衍生作品数据区块链。总而言之,区块链分类账可以是全局共享的交易数据库。
图6A是具有数据树的区块链分类账600的说明性示例,该数据树保存使用密码技术验证的交易数据。在图6A中,每个区块610包括具有关于先前区块和后续区块的信息的区块头612,并且将交易根节点614存储到保存交易数据的数据树620。交易数据可以存储智能合约、与交易相关的数据、或任何其他数据。智能合约的元素也可以被存储在区块的交易节点内。
在图6A的示例中,使用Merkle树620来加密地保护交易数据。例如,区块610A的数据树620A的交易Tx1节点634A可被散列到散列1节点632A,交易Tx2节点638A可被散列到散列2节点636A。散列1节点632A和散列2节点636A可被散列到散列12节点630A。可以形成类似的子树来生成散列34节点640A。散列12节点630A和散列34节点640A可被散列到在数据区块610A中排序的交易根614A散列。通过使用Merkle树或任何类似的数据结构,可以通过验证散列是正确的来检查交易的完整性。
图6B是示出智能合约代码、交易、和消息的说明性示例的数据架构图,该智能合约代码、交易、和消息被捆绑到区块中,使得它们的完整性在密码上是安全的,并且使得它们可以被附加到区块链分类账。在图6B中,智能合约652是在计算机上执行的代码。更具体地,智能合约的代码可被存储在区块链分类账中并且在给定时间由分布式区块链平台的节点执行。智能代码执行的结果可以存储在区块链分类账中。可选地,在执行智能合约代码时,可以花费货币。在图6B的示例中,智能合约652在虚拟机环境中执行,尽管这是可选的。
在图6B中,智能合约652的方面被存储在图6A的区块链分类账的区块610中的数据树620中的交易数据节点中。在图6B的示例中,智能合约652A存储在区块610A中的数据树620A的数据区块Tx1节点634A中,智能合约652B存储在Tx2节点638A中,与智能合约652B相关联的合约账户654存储在Tx3节点644A中,以及外部帐户存储在Tx4节点648A中。
图6C是示出用于在如在ETHERIUM中使用的区块链分类账中存储数据的修改的Merkle-Patricia trie结构670的说明性示例的数据架构图。trie是一种有序的数据结构,该数据结构可以用于存储具有键的动态集合或关联数组,该键提供唯一的键值对。节点在trie结构中的位置限定了它所关联的键,并且存储在该节点中的值限定了针对该节点的键值对的值。在本公开中,可以使用修改的Merkle-Patricia trie结构来存储原始作品数据。
如上所述,可以使用修改的Merkle-Patricia trie结构在任意长度的二进制数据(例如256位二进制片段)和任意长度的二进制数据之间映射,并且提供标识键值对的给定集合的单个值。键提供通过trie结构到存储在叶节点684中的对应值的路径。从根节点680A开始,键的每一个字符确定跟随的子节点,直到到达叶节点684。
在图6C的示例中,trie 670被构造为将字母数字键映射到在trie中存储的值。定义了三种不同的节点类型:扩展、分支和叶。trie 670的根节点680A是表示键字符串中的A7的共享半字节的扩展节点,并且具有到分支节点682A的下一节点链接。
分支节点682A又包括具有表示连续路径的三个链接的分支数组。分支数组中的1位置包括到叶节点684A的链接,该叶节点684A是trie结构中的终端节点。叶节点684A包括键端值1355并存储值OrigData1。因此,字母数字键A711355映射到值OrigData1。类似地,分支数组中的F位置包括到叶节点684B的链接,该叶节点684B是trie结构中的另一终端节点。叶节点684B包括键端值9365并存储值OrigData2。因此,字母数字键A7F9365映射到值OrigData2。
分支节点682A的分支数组中的7位置包括到扩展节点680B的链接,该链接表示键字符串中的共享半字节值D3。因此,根节点680A、分支节点682A、和扩展节点680B的组合对键字符串中的A77D3进行编码。
扩展节点680B的下一节点使用分支数组链接到分支节点682B,该分支数组具有用于trie中的连续路径的两个链接。分支数组中的3位置链接到叶节点684C,该叶节点684C具有键端7并存储值OrigData3。因此,字母数字键A77D337映射到OrigData3值。分支节点682B的分支数组中的9位置链接到叶节点684D,该叶节点684D也具有键端7并存储值OrigData4。因此,字母数字键A77D397映射到OrigData4值。注意,trie示例670可以使用附加扩展节点来扩展,以将任意长度的键映射到任意大小的值。
为了使树在密码上安全,每个节点可以通过其散列来引用,该散列可用于在数据库中查找。在这种场景下,根节点成为用于整个数据结构的密码指纹。在该示例中,提交实体搜索original_work_data以获得与derivative_work_data匹配的值,并且确定要用于访问original_work_data trie结构中的值的键。
关于用于ETHERIUM区块链的修改的Merkle-Patricia trie系统的其它背景信息可以在
为了确保智能合约是安全的并且生成安全数据,必须保持区块链分类账最新。例如,如果创建了智能合约,则必须以安全的方式存储与智能合约相关联的代码。类似地,当智能合约代码执行并且生成交易数据时,必须以安全的方式存储交易数据。
在图6B的示例中,示出用于维护区块链分类账的两个可能的实施例。在一个实施例中,可奖励不可信的矿工节点(“矿工”)680来解决密码难题,从而允许将区块附加到区块链。备选地,可以使用可信节点690的集合将下一区块附加到区块链分类账。节点可以执行智能合约代码,并且然后一个获胜节点可以将下一区块附加到区块链分类账。
尽管本文所公开的技术的方面类似于智能合约,但在本技术中,合约的策略可确定维护区块链分类账的方式。例如,该策略可以要求通过对可信节点的集群的集中控制来确定确认或授权过程。在这种情况下,集中控制可以是可信节点,例如客户端/服务器120A,其被授权证明交易区块并对其进行签名以对其进行确认,并且可以不需要矿工的确认。
备选地,该策略可提供由不可信节点的分散的集群决定的确认过程。在区块链分类账被分配到不可信节点的集群的情况下,可以采用链中的区块的挖掘来确认区块链分类账。
区块链可使用诸如作品的证明之类的各种时间戳方案来序列化改变。备选的共识方法包括:股权的证明、燃烧的证明(proof-of-burn)、研究的证明也可用于序列化改变。
如上所述,在一些示例中,区块链分类账可以由矿工验证以保护区块链。在这种情况下,矿工可共同同意要使用的确认解决方案。然而,如果使用小型网络,例如专用网络,则解决方案可以是Merkle树,并且可以不需要针对验证解决方案进行挖掘。当创建交易区块时,例如,针对衍生作品数据区块链140的衍生作品数据区块142,该区块是未确认和未标识的实体。作为公认的“货币”的部分,它可以被添加到区块链,并且因此涉及可信集群的概念。
在可信集群中,当添加衍生作品数据区块142时,每个节点竞争以确认下一“交易”(例如,附加衍生作品数据)。在一个示例中,节点竞争以挖掘并且获得最低散列值:min{previous_hash,contents_hash,random_nonce_to_be_guessed}->result。交易命令由计算竞争(相信没有一个实体能够击败区块链网络的集合资源)保护。广播和确认相互认证参数以防止区块链中的双重条目。
备选地,通过广播元数据以用于跨受限网络认证安全分类账,例如,仅广播经签名的散列,区块链可以降低伴随集中持有的数据而来的风险。分散的共识使得区块链适合于记录安全交易或事件。可以包括与衍生作品数据相关的信息的元数据还可以被加密以用于受限访问,使得元数据不公开与衍生作品数据有关的信息。
挖掘过程,例如可以与图4G的确认过程490一起使用的挖掘过程,可以被用来阻止双重记账、覆盖或重放攻击,利用基于“诚信”的协议的社区安排,没有单个节点可以控制整个集群。针对挖掘的工作假设是存在具有超越不诚实或泄密的团体的优势的诚实团体的等效的权利分配。分散的系统中的每一个节点或矿工具有区块链的副本。不存在集中式“官方”副本,并且没有用户比任何其他用户更“可信”。使用软件将交易广播到网络。挖掘节点确认交易,将它们添加到它们正在构建的区块,然后将完成的区块广播到其它节点。
注意,在受限网络中,被授权检查或挖掘衍生作品数据的利益相关者可以自己访问或不访问交易区块,但是将需要具有元数据的键(因为它们是受限网络的成员,并且是可信的)以获得细节。由于键被应用于具有不同数据分类的数据,因此可以分割利益相关者。
分散的区块链也可使用临时安全消息传递和分布式联网。在该示例中,衍生作品数据区块链分类账可以与传统的区块链不同之处在于存在集中的票据交换所,例如,用于确认的授权的中央控制。在没有挖掘过程的情况下,可信群集可被包括在集中的区块链中而不是公共或民主区块链中。一种看待这一点的方式是分散的部分作为“N个民主诚实团体”(多方诚实团体是密码学概念),而集中的部分作为“用于区块链信息校正的可信君主权”。例如,将可信来源列表维护为集中授权的并且保持离线可以是有利的。
在一些示例中,可以通过加密手段限制对分布式衍生作品数据区块链的访问,使其仅对授权的服务器开放。由于区块链分类账中的一个或两者是分布式的,所以授权服务器可以对其进行确认。公钥可用作公共区块链分类账上的地址。
注意,分散的区块链的增长可能伴随有节点集中的风险,因为对较大数据进行操作所需的计算机资源变得越来越昂贵。
本技术可以涉及在一个或多个机器中发生的操作。如本文所使用的,“机器”意味着使用指令编程以执行专门的计算操作的物理数据存储和处理硬件。应当理解的是,两个或多个不同的机器可以共享硬件组件。例如,同一集成电路可以是两个或更多个不同的机器的部分。
本领域的普通技术人员将认识到,可以使用各种方法,并且将其与涉及衍生作品数据区块链分类账的本方法相结合。本文所述的衍生作品数据区块链分类账的不同的方面的具体示例是说明性的,并且不旨在限制所示技术的范围。
智能合约由代码限定。如前所述,可以将智能合约的条款和条件编码(例如,通过散列)到区块链分类账中。具体地,智能合约可以被编译为字节码(如果在虚拟机中执行),以及然后字节码可以被存储在如前所述的区块链分类账中。类似地,由智能合约执行和生成的交易数据可以以先前描述的方式存储在区块链分类账中。
注意,图4A-4G的过程400、410、420、440、460、480和490的至少部分、图3B和3C的衍生作品数据区块322B和图3E的区块342B的脚本、图5的智能合约522、图6B的智能合约652、以及与本文所述的衍生作品数据区块链分类账有关的其他过程和操作可以在诸如图8中的计算机环境800或云之类的一个或多个服务器中实现,并且限定如本文讨论的那样转换或解释的用户控制输入信号的结果的数据可以被传送到用户设备用于显示。备选地,衍生作品数据区块链分类帐过程可以在客户端设备中实现。在又其他示例中,一些操作可以在诸如服务器之类的计算资源的一个集合中实现,并且其他步骤可以在诸如客户端设备之类的其他计算资源中实现。
应当理解的是,本文所述的方法可以在任何时间结束,并且不需要以其整体来执行。本文所述的方法的一些或所有操作和/或基本上等同的操作可通过执行包括在计算机存储介质上的计算机可读指令来执行,如以下所限定的。如在说明书和权利要求书中使用的术语“计算机可读指令”及其变体在此被广泛地使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的可编程消费电子产品、及其组合等。
因此,应当理解的是,本文所述的逻辑操作被实现为(1)在计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)计算系统内互连的机器逻辑电路或电路模块。实施方式是取决于计算系统的性能和其它要求的选择的问题。因此,本文所述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以以软件、固件、专用数字逻辑及其任何组合来实现。
如本文所述,结合本文所述的附图,本文中将例程(例如,图4A-4G的过程400、410、420、440、460、480和490、图3B和3C的衍生作品数据区块322B和图3E的区块342B的脚本、图5的智能合约522、图6B的智能合约652)的操作描述为至少部分地由应用、组件和/或电路实现。尽管以下说明参考图3B、3C、3E、4A-4G、5和6B、1、5、6和7的组件,但是可以理解,例程的操作也可以用许多其它方式来实现。例如,例程可以至少部分地由计算机处理器或另一计算机的一个或多个处理器来实现。此外,例程的操作中的一个或多个可以备选地或附加地至少部分地由单独工作或与其他软件模块结合工作的计算机来实现。
例如,例程的操作本文中被描述为至少部分地由应用、组件和/或电路来实现,这些应用、组件和/或电路在此被统称为模块。在一些配置中,模块可以是动态链接库(DLL)、静态链接库、由应用编程接口(API)产生的功能、编译程序、解释程序、脚本、或任何其它可执行指令集。数据和/或模块,诸如本文公开的数据和模块,可以以数据结构存储在一个或多个存储器组件中。通过寻址到数据结构的链接或引用,可以从数据结构中检索数据。
尽管以下图示参考了上述附图的组件,但是可以理解的是,例程(例如,图4A-4G的过程400、410、420、440、460、480和490、图3B和3C的衍生作品数据区块322B和图3E的区块342B的脚本、图5的智能合约522,图6B的智能合约652)的操作也可以以许多其他方式来实现。例如,例程可以至少部分地由另一远程计算机或本地计算机或电路的处理器来实现。此外,例程的操作中的一个或多个可以备选地或附加地至少部分地由单独工作或与其他软件模块结合工作的芯片组来实现。适于提供本文所公开的技术的任何服务、电路或应用可以用于本文所描述的操作中。
图7示出用于能够执行本文所述的程序组件的针对诸如客户端/服务器120A-D(图1)之类的计算机的示例计算机架构700的附加的细节。因此,图7中所示的计算机架构700示出用于服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机、机载计算机、游戏控制台和/或膝上型计算机的架构。计算机架构700可被用于执行本文介绍的软件组件的任何方面。
图7中所图示的计算机架构700包括:中央处理单元702(“CPU”)、包括随机存取存储器706(“RAM”)和只读存储器(“ROM”)708的系统存储器704、以及将存储器704耦接到CPU702的系统总线710。基本输入/输出系统存储在ROM708中,该基本输入/输出系统包括帮助(例如在启动期间)在计算机架构700内的子元件之间传送信息的基本例程。计算机架构700还包括大容量存储设备712,用于存储操作系统707、数据(例如衍生作品数据区块链数据720或衍生作品数据730的副本)、以及一个或多个应用程序。
大容量存储设备712通过连接到总线710的大容量存储控制器(未示出)连接到CPU702。大容量存储设备712及其相关联的计算机可读介质为计算机架构700提供非易失性存储。尽管本文中包括的计算机可读介质的描述指的是大容量存储设备,诸如:固态驱动器、硬盘或CD-ROM驱动器,但本领域的技术人员应当理解的是,计算机可读介质可以是可由计算机架构700访问的任何可用计算机存储介质或通信介质。
通信介质包括:计算机可读指令、数据结构、程序模块、或诸如载波或其它传输机制等的经调制的数据信号中的其它数据,并且包括任意传递介质。术语“经调制的数据信号”是指以在信号中编码信息的方式改变或设置其特性中的一个或多个的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外、和其它无线介质之类的无线介质。上述任何的组合也应包括在计算机可读介质的范围内。
作为示例而非限制,计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其它数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于:RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光、或其它光存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储设备、或可以用来存储所需信息并且可以由计算机架构700访问的任何其它介质。出于权利要求书的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变型本身不包括波、信号和/或其他瞬时和/或无形通信介质。
根据各种配置,计算机架构700可以使用通过网络756和/或另一网络(未示出)到远程计算机的逻辑连接在联网环境中操作。计算机架构700可以通过连接到总线710的网络接口单元714连接到网络756。应当理解的是,网络接口单元714还可用于连接到其它类型的网络和远程计算机系统。计算机架构700还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器716,该多个其他设备包括:键盘、鼠标、游戏控制器、电视遥控器或电子指示笔(图7中未示出)。类似地,输入/输出控制器716可以向显示屏、打印机或其他类型的输出设备(也未在图7中示出)提供输出。
应当理解的是,本文所述的软件组件在被加载到CPU 702中并且被执行时,可以将CPU 702和总体计算机架构700从通用计算系统变换为被定制为促进本文中介绍的功能的专用计算系统。CPU 702可以由任意数量的晶体管或其他分立电路元件构成,它们可以单独地或共同地呈现任意数量的状态。更具体地说,CPU 702可以响应于包括在本文公开的软件模块内的可执行指令而作为有限状态机来操作。这些计算机可执行指令可以通过指定CPU702如何在状态之间转换来变换CPU 702,从而变换构成CPU 702的晶体管或其他分立硬件元件。
对本文所呈现的软件模块进行编码还可以变换本文所呈现的计算机可读介质的物理结构。在具体实施例的不同的实施方式中,物理结构的具体变换可以取决于各种因素。这些因素的示例可包括但不限于:用于实现计算机可读介质的技术、计算机可读介质被表征为主存储装置还是辅助存储装置等。例如,如果计算机可读介质被实现为基于半导体的存储器,则可以通过变换半导体存储器的物理状态来将本文所公开的软件编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器、或其它分立电路元件的状态。软件还可以变换这些组件的物理状态以在其上存储数据。
作为另一示例,本文公开的计算机可读介质可以使用磁或光学技术来实现。在这样的实施方式中,当软件被编码在磁或光学介质中时,本文所呈现的软件可以变换磁或光学介质的物理状态。这些变换可以包括改变给定磁介质内的特定位置的磁特性。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变这些位置的光学特性。在不脱离本说明书的范围和精神的情况下,物理介质的其它变换是可能的,其中提供前述示例仅为了便于本讨论。
鉴于以上内容,应当理解的是,在计算机架构700中发生许多类型的物理变换以存储和执行本文所呈现的软件组件。还应当理解的是,计算机架构700可包括其它类型的计算设备,包括:手持式计算机、嵌入式计算机系统、个人数字助理、以及本领域的技术人员已知的其它类型的计算设备。还构想了计算机架构700可以不包括图7所示的所有组件,可以包括图7中未明确示出的其它组件,或者可以使用与图7所示的架构完全不同的架构。
图8描绘了能够执行本文所述的用于衍生作品数据区块链的软件组件的说明性分布式计算环境800。因此,图8中所示出的分布式计算环境800可被用于执行本文呈现的软件组件的许多方面。例如,分布式计算环境800可用于执行本文所述的软件组件的一个或多个方面。另外,分布式计算环境800可以表示上述分布式区块链平台的组件。
根据各种实施方式,分布式计算环境800包括在网络804上操作、与其通信或作为其部分的计算环境802。网络804可以是或者可以包括上述网络556。网络804还可以包括各种接入网络。一个或多个客户端设备806A-806N(以下统称为和/或一般地称为“客户端806”)可以经由网络804和/或其它连接(图8中未示出)与计算环境802通信。在一个示出的配置中,客户端806包括计算设备806A,诸如膝上型计算机、台式计算机、或其它计算设备;板式或平板计算设备(“平板计算设备”)806B;移动计算设备806C,诸如移动电话、智能电话、机载计算机、或其他移动计算设备;服务器计算机806D;和/或其它设备806N,其可以包括硬件安全模块。应当理解的是,任何数量的设备806都可以与计算环境802通信。本文中参考图7和8示出和描述了设备806的两个示例计算架构。应当理解的是,本文中示出和描述的所示设备806和计算架构仅是说明性的,而不应被解释为以任何方式受限。
在所示配置中,计算环境802包括应用服务器808、数据存储装置810、以及一个或多个网络接口812。根据各种实施方式,应用服务器808的功能可以由作为网络804的部分执行的或与其通信执行的一个或多个服务器计算机提供。应用服务器808可以托管各种服务、虚拟机、门户网站和/或其他资源。在所示配置中,应用服务器808托管用于托管应用或其他功能的一个或多个虚拟机814。根据各种实施方式,虚拟机814托管用于衍生作品数据区块链分类账的一个或多个应用和/或软件模块。应当理解的是,这种配置仅是说明性的,并且不应当被解释为以任何方式进行限制。
根据各种实施方式,应用服务器808还包括一个或多个原始作品数据管理服务818、衍生作品数据管理服务820、以及一个或多个区块链服务822。原始作品数据管理服务818可以包括用于管理区块链上的原始作品数据的服务,例如在图1中的衍生作品数据区块链140上在修改的Merkle-Patricia trie结构中存储原始作品数据。衍生作品数据管理服务820可以包括用于管理区块链上的衍生作品数据的服务,例如图1中的衍生作品数据区块链140。区块链服务822可以包括用于参与一个或多个区块链的管理的服务,例如通过创建起源区块、交易区块和执行确认。
如图8所示,应用服务器808还可以托管其他服务、应用、门户网站和/或其他资源(“其他资源”)824。其他资源824可以包括但不限于:数据加密、数据共享、或任何其他功能。
如上所述,计算环境802可以包括数据存储装置810。根据各种实施方式,数据存储装置810的功能由在网络804上操作或与其通信的一个或多个数据库或数据存储装置提供。数据存储装置810的功能还可以由被配置为托管用于计算环境802的数据的一个或多个服务器计算机来提供。数据存储装置810可以包括:托管或提供一个或多个真实或虚拟数据存储826A-826N(此后共同地和/或一般地称为“数据存储826”)。数据存储826被配置为托管由应用服务器808使用或创建的数据和/或其他数据。数据存储826的方面可以与针对衍生作品数据区块链的服务相关联。尽管在图8中未示出,但是数据存储826还可以托管或存储网页文档、Word文档、演示文档、数据结构、由推荐引擎执行的算法、和/或由任何应用程序或另一模块使用的其它数据。
计算环境802可以与网络接口812通信或由其访问。网络接口812可以包括用于支持两个或多个计算设备之间的通信的各种类型的网络硬件和软件,该计算设备包括但不限于客户端806和应用服务器808。应当理解的是,网络接口812也可以用于连接到其它类型的网络和/或计算机系统。
应当理解的是,本文所述的分布式计算环境800可以向本文所述的软件元件的任何方面提供任何数量的虚拟计算资源和/或其他分布式计算功能,其可以被配置为执行本文公开的软件组件的任何方面。根据本文公开的概念和技术的各种实施方式,分布式计算环境800可以使用设备806向客户端提供本文描述为服务的软件功能。应当理解的是,设备806可以包括真实或虚拟机器,包括但不限于:服务器计算机、web服务器、个人计算机、移动计算设备、智能电话、和/或可以包括用户输入设备的其他设备。因此,除了其它方面,本文公开的概念和技术的各种配置使得被配置为访问分布式计算环境800的任何设备能够使用本文所述的功能来创建和支持衍生作品数据区块链分类账等。
现在转向图9,本文针对衍生作品数据区块链分类账描述了能够执行各种软件组件的计算设备的说明性计算设备架构900。计算设备架构900适用于可以管理衍生作品数据区块链分类账的计算设备。在一些配置中,计算设备包括但不限于:移动电话、机载计算机、平板设备、板式设备、便携式视频游戏设备、传统台式计算机、便携式计算机(例如,膝上型计算机、笔记本计算机、超便携式计算机、和上网本)、服务器计算机、游戏控制台、和其他计算机系统。计算设备架构900适用于图1所示的服务器110和120A-C以及图8所示的计算设备806A-N。
图9中所图示的计算设备架构900包括:处理器902、存储器组件904、网络连接组件906、传感器组件908、输入/输出组件910、和电源组件912。在所示配置中,处理器902与存储器组件904、网络连接组件906、传感器组件908、输入/输出(“I/O”)组件910、和电源组件912通信。尽管在图9中所示的各个组件之间没有示出连接,但是组件可以交互以执行设备功能。在一些配置中,组件被布置为经由一个或多个总线(未示出)通信。
处理器902包括中央处理单元(“CPU”),其被配置为处理数据、执行一个或多个应用程序的计算机可执行指令、以及与计算设备架构900的其他组件通信以执行本文所述的各种功能。处理器902可以用于执行本文所呈现的软件组件的方面,并且尤其是至少部分地使用安全数据的那些软件组件的方面。
在一些配置中,处理器902包括图形处理单元(“GPU”),其被配置为加速由CPU执行的操作,该操作包括但不限于:通过执行安全计算应用而执行的操作、通用科学和/或工程计算应用、以及诸如高分辨率视频(例如,620P、1080P和更高分辨率)、视频游戏、三维(“3D”)建模应用等图形密集型计算应用。在一些配置中,处理器902被配置为与分立GPU(未示出)通信。在任何情况下,CPU和GPU可以根据协处理CPU/GPU计算模型来配置,其中应用的顺序部分在CPU上执行,并且计算密集部分由GPU加速。
在一些配置中,处理器902连同下文描述的其它组件中的一个或多个是片上系统(“SoC”)或包括在片上系统(“SoC”)中。例如,SoC可以包括处理器902、GPU、一个或多个网络连接组件906、以及一个或多个传感器组件908。在一些配置中,部分地使用层叠封装(“PoP”)集成电路封装技术来制造处理器902。处理器902可以是单核或多核处理器。
处理器902可以根据ARM架构来创建,该ARM架构可用于来自英国剑桥的ARMHOLDINGS的许可证。备选地,处理器902可根据x86架构来创建,例如可从加利福尼亚州Mountain View的INTEL CORPORATION获得。在一些配置中,处理器902是可从加利福尼亚州圣地亚哥的QUALCOMM获得的SNAPDRAGON SoC、可从加利福尼亚州圣克拉拉的NVIDIA获得的TEGRA SoC、可从韩国首尔的SAMSUNG获得的HUMMINGBIRD SoC、可从德克萨斯州达拉斯的TEXAS INSTRUMENTS获得的开放多媒体应用平台(“OMAP”)SoC、任何上述SoC的定制版本、或者专有SoC。
存储器组件904包括:随机存取存储器(“RAM”)914、只读存储器(“ROM”)916、集成存储存储器(“集成存储装置”)918、和可移动存储存储器(“可移动存储装置”)920。在一些配置中,RAM 914或其一部分、ROM 916或其一部分、和/或RAM 914和ROM 916的某种组合被集成在处理器902中。在一些配置中,ROM916被配置为存储固件、操作系统或其一部分(例如,操作系统内核)、和/或引导加载器,以从集成存储装置918和/或可移动存储装置920加载操作系统内核。
集成存储装置918可以包括固态存储器、硬盘、或固态存储器和硬盘的组合。
集成存储装置918可以焊接或以其他方式连接到逻辑板,处理器902和本文所述的其他组件也可以连接到该逻辑板上。这样,集成存储装置918被集成在计算设备中。集成存储装置918被配置为存储操作系统或其部分、应用程序、数据和本文所述的其他软件组件。
可移动存储装置920可以包括固态存储器、硬盘、或固态存储器和硬盘的组合。在一些配置中,提供可移动存储装置920以代替集成的存储装置918。在其它配置中,提供可移动存储装置920作为附加可选的存储装置。在一些配置中,可移动存储装置920与集成存储装置918逻辑地组合,使得总可用存储装置可用作总组合存储容量。在一些配置中,向用户示出集成存储装置918和可移动存储装置920的总组合容量,而不是针对集成存储装置918和可移动存储装置920的分离的存储容量。
可移动存储装置920被配置为插入可移动存储内存插槽(未示出)或其他机制中,通过该机制可移动存储装置920被插入并且被保护以便于连接,通过该连接可移动存储装置920可以与计算设备的其他组件(例如处理器902)通信。可移动存储装置920可以以各种存储卡格式来体现,包括但不限于:PC卡、紧凑型闪存卡、记忆棒、安全数字(“SD”)、miniSD、microSD、通用集成电路卡(“UICC”)(例如,订户身份模块(“SIM”)或通用SIM(“USIM”))、专用格式等。
可以理解的是,存储器组件904中的一个或多个可以存储操作系统。根据各种配置,操作系统可以包括但不限于服务器操作系统,例如由Open Group(开源组)认证的各种形式的UNIX和由自由软件基金会(Free Software Foundation)认证的LINUX,或软件即服务(SaaS)架构的方面,例如来自华盛顿州雷蒙德市的微软公司的MICROSOFT AZURE或来自华盛顿州西雅图的Amazon公司的AWS。操作系统还可以包括:来自华盛顿州雷蒙德市的微软公司的WINDOWS MOBILE OS、来自微软公司的WINDOWS PHONE OS、来自微软公司的WINDOWS、来自加利福尼亚州Palo Alto的Hewlett-Packard公司的PALM WEBOS、来自加拿大安大略省沃特卢的研究运动有限公司的BLACKBERRY OS、来自加利福尼亚州Cupertino的Apple公司的MAC OS或IOS、以及来自加利福尼亚州Mountain View的Google公司的ANDROID OS。可以考虑其它操作系统。
网络连接组件906包括:无线广域网组件(“WWAN组件”)922、无线局域网组件(“WLAN组件”)924、和无线个域网组件(“WPAN组件”)926。网络连接组件906促进与网络956或另一网络的通信,该另一网络可以是WWAN、WLAN或WPAN。虽然仅示出网络956,但是网络连接组件906可以促进与包括图9的网络956的多个网络的同时通信,例如,网络连接组件906可以促进经由WWAN、WLAN或WPAN中的一个或多个与多个网络的同时通信。
网络956可以是或可以包括WWAN,例如使用一种或多种移动电信技术经由WWAN组件922向使用计算设备架构900的计算设备提供语音和/或数据服务的移动电信网络。移动电信技术可以包括但不限于:全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA7000、通用移动电信系统(“UMTS”)、长期演进(“LTE”)、和全球微波接入互操作性(“WiMAX”)。另外,网络956可以使用(可由或可不由前述标准使用的)各种信道接入方法,包括但不限于:时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分复用(“OFDM”)、空分多址(“SDMA”)等。可以使用通用分组无线电业务(“GPRS”)、用于全球演进的增强型数据速率(“EDGE”)、高速分组接入(“HSPA”)协议族(包括高速下行链路分组接入(“HSDPA”)、增强型上行链路(“EUL”)或另外称为高速上行链路分组接入(“HSUPA”)、演进的HSPA(“HSPA+”)、LTE以及各种其它当前和未来的无线数据接入标准来提供数据通信。网络956可以被配置为使用上述技术的任意组合来提供语音和/或数据通信。网络956可以被配置为或适于根据未来一代技术提供语音和/或数据通信。
在一些配置中,WWAN组件922被配置为提供到网络956的双多模连接。例如,WWAN组件922可以被配置为提供到网络956的连接,其中网络956经由GSM和UMTS技术或者经由一些其它技术组合来提供服务。备选地,可以使用多个WWAN组件922来执行这种功能,和/或提供附加的功能以支持其它不兼容技术(即,不能由单个WWAN组件支持)。WWAN组件922可促进与多个网络(例如,UMTS网络和LTE网络)的类似连接。
网络956可以是根据一个或多个电气和电子工程师协会(“IEEE”)802.11标准(例如IEEE802.11a、802.11b、802.11g、802.11n和/或未来802.11标准(在此统称为WI-FI))操作的WLAN。还可以考虑草案802.11标准。在一些配置中,使用一个或多个无线WI-FI接入点来实现WLAN。在一些配置中,无线WI-FI接入点中的一个或多个是与WWAN的连接的另一计算设备,WWAN用作WI-FI热点。WLAN组件924被配置为经由WI-FI接入点连接到网络956。这样的连接可以通过各种加密技术来保护,包括但不限于:WI-FI保护访问(“WPA”)、WPA2、有线等效保密(“WEP”)等。
网络956可以是根据红外数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或一些其它短距离无线技术操作的WPAN。在一些配置中,WPAN组件926被配置为促进经由WPAN与诸如外围设备、计算机或其它计算设备之类的其它设备的通信。
传感器组件908包括:磁力计928、环境光传感器930、接近传感器932、加速计934、陀螺仪936、和全球定位系统传感器(“GPS传感器”)938。可以设想,诸如但不限于温度传感器或震动检测传感器之类的其它传感器也可被结合在计算设备架构900中。
I/O组件910包括显示器940、触摸屏942、数据I/O接口组件(“数据I/O”)944、音频I/O接口组件(“音频I/O”)946、视频I/O接口组件(“视频I/O”)948、和照相机950。在一些配置中,显示器940和触摸屏942被组合。在一些配置中,数据I/O组件944、音频I/O组件946、和视频I/O组件948中的两个或更多个被组合。I/O组件910可以包括被配置为支持下面描述的各种接口的分立处理器,或者可以包括内置到处理器902的处理功能。
所示的电源组件912包括一个或多个电池952,该一个或多个电池952可以连接到电池电量表954。电池952可以是可再充电的或一次性的。可再充电电池类型包括但不限于:锂聚合物、锂离子、镍镉、和镍金属氢化物。电池952中的每一个可由一个或多个单元制成。
电源组件912还可以包括电源连接器,该电源连接器可以与上述I/O组件910中的一个或多个组合。电源组件912可以经由I/O组件与外部电源系统或充电设备接口连接。
各种实施方式的示例
最后,尽管已经以特定于结构特征和/或方法动作的语言描述了各种配置,但是应当理解的是,在所附表示中限定的主题不必限于所描述的特定特征或动作。相反,这些具体特征和动作是作为实现所要求保护的主题的示例形式来公开的。
本公开内容根据以下示例进行:
条款1、一种用于存储原始作品数据和管理衍生作品数据的计算机实现的方法,该方法包括:接收原始作品数据;将原始作品数据存储在区块链中;接收第二作品数据和与第二作品数据是否是原始作品数据的衍生物相关的证明数据;响应于接收到第二作品数据:通过确认第二作品数据是原始作品数据的衍生物来验证接收到的证明数据,将第二作品数据附加到区块链,以及将接收到的证明数据与原始作品数据相关联地存储在区块链中。
条款2、根据条款1所述的计算机实现的方法,其中原始作品数据包括以下中的至少一个:源代码、目标代码、可执行文件、文字文本、音频文件、图像文件、视频文件、图形文件、生物医学/健康/医疗数据记录、图形模型、视频游戏和遗传数据。
条款3、根据条款1所述的计算机实现的方法,其中通过确认第二作品数据是原始作品数据的衍生物来验证接收到的证明数据的步骤包括:将值传送到从其接收证明数据的实体。
条款4、根据条款1所述的计算机实现的方法,其中:将原始作品数据存储在区块链中的步骤包括:针对原始作品数据的一个或多个部分中的每一个:计算针对原始作品的部分的熵值,以及将所计算的熵值与原始作品数据的部分相关联地存储在区块链中;以及通过确认第二作品是原始作品的衍生物来验证接收到的证明数据的步骤包括:计算第二作品数据的至少一部分的熵值,在区块链中搜索针对原始作品数据的一个或多个部分所存储的熵值,以获得在与针对第二作品数据的部分计算的熵值的阈值差内的至少一个所存储的熵值。
条款5、根据条款4所述的计算机实现的方法,其中:计算原始作品的至少一部分的第一熵的步骤包括:通过分析原始作品内的数据子集来计算第一熵签名;以及计算第二作品的至少一部分的第二熵的步骤包括:通过分析第二作品内的数据子集来计算第二熵签名;以及确定第二熵是否在与第一熵的阈值差内的步骤包括:将第一熵签名与第二熵签名进行比较来确定第二熵签名是否在与第一熵签名的阈值差内。
条款6、根据条款1所述的计算机实现的方法,其中通过确认第二作品是原始作品的衍生物来验证接收到的证明数据的步骤包括:将原始作品中的一个或多个数据子集与第二作品中的数据子集进行比较;以及确定原始作品中的数据子集中的一个与第二作品中的数据子集之间的相关性是否在相关性阈值内。
条款7、根据条款1所述的计算机实现的方法,其中通过确认第二作品是原始作品的衍生物来验证接收到的证明数据的步骤包括:将原始作品数据输入到针对原始作品与衍生作品的区别进行训练的预测模型;将第二作品数据提交到预测模型;
从预测模型接收针对第二作品数据的输出预测值;以及如果输出预测值满足预测阈值,则确定第二作品数据是原始作品数据的衍生物。
条款8、根据条款7所述的计算机实现的方法,其中预测模型使用以下中的一个或多个:线性回归模型、逻辑回归模型、决策树、支持向量机、朴素贝叶斯机、k均值聚类、梯度引导算法、卷积神经网络、循环神经网络、以及多实例学习算法。
条款9、根据条款1所述的计算机实现的方法,其中:证明数据包括原始作品的第一数据指纹和与第二作品对应的第二数据指纹;以及通过确认第二作品是原始作品的衍生物来验证接收到的证明数据的步骤包括:确定第二数据指纹是否在与第一数据指纹的相似性阈值内。
条款10、根据条款1所述的计算机实现的方法,其中将原始作品数据存储在区块链中的步骤包括:将原始作品数据存储在包括Merkle树、Patricia trie或修改的MerklePatricia trie中的至少一个的数据结构中;以及将数据结构存储在区块链中。
条款11、一种用于存储原始作品数据和管理衍生作品数据的系统,该系统包括:一个或多个处理器;以及一个或多个存储器设备,该一个或多个存储器设备与一个或多个处理器通信,一个或多个存储器设备具有存储在其上的计算机可读指令,该计算机可读指令在由处理器执行时,使得处理器通过以下来操作:接收原始作品数据;将原始作品数据存储在区块链中;接收第二作品数据和与第二作品数据是否是原始作品数据的衍生物相关的证明数据;响应于接收到第二作品数据:通过确认第二作品数据是原始作品数据的衍生物来验证接收到的证明数据,将第二作品数据附加到区块链,以及将接收到的证明数据与原始作品数据相关联地存储在区块链中。
条款12、根据条款11所述的系统,其中原始作品数据包括以下中的至少一个:源代码、目标代码、可执行文件、文字文本、音频文件、图像文件、视频文件、图形文件、生物医学/健康/医疗数据记录、图形模型、视频游戏和遗传数据。
条款13、根据条款11所述的系统,其中通过确认第二作品数据是原始作品数据的衍生物来验证接收到的证明数据的操作包括:将值传送到从其接收证明数据的实体。
条款14、根据条款11所述的系统,其中通过验证第二作品是原始作品的衍生物来验证接收到的证明数据的操作包括:将原始作品中的一个或多个数据子集与第二作品中的数据子集进行比较;以及确定原始作品中的数据子集中的一个与第二作品中的数据子集之间的相关性是否在相关性阈值内。
条款15、根据条款11所述的系统,其中通过确认第二作品是原始作品的衍生物来验证接收到的证明数据的操作包括:将原始作品数据输入到针对原始作品与衍生作品的区别进行训练的预测模型;将第二作品数据提交到预测模型;从预测模型接收针对第二作品数据的输出预测值;以及如果输出预测值满足预测阈值,则确定第二作品数据是原始作品数据的衍生物。
条款16、一个或多个计算机可读存储介质,具有存储在其上的计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时,使得处理器执行用于存储原始作品数据和管理衍生作品数据的方法,该方法包括用于以下的操作:接收原始作品数据;将原始作品数据存储在区块链中;接收第二作品数据和与第二作品数据是否是原始作品数据的衍生物相关的证明数据;响应于接收到第二作品数据:通过确认第二作品数据是原始作品数据的衍生物来验证接收到的证明数据,将第二作品数据附加到区块链,以及将接收到的证明数据与原始作品数据相关联地存储在区块链中。
条款17、根据条款16所述的计算机可读存储介质,其中:将原始作品数据存储在区块链中包括:针对原始作品数据的一个或多个部分中的每一个:计算针对原始作品的部分的熵值,以及将所计算的熵值与原始作品数据的部分相关联地存储在区块链中;以及通过确认第二作品是原始作品的衍生物来验证接收到的证明数据的操作包括:计算第二作品数据的至少一部分的熵值,在区块链中搜索针对原始作品数据的一个或多个部分所存储的熵值,以获得在与针对第二作品数据的部分计算的熵值的阈值差内的至少一个所存储的熵值。
条款18、根据条款16所述的计算机可读存储介质,其中:计算原始作品的至少一部分的第一熵的操作包括:通过分析原始作品内的数据子集来计算第一熵签名;以及计算第二作品的至少一部分的第二熵的操作包括:通过分析第二作品内的数据子集来计算第二熵签名;以及确定第二熵是否在与第一熵的阈值差内的操作包括:将第一熵签名与第二熵签名进行比较来确定第二熵签名是否在与第一熵签名的阈值差内。
条款19、根据条款16所述的计算机可读存储介质,其中:证明数据包括原始作品的第一数据指纹和与第二作品对应的第二数据指纹;以及通过确认第二作品是原始作品的衍生物来验证接收到的证明数据的操作包括:确定第二数据指纹是否在与第一数据指纹的相似性阈值内。
条款20、根据条款16所述的计算机可读存储介质,其中将原始作品数据存储在区块链中的操作包括:将原始作品数据存储在包括Merkle树、Patricia trie或修改的MerklePatricia trie中的至少一个的数据结构中;以及将数据结构存储在区块链中。
尽管以计算机结构特征、方法和变换动作、特定计算机器和计算机可读介质专用的语言描述了本文呈现的主题,但可以理解的是,所附权利要求书中阐述的主题不必限于本文所述的特定特征、动作或介质。相反,这些具体特征、动作和介质是作为实现所要求保护的主题的示例形式来公开的。
上述主题仅通过说明的方式提供,而不应被解释为限制。在不遵循所说明和描述的示例配置和应用且不脱离在所附权利要求书中陈述的本发明的范围的情况下,可对本文所述的主题作出各种修改和改变。
- 在具有原始作品数据的区块链上存储和验证衍生作品数据
- 基于区块链的作品数据的处理方法和装置