数字商品的真实例的制作方法

文档序号:20606013发布日期:2020-05-01 22:05阅读:290来源:国知局
数字商品的真实例的制作方法

相关申请的交叉引用

本申请依据35u.s.c.§119(e)要求于2017年10月3日提交的题为“genuineinstanceofdigitalgood”的共同待决的美国临时专利申请no.62/567,698的优先权。上述引用申请的公开内容通过引用并入本文。

本公开涉及数字商品的真(genuine)实例,并且更具体而言,涉及验证真实例。



背景技术:

如果商品一经消费便不再可用,那么商品是竞争性的。如果有可能将商品的使用限制到个人或一组人,那么商品是排他性的。数字商品本质上是非排他性和非竞争性的。在一些情况下,这些固有特性可能成为企业问题。由于稀缺性驱动价值,因此非排他性和非竞争性对于企业可能是不利的。但是,数字商品本质上并不稀缺,因此几乎没有固有的商业价值。



技术实现要素:

本公开内容提供了使用数字商品的将是真实例的一个唯一实例来创建稀缺性,并将该真实例链接到所有者。

在一个实现方式中,公开了一种用于使用区块链处理数字商品的真实例的方法。所述方法包括:使用多个交易来注册所述真实例的所有权,所述真实例由内容描述符唯一地识别,所述内容描述符以密码方式链接到所有权令牌并且包括所述真实例的固有特性,其中所述所有权令牌包括令牌种子和令牌签名;由多个验证者验证所述多个交易中的每个交易;以及一旦验证了每个交易,就通过在所述区块链中记录所述多个交易中的每个交易来记录所述真实例属于所有者。

在一个实现方式中,固有特性包括:所述真实例的唯一标识符,被计算为令牌种子的单向密码散列;嵌入在所述真实例中的不可察觉的水印的有效载荷;所述多个交易的实例散列;以及由先前交易的所述所有者签名的内容签名。在一个实现方式中,所有权令牌包括将所述真实例链接到所述所有者的信息。在一个实现方式中,注册所述真实例的所有权是由发行方执行的。在一个实现方式中,固有特性包括:所述真实例的唯一标识符,被计算为令牌种子的单向密码散列;嵌入在所述真实例中的不可察觉的水印的有效载荷;所述多个交易的实例散列;由所述发行方签名的内容签名;以及所述发行方的证书密钥。在一个实现方式中,验证每个交易包括:核实所述内容签名的有效性;以及核实所述所有权令牌的有效性。在一个实现方式中,在转售(resale)中核实所有权令牌的有效性包括:核实令牌种子的有效性;以及核实所述令牌签名是由所述所有者在先前交易中提交的令牌种子的实际签名。在一个实现方式中,每个交易包括:由所述发行方签名的交易签名;以及所述所有者的证书密钥。在一个实现方式中,该方法还包括由所述发行方生成初始随机种子,其中,所述初始随机种子使得能够创建有限系列的相继令牌种子,每个令牌种子是在先前交易中生成的令牌种子的单向密码散列。在一个实现方式中,该方法还包括:用所述有限系列的最后一个元素的单向散列函数的单次迭代来生成所述真实例的唯一标识符,以用于所述真实例的初始销售。在一个实现方式中,该方法还包括:由所述多个验证者指定证书机构;以及生成用于所述证书机构的身份管理的密钥对和相关联证书。在一个实现方式中,生成密钥对和相关联证书包括:核实所述相关联证书没有过期;以及核实所述相关联证书是由所述证书机构签名的。在一个实现方式中,内容描述符还包括一组对于所述真实例唯一的可见标记。在一个实现方式中,所述所有权令牌还包括令牌种子的令牌签名。在一个实现方式中,注册所述真实例的所有权是由所述所有者在先前交易中执行的。在一个实现方式中,该方法还包括:由所述所有者在先前交易中通过在先前交易中用所述所有者的私钥对令牌种子进行签名来生成新的所有权令牌;以及生成一套链接的令牌种子。

在另一个实现方式中,公开了一种非暂态计算机可读存储介质,存储用于使用区块链来处理数字商品的真实例的计算机程序。所述计算机程序包括可执行指令,所述可执行指令使计算机:使用多个交易来注册所述真实例的所有权,所述真实例由内容描述符唯一地识别,所述内容描述符以密码方式链接到所有权令牌并且包括所述真实例的固有特性,其中所述所有权令牌包括令牌种子和令牌签名;由多个验证者验证所述多个交易中的每个交易;以及一旦验证了每个交易,就通过在所述区块链中记录所述多个交易中的每个交易来记录所述真实例属于所有者。

在又一个实现方式中,公开了一种用于使用区块链来处理数字商品的真实例的系统。所述系统包括:发行方,被配置为使用多个交易来注册所述真实例的所有权,所述真实例由内容描述符唯一地识别,所述内容描述符以密码方式链接到所有权令牌并且包括所述真实例的固有特性,其中,所述所有权令牌包括令牌种子和令牌签名;以及多个验证者,被配置为验证所述多个交易中的每个交易,其中,一旦由所述多个验证者验证了每个交易,就通过在所述区块链中记录所述多个交易中的每个交易将所述真实例记录为属于所有者。

在一个实现方式中,固有特性包括:所述真实例的唯一标识符,被计算为令牌种子的单向密码散列;嵌入在所述真实例中的不可察觉的水印的有效载荷;所述多个交易的实例散列;以及由所述所有者在先前交易中签名的内容签名。在一个实现方式中,该系统还包括水印检测器,被配置为检测并提取嵌入在所述真实例中的不可察觉的水印的有效载荷。在一个实现方式中,所述所有权令牌包括将所述真实例链接到所述所有者的信息。在一个实现方式中,该系统还包括证书机构,所述证书机构被配置为生成用于身份管理的密钥对和相关联证书。

根据通过示例的方式图示本公开的各方面的本描述,其它特征和优点应该是清楚的。

附图说明

关于本公开的结构和操作的细节可以部分地通过研究附图来得到,在附图中,相同的附图标记指代相同的部分,并且其中:

图1是包括n个区块和创世区块的区块链的框图;

图2是根据本公开的一个实现方式的用于处理数字商品的真实例的基于区块链的系统的框图;

图3是根据本公开的一个实现方式的包括内容描述符、所有权令牌、交易签名和所有者证书密钥的交易的框图;

图4是根据本公开的另一个实现方式的用于处理数字商品的真实例的基于区块链的系统的框图;

图5a和图5b形成流程图,该流程图图示了根据本公开的另一个实现方式的用于验证数字商品的真实例的首次销售的处理;

图6a和图6b形成流程图,该流程图图示了根据本公开的一个实现方式的用于在没有发行方的情况下验证数字商品的真实例的转售的处理;以及

图7a和图7b形成流程图,该流程图图示了根据本公开的一个实现方式的用于与发行方一起验证数字商品的真实例的转售的处理。

具体实施方式

如上所述,虽然稀缺性驱动价值,但数字商品本质上并不稀缺,因此可能几乎没有商业价值。

本公开的某些实现方式提供了用于使用数字商品的将是真实例的一个唯一实例来创建稀缺性,并将该真实例链接到所有者。由所有者以外的实体处理的真实例的所有副本都不是真实例,尽管它们可以是真实例的逐比特(bit-to-bit)副本。不管所有权如何,所有派生版本(诸如经压缩或调整大小的实例)都不是真实例。因此,在本公开中,真实例是具有一个唯一所有者的数字文件。本公开旨在将数字文件链接到所有者,并跟踪和核实该所有权。在一个实现方式中,该链接和所有权是使用区块链概念实现的。

数字签名和数字版权管理可以用于核实实例的完整性。但是,数字签名不会区分真实例与复制实例。虽然数字版权管理是造成数字商品人为稀缺的一组技术,但它们不能满足预期的特征。即,虽然数字版权管理控制对数字商品的访问,但它不处理数字商品的唯一性和所有权。

在阅读这些描述之后,如何在各种实现方式和应用中实现本公开将变得显而易见。虽然本文将描述本公开的各种实现方式,但是应该理解的是,这些实现方式仅以示例的方式给出而非限制。由此,不应将各种实现方式的这种详细描述解释为限制本公开的范围或广度。

区块链数据结构是区块的有序列表。每个区块都指向其前者,直到第一个区块,该第一个区块有时也称为创世区块。这些区块及其排序通过密码散列的反向链接得到完整性保护。区块链和区块链的用途有很多,但最著名的是比特币和以太坊。

图1是包括n个区块110、120、130和创世区块140的区块链100的框图。在一个实现方式中,区块至少具有三个元素:(a)存储已注册数据和辅助数据的信息部分(例如,112),其中该信息部分可以被签名以证明其真实性;(b)前一个区块的密码散列(例如,114)(创世区块没有前一个区块);以及(c)当前区块的密码散列(例如,116)。因此,区块链的数据结构提供了防篡改的仅附加(append-only)的全局账本。

图2是根据本公开的一个实现方式的用于处理数字商品的真实例的基于区块链的系统200的框图。图2的基于区块链的系统200包括发行方210、真实例220、交易230和区块链240。

在一个实现方式中,交易230注册真实例220的所有权,并且发行方210创建真实例220并将其递送给初始所有者250。每个真实例220通过如图3所示的被称为内容描述符的固有特性的唯一组合来唯一地识别。发行方210生成初始交易230。区块链240保持由发行方210生成的每个交易230。

图3是根据本公开的一个实现方式的包括内容描述符310、所有权令牌320、交易签名330和所有者证书密钥340的交易300的框图。在图3所示的实现方式中,内容描述符310包括真实例220的唯一标识符(唯一id)312、有效负载314、实例散列316、内容签名318以及发行方证书密钥319。内容描述符310还可以包括对于真实例220唯一的一组可选的可见标记(类似于一系列光刻的印刷编号)。

在一个实现方式中,有效载荷314对应于嵌入在真实例220中的不可察觉的水印的实际有效载荷,并且对于真实例220是唯一的。水印是使给定数字商品的真实例唯一的不可伪造的方法。取决于真实例220的介质类型,不可察觉的水印可以是不可见的、不可听的或基于文本的。在一个实现方式中,密码实例散列316是真实例220的实质的密码摘要。在一个实现方式中,内容签名318是由发行方210签名的先前参数的数字签名(类似于绘图者在光刻上的签名)。

在一个实现方式中,所有权令牌320是将真实例220链接到其所有者250的数字信息,并且包括令牌种子322和令牌签名324。唯一id等于f(令牌种子),其中f是在计算上难以逆转的函数(例如单向密码散列)。令牌签名324是由发行方210发行的令牌种子的数字签名。

在一个实现方式中,每个真实例220的所有权由持有内容描述符310、所有权令牌320和所有者的证书密钥340的交易300记录。发行方210用交易签名330对交易300进行签名。交易300的验证核实内容签名318和所有权令牌320的有效性。区块链240通过在新区块的信息部分中添加描述所有权的转移的新交易300来记录真实例220的所有权的任何变更。所有权的变更可以使用以下两种方法之一(一种涉及发行方,另一种不涉及发行方)。

在第一种方法(不涉及发行方)中,作为真实例的当前所有者的卖方通过用卖方的私钥(即,先前交易的所有者的私钥)对令牌种子322进行签名来生成新的所有权令牌320。新交易300保持内容描述符310、由卖方签名的新的所有权令牌320、将来所有者340的证书密钥,并且由卖方签名。具有交易300的新区块被存储在区块链240上。

在第二种方法(涉及发行方)中,发行方210在创建真实例220时生成初始随机种子。初始随机种子使得能够创建一套n个相链接的令牌种子,如下所示。在一个实现方式中,初始随机种子使得能够创建有限系列的相继令牌种子,每个令牌种子是在先前交易中生成的令牌种子的单向密码散列。发行方秘密保留该初始随机种子。发行方210还定义交易阈值n,并如下计算交易:

t0=f(初始随机种子)

t1=f(t0)=f(f(初始随机种子))

tn-1=f(tn-2)

uniqueid=f(tn-1)

因此,初始令牌种子322是借助初始随机种子的f的第n次迭代,即,tn-1。在被转售时,新交易的令牌种子为tn-2。在第n次转售的情况下,新令牌种子322是f的第(n-n)次迭代。在一个实现方式中,单向函数f是具有256比特的输出的安全散列算法3(sha3),且n=100。

对于初始销售,uniqueid(唯一id)=f(令牌种子),而对于第一次转售,uniqueid=f(f(令牌种子)),依此类推。但是,由于只有发行方210知道初始随机种子,因此只有发行方210可以计算令牌种子322的新值。新交易300使用初始内容描述符310、由发行方签名的新所有权令牌320、将来所有者的证书密钥,并且由卖方签名。具有该交易300的新区块被存储在区块链上。

在下面的描述中,使用以下符号。对于非对称密钥对,前缀kpri表示私钥,而前缀kpub表示公钥。符号表示使用公钥kpub加密明文m。符号表示使用私钥kpri解密密文m’。如果kpri和kpub是公钥-私钥对,则符号表示使用私钥kpri的消息m的数字签名。符号表示使用公钥kpub对消息m的签名s进行数字核实。如果kpri和kpub是公钥-私钥对,则

图4是根据本公开的另一个实现方式的用于处理数字商品的真实例的基于区块链的系统400的框图。图4的基于区块链的系统400包括发行方410、真实例420、交易430、区块链440、水印检测器460、证书机构470以及验证者集合480。

在一个实现方式中,验证者集合480使用基于实用拜占庭容错协议(pbft)的共识机制来添加新区块。在一个实现方式中,验证者集合480指定可信的证书机构470生成用于身份管理的密钥对和相关联证书。证书的验证是已知的处理,其意味着核实信息的一致性,包括核实证书没有过期并由可信的证书机构470签名。

在一个实现方式中,关于在交易430的生成期间由系统400使用的密码材料,发行方410具有发行方的公钥(kpub_issuer)和发行方的私钥(kpri_issuer)。发行方410还具有由证书机构470发行的发行方的证书密钥,该证书密钥与发行方的公钥相关联。在一个实现方式中,系统400使用其根证书机构是证书机构470的分层结构。在一个特定实现方式中,系统400使用rivest、shamir和adelman2048(rsa2048)公钥密码标准1.5(pkcs1.5),而发行方证书密钥是x509兼容的,x509是定义公钥的证书的格式的标准。

在一个实现方式中,所有者450具有所有者的公钥(kpub_owner)和所有者的私钥(kpri_owner)。所有者450还具有由证书机构发行的、并且与发行方的公钥相关联的所有者的证书密钥。在一个具体实现方式中,系统使用rsa2048pkcs1.5,而所有者证书密钥是x509兼容的。

下面描述数字商品的真实例420的示例首次销售。alice将数字图片的真实例销售给bob。因此,在这个示例中,alice是发行方,bob是将来所有者。

在上述示例实现方式中,alice执行以下操作:(1)生成256位随机种子;(2)在初始随机种子上执行sha3的100次迭代,从而产生令牌种子322(即,tokenseed=sha3100(sha399(…sha32(sha31(随机种子)))));(3)计算唯一id312(即,uniqueid=sha3(tokenseed))(在极不可能的uniqueid已被用于另一个真实例的情况下,将轮询新的随机种子);(4)生成32位随机有效载荷314;(5)使用水印嵌入器将随机有效载荷314嵌入到数字商品中以产生真实例420;(6)计算长度为256比特的实例散列316(即,instancehash=sha3(genuineinstance));(7)计算内容签名318(contentsignature=sign_rsa{kpri_issuer}(uniqueid|有效负载|instancehash|issuercertificatekey));

(8)通过聚合唯一id312、有效负载314、实例散列316、发行方证书密钥319和内容签名318来构建内容描述符;(9)将唯一id312和随机种子存储在安全的私有数据库中;(10)计算令牌签名324(即,tokensignature=sign_rsa{kpri_issuer}(tokenseed));(11)通过对内容描述符310、所有权令牌320和bob的所有者证书密钥340进行签名来计算交易签名330(即,transactionsignature=sign_rsa{kpri_issuer}(contentdescriptor|ownershiptoken|ownercertificatekey));(12)通过聚合内容描述符310、所有权令牌320、交易签名330和所有者证书密钥340来构建交易430;以及(13)将交易430提交给验证者480。

如以上关于图2所述,区块链440是被许可的区块链,这意味着一组固定的已知可信验证者验证每个新区块。在一个实现方式中,验证者480是由处理区块链的发行方410(或发行方的团体)管理的一组服务器。另外,区块链440是公共的,这意味着任何人都可以查阅它。但是,只有验证者才能向区块链440添加新区块。

图5a和5b形成流程图,该流程图图示了根据本公开的一个实现方式的用于验证数字商品的真实例的首次销售的处理500。在一个实现方式中,一旦验证者接收到交易300,验证者就通过检查三个元素(即,内容描述符310、所有权令牌320和交易签名330)的有效性来验证交易300。

在一个实现方式中,检查内容描述符310的有效性包括:(1)在步骤510处从真实例中提取和获取提取出的有效载荷(例如,使用在线水印检测器460);(2)在步骤512处,核实提取出的有效载荷等于有效载荷314(真实例具有其有效载荷为“提取出的有效载荷”的嵌入水印。如果提交的内容是真实的,则交易中的有效载荷应与由真实例的水印所携带的值匹配);(3)核实发行方证书密钥319是由证书机构470发行的有效证书;以及(4)在步骤514处,核实内容签名318是由alice生成的内容描述符的实际签名(即,ver_rsa{kpub_issuer}(uniqueid|有效负载|instancehash|issuercertificatekey|contentsignature)==true))。

在一个实现方式中,检查内容描述符310的有效性还包括在步骤516处核实真实例没有双重消费(doublespending)。验证者通过检查在区块链440中没有已由alice发布的具有对应的有效载荷314和唯一id312的区块来检查没有双重消费。

在一个实现方式中,检查所有权令牌320的有效性包括:(1)在步骤518处,核实令牌种子422的有效性(即,uniqueid=sha3(tokenseed));以及(2)在步骤520处,核实令牌签名324是由alice提交的令牌种子322的实际签名(即,ver_rsa{kpub_issuer}(tokenseed|tokensignature)==true))。

在一个实现方式中,检查交易签名330的有效性包括:(1)在步骤522处,由alice来核实交易签名330是交易300的实际签名(即,ver_rsa{kpub_issuer}(contentdescription|ownershiptoken|ownercertificatekey,contentsignature)==true));以及(2)核实所有者证书密钥330是由证书机构470发布的有效证书(例如,x509证书)。

在一个实现方式中,一旦满足三个条件(即,内容描述符310、所有权令牌320和交易签名330的有效性),验证者480就生成包括单个交易的新区块。在其它实施例中,一旦满足这三个条件,验证者480就生成用于区块链440的包括多个交易的新区块。如果该区块包括多个交易,则验证者480验证所有交易。如图1所示,(一个或多个)新区块包括交易(在信息部分112中)、先前区块的散列114和新区块的散列116。区块的结构和散列函数的类型取决于所使用的区块链的类型。

在图5a和图5b的图示实现中,在步骤530处,验证者480将新区块提交给区块链共识机制。共识机制取决于用于区块链的技术。在一个实施例中,共识机制是pbft。因此,如果在步骤532处确定验证者集合480中的至少2/3批准了新区块,则在步骤540处将新区块添加到区块链440。即,区块链440记录bob拥有由alice发布的内容描述符310描述的真实例420。否则,在步骤542处,验证者拒绝该区块,并且该区块不被附加到区块链440。

在图5b所示实现方式的步骤532中,要求共识机制内的验证者480验证数字内容是属于特定所有者的实际真实例。

下面描述了两个示例实现方式,以图示验证数字内容是属于(2)特定所有者的(1)实际真实例的处理。

在第一示例实现方式中,prudence希望验证数字内容是否是属于bob的实际真实例。因此,bob向prudence提供真实例的原始副本、他的公钥和真实例的唯一id。在一个实现方式中,prudence通过检查区块链的最近区块(具有提供的唯一id)并核实该区块对应于提供的原始副本来验证数字内容是属于bob的实际真实例。prudence还检查bob的身份。

为了核实数字内容是“原始副本”(“原始副本”意味着真实例的逐比特复制),prudence执行以下:(1)核实真实例的副本的散列等于实例散列316(即,instancehash==sha3(copyofgenuineinstance));(2)使用水印检测器460从真实例的副本中提取提取出的有效载荷;以及(3)核实提取出的有效载荷等于有效载荷314。另外,为了核实bob的身份,prudence核实所有者证书密钥340仍然有效,并且它与bob提供的公钥匹配;因此,prudence(1)生成被称为为“质询(challenge)”的1024比特随机数,并将其发送给bob,bob用他的私钥(kpri_owner)对其进行加密,以创建“回答质询”并将其返回给prudence;以及(2)核实如果满足上述三个条件,则prudence验证bob拥有对应的真实例。在这种情况下,bob向prudence提供真实例的原始副本是重要的。否则,计算出的散列将与记录在区块链中的实例散列316不匹配。

在第二示例实现方式中,prudence验证bob拥有真实例。为了这个验证,bob向prudence提供真实例的副本、bob的公钥和唯一id。prudence执行以下操作:(1)在区块链中搜索具有唯一id312的最近区块;(2)使用水印检测器460从真实例的副本中提取提取出的有效载荷;(3)核实提取出的有效载荷等于有效载荷314;以及(4)核实bob的身份。在一个实现方式中,通过执行以下步骤来核实bob的身份:(1)核实由bob提供的公钥与所有者证书密钥340匹配并且所有者证书密钥340仍然有效;(2)生成1024比特随机数(“质询”)并将其发送给bob;(3)从bob接收“回答质询”,其中“回答质询”是bob用bob的私钥加密“质询”而生成的;(即,),以及(4)核实如果这为真,则prudence得出结论,bob拥有对应的真实例。在第二示例实现方式中,核实不需要真实例的原始副本。因此,只要水印提取成功,真实例的副本就可以比真实例的质量低。应该注意的是,prudence没有证明bob具有真实例,而只能证明他拥有它。

在另一个示例实现方式中,bob希望将其真实例转售给ophelia。bob是销售方,并且ophelia是将来所有者。在这个实现方式中,符号kpri_bob和kpub_bob构成bob的密钥对,并且最初是所有者的密钥。符号kpri_ophelia和kpub_ophelia构成ophelia的密钥对,并且最初是新所有者的密钥。在这个示例实现方式中,可以在有发行方或没有发行方的情况下进行转售。

在没有发行方的示例转售实现方式中,执行以下步骤:(1)bob将真实例的原始副本转发给ophelia;(2)ophelia核实它是预期的实例(即,它是真实例的原始副本),如先前部分中描述的;(3)bob核实ophelia的身份:(a)ophelia向bob提供ophelia的公钥的证书(例如,x509证书);(b)bob生成被称为“质询”的1024比特随机数并将其发送给ophelia;(c)ophelia用ophelia的私钥(kpri_ophelia)加密“质询”以生成(d)ophelia将answerchallenge返回给bob;(e)bob核实(4)bob通过用他的私钥(kpri_bob)对令牌种子进行签名来生成新的所有权令牌;(5)bob通过对内容描述符、新的所有权令牌和ophelia的所有者证书密钥进行签名来计算新的交易签名(即,transactionsignature=sign_rsa{kpri_bob}(contentdescriptor|ownershiptoken|opheliacertificatekey));(6)bob通过聚合内容描述符、新的所有权令牌、ophelia的所有者证书密钥和新的交易签名来构建新交易;以及(7)bob将该交易提交给验证者。

图6a和图6b形成流程图,该流程图图示了根据本公开的一个实现方式的用于在没有发行方的情况下验证数字商品的真实例的转售的处理600。在图6a所示的实现方式中,在步骤610处,验证者搜索并检索具有唯一id的最近区块。验证者然后检查三个条件,(1)内容描述符的有效性,(2)新所有权令牌的有效性,以及(3)建议的交易签名。

在第一实现中,在步骤612处,通过将提取出的区块中的内容描述符与由bob提交的交易的内容描述符进行匹配来检查内容描述符的有效性。如果结果匹配,则处理600继续。否则,在步骤650处,该区块被声明为无效。

在第二实现中,在步骤614和616处检查新所有权令牌的有效性。在步骤614处,通过检查uniqueid=sha3(tokenseed)来核实令牌种子的有效性。然后,在步骤616处,建议的交易的令牌签名通过以下来核实:(1)提取检索到的区块的所有者证书密钥,以及(2)核实建议的交易的令牌签名是检索到的区块的所有者证书密钥的所有者的令牌种子的实际签名(即,ver_rsa{kpub_bob}(tokenseed,tokensignature)==true)。如果签名匹配,则签名者是当前所有者,即,bob。

在第三实现中,在步骤618处,通过核实建议的交易签名是bob的交易的实际签名(即,ver_rsa{kpub_bob}(contentdescriptor|ownershiptoken|certificateophelia,transactionsignature)==true)并且所有者证书密钥是由证书机构发布的有效证书来检查建议的交易签名。

在步骤630处,如果检查并完成了上述三个实现,则验证者生成新区块并将其提交给区块链共识机制的验证者。否则,在步骤650处,该区块被声明为无效。

在一个实现方式中,如果验证者集合中至少2/3批准了新区块,则将新区块添加到区块链。即,区块链记录由alice发布的(并且以前由bob拥有的)内容描述符描述的真实例现在由ophelia拥有。

在具有发行方的示例转售实现方式中,执行以下步骤:(1)bob将真实例的原始副本转发给ophelia;(2)ophelia核实它是预期实例,如先前部分中所述;(3)bob核实ophelia的身份:(a)ophelia向bob提供ophelia的公钥的证书(例如,x509证书);(b)bob生成被称为“质询”的1024比特随机数并将其发送给ophelia;(c)ophelia用ophelia的私钥(kpri_ophelia)加密“质询”以生成(d)ophelia将answerchallenge返回bob;(e)bob核实(4)alice核实bob拥有真实例,如先前部分中所述;(5)alice对区块链中与唯一id相关的区块的数量(n)(即,与真实例相关的交易的数量)进行计数;(11)alice在初始种子上执行sha3的100-n次迭代以生成新的令牌种子(即,uniqueid=sha3100-n(sha399-n(...sha32(sha31(seed)))));(12)alice计算令牌签名(即,tokensignature=sign_rsa{kpri_issuer}(tokenseed));(13)alice将新的所有权令牌安全地返回给bob;(14)bob通过对内容描述符、新的所有权令牌和ophelia的所有者证书密钥进行签名来计算新的交易签名(即,transactionsignature=sign_rsa{kpri_bob}(contentdescriptor|ownershiptoken|opheliacertificatekey));(15)bob通过聚合内容描述符、新的所有权令牌、ophelia的所有者证书密钥和新的交易签名来构建新的交易;以及(17)bob将交易传送给验证者。

图7a和图7b形成流程图,该流程图图示了根据本公开的一个实现方式的用于与发行方一起验证数字商品的真实例的转售的处理700。在图7a所示的实现方式中,在步骤710处,验证者搜索并检索具有唯一id的最近区块。验证者然后检查三个条件,(1)内容描述符的有效性,(2)新所有权令牌的有效性,以及(3)建议的交易签名。

在第一实现中,在步骤712处,通过将检索到的区块中的内容描述符与由bob提交的交易的内容描述符进行匹配来检查内容描述符的有效性。如果结果匹配,则处理700继续。否则,在步骤750处,该区块被声明为无效。

在第二实现中,在步骤720、722和724处检查新所有权令牌的有效性。在步骤720处,对区块链中与唯一id相关的区块的数量(n)进行计数。在步骤722处,通过进行n+1次sha3迭代并检查uniqueid=sha3n(…sha30(tokenseed))来核实令牌种子的有效性。然后,在步骤724处,通过利用检索到的区块的发行方证书密钥中保持的公钥核实建议的交易的令牌签名是令牌种子的实际签名来核实建议的交易的令牌签名。在步骤750处,如果签名不匹配,则该区块被声明为无效。

在第三实现中,在方框726处,通过核实建议的交易签名是bob的交易的实际签名(即,ver_rsa{kpub_bob}(contentdescriptor|ownershiptoken|certificateophelia,transactionsignature)==true)并且所有者证书密钥是由证书机构发布的有效证书来检查建议的交易签名。

在步骤730处,如果检查并完成了上述三个实现,则验证者生成新区块并将其提交给区块链共识机制的验证者。否则,在步骤750处,该区块被声明为无效。

在一个实现方式中,如果验证者集合中至少2/3批准了新区块,则将新区块添加到区块链。即,区块链记录由alice发布的(并且以前由bob拥有的)内容描述符描述的真实例现在由ophelia拥有。

两种实现方式(无发行方和有发行方)之间的区别在于,当涉及发行方时,发行方充当额外的信任裁判。只有发行方可以生成有效的所有权令牌。

相应地,上述实现方式提供了使用数字商品的将是真实例的一个唯一实例来创建稀缺性,并将该真实例链接到所有者。任何副本或衍生物都不是真实例。以下示例核实了该概念的有效性。

alice不能将同一真实例出售给bob和charles。假设alice通过为bob和charles使用不同的种子向bob和charles提供同一数字文件,从而产生两个不同的uid。但是,在这种情况下,验证者将检测到两个交易具有相同有效负载但具有不同的唯一id。这将被共识机制检测为违规。alice可以从同一原始文件中创建若干真实例。但是,每个真实例都有不同的水印,因此使每个真实例都是唯一的。

bob不能将同一真实例转售给ophelia和charles。在这种情况下,区块链检测到双重消费。由于验证者只能记录一个所有权,因此第二次销售将是违规,因此未得到验证。

eve如果不拥有真实例,那么就无法声明真实例。eve无法通过所有权测试,因为质询响应需要具有bob的私钥。

bob一旦售出真实例后就不能再保留真实例。bob可以保留出售的真实例的原始副本。但是,bob将不能通过所有权测试,因为该测试需要在区块链中注册的当前所有者的私钥。区块链保证所有权的转移。

提供本文所公开的实现方式的描述以使本领域的任何技术人员能够制造或使用本公开。对这些实现方式的许多修改对于本领域技术人员而言将是清楚的,并且在不脱离本公开的精神或范围的情况下,本文中定义的原理可以应用于其它实现方式。例如,虽然本说明书描述了使用sha3程序执行散列函数的验证应用,但也可以适当地使用其它散列函数。因此,本公开不旨在限于本文中所示的实现方式,而是应被赋予与本文中公开的原理和新颖特征一致的最广范围。

本公开的各种实现方式用电子硬件、计算机软件或这些技术的组合来实现。一些实现方式包括由一个或多个计算设备执行的一个或多个计算机程序。一般而言,计算设备包括一个或多个处理器、一个或多个数据存储组件(例如,易失性或非易失性存储器模块以及永久性光和磁存储设备,诸如硬盘和软盘驱动器、cd-rom驱动器和磁带驱动器)、一个或多个输入设备(例如,游戏控制器、鼠标和键盘)和一个或多个输出设备(例如,显示设备)。

计算机程序包括可执行代码,该可执行代码通常存储在持久性存储介质中,然后在运行时被复制到存储器中。至少一个处理器通过以规定顺序从存储器中检索程序指令来执行代码。当执行程序代码时,计算机从输入和/或存储设备接收数据、对数据执行操作,并且然后将结果数据传递到输出和/或存储设备。

本领域技术人员将认识到的是,本文描述的各种说明性模块和方法步骤可以被实现为电子硬件、软件、固件或前述的组合。为了清楚地说明硬件和软件的这种互换性,在本文中总体上根据其功能描述了各种说明性模块和方法步骤。将这种功能性实现为硬件还是软件取决于特定的应用和施加在整个系统上的设计约束。技术人员可以针对每个特定应用以各种方式来实现所描述的功能,但是这种实现决定不应被解释为导致脱离本公开的范围。此外,模块或步骤内的功能分组是为了易于描述。可以在不脱离本公开的情况下将特定功能从一个模块或步骤移动到另一个模块或步骤。

在本公开的具体实现方式中,不一定需要每个上述示例的所有特征。另外,应该理解的是,本文提出的描述和附图代表本公开广泛预期的主题。还应该理解的是,本公开的范围完全涵盖对于本领域技术人员而言将变得显而易见的其它实现方式,并且本公开的范围因此仅由所附权利要求书来限制。

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