区块添加、判决合并、验证者指派方法和计算机可读介质技术

技术编号:33954889 阅读:19 留言:0更新日期:2022-06-29 23:15
提供区块添加、判决合并、验证者指派方法和计算机可读介质。使区块链中的某一区块添加到该区块链中包括:使实体接收与前一区块相对应的信息;使该实体接收在给定输入上的智能合约执行的声明式调用,其中,该声明式调用声明该执行的相关结果和其他相关数据;使该实体验证该调用的句法有效性;以及使该实体响应于验证该调用的句法有效性而将该声明式调用合并到该区块中。这些相关结果可以指定该智能合约执行的净效应、该智能合约执行后的所产生状态、以及用于执行的步骤数。其他相关数据可以指定该声明式调用的调用程序、时间信息、区块信息和/或应付费用。信息和/或应付费用。信息和/或应付费用。

【技术实现步骤摘要】
区块添加、判决合并、验证者指派方法和计算机可读介质
[0001](本申请是申请日为2018年10月4日、申请号为201880078255.6、专利技术名称为“声明式智能合约”的申请的分案申请。)


[0002]本申请涉及电子交易领域,并且更具体地涉及保护用于电子交易的交易区块序列的内容的领域。

技术介绍

[0003]人们可以将智能合约视为与用户一样可以拥有其自己的货币的一种计算机程序。这种合约C可以具有其自己的保留(计算)状态(可能在每次调用后被修改),并且具有其自己的标识符:例如,字符串H(C),其中,H是散列函数。为简单起见,我们用C本身表示此标识符。读者可以轻松确定C何时是程序本身或其标识符。优选地,智能合约C容易与普通用户区分开。玩家是指智能合约或普通用户。
[0004]智能合约C的执行可由一个或多个适当的用户调用。为了简单起见,但不失任何的预期一般性,本文中我们假设C由单个用户i调用。虽然如此,当C可以被多个用户调用时,通常其中一个用户首先执行C,从而在其他适当的用户调用C之前修改其保留状态。如果C是无状态的,则适当用户的顺序可能无关紧要。否则,即使当(比如)两个适当的用户同时独立调用C时,也可以为这两个执行选择一个顺序,并等待第一个

执行完毕(ned)

后再执行第二个。本领域技术人员可以认识到,可以将 C编写为使得只有在被多个用户调用的情况下,C才真正

由系统

执行,并且这些合约也可以由我们的技术来处理。
>[0005]令i为能够调用对C的系统执行的用户。用户i借助于数字签名来调用C。除了 C之外,i的这种签名调用还可以指定输入(input)和费用(fee)。让我们详细阐述。
[0006]·
input详述了要在其上执行C的特定输入。当然,可能还有附加输入,比如默认输入:例如,C的当前状态γC(其确实可以被视为输入)和系统的全局状态(例如,每个玩家在给定区块上所拥有的金额)。
[0007]·
fee包括i为

补偿系统执行C所产生的计算成本

而应支付的金额。
[0008]在调用C时,用户i还可以指定一些附加信息。例如,他可以指定给定的区块——并且因此指定区块链中的给定

简要说明(snapshot)

——或指定合约C的执行可以在给定的区块或区块间隔中起作用。另外,可能认为C可能考虑到目前为止的整个区块链历史。总之,可能还会有附加(并且可能是隐式)的输入。
[0009]费用还可以包括i将其调用作为其他任何交易包括在区块链中所必须支付的金额。但是让我们忽略后一种传统费用,以便集中精力解决新专利技术所缓解的问题。
[0010]C的执行中的计算步骤数取决于在其上运行执行的机器。因此,考虑在固定(虚拟)机器M上计算C(input)。
[0011]C的执行通常会生成新的保留状态γ

C并增加或减少几个玩家x,y,

所拥有的金额,分别表示为:
[0012]amount'
x
,amount'
y
,

[0013]只有在用户i此时拥有的货币金额大于或等于在i的调用中指定的费用fee时,i 对C的签名调用才可以在给定区块中进入区块链。
[0014]传统方法(例如,随机数)用于防止调用实际上对应于单个执行。这种方法对于当前的问题和专利技术不是至关重要的,因此在本文中被忽略,而不失任何的预期一般性。类似地,各种其他与专利技术无关的细节也被忽略。
[0015]一旦i的调用进入了区块链中的某一区块,一类用户U中的每个用户u都将C执行(在虚拟机M上,使用C所达到的最后保留状态)由fee覆盖的步骤量;通过从i 所拥有的金额中减去费用来更新他自己的区块链数据版本;并且如果执行正常终止,则修改(再次,在他自己的区块链版本中)受C的执行影响的玩家所拥有的金额(可能包括C本身所拥有的金额)。我们可以把所有这种用户对C的执行称为C的系统执行。通常,类U由所有用户或非常多的用户(例如,想要为在区块链中生成新的有效区块做出贡献的所有用户)组成。
[0016]如果用户数量很大,则即使步骤数量稍小,系统的总成本也可能很高。这意味着调用者应支付的费用也必须很高,尽管步骤数一点都不高。在这种情况下,在区块链系统中,仅运行需要几个步骤的智能合约是有意义的。这是可惜的。系统中的用户可能会受益于调用许多需要大量计算步骤的智能合约的执行,但是由于可能必须支付的高昂费用而无法调用这些智能合约。

技术实现思路

[0017]根据本文所描述的系统,在交易被组织成区块的交易系统中,相对于先前区块 B0,B1,

,B
r
‑1的序列提供新区块B
r
和B
r+1
包括:在确认区块B
r
指示与区块B
r
‑1的交易状态一致的初始交易状态之后,使区块B
r
被构建;在确认区块B
r+1
指示与区块 B
r
的交易状态一致的初始交易状态之后,使区块B
r+1
被构建;以及在构建了区块B
r+1
之后,使多个实体验证区块B
r
的先前未验证的交易。这些交易可以是智能合约。用户可以结合将交易发布到区块B
r
中的这些智能合约中的至少一个智能合约来构建区块B
r
。该用户还可以发布区块B
r
中的这些智能合约的交易结果。该用户还可以发布用于执行区块B
r
中的这些智能合约的交易结果的步骤数。该用户还可以发布该多个实体接收的用于验证区块B
r
的交易的费用。该多个实体可以是区块B
r
中的所有用户的子集。可以随机选择该多个实体。随机选择该多个实体可以包括对包括以下至少一项的数据应用密码散列函数:时间信息、关于一个或多个区块的信息、包括在一个或多个区块中的数据、或从一个或多个区块推断出的数据。
[0018]进一步根据本文所描述的系统,使区块链中的区块B添加到该区块链中包括:使实体接收与前一区块相对应的信息;使该实体接收在给定输入上的智能合约执行的声明式调用,其中,该声明式调用声明该执行的相关结果和其他相关数据;使该实体验证该调用的句法有效性;以及使该实体响应于验证该调用的句法有效性而将该声明式调用合并到该区块B中。这些相关结果可以指定该智能合约执行的净效应、该智能合约执行后的所产生状态、以及用于执行的步骤数。其他相关数据可以指定该声明式调用的调用程序、时间信息、区块信息和/或应付费用。如果对于该用于执行的步骤数而言该费用是足够的并且该费用的支付者具有足够的资产来支付该费用,则该声明式调用可以在句法上是有效的,并且该费用可以在该声明式调用出现在该区块链中时被支付。
本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种使区块链中的区块B添加到该区块链的方法,该方法包括:使实体接收与前一区块相对应的信息;使该实体接收在给定输入上的智能合约执行的声明式调用,其中,该声明式调用声明该执行的相关结果和其他相关数据;使该实体验证该调用的句法有效性;以及响应于验证该调用的句法有效性,使该实体将该声明式调用合并到该区块B中。2.根据权利要求1所述的方法,其中,这些相关结果指定以下至少一项:该智能合约执行的净效应、该智能合约执行后的所产生状态、以及用于执行的步骤数,并且其中,其他相关数据指定以下至少一项:该声明式调用的调用程序、时间信息、区块信息和应付费用。3.根据权利要求2所述的方法,其中,如果对于该用于执行的步骤数而言该费用是足够的并且该费用的支付者具有足够的资产来支付该费用,则该声明式调用在句法上是有效的,并且其中,该费用在该声明式调用出现在该区块链中的情况下被支付。4.一种使区块链中的一组验证者被指派用于验证给定输入上的智能合约执行的一个或多个声明式调用的集合S的方法,其中,这些声明式调用声明了这些智能合约执行的相关结果,该方法包括:这些验证者接收该集合S;这些验证者确定S中的哪些声明式调用在语义上有效;以及这些验证者提供对在语义上有效的一个或多个声明式调用的经认证响应。5.根据权利要求4所述的方法,其中,基于S、经由给定的密码函数以伪随机的方式来选择该组验证者。6.根据权利要求5所述的方法,其中,至少一个验证者经由涉及该至少一个验证者的秘密密钥的计算来确定该至少一个验证者已经被选择,并且其中,该至少一个验证者能够向其他验证者证明该至少一个验证者已经被选择。7.根据权利要求4所述的方法,其中,如果指派给S的至少给定数量个验证者的响应指示S中的调用I在语义上是正确的,则该调用I被认为是正确的。8.在已经注册了声明式智能合约调用的集合S、为S指派了一组验证者、并且这些验证者已经提供了关于S中的哪些调用在语义上有效的经认证响应的区块链中,一种使对S中的调用的判决合并到该区块链中的方法,该方法包括:使实体接收这些验证者的经认证响应;使该实体推断出S中的这些调用的正确性;以及使该实体将关于S中的这些调用的正确性的最终判决合并到该区块链中。9.根据权利要求8所述的方法,其中,如果指派给S的至少给定数量个验证者的响应指示S中的调用I在语义上有效,则该调用I的最终判决指示I是正确的。10.根据权利要求8所述的方法,其中,如果S中的调用I的最终判决指示I是正确的,则使其他用户更新该智能合约的状态并认为该智能合约的执行的已声明净效应已经发生了。11.一种使区块链中的区块B添加到该区块链的方法,该方法包括:使实体接收与前一区块相对应的信息;使得接收在给定输入上的智能合约执行的承诺声明式调用,其中,该承诺声明式调用声明该执行的至少一些相关结果...

【专利技术属性】
技术研发人员:西尔维奥
申请(专利权)人:阿尔戈兰德公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1