CN111656377B - 计算机实现的决策系统和方法 - Google Patents
计算机实现的决策系统和方法 Download PDFInfo
- Publication number
- CN111656377B CN111656377B CN201980009323.8A CN201980009323A CN111656377B CN 111656377 B CN111656377 B CN 111656377B CN 201980009323 A CN201980009323 A CN 201980009323A CN 111656377 B CN111656377 B CN 111656377B
- Authority
- CN
- China
- Prior art keywords
- transaction
- blockchain transaction
- script
- output
- blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 42
- 238000013515 script Methods 0.000 claims abstract description 88
- 238000004519 manufacturing process Methods 0.000 claims abstract description 3
- 230000006870 function Effects 0.000 description 17
- 238000003066 decision tree Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000007792 addition Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100365770 Bacillus subtilis (strain 168) sigO gene Proteins 0.000 description 1
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
公开了一种在区块链上做出决策的方法。从多个参与者(A、B、C)中的每一个接收第一公钥,其中,每个第一公钥都代表参与者的可能选择,并且通过具有同态性质的加密操作来与对应的第一私钥相关。组合所述第一公钥以生成第二公钥,其中,每个第二公钥都代表基于可能选择的组合的可能决策。将对应于第二公钥的第三公钥传达给参与者。生成投票区块链交易(Tc投票),其中,投票交易的输入是借助于与多个参与者中的每一个的第一私钥相对应的数字签名可执行的脚本,其中,每个第一私钥代表参与者做出的选择。投票交易的输出是代表基于参与者所做选择的决策的脚本。生成用于转移第一数字资产的支付区块链交易(Tp支付),其中,支付交易的输出的执行需要与第三公钥相对应的数字签名,该第三公钥对应于投票交易的决策。
Description
技术领域
本发明大体上涉及用于自动决策的系统和方法,并且更具体地,涉及经由区块链的自动决策。本发明特别适合于但不限于在经由区块链进行投票的方法中使用。
背景技术
在本文献中,我们使用术语“区块链”来包括所有形式的电子的、基于计算机的、分布式的账本。这些包括基于共识的区块链和交易链技术、被许可的和未被许可的分类账、共享分类账及其变型。术语“用户”在本文中可以指基于人类或基于处理器的资源。
区块链是一种点对点的电子分类帐,其被实现为基于计算机的分散的分布式系统,该系统由区块组成,区块又由交易组成。每个交易是一种数据结构,该数据结构对区块链系统中的参与者之间的数字资产的控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值,以使得区块被链接在一起来创建所有交易的永久、不可更改的记录,这些交易自其产生以来就已经被写入到区块链。交易包含被称为脚本的小程序,所述脚本被嵌入到小程序的输入和输出中,这些小程序指定如何以及谁可以访问交易的输出。
为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易均有效,而无效交易则被网络拒绝。安装在节点上的软件客户端通过执行其对脚本的锁定和解锁来对未使用的交易输出(UTXO)执行该验证工作。如果锁定和解锁脚本的执行评估为真(TRUE),则该交易有效,并将该交易写入到区块链。因此,为了将交易写入到区块链,必须:i)由接收交易的第一节点来验证该交易–如果交易经过验证,则该节点将其中继到网络中的其他节点;ii)将该交易添加到由矿工建造的新区块中;以及iii)该交易被挖掘,即,被添加到过去交易的公共分类帐中。
如果区块链可以用于不限于加密货币的领域的自动化任务和流程,那将是非常有利的。这样的方案将能够利用区块链的好处(例如,事件、分布式处理等的永久性、防篡改记录),同时在其应用中具有更多用途。
在自动决策的情况下,决策在许多情形下不仅取决于一系列因素,而且还可能取决于多方的意见。此外,可以指派各方来做出与因素之一相关的选择。在这些情形下,希望记录并验证各方的选择,并且希望多方的各个选择所有都应反映在做出的最终决策中。例如,在需要在即将到来的季节购买产品的零售商的情况下,购买产品的选择可能源自买方,供应商的选择可能来自上层管理人员,且公司将支付的总金额可能来自会计师。最终决策将反映来自三方中的每一个的输入。
这些多层决策使人联想到决策树,在决策树中,相对于与特定级别相对应的因素做出的选择不一定取决于其他级别的其他选择。穿过树的每个独特路径对应于子决策的特定组合。加密货币的分布式分类帐(区块链)具有若干可能对此类决策有用的特征。首先是区块链提供了交易中包含的动作/数据的不可变记录。同时,分类账的透明性意味着能够在决策过程中验证和确认各方的相应输入。
加密货币中特有的脚本编程语言为复杂的规则集提供了机会,这些规则集确定访问加密货币交易的输出/代币(token)/硬币(coins)的条件。这种智能合同能力可以对投票系统的设计负责,在该投票系统中,合同的成功执行取决于多方决策协议中存在的选择。
区块链构成了合适的环境,在该环境中,可以公开和永久记录投票和意见,以避免操纵任何种类的投票。尽管具有这种能力,但为了在区块链上创建安全的投票,仍有许多问题需要解决。范围从防止提交多次无记名投票到维护用户的隐私并检查凭证。
例如,去中心化(decentralisation)是在线电子投票的重大挑战,并且通常现有的布置(arrangement)的构建方式是为了防止滥用,但依赖中央机构进行验证并考虑投票或反馈。中央机构可以使用诸如盲签名和同态加密等不同的加密基元(cryptographicprimitives),以便例如通过参与者将选票发送给混合机构来增加无记名投票的保密性和资格验证,该混合机构在投票广播之前重组(reshuffle)并加密选票,以掩盖投票和投票人之间的联系。
用于提交投票的分散式加密方法消除了对中央信任机构的依赖。例如,安全多方计算(MPC)协议(其目标是使成组的用户能够计算他们希望保密的他们的联合私有输入的函数,而不需要受信任的第三方)可以允许各方共同秘密且安全地计算其平均投票。用于有效计算聚合函数的一种已知协议具有易于转换为匿名投票的特定情况的过程。这涉及使用“参与者集群”,其中,以树或环的拓扑结构来构造这些集群。用户的无记名投票通过加性同态函数进行加密,并且将加密后的值传达给同一集群的所有其他成员。每个用户计算聚合值,并且如果是环,则将其传递到下一个集群,或者如果是树则将其传递给父集群。累积的聚合值在最终或根群集处解密。沿途的聚合值之间的差异由多数裁决解决。群集过程对此提供了支持,该群集过程设计为:如果对抗节点存在且少于特定数量,则任何给定群集中的大多数节点都是诚实节点。
还提出了用于保护投票人的隐私的协议,这可以通过引入计算上昂贵的零知识证明来实现,以验证提交的无记名投票的正确性和参与者的诚实性。还实现了一种机制,在该机制下要求存款并在恶意行为的情况下存款可能被没收。
对于这些协议,重点在于通过大多数投票来确定获胜者。
发明内容
因此,期望提供一种布置,在其中获胜者由从成组的投票人获得的投票的独特组合来确定。
因此,根据本发明,提供了如所附权利要求书所限定的方法。
根据本发明,可以提供一种在区块链上做出决策的方法,其中,该决策基于多个参与者中的每一个做出的至少一个相应的选择,该方法包括:-
从多个参与者中的每一个接收相应的多个第一公钥,其中,每个所述第一公钥代表所述参与者的可能选择,并且通过具有同态性质的加密操作与对应的第一私钥相关;
借助于所述同态性质,将所述第一公钥进行组合,以生成多个第二公钥,其中,每个所述第二公钥代表基于所述可能选择的组合的可能决策;
向所述多个参与者中的每一个传达多个第三公钥,其中,每个所述第三公钥都对应于相应的所述第二公钥;
生成第一区块链交易,其中,所述第一区块链交易的输入是借助于与多个所述参与者中的每一个的相应的所述第一私钥相对应的相应的数字签名而可执行的脚本,其中,每个所述第一私钥代表所述参与者做出的所述选择,并且所述第一区块链交易的输出是代表基于所述参与者做出的所述选择的所述决策的脚本;以及
生成用于转移第一数字资产的第二区块链交易,其中,所述第二区块链交易的输出的执行需要与所述第三公钥相对应的数字签名,所述第三公钥与所述第一区块链交易的所述决策相对应。
这提供了使得参与者能够检查由第一区块链交易所代表的决策是否考虑了该参与者做出的选择的优点,从而使决策更能代表所有参与者。还提供了能够借助于第三公钥来验证决策的优点。
第一区块链交易的输入可以是借助于监督者拥有的第四公钥可访问的脚本。
这提供了使得能够监督和/或控制决策的投票过程的优点。
第一区块链交易的输出可以是借助于与监督者拥有的第五公钥相对应的数字签名可访问的多签名脚本。
这提供了使得交易能够处于易于在区块链上传播的形式的优点。
多个所述第一私钥可以被存储在所述多签名脚本的公钥字段中。
这提供了使得数据能够被存储在交易中并易于通过区块链传输的优点。
该方法还可以包括生成第三区块链交易,该第三区块链交易具有与所述第一区块链交易的相应输入相对应的至少一个输出。
所述第三区块链交易的至少一个输出的执行可能需要与相应的所述第一私钥相对应的至少一个数字签名。
所述第三区块链交易的至少一个输出的执行可能需要至少一个所述第一私钥。
这提供了将参与者与参与者的选择更直接地联系起来,以及使得一方能够与知道由其他方做出的选择无关地签署交易的优点。
所述第三区块链交易的至少一个输出可以是将所述加密操作应用于所述第一公钥的脚本。
该方法还可以包括以加密的形式从所述参与者接收所述私钥。
该方法还可以包括生成第四区块链交易,该第四区块链交易用于在不执行所述第二区块链交易的情况下退还所述第一数字资产的至少一部分。
第四区块链交易可以是时间锁定的。
同态操作可以是椭圆曲线标量乘法。
本发明还提供一种系统,包括:
处理器;以及
包括可执行指令的存储器,该可执行指令由于处理器的执行而使系统执行本文所述的计算机实现的方法的任何实施例。
本发明还提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,该可执行指令由于计算机系统的处理器的执行而使计算机系统至少执行本文所述的计算机实现的方法的实施例。
附图说明
参考本文描述的实施例,本发明的这些和其他方面将变得显而易见并得到阐明。现在将仅通过示例的方式并参考附图来描述本发明的实施例,其中:
图1示出了在实施本发明的方法中使用的决策树;
图2示出了图1的决策树的结果集;
图3示出了实施本发明的方法中公钥的可能总和;
图4示出了来自实施本发明的方法的区块链交易;
图5示出了图4的承诺交易;
图6示出了图4的投票交易;
图7示出了图4的支付交易;
图8示出了图4的退款(refund)交易;
图9示出了图5的承诺交易的输出脚本;
图10示出了实施本发明的方法的流程图;
图11示出了本发明的另一实施例的区块链交易;
图12示出了图11的承诺交易;
图13示出了本发明的另一实施例的流程图;以及
图14是示出可以在其中实现各种实施例的计算环境的示意图。
具体实施方式
EC密钥对的同态
在本申请中利用椭圆曲线(EC)加密来使提出的多因素多方(MFMP)决策协议的早期阶段的用户秘密值模糊的原因是由于EC的私钥-公钥关系的同态性质[6]。
x1G+x2G=(x1+x2)G
x是私钥,G是EC的基点,以及xG是x的对应的公钥。
更一般而言,其中,E(x)=xG
E(m+n)=E(m)+E(n)
存在对于其的同态哈希函数(和/或加密函数):
H(m+n)=H(m)+H(n)
这些同态哈希函数也将完成某个密钥功能,该密钥功能是针对MFMP协议而得到的EC加密同态私钥-公钥关系。
而且,虽然在本申请中利用加法,但是同态性质不是必须针对加法的,即,如果哈希/加密函数的同态性质是针对其他运算符的,则也可以实现本申请的贡献。例如,如果运算符是乘法,则考虑
H(mn)=H(m)×H(n)
其中,H()是哈希/加密函数。
更一般而言,如果运算符是通用运算符(generic operator)使得
其中,H()是哈希/加密函数,那么在这种情况下,可以将运算符同等地应用于同态发挥作用的MFMP协议的设计。
n之m(m-of-n)多签名脚本作为数据存储
鉴于加密货币交易不具有专门用于元数据的存储的字段,因此MFMP协议的成功取决于找到合适的位置来记录各方针对其已被分配责任的决策因素而做出的选择。
对于提出的MFMP协议的设计,使用针对n之m的多签名(multisig)交易的加密货币的脚本来存储投票。这些多签名元素最初被合并到加密货币脚本中,因此需要多于1个的密钥来授权加密货币交易。
n之m的多签名脚本采用以下格式:
OP_0Sig1 Sig2…NumSigs Pub1 Pub2 Pub3 Pub4…NumKeys OP_CHECKMULTSIG
其中,内容NumSigs Pub1 Pub2 Pub3 Pub4…NumKeys OP_CHECKMULTSIG将是输出脚本<scriptPubKey>的内容,并且内容OP_0Sig1 Sig2是输入脚本<scriptSig>的内容。<scriptPubKey>是允许使用交易输出的规则集。<scriptSig>是满足<scriptPubKey>所需的内容。NumSigs是所需的签名的数量,NumKeys是可能的签名的数量,且PubX是与签名SigX对应的公钥。
尽管此脚本旨在用于n之m的签名,但赎回脚本(redeem script)的PubX元素可能适合用作元数据的存储。
作为示例,示出了4之2的多签名脚本,其中,为公钥保留的4个数据元素中有2个用于存储元数据。脚本采用以下格式
OP_0SigA SigB OP_2meta1 meta2 PubA PubB OP_4OP_CHECKMULTSIG
这些元数据元素可以代表负责决定总体决策的特定因素的各方的加密投票的集合。
作为示例,示出了7之1的多签名脚本,其中,为公钥保留的7个数据元素中有5个用于存储投票,而2个则用于真正的(genuine)公钥。
脚本采用以下格式
OP_0 SigB OP_1 v1 v2 v3 v4 v5 PubA PubB OP_7 OP_CHECKMULTSIG
椭圆曲线有限域算法和OPCODE
已经发现,如果去除了加密货币脚本的200个操作码(opcode)限制,并且重新启用被禁用的操作码,则加密货币协议可以执行椭圆曲线(EC)有限域算法。
为了清楚起见,椭圆曲线是由以下等式描述的点的集合
y2≡x3+ax+b(mod p)
其中,并且,p是质数。
针对本申请的目的,加密货币脚本内所需的EC算术功能是“标量点乘法(pointmultiplication by scalar)”的功能。这是这样的运算
其中,n是自然数,P是椭圆曲线上的点,且+是EC上点的加法运算符。
标量乘法进而需要特定的EC组运算点加法(Point Addition)和点加倍(PointDoubling)。
·点加法P+Q:通过此运算,我们计算EC上的新点作为对曲线交点的否定(negation)。这可以描述为R=P+Q。
·点加倍P+P:使用点加法,我们可以计算P的点加倍。这可以被描述为P=P+P=2P。
更具体地,给定EC上的两点P(x1,y1)和Q(x2,y2)
P+Q=(x3,y3)
其中,
x3=m2-x1-x2mod p
y3=m(x1-x3)-y1mod p
并且
我们采用为乘法Q=kG提供的EC操作码。该操作码的标题为OP_ECPMULT。换句话说,OP_ECPMULT接受编码的椭圆曲线的点和数字,并按标量执行椭圆曲线乘法。输出的结果为编码的椭圆曲线点。
多因素多方决策协议
概述
MFMP协议有助于决策系统,该决策系统使人联想到决策树。对于多因素多方决策树,树的每个级别(其中,根节点为级别1)代表特定的“方-与-因素(party-and-factor)”,而来自每个节点的每个分支代表一方关于特定因素做出的选择。图1示出了与本申请的MFMP协议相应的决策树。图中的每个节点代表一个“方-与-因素”,且节点之间的每条线/边是与因素相关的选项。对于所描述的决策树,存在n=3个因素(以及n方),且每个因素提供m=2个选项。对于MFMP协议,如有必要或适用的话,m可以因每个因素而有所不同。
通常,每个“方-与-因素”由节点Ui表示,其中,i代表该方所决定的因素;例如,UA代表一方基于因素A做出决策。对于每个因素a,存在一方可以从中选择的选项的集合{ka,j:∈[0,ma]},其中,ma是选项的数量。Ok个节点代表了各方的选择的组合导致的可能决策或结果。相应的各方选择的选项形成了决策树中通往结果Ox的路径。
MFMP协议仅迎合了对于某个因素的选项集保持不变而与另一方做出的选择无关的情况。{ka,j}独立于{kb,j}。例如,在图1中,无论UA选择kA,1还是kA,2,UB的可用选项保持为kB,1和kB,2。这使得决策树只能是对称的。
与其他投票协议(大多数投票决定获胜者)相反,对于MFMP协议,独特的投票组合决定了谁获胜(结果是什么)。一方的“投票”不是对特定结果Oi的投票,而是对“可能的结果的集合”的投票。从图1看出,
·如果UA投票kA,1,则表示选择结果集{O1,O2,O3,O4}
·如果UB投票kB,1,则表示选择结果集{O1,O2,O5,O6}
·如果UC投票kC,2,则表示选择结果集{O2,O4,O6,O8}
三方的秘密值组合(kA,1,kB,1,kC,2)的结果是结果O2的三个集合的交集(见图2)。
协议细节
监督者
MFMP协议被设计为使用称为监督者的监督实体来执行。预期该监督者是要为其做出多因素多方决策的实体,和/或是负责监督协议执行的职责的实体,例如公司的首席执行官。该监督者也可能是提供硬币(coins)以资助决策过程的最终结果的人。该监督者将负责交易构建、适当地签署交易输入以及以适当的顺序、以及时的方式创建交易并将交易提交给区块链。
监督者还对相对于与决策相关的因素以及对应的结果可能做出的选择的集合进行解释、建立或与每个投票方进行谈判。
初始化和密钥
所有各方都同意在加密货币中使用的标准化椭圆曲线,secp256k1以及相关参数集,包括:
·G-阶数为q的椭圆曲线上的基点:q×a=0,以及
·q-大质数
对于在决策过程中被分配某个因素的每一方,要求该方自己生成秘密ka,i值的集合,其中,a代表决策因素,且i代表针对该决策因素的选项集合中的一个。该集合中有ma个秘密ka,i值。ka,i值使得:0<ka,i<q。
协议中,期望每一方将该点处的其相应的ka,i值保密。对于每个ka,i值,Ua方计算对应的公钥值Qa,i=ka,iG。
层次结构与求和
每一方与所有其他方(包括监督者)共享所有相应的公钥{Qa,i}。每一方关于其哪个公钥对应于与该方的分配因素相关的选择集合中的哪个元素与监督者达成协议。然后,利用来自所有其他方的公钥,一方(针对他们自己的个体)计算对公钥进行求和的所有可能的组合,其中,求和中存在n个元素,并且求和的每个元素是不同投票方的公钥。该求和将对应于沿着决策密钥层次结构的可能路径对公钥求和(图3)。另外,如上面在标题“EC密钥对的同态”下所讨论的,除了加法之外,可以使用同态函数和/或运算符。
从图3所示的示例中,公钥的可能的求和(无论哪方进行计算)为
O1=QA,1+QB,1+QC,1
O2=QA,1+QB,1+QC,2
…
O7=QA,2+QB,2+QC,1
O8=QA,2+QB,2+QC,2
预计每一方均记录如何获得每次求和。通过这样做,每一方都将知道获得特定的Oi结果值时使用了其秘密ka,i值中的哪一个(通过Qa,i)。
例如,一方UA知道,如果对于因素A他/她选择或已经选择了“1”(经由QA,1,用kA,1来表示),那么考虑到他/她的选择kA,1的结果将是O1、O2、O3和O4。
请记住,由于在标题“EC密钥对的同态”下上述的EC私钥-公钥关系的同态性质,对于结果Ox,存在n个因素/方
Ox=QA,i+QB,j+…+Qn,k
=kA,iG+kB,jG+…kn,kG
=(kA,i+kB,j+…kn,k)G
n个ka,i值的总和标记为svx,因此
svx=kA,i+kB,j+…kn,k
并且因此
Ox=svxG
监督者的职责是向每个投票方传达新的公钥/地址Sx,该公钥/地址Sx将直接与MFMP实例的每个Ox结果相关联。这相当于集合对{(Ox,Sx)},其中,集合{Ox}与集合{Sx}是双射的。本领域技术人员将认识到“在数学中,双射、双射函数或一一对应关系是两集合的元素之间的函数,其中,一个集合的每个元素与另一集合的一个元素恰好配对,而另一集合的每个元素与第一集合中的一个元素恰好配对,因此不存在未配对的元素”。公钥Sx不一定属于监督者本人,而是可以由负责执行与结果Ox有关的职责的单独个体拥有。对于拥有”公钥的人或对于“属于”人的公钥,在这种情况下,意味着该人知道对应于公钥的私钥。
如果知道其可能结果集的每一方关于特定因素投票了某个路径(a certainway),则每一方都将检查承诺交易,以确保与托管脚本(Escrow script)中的Ox值相关的选项与正确的Sx公钥配对,以使得两个公钥均要求签名,以便访问托管资金或代币。本质上,如果决策过程的可能结果Ox之一与承诺交易的托管输出中的正确Sx(根据与监督者的先前约定)无关,则一方可以选择不提供其投票。
实施例1-交易和选择文档
MFMP协议建立在4个核心交易上;承诺交易TC、支付交易TP、退款交易TR和投票交易TV。这4个交易的接口(interfacing)如图4所示。
在图4中,每个交易都由带有圆角的矩形表示。交易的输入和输出由基本的矩形表示。输入显示在交易的左半部分,而输出显示在交易的右半部分。输入和输出矩形的标签分别是“硬币来源”和“预定接收者”的公钥;例如,Sa是用于投票交易的资金来源,同时又是承诺交易的资金的接收者。在当前情况下,可以将人的公钥用作该人本人的标签。Esc输出/输入是例外,因为输出-输入不针对一个特定的地址/公钥,而是可以基于满足指定标准的能力通过不同的密钥来访问。
承诺交易
承诺交易TC(参见图4和图5)是MFMP协议的主要交易,并包括硬币Fu作为其输入,以资助代表所有投票方的选择的一个结果。假定这些资金来自名为监督者S的实体/个人。例如,该监督者可以是首席执行官或负责公司财务的公司会计师/财务主管。监督者提供这些资金的地址被标记为Sa。
承诺交易预计具有至少具有两个输出。其中第一输出是象征性的费用,该费用将转移到属于监督者的第二地址。该输出地址被用作利害关系者使用存储在区块链中的信息将承诺交易链接到投票交易的简便方法。这些资金的地址是监督者拥有的第二地址Sb。
承诺交易的第二输出是托管一定数量的硬币-因为决策树的“获胜”结果将接收这些托管的硬币(或由其资助)。此输出被描述为“托管”,因为资金并非立即专用于特定的输出地址/公钥,而是具有附加到此输出的加密货币脚本的条件,该输出允许将这些资金转移到可能的地址集合中的一个-其中,授予硬币的最终地址取决于要满足的脚本规定的标准。
该脚本使得条件集合仅在参与方的必要ka,i值可用时才提供对托管硬币的访问。更具体地说,脚本中用于选择托管资金的输出地址的标准是为公钥Ox和Sx生成签名,其中
Ox=svxG,
svx=kA,i+kB,j+…kn,k
并且,Sx是与结果Ox配对的独特输出地址。
投票交易
投票交易TV(请参见图4和6)负责记录各方关于分配给他们的决策因素做出的选择。
通过使用承诺交易的Sb输出作为投票交易的输入,该投票交易被“链接”到承诺交易,其中,Sb是由监督者控制的第二地址。该链接用于三个目的:
·链接TC和TV-在两个交易(投票交易和承诺交易)之间具有共享地址允许利益相关者在区块链中找到了上述两项交易之一的情况下可以轻松地检索其他交易。请注意,承诺交易在投票交易之前被放置在区块链上,因此尽管承诺交易在投票交易未存在的情况下也可以存在于区块链上,但是反之则不然。
·关联记录–该链接提供了承诺交易及其托管资金与各方所投的选票之间的书面关联。
·监督者批准–将监督者的地址作为输入包括在投票交易中给予监督者对所投的选票进行监督的元素—因为签署(投票交易的)输入Sb的监督者充当监督者接受的各方投票的正式表示。
预计投票交易本身将由监督者构建,然后传递给各方,以便每一方都可以将自己的投票添加到交易中。投票是ka,i值。n之m多签名脚本中为公钥保留的字段被用于存储投票交易中的投票。该脚本用作投票交易的输出脚本<scriptPubKey>。本领域技术人员将熟悉的是,对于加密货币,<scriptPubKey>是允许使用交易输出的规则集。<scriptSig>是满足<scriptPubKey>所需的内容。
现在,将包括包含ka,i值的n之m脚本的投票交易的当前版本返回给监督者。拥有各方提供的n个ka,i值的集合的监督者将通过确定是否(kA,i+kB,j+…kn,k)G等于来自计算出的层次结构的Ox结果之一来验证投票。如果投票组合被验证,则监督者将<scriptPubKey>、公钥Sa添加到投票交易输出脚本的n之m多签名脚本中。这是监督者的主要公钥(“地址”),并且预计监督者为希望在投票交易的输出处花费任何硬币的任何交易的<scriptSig>的Sa产生签名。
投票交易的输出脚本与花费该输出的交易的输入脚本相结合的示例如下所示。
OP_0 Sig Sa OP_1 kA,i kB,j kC,k Pub Sa OP_4 OP_CHECKMULTSIG
<scriptPubKey>的该4之1多签名包括负责因素A、B和C的各方所投的3个选票;它还包括公钥Sa。
然后,将投票交易的当前版本重新发送给每一方,每一方在确认他/她的投票包括在输出脚本的最终版本中时,将签署其对交易的输入,表示他们对投票交易的批准,也就是说,他们承认自己的投票已包括在投票交易中。如果监督者签署其对投票交易的输入,则投票交易被提交到区块链。
替代地,每一方可以以安全的方式将其投票传达给监督者,该监督者随后将所有投票添加到投票交易的输出脚本,然后将该交易发送给各方以获得其相应的输入签名。
应当指出的是:
·每一方为其对投票交易的输入而使用/贡献的资金/硬币是最低或象征性费用。投票交易更多地意味着是投票的不可变记录,而不是资金转移。
·对于加密货币协议的当前版本,多签名输出中可允许的公钥的最大数量为15。因此,所述的n之m多签名脚本可能允许的最大数量的投票(投票者)为14(请注意,十五个空间之一是为监督者的公钥Sa保留的)。可以构造包括多个冗余的n之m多签名(子)脚本的更复杂的脚本以合并更多的投票,但是要记住,脚本的最大尺寸为10千字节[7],并且交易成本取决于交易的大小。
·在适用的情况下,监督者还可基于与决策相关的因素进行投票。
支付交易
支付交易TP(请参见图4和7)是可以成功访问承诺交易(参见图4和图5)的Esc输出处的托管硬币的交易。该交易将在其输入脚本<scriptSig>中包括两个签名,第一个是公钥Ox的签名,其中
(kA,i+kB,j+…kn,k)G=Ox
并且,每个ka,i针对不同的决策相关因素。
脚本中存在的ka,i值的独特组合确定谁(公钥-私钥对的所有者)能够访问Esc硬币。这些ka,i值应该已经从区块链上可用的投票交易中检索得到。
支付交易的输入脚本中的第二签名是公钥Sx的签名,公钥Sx是被分配了监督Ox职责的个体的公钥。这不一定是协议的主要监督者(Sa和Sb的所有者),但可以是任何另一认可的个体。此外,在适用的情况下,尤其是出于安全性/控制目的,可以为支付交易的输入脚本指定第三签名,其中该第三签名是主要监督者的签名。如果支付交易的输入已被成功签署,则可以将承诺交易的托管硬币移至与结果Ox相关的接收者地址Rx。投票交易后,支付交易将被提交给区块链。
退款交易
退款交易(图4和图8)是将托管资金返还给将资金贡献给承诺交易的所有各方(监督者或其他)的交易。如果协议的参与者没有按照他应该的方式行事,则被视为故障安全措施。重要的是,该退款交易包括nTimeLock值,该值防止区块链接受它直到某个时间点(unix时间或区块高度)已过去之后。
退款交易的输入脚本包括满足承诺交易的托管输出脚本中的可用选项之一的数据。此数据可能是主要监督者(承诺托管资金的人)和其他利益相关者的签名。所有其他利益相关者必须在监督者将承诺交易提交到区块链之前签署退款交易。这样可以确保如果出现问题则监督者可以取回所有已承诺的托管资金。
退款交易是可选交易,并且仅当尚未提交MFMP协议实例的支付交易时,才可以将其提交给区块链。
此外,退款交易只能在某个时间点之后被提交。考虑到这一点,必须选择退款交易的nTimeLock值,以便在时间T提交承诺交易后,有足够的时间用于:
·要获得的选票,
·向区块链承诺的投票交易,
·区块链中发现的投票交易,
·以及创建并提交到区块链的支付交易。
完成所有这些的指定时间(跨度)被标记为s。因此,退款交易的nTimeLock值至少应为
nTimeLock=T+s
请注意,时间nTimeLock值可以以秒或区块高度来限定。
托管相关的脚本
输出脚本:承诺交易托管
承诺交易的托管资金预计将受到基于堆栈的脚本语言的“保护”,该脚本语言允许用于访问/认领/使用托管资金的可能的方式的集合。这些访问托管资金的方式中的每一个都具有关联的标准的集合,必须满足这些标准才能取回资金。本质上,托管脚本可以看作是分情形语句(case statement)的集合的代表,其中,分情形语句中的每个选项都是访问托管资金的不同方式。假设存在t个选项,对于这些选项中的t-1个(一个标准与(一个或多个)退款签名相关),每种情形的标准(至少)应为
将为以下的公共地址产生ECDSA签名:
(kA,i+kB,j+…kn,k)G=Ox
以及
将为担任针对Ox的监督者角色的公钥Sx产生ECDSA签名。
图9示出了代表托管分情形语句的加密货币输出脚本的高级版本(列出8个选项)。(cond_i)代表需要满足的标准/条件,且[Do_i]代表如果(cond_i)评估为真要执行的动作。
更为具体地,由于它与输出脚本有关,因此,用来表示需要两个ECSDA签名的条件(cond_i)可以是2之2多签名(子)脚本的条件,例如
OP_2 Pub Ox Pub Sx OP_2 OP_CHECKMULTSIG
```
其中,Pub Ox=(kA,i+kB,j+…kn,k)G,以及PubSx是分配给结果Ox的实体的公钥。
假设(cond_i)评估为真,要求脚本的每个[Do_i]元素执行的动作是将值1/TRUE存入堆栈的顶部。本领域技术人员将理解,加密货币脚本是基于堆栈的语言,并且在脚本执行完成后,堆栈顶部处的“真”值表示脚本已成功执行。
输入脚本:支付交易
为了成功地访问承诺交易的托管输出的硬币,这要求在将托管输出的输出脚本<scriptPubKey>与支付交易的输入脚本<scriptSig>组合时,成功地执行组合的脚本,即在堆栈顶部处产生1/TRUE。
至少一个数据元素<data_i>必须被包括在输入脚本中,这将导致输出脚本的至少一个if语句(if-statements)为真,最终导致组合的输入和输出脚本评估为真。
应当注意,<data_i>可以表示数据的多个字段。例如,对于2之2的多签名脚本,<data_i>可以是三个值<op_0><sigOx><sigSc>的组合。
还应注意,根据所考虑的选项,某些冗余数据<bd_datai>也可能在适用的情况下包括在输入脚本中。<bd_dti>“坏数据(bad data)”是用来表示在由(cond_i)处理时保证产生0/FALSE作为输出的数据。与<data_i>类似,<bd_dti>可以由多个单独的数据元素组成。实际上,预计<bd_dti>由与<data_i>相同的数量的数据元素组成。
MFMP流程图
图10示出了多因素多方投票协议的总体概述。
在图11至图13示出了本发明的另一实施例的布置。
实施例2-交易和选择文档
本实施例与第一实施例的多因素多方协议的不同之处在于,第一实施例将各方的投票记录为包括在投票交易的n之m多签名输出脚本中的投票的集合的组合,然而本实施例通过将投票方的投票作为投票交易的输入脚本的自变量而包括在内,要求投票方公开他们的投票。通过这样做,提供了以下优点:更直接地将一方与其投票联系起来,并允许一方独立于知道其他方的投票而签署交易。
在第一实施例中,各方的投票被存储在投票交易的n之m多签名输出脚本中。为了表明对他们的投票被表示在和/或记录在投票交易中的确认,每一方(例如,图11的各方A、B和C)将签署其投票交易的对应输入。虽然该签名可以看作是这样的确认,但在区块链中没有记录哪个投票属于哪个参与者。在某些情况下,此信息可能是有用的。同时,一方不能签署投票交易直到所有方都已对n之m多签名输出脚本贡献其投票为止。
第二实施例引入了第一实施例的多因素多方决策协议的变型,该变型解决了在这样的协议的投票交易中关于投票的一方的存储和确认所描述的限制。通过强制各方公开其投票以便访问用作投票交易的输入的资金来做到这一点。
为了实现这一点,假定在加密货币脚本中存在操作码,该操作码允许椭圆曲线(EC)“标量点乘法”。这进而要求去除加密货币脚本的200个操作码限制,并重新启用被禁用的操作码。上面详细提供了本实施例中使用的技术的描述,包括椭圆曲线(EC)密码学中的私钥-公钥关系的同态性质以及所提出的操作码。
本实施例的提出的协议与第一实施例的MFMP协议不同之处在于(投票)交易中的存储了投票的元素,并且随后,“如何和何时”可以进行签名以作为其选票已经被代表了的确认。
承诺交易
与第一实施例中的情况一样,第二实施例建立在下面4个核心交易上,承诺交易TC、支付交易TP、退款交易TR和投票交易TV。这四个交易的接口如图11所表示的那样。
承诺交易
如图11和图12所示,本实施例的承诺交易与第一实施例的不同之处在于,预计本实施例的承诺交易具有至少四个输出。第一输出是被转移到属于监督者的第二地址Sb的名义费用。该输出地址被用作利益相关者利用存储在区块链中的信息将承诺交易链接到投票交易的简便方法。更重要的是,它用作给予监督者对投票交易的管辖权的方式,因为这些输出也是投票交易的输入,这些输入需要签名。
承诺交易的第二输出(与第一实施例中的情况一样)是托管一定数量的硬币-因为决策树的“获胜”结果将接收这些托管硬币(或从这些托管硬币得到资助)。
第二实施例与第一实施例的不同之处还在于,其他输出(至少有两个)是属于投票方(例如,图11和图12中的各方A、B和C)的公共地址的输出。这些输出被设计为使得需要各方访问资金以产生他们相应的投票(以及公钥A的签名)。例如,如果一方A要花费承诺交易的A输出,则他/她将必须使投票交易的输入脚本中包括公钥QA,i=kA,iG的投票kA,i,从而在区块链上显示其投票kA,i。
考虑到一方可以就与其分配的因素有关的多种方式进行投票,因此,投票方(例如,一方A)的承诺交易的输出脚本<scriptPubKey>必须包括访问资金的若干选项,每个选项均基于投票方的选项中的一个。使用参考图9描述的多选项(嵌套if-else)高级脚本的结构,允许支付来自选项i的资金的条件(cond_i)的加密货币脚本为:
<basepoint G>OP_ECPMULT<QA,i>OP_EQUALVERIFY<pub A>OP_CHECKSIG
可以看出,该脚本利用了上面标题为“椭圆曲线有限域算术和OPCODE”下讨论的所提出的操作码OP_ECPMULT。
为了满足(cond_i),投票方A需要包括<datai>元素
<<sig A><kA,i>>
其中,sig A是公钥A的签名,kA,i是一方A的投票。
应该注意的是,一方A的投票显示在<datai>中,作为访问一方A的承诺交易的输出的过程的部分。
投票交易
第二实施例的投票交易(参见图11)通过承诺交易的Sb输出以及投票方的输出与承诺交易“链接”。承诺交易的这些输出是投票交易的输入。
预计投票交易本身将由监督者构建,然后传递给各方,以便每个部分都可以签署他们相应的输入。应当记得(根据上述承诺交易),签署其对投票交易的输入的一方要求显示该方的投票ka,i。
监督者签署其对投票交易的输入,然后将投票交易提交到区块链。
应当指出,每一方为其对投票交易的输入所使用/贡献的硬币是最低费用或象征性费用。投票交易更多的是意味着投票的不可变记录,而不是资金转移。
图13示出了多因素多方投票协议的总体概述。
现在转向图14,提供了可用于实践本公开的至少一个实施例的计算装置2600的说明性简化框图。在各种实施例中,计算装置2600可以用于实现以上示出和描述的任何系统。例如,计算装置2600可以被配置为用作数据服务器、网络服务器、便携式计算装置、个人计算机或任何电子计算装置。如图14所示,计算装置2600可以包括具有一个或多个级别的高速缓冲存储器和存储器控制器的一个或多个处理器(统称为2602),处理器可以被配置为与包括主存储器2608和永久存储装置2610的存储子系统2606通信。如图所示,主存储器2608可以包括动态随机存取存储器(DRAM)2618和只读存储器(ROM)2620。存储子系统2606和高速缓存存储器2602可以用于存储信息,例如与本公开中所描述的与交易和区块相关联的细节。(一个或多个)处理器2602可用于提供本公开中所描述的任何实施例的步骤或功能。
(一个或多个)处理器2602还可以与一个或多个用户接口输入装置2612、一个或多个用户接口输出装置2614以及网络接口子系统2616通信。
总线子系统2604可以提供用于使得计算装置2600的各个组件和子系统能够按预期彼此通信的机制。尽管总线子系统2604被示意性地示出为单个总线,但是总线子系统的替代实施例可以利用多个总线。
网络接口子系统2616可以提供至其他计算装置和网络的接口。网络接口子系统2616可以用作从远离计算装置2600的其他系统接收数据以及将数据传输到其他系统的接口。例如,网络接口子系统2616可以使数据技术人员能够将装置连接至网络,使得数据技术员可以在位于远程位置(例如,数据中心)的同时,将数据传输到装置并从装置接收数据。
用户接口输入装置2612可以包括一个或多个用户输入装置,例如,键盘;诸如集成鼠标、轨迹球、触摸板或图形输入板等定点装置;扫描仪;条形码扫描仪;合并到显示器中的触摸屏;诸如语音识别系统、麦克风等音频输入装置;以及其他类型的输入装置。通常,术语“输入装置”的使用旨在包括用于将信息输入到计算装置2600的所有可能类型的装置和机构。
一个或多个用户接口输出装置2614可以包括显示子系统、打印机或诸如音频输出装置等非可视显示器。显示子系统可以是阴极射线管(CRT)、诸如液晶显示器(LCD)、发光二极管(LED)显示器或投影仪或其他显示装置等平板装置。通常,术语“输出装置”的使用旨在包括用于从计算装置2600输出信息的所有可能类型的装置和机构。一个或多个用户接口输出装置2614可以用于例如呈现用户界面以有助于用户与执行所描述的过程的应用程序和其中的变体的交互,当这样的交互是适当的时。
存储子系统2606可以提供计算机可读存储介质,该计算机可读存储介质用于存储可以提供本公开的至少一个实施例的功能的基本编程和数据构造。当由一个或多个处理器执行时,应用程序(程序、代码模块、指令)可以提供本公开的一个或多个实施例的功能,并且可以被存储在存储子系统2606中。这些应用程序模块或指令可以由一个或多个处理器2602执行。另外,存储子系统2606可以提供用于存储根据本公开而使用的数据的存储库。例如,主存储器2608和高速缓存存储器2602可以为程序和数据提供易失性存储。永久存储装置2610可以为程序和数据提供永久性(非易失性)存储,并且可以包括闪存、一个或多个固态驱动器、一个或多个磁性硬盘驱动器、一个或多个具有相关的可移动介质的软盘驱动器、一个或多个具有相关的可移动介质的光驱(例如,CD-ROM或DVD或Blue-Ray)驱动器,以及其他类似的存储介质。这样的程序和数据可以包括程序以及数据,该程序用于执行如本公开中所描述的一个或多个实施例的步骤,该数据与本公开中所描述的交易和区块相关联。
计算装置2600可以是各种类型,包括便携式计算机装置、平板计算机、工作站或以下描述的任何其他装置。另外,计算装置2600可以包括可以通过一个或多个端口(例如,USB、耳机插孔、闪电连接器等)连接到计算装置2600的另一装置。可以连接到计算装置2600的装置可以包括被配置为接受光纤连接器的多个端口。因此,该装置可以被配置为将光信号转换为电信号,该电信号可以通过将装置连接至计算装置2600的端口传输以进行处理。由于计算机和网络不断变化的性质,为了说明该装置的优选实施例,图14中所描绘的计算装置2600的描述仅旨在作为特定示例。具有比图14中描绘的系统更多或更少的组件的许多其他配置是可能的。
应当注意,上述实施例说明而不是限制本发明,并且本领域技术人员将能够设计许多替代实施例,而不脱离由所附权利要求限定的本发明的范围。在权利要求中,括号中的任何附图标记都不应解释为对权利要求的限制。单词“包括”和“包含”等不排除任何权利要求或整个说明书中列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”是指“包括或由……组成”并且“包含”是指“包含或由……构成”。元件的单数形式并不排除此类元件的复数形式,反之亦然。本发明可以借助于包括几个不同元件的硬件以及借助于适当编程的计算机来实现。在列举几个装置的装置权利要求中,这些装置中的几个可以由一个且相同的硬件项来实施。在互不相同的从属权利要求中记载某些措施的事实并不意味着不能有利地使用这些措施的组合。
参考
Claims (15)
1.一种在区块链上做出决策的方法,其中,所述决策基于由多个参与者中的每一个做出的至少一个相应的选择,所述方法包括:
从多个参与者中的每一个接收相应的多个第一公钥,其中,每个所述第一公钥代表所述参与者的可能选择,并且通过具有同态性质的加密操作与对应的第一私钥相关;
借助于所述同态性质,将所述第一公钥进行组合以生成多个第二公钥,其中,每个所述第二公钥代表基于所述可能选择的组合的可能决策;
向所述多个参与者中的每一个传达多个第三公钥,其中,每个所述第三公钥对应于相应的所述第二公钥;
生成第一区块链交易,其中,所述第一区块链交易的输入是借助于相应数字签名可执行的脚本,所述相应数字签名与多个所述参与者中的每一个的相应的所述第一私钥相对应,其中,每个所述第一私钥代表由所述参与者做出的所述选择,并且所述第一区块链交易的输出是代表基于由所述参与者做出的所述选择的所述决策的脚本;以及
生成用于转移第一数字资产的第二区块链交易,其中,所述第二区块链交易的输出的执行需要与所述第三公钥相对应的数字签名,所述第三公钥与所述第一区块链交易的所述决策相对应。
2.根据权利要求1所述的方法,其中,所述第一区块链交易的输入是借助于监督者拥有的第四公钥可访问的脚本。
3.根据权利要求1所述的方法,其中,所述第一区块链交易的输出是借助于与监督者拥有的第五公钥相对应的数字签名可访问的多签名脚本。
4.根据权利要求3所述的方法,其中,多个所述第一私钥被存储在所述多签名脚本的公钥字段中。
5.根据前述权利要求中的任一项所述的方法,还包括:生成第三区块链交易,所述第三区块链交易具有与所述第一区块链交易的相应输入相对应的至少一个输出。
6.根据权利要求5所述的方法,其中,所述第三区块链交易的至少一个输出的执行需要与相应的所述第一私钥相对应的至少一个数字签名。
7.根据权利要求5所述的方法,其中,所述第三区块链交易的至少一个输出的执行需要至少一个所述第一私钥。
8.根据权利要求7所述的方法,其中,所述第三区块链交易的至少一个输出是将所述加密操作应用于所述第一公钥的脚本。
9.根据权利要求1至4中的任一项所述的方法,还包括:以加密的形式从所述参与者接收所述第一私钥。
10.根据权利要求1至4中的任一项所述的方法,还包括生成第四区块链交易,所述第四区块链交易用于在不执行所述第二区块链交易的情况下退还所述第一数字资产的至少一部分。
11.根据权利要求10所述的方法,其中,所述第四区块链交易是时间锁定的。
12.根据权利要求1至4中的任一项所述的方法,其中,所述加密操作是椭圆曲线标量乘法。
13.一种用于实现根据前述权利要求中的任一项所述的方法的计算机系统。
14.一种计算机实现的系统,包括:
处理器;以及
包括可执行指令的存储器,所述可执行指令由于处理器的执行而使系统执行根据权利要求1至12中任一项所述的方法。
15.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令由于由计算机系统的处理器来执行而使计算机系统至少执行根据权利要求1至12中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1800818.5 | 2018-01-18 | ||
GBGB1800818.5A GB201800818D0 (en) | 2018-01-18 | 2018-01-18 | Computer-implemented system and method |
PCT/IB2019/050179 WO2019142076A1 (en) | 2018-01-18 | 2019-01-10 | Computer-implemented decision making system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111656377A CN111656377A (zh) | 2020-09-11 |
CN111656377B true CN111656377B (zh) | 2024-11-12 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681301A (zh) * | 2016-01-16 | 2016-06-15 | 杭州复杂美科技有限公司 | 区块链上的结算方法 |
CN105827399A (zh) * | 2016-04-12 | 2016-08-03 | 金华鸿正科技有限公司 | 用于电子选举的数据处理方法 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681301A (zh) * | 2016-01-16 | 2016-06-15 | 杭州复杂美科技有限公司 | 区块链上的结算方法 |
CN105827399A (zh) * | 2016-04-12 | 2016-08-03 | 金华鸿正科技有限公司 | 用于电子选举的数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7500801B2 (ja) | コンピュータにより実施される意思決定システム及び方法 | |
KR102669763B1 (ko) | 블록체인 네트워크를 통해 엔티티에 의해 제공되는 데이터의 통신, 저장 및 처리를 위한 시스템 및 방법 | |
CN108833081B (zh) | 一种基于区块链的设备组网认证方法 | |
JP7449423B2 (ja) | ブラインド化された帰結選択のためのブロックチェーンで実装されるセキュリティー・システムおよび方法 | |
CN111164626A (zh) | 使用分布式协调的智能合约执行 | |
JP7428704B2 (ja) | デジタルリソースへのアクセスを移転するための、コンピュータにより実施されるシステム及び方法 | |
US11818266B2 (en) | Methods and systems for distributed cryptographically secured data validation | |
KR20180123709A (ko) | 블록체인에서 복수개의 거래를 기록하는 방법 및 시스템 | |
Bergquist | Blockchain technology and smart contracts: privacy-preserving tools | |
US20240005316A1 (en) | Method, apparatus, and computer-readable medium for authentication and authorization of networked data transactions | |
Bosamia et al. | Comparisons of blockchain based consensus algorithms for security aspects | |
JP2022504224A (ja) | 公開鍵結合検証を含む、コンピュータにより実施されるシステム及び方法 | |
Manu et al. | Blockchain components and concept | |
CN111656377B (zh) | 计算机实现的决策系统和方法 | |
Sharma et al. | Blockchain Revolution: Adaptability in Business World and Challenges in Implementation | |
Alruwaili et al. | Intelligent transaction techniques for blockchain platforms | |
JP2022531642A (ja) | ブロックチェーンで生成されたデータを認証する方法およびシステム | |
Banaeian Far et al. | A generic framework for blockchain-assisted on-chain auditing for off-chain storage | |
CN115053241A (zh) | 一次性通证 | |
US11924350B2 (en) | Cryptographically enforced partial blinding for distributed system | |
Rahman | Sancus: Cryptographic Audits for Virtual Currency Institutions | |
Louridas et al. | Report on Architecture for Privacy-Preserving Applications on Ledgers | |
Dréan | Bitcoin: an Innovative System | |
JPH09153103A (ja) | 追跡可能な電子現金実施方法及びその装置 | |
CN112069252A (zh) | 一种生成区块链的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |