CN113939800A - 用于伪随机数据生成的计算机实现的方法和系统 - Google Patents
用于伪随机数据生成的计算机实现的方法和系统 Download PDFInfo
- Publication number
- CN113939800A CN113939800A CN202080013811.9A CN202080013811A CN113939800A CN 113939800 A CN113939800 A CN 113939800A CN 202080013811 A CN202080013811 A CN 202080013811A CN 113939800 A CN113939800 A CN 113939800A
- Authority
- CN
- China
- Prior art keywords
- data
- participants
- digital signature
- item
- script
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
公开了一种伪随机生成数据的方法。所述方法包括从多个第一参与者接收第一数据项(s′1s′2...s′N)以及将所述第一数据项组合以生成第二数据(∑is′i)。对所述第二数据应用单向函数以生成第三数据(∑is′i),其中所述单向函数适于接收输入数据并基于所述输入数据生成输出数据,其中不能从所述输出数据和所述单向函数推断出所述输入数据。
Description
技术领域
本公开总体涉及伪随机数据生成,并且更具体地涉及伪随机数生成。本公开特别适合,但不限于,用于区块链交易的伪随机数生成。
背景技术
在本文中,“区块链”一词涵盖所有形式的基于计算机的电子分布式分类账。这些分类账包括基于共识的区块链和交易链技术、许可和非许可的分类账、共享分类账,及其变体。虽然已提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账。为了方便和说明的目的,在本文中可能会提及比特币。但应注意,本公开不限于与落入本公开范围内的比特币区块链以及替代的区块链实施方案和协议一起使用。“用户”一词在本文中可指人员或基于处理器的资源。
区块链是一种点对点的电子分类账,其实现为基于计算机的去中心化的分布式系统,所述系统由区块组成,而区块又由交易组成。每个交易都是一种数据结构,所述数据结构对所述区块链系统参与者之间的数字资产控制权的转移进行编码,并且包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值,因此区块被链接在一起,以创建自所述区块链创建以来写入其中的所有交易的永久性且不可更改的记录。交易包括嵌入到其输入和输出中的小程序,称为脚本,这些脚本指定如何以及由谁访问所述交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)进行工作以确保每个交易均有效,而无效交易则被网络拒绝。安装在所述节点上的软件客户端通过执行其锁定和解锁脚本对未花费的交易输出(UTXO)执行此验证工作。如果所述锁定和解锁脚本的执行评估为真,则所述交易有效,将所述交易写入所述区块链。因此,为了将交易写入所述区块链,所述交易必须:i)由接收所述交易的第一个节点进行验证—如果所述交易通过验证,则此节点将其中继到网络中的其他节点;ii)添加到由矿工建造的新区块中;iii)已开采,即,添加到过去交易的公共分类账中。
虽然区块链技术最广为人知的是用于加密货币实现,但数字企业家已经开始探索如何利用比特币所基于的加密安全系统和可以存储在区块链上的数据来实现新系统。如果区块链可以用于加密货币领域之外的自动任务和过程,则会非常有利。这类解决方案将能够发挥区块链的优势(例如,永久及防篡改的事件记录、分布式处理等),同时其应用将更加广泛。
全球彩票行业正在持续增长,这主要得益于互联网和移动设备应用的发展。
用户关注的主要问题,特别是在线彩票平台,与服务提供商的公平性和信任度有关。当在线彩票由第三方构建时,参与者既不能确定中奖是否存在,也不能确定彩票本身是否受到操纵。在这样的彩票中,用户不能保证用来选择中奖者的过程是随机和安全的。
区块链为第一个问题(中奖资金是否存在)提供了一个可能的解决方案。如果彩票被构建为区块链上的多方交易,则所有参与者都可以验证头奖是否存在,而区块链的性质意味着在分布式公共分类账上存在这一事实的不可变的记录。区块链的这种使用还解决了其他一些问题,如允许即时兑现奖金、不受限跨境参与以及监控彩票所涉资金的能力。
接下来,需要找到一种方法来确保在基于区块链的彩票中选择中奖者的随机性和安全性。通过使用区块链作为这类应用的平台来避开在线彩票固有的两个核心问题是可取的。
在基于区块链的彩票的最新示例中,值得一提的是Quanta,公开于K.Farris,S.Ormond-Smith,L.Hills,Quanta Whitepaper(2018),https://www.quantaplc.im/ Quanta.pdf,在以太坊区块链上操作,以及TrueFlip,公开于N.Parkhomenko,K.Katsev,TrueFlip Whitepaper(2016).https://trueflip.io/TrueFlip%C2%A9% 20Whitepaper.pdf?new。TrueFlip协议中的随机性是通过使用确认的区块哈希来生成的,这些哈希被合并到(开源)算法中来生成中奖号码。
尽管存在去中心化和透明度的因素,如用于随机生成中奖号码的开源代码,但许多进程都受发明了TrueFlip协议的实体控制,并且涉及大量链下交易。
总的来说,有待解决的主要问题之一是找到可靠且经过验证的熵源,以及与区块链操作和脚本兼容的密码学安全随机数生成器。
可以想象的是,新的操作码,如提议的“OP_DETERMINISTICRANDOM”,公布于P.Strateman,New Opcodes(2016.https://www.elementsproject.org/elements/ opcodes/,可以用于在脚本中生成随机数。目前提出的这些解决方案并没有消除问题,而是激励良好的行为,并且所述激励是可调节的。
然而,抛开这些提议的解决方案的具体技术问题不谈,所有这些解决方案从根本上来说都是有问题的,因为它们需要在现有的比特币脚本库中引入新的操作码。这是不可取的,因为它增加了底层区块链的攻击面,这削弱了将其用作彩票和游戏平台的理由。
因此,期望提供一种生成随机数的方法,以便在区块链上使用。
发明内容
现在已设计出这种改进的解决方案。
因此,根据本公开,提供了一种如所附权利要求中所限定的方法。
根据本公开,可提供一种伪随机生成数据的方法,该方法包括:
从多个第一参与者中的每一个接收第一数据,所述第一数据包括至少一个相应的第一数据项;
将多个所述第一数据项组合以生成第二数据;以及
对所述第二数据的至少一部分应用至少一个单向函数以生成第三数据,其中所述或每个所述单向函数适于接收输入数据并基于所述输入数据生成输出数据,其中不能从所述输出数据和所述单向函数推断出所述输入数据。
通过对来自多个第一参与者的数据应用至少一个单向函数,此操作的优势是第三数据不能被任何第一参与者预测并且因此是伪随机的。在区块链交易的情况下,这提供了支持伪随机数据/伪随机数生成、而无需显著的计算开销的进一步优势。
可以加密形式从所述第一参与者接收所述第一数据。
此操作的优势是通过提供安全通信来增进安全性。
该方法可进一步包括从多个所述第一参与者中的每一个接收第四数据,所述第四数据包括至少一个相应的第四数据项,其中所述或每个所述第四数据项是通过对所述第一参与者对应的所述或每个相应的所述第一数据项应用至少一个单向函数来生成的。
此操作的优势是能够通过验证第一数据项未被更改来增进安全性。
该方法可进一步包括将所述第四数据提供到多个所述第一参与者。
此操作的优势是使所述第一参与者能够独立地检查所述第一数据未被更改。
至少一个所述单向函数可以是哈希函数。
至少一个所述单向函数可以将密码学系统的相应公私密钥对的公钥和私钥关联起来。
密码学系统可以是椭圆曲线密码学系统。
在区块链交易的情况下,此操作的优势是使可用于其他目的的哈希函数能够易于使用。
至少一个所述第一数据项可包括相应的第一数字签名的至少一部分。
此操作的优势是能够使用数字签名算法生成随机整数,从而除了由以上定义的方法生成的随机性之外,还能够将随机性添加到所述第一数据项的生成中。
至少一个所述第一数据项可包括基于私钥和临时密钥的相应的第一数字签名的至少一部分。
该方法可进一步包括从多个所述第一参与者中的每一个接收至少一个相应的第二数字签名,其中所述第二数字签名使用与相应的所述第一数字签名相同的私钥进行签名。
此操作的优势是能够验证第一数字签名和第二数字签名两者都已使用相同的私钥进行了签名,从而能够验证第一数据未被更改。此外,在区块链交易的情况下,可以使用脚本中的数字签名算法轻松进行签名验证。
该方法可进一步包括从多个所述第一参与者中的每一个接收第五数据,所述第五数据包括相应的第五数据项,其中所述第五数据项是对应的所述第一数字签名的一部分,并且所述第一数字签名是通过将所述第五数据项与所述对应的所述第一数据项组合而构成的。
该方法可进一步包括将所述第五数据发送到多个所述第一参与者。
此操作的优势是使每个第一参与者能够独立地检查所述第一数据项未被更改。
至少一个所述第五数据项可包括基于临时密钥的相应的第一数字签名的至少一部分。
此操作的优势是易于由区块链脚本中的数字签名算法生成,并且通过为第一数据的生成添加进一步的随机性来进一步增进安全性。
该方法可进一步包括在生成所述第三数据之后将所述第一数据发送到多个所述第一参与者。
此操作的优势是能够验证用于生成第三数据的机制。
第三数据可构成可通过包含所述第一数据项的脚本进行兑现的区块链交易的一部分。
此操作的优势是在执行脚本时自动使所述第一数据项在区块链上公开,从而自动使生成第三数据的进程可验证。
所述脚本的执行可从所述第一数据项再生成(regenerate)所述第三数据。
此操作的优势是有效验证生成第三数据的进程。
可以通过多个所述单向函数生成第三数据。
此操作的优势是增进安全性。
可通过重复应用至少一个所述单向函数来生成第三数据。
此操作的优势是增进安全性。
可以通过多个第二参与者生成第三数据。
此操作的优势是增进安全性,因为一个诚实的第二参与者提供了足够的随机性,使得该进程能够成功执行。
该方法可进一步包括基于所述第三数据从多个项中选择一个项。
所述选择可包括选择密码学系统的公钥-私钥对中的公钥,其中至少一个所述参与者可以访问所述对中的私钥。
本公开还提供了一种系统,包括:
处理器;以及
存储器包括可执行指令,所述指令被处理器执行时,使系统执行本文描述的计算机实现的方法的任何实施例。
本公开还提供了一种非暂时性计算机可读存储介质,其上存储有可执行指令,计算机系统的处理器执行所述可执行指令时,使得所述计算机系统至少执行本文所述的计算机实现的方法的实施例。
附图说明
本公开的这些方面和其他方面将从本文所述的实施例中变得显而易见,并参考本文所述的实施例进行阐述。现将仅通过举例的方式并参考附图对本公开的实施例进行说明,其中:
图1是使用体现本公开的方法伪随机生成数字的比特币脚本;
图2是体现本公开的区块链彩票的发起交易;
图3是体现本公开的区块链彩票的预言机交易;
图4是本公开的另一个实施例的区块链彩票的预言机交易;
图5是体现本公开的区块链彩票的中奖-兑现交易;
图6是用于兑现图4中的预言机交易所占用的资金的比特币脚本;并且
图7是示出可实现各种实施例的计算环境的示意图。
具体实施方式
区块链上的随机性
期望设想一种用于将随机进程合并到区块链中的新方法,以便允许基于运气的游戏算法进入比特币脚本。这意味着所提供的方法应确保将在脚本中生成和使用的随机数具有以下属性:
(1)不可预测性:在将资金投入到基于运气的事件之前,用于确定结果的随机数不应是可预测的。
(2)确定性:生成的随机数应在初始生成后始终可以从相同的输入中再现。
(3)可验证性:所有节点都应该能够再现和验证所选的随机数,以便所有节点都同意已生成的数字。
本申请中提出的方法可确保在区块链上生成随机数时保持上述所有属性。“比特币”一词可包括源自比特币协议的协议的任何变体。
基本概念
伪随机数生成器
一般来说,随机数分为两类:真随机数和伪随机数。区别在于真随机性很难实现,通常依赖于自然进程或电噪声。
另选地,通过使用单个高熵种子值VSeed(真随机)以初始化生成伪随机数序列Nk的算法来实现伪随机性,其中k是随机数生成器的周期
VSeed→(N1,N2,…,Nk)。
对于大多数实际应用,如果伪随机数生成器的属性合适,则使用伪随机数生成器。在区块链上合并了随机性的情况下,还要求伪随机数生成机制是密码学安全的。按照通常的定义,这称为CSPRNG(密码学安全伪随机数生成器cryptographically-secure pseudo-random number generator)。
一般来讲,CSPRNG是确定性的,因此产生任何知道VSeed的人都可以验证的数字序列。除了两个核心问题外,这样的生成器适用于区块链应用。
首先,需要将冗长算法从已知的CSPRNG合并到比特币脚本语言中,这将增加计算开销,并限制算法生成随机数函数的机会。
此外,仍然存在一个问题,即是否能够提供种子值VSeed,该值的熵足以被归类为真随机。目前,既不存在用于在脚本中生成这样的种子的机制,也不存在以满足生成的随机数不可预测的要求(1)的方式使用外部种子作为兑现脚本的输入的机制。
哈希函数
哈希函数(如SHA-256)的行为就像单向随机预言机一样,这一点应该得到理解。也就是说,如果哈希Y是从用户不知道的原像X计算出来的,则用户要求X在计算上是困难的。
哈希函数的一个特性是,两个256位数据结构的哈希值仅在一个位的值上不同,可以被视为完全不相关。换句话讲,哈希值相对于用户表现为真随机数,只要该用户不知道其整个原像。
这意味着可以简单地取哈希值Y(或它的某个函数),并将其视为拟生成的单个随机数,前提是没有任何一方可以控制整个输入原像X
R:=R且:=Y=H(X);对于未知的X。
通过扩展,可以通过使用相同参数对初始随机数R0进行重复哈希来生成(k+1)个随机值的随机数序列SR
R0=H(X0);R1=H(R0);Rk=H(Rk-1),
SR=(R0,R1,…,Rk)。
还应该注意的是,由于哈希函数是确定性的,因此任何一方都可以在只知道所使用的特定哈希函数和初始原像X0(初始原像在此充当种子)的情况下再现整个序列SR。
如果在生成随机序列时公开了该初始原像,则任何节点都可以独立验证该序列对应于该原像。
很明显,可以使用哈希函数来生成要在脚本中使用的满足上述标准(1)和(2)的随机数序列,前提是参与生成随机数的任何一方都不能操纵整个初始原像X0。
替代的单向函数
一般而言,本申请中使用术语“哈希函数”来指代更广泛的函数类中的单向函数的特定类型,因为哈希函数在比特币脚本中具有现有的操作码。然而,可以想象的是,可以使用替代的单向函数来代替本文哈希函数的任何实例。两个示例包括:
1.椭圆曲线(EC)点乘–函数E(x)=x·G,其用于从私钥生成EC公钥,其中G是椭圆曲线基点,并且“·”是EC点乘运算符。这是单向函数,因为在给定x,G的情况下很容易计算E(x),但在给定E(x),G的情况下很难确定x。
2.拉宾函数–函数R(x)=x2mod N,其中N=pq,p,q都是素数。求平方R(x)对N取模很容易,而在给定R(x),N的情况下求平方根±x则与分解N以求p,q一样困难,这在计算上是困难的。
数字签名
考虑玩家Alice,她希望使用她的私钥SA为消息哈希H(m)创建数字签名。根据ECC(椭圆曲线密码学Elliptic curve cryptography,使用secp256k1标准定义的椭圆曲线),Alice有与她的私钥相关联的公钥PA,其中G是n阶椭圆曲线基点
PA=SA·G。
(Rx,Ry)=k·G,
r=Rx。
然后结合Alice的私钥、她的哈希消息和临时密钥,由此推导出签名的部分s
s=k-1(H(m)+SA*r)mod n。
通过连接(concatenate)r和s,创建了称为消息哈希的ECDSA数字签名的数据结构
Sig PA=(r,s)。
分别给定值r和s,可以使用操作符OP_CAT在比特币脚本中构建完整签名。当签名被重建时,它必须是比特币脚本中使用的标准DER(可区别编码规则,公开于S.Blake-Wilson,D.Brown,P.Lambert,Use of Elliptic Curve Cryptography(ECC)Algorithms inCryptographic Message Syntax(CMS),Network Working Group(2002)https:// tools.ietf.org/html/rfc3278)格式[附录5.1]。当使用下面讨论的签名方法生成随机数时,这一点变得非常重要。
方法
所提议的使用区块链生成随机数的一般方法有三种变体。每种方法都需要多方的参与来创建随机数。
第一种方法使用哈希原像的组合来生成安全随机数,而第二种方法使用来自多个签名的s-分量的组合。最后,提出了这两种方法的混合算法。
在每种情况下,它都旨在产生安全的随机整数RN∈{0,N-1}。
哈希方法
考虑以玩家的形式出现的N个第一参与者,每个参与者都公开自己的哈希值Yi=H(Xi),其中规定每个玩家选择自己的秘密原像Xi形式的第一数据项。哈希函数的属性允许假设在已知公共哈希值的情况下,没有玩家能够猜到另一个玩家的原像。
然后,玩家将他们的秘密原像Xi以预言机的形式发送给第二参与者(该方法推广到两种类型的预言机;盲人预言机或其他类型的预言机)。这可以例如经由在国际专利申请WO 2017/145016中概述的秘密值分配技术来实现,但是可以使用任何提供用于将原像传送到预言机的安全信道或机制的方法。
然后,预言机经由以下方法产生随机数RN。
1.对于每个玩家提供的原像,预言机验证Yi=H(Xi)。
应该记得,在将原像发送到预言机之前,哈希值已公开。这可确保预言机得到每个玩家最初提供的正确原像。在区块链上,这些公共值是不可变的,因此玩家在发送原像后无法更改。
这个验证步骤确保预言机不会继续生成随机数,直到所有玩家都向它提供了他们选择的秘密原像。
2.预言机将RN计算为
应该回顾一下,RN相对于每个玩家都是随机数,前提是没有玩家知道所有N个原始原像值Xi。
在本方法中,所有原像都由玩家保密,并安全地传达给预言机。这意味着恶意方不可能知道所有这些输入,除非他们控制了所有参与的玩家。在这种情况下,对手将很容易操纵仅供自己使用的随机数。
在所有其他场景中,至少有一个真正的玩家,哈希函数的描述属性意味着它们不能以有利的方式操纵RN。即使对手控制了所有N-1个其他玩家,也是如此。因此,任何一方都无法影响由此方法生成的随机数,从而对另一方产生不利影响。应该注意的是,在这种情况下已使用了原像Xi的加法“+”求和,因为这在比特币脚本中很容易实现,但也可以使用不同的运算符如串联,类似于上面的求和。
现在有随机数RN以下述方式生成:(1)是进程中涉及的任何一方都不可预测的;以及(2)可经由确定性进程再现。下面将表明,也满足上面提出的最终要求,即随机数是(3)可验证的。一个扩展是,预言机也可以通过对RN的重复哈希来生成随机数序列。
签名方法
现在考虑以N个玩家的形式出现的第一参与者,每个玩家都公开签名SigPi以及随机值r′i,其构成第二签名SigPi′的一部分,该签名的s′-分量是保密的。
Sig Pi=(ri,si),
Sig Pi′=(r′i,s′i)。
使用相同的私钥Si对两个签名进行签名(通过上文提及的相同的ECDSA标准)是至关重要的,以便可以验证两个签名对应于公钥Pi的同一所有者
Pi=Si·G。
然后,玩家以预言机的形式将第一数据项(以其秘密s′i值的形式)发送给第二参与者,这同样经由秘密共享方法来完成,例如国际专利申请WO 2017/145016中所述的那样,或以其他方式安全地完成。
然后,预言机经由以下方法产生随机数RN。
1.预言机构建Sig Pi′并验证它对应于与每个玩家的Sig Pi相同的实体。
该第二签名是通过使用DER标准将公共r′i值与秘密s′i值连接起来构建的,如附录1所示。然后,预言机将标准ECDSA签名验证算法应用于这两个签名,并确认它们是由公钥Pi的所有者共同签名的。这确保另一方无法通过为给定的r′i值提供自己的签名来影响随机数。
2.预言机将RN计算为
预言机以第一数据项的总和的形式生成第二数据,然后以第二数据的哈希形式生成第三数据。由于单向哈希函数与ECC中从私钥生成公钥的单向进程类似,因此这继承了上述哈希方法中概述的相同属性。
如果替换了Yi→Pi和Xi→s′i,则类推是很清楚的,上述哈希方法步骤2中给出的注释也适用于当前情况。
与上述哈希方法一样,现在已经以对所涉及的任何一方都是不可预测的和可验证的、满足上面概述的标准(1)和(2)的方式生成了随机数RN。
应当明确的是,签名方法和哈希方法彼此直接类似,并且共享它们用于随机数生成的相应方法的核心属性。具体地,这两种方法都要求每个用户负责分别为哈希方法和签名方法生成秘密值Xi和s′i。这里使用签名方法的另一个优势在于,在ECDSA程序下,选择秘密的行为已经标准化,而选择任意哈希原像则没有标准化。
在签名方法中,通过与附带的主签名Sig Pi=(ri,si)的比较,已经由对应公共值r′i的原始提议者提供了一种直接验证发送给预言机的秘密值s′i的方法。这种验证只是哈希方法中的一种隐式验证。
在脚本中计算RN
在这两种情况下,随机数RN都满足上述(1)不可预测性和(2)确定性的要求。下面详细描述本公开的方法如何满足随机数为(3)可验证的第三标准。
这意味着需要有一种方法让所有网络对等点独立验证RN是否以正确的方式生成。这是通过要求在交易的锁定脚本中计算和使用RN本身来实现的。以这种方式,所有先前秘密的s′i值都作为该脚本的一部分发布在区块链上,这意味着任何人都可以通过构建哈希函数∑is′i的输入原像来验证随机数。
建议使用以下形式的脚本来生成所需的随机整数RN∈{0,N-1}:
<RN>=<s′1><s′2>…<s′N>OP_ADD…OP_ADD OP_HASH256<N>OP_MOD,其中N-1次使用运算符“OP_ADD”并且存在N个秘密值。
在本申请中介绍的应用中,将使用<RN>来指代此脚本。需注意,此脚本可用于广义秘密值,包括哈希原像、部分签名和这些的组合。图1示出了如何使用此脚本生成随机数。
交易的完整兑现脚本可包括验证每个原像对应于正确提交的哈希,验证每个秘密签名分量与公共分量组合以构成预期签名,以及验证每个所提供的值来自正确的玩家[附录2]。
组合方法
目前为止提出的方法对恶意方试图影响产生的随机数的结果具有鲁棒性。然而,为了增进生成的随机数的安全性和不可预测性,可以通过多种方式对哈希方法和签名方法进行扩展和组合。
这两种方法的最简单组合是让每个玩家发布哈希值Yi以及签名Sig Pi、随机值r′i和他们的公钥Pi。然后预言机可能产生随机值为
其中每个玩家还私下计算了副签名Sig Pi′=(r′i,s′i)。“+”运算符可以是本申请中所有求和的加法或串联。还应注意的是,这里的加法或连接运算符“+”可以在另一实施方案中替换为另一运算符如XOR。
如果希望单独扩展这两种方法中的一种,则可以强制调用多个预言机,并且玩家每个人都提供多个哈希值Yi或第二r′i值。例如,如果使用哈希方法调用两个预言机,则随机数RN可以计算为
其中第一预言机将一组原像Xi,1的总和发送给第二预言机,第二预言机将该总和与第二组原像Xi,2的总和相加,并计算随机数。
通过调用多个预言机,可以消除恶意用户以某种方式破坏预言机的风险。将此扩展到大量预言机可以降低所有预言机串通的风险,但代价是更大的计算和时间开销。
应该注意的是,这些方法确保只需要一个预言机是真实的,就可以安全且不可预测地生成随机数。
应用
描述了本应用中所描述的随机数生成方法的用例。第一应用是在涉及N个玩家的区块链彩票的背景下,这是在有或没有一方充当“主持”的情况下考虑的。第二应用是针对N面的中本聪骰子游戏,玩家可以通过该游戏参与简单的有主持的运气游戏。考虑使用区块链生成随机数的更一般用途。
彩票
彩票的结构包括三个交易
(i)发起交易
(ii)预言机交易
(iii)中奖-兑现交易
并将调用一个预言机来安全地生成随机数,该随机数用于将中奖资金锁定给PW。
在这种彩票中,确保每个玩家都有均等的机会以1/N的概率赢得N×x个比特币,其中x是彩票的初始买入值。
如果“主持”作为彩票的一部分被包括在内,这种情况也被单独考虑,如果中奖方没有领取奖金,则他们可以收回彩票资金。
在这种情况下,每个玩家都有机会以1/(N+1)的概率赢得r+(N×x)个比特币,其中r是主持的买入贡献。
发起交易
1.每个玩家都为发起交易贡献共同价值的x比特币,作为他们对区块链彩票的买入。此交易将包括N个输入和1个输出,并代表所有参与者的区块链彩票的数字销售点。
2.除了买入之外,每个玩家还包括公共值作为输入,该值位于标准OP_DROP语句中。该值将取决于要使用的随机数生成方法。
对于该实施方案,使用签名方法,因此所提供的值是随机值r′i,该随机值构成签名Sig Pi′=(r′i,s′i),签名的s′i-组分是保密的。
3.最后,每个玩家都提供他们的公钥Pi和与公钥对应的签名Sig Pi=(ri,si)。所有玩家都这样做,直到交易包含足够的输入以产生单个N×x输出。该输出将支付给与预言机PO对应的公钥。
在图2中示出发起交易的结构。
预言机交易
1.每个玩家都将他们的秘密s′i发送给预言机。
甚至在发起交易发生之前,就已经决定了预言机。预言机可以是可信第三方,是一种为特定目的建造的TEE(可信执行环境trusted execution environment,专门为执行特定功能或某种其他形式的预言机的已知代码而建造的硬件)。
2.预言机检查每个副签名Sig Pi′=(r′i,s′i)和每个主签名Sig Pi=(ri,si)对应于与公钥Pi相关联的相同密钥对。
3.预言机构建交易。该交易使用发起交易的UTXO作为其唯一输入,并将整个N×x比特币资金锁定到单个中奖公钥。中奖密钥PW是使用随机数PN随机选择的,该随机数是在此预言机交易的锁定脚本中生成的。
图3的输出脚本(如下所示,也由<PW>表示)用于从N个参与密钥Pi的集合中随机选择中奖公钥。它由较早的脚本<RN>播种,该脚本原位计算选择中奖密钥的随机数
<PW>=<P1><P2>…<PN><RN>OP_ROLL OP_TOALTSTACK
OP_DROP…OP_DROP OP_FROMALTSTACK,
其中N-1次使用运算符“OP_DROP”并且存在N个公钥。
在锁定脚本的前两行中,根据脚本的<RN>部分产生的值来对参与的公钥集进行操作。然后,脚本只需要签名Sig PW。预言机交易的锁定脚本只会占用中奖资金,中奖公钥PW的所有者对中奖资金进行签名。应注意的是,公钥在这个锁定脚本中出现的顺序必须与它们在发起交易中出现的顺序一致,否则预言机可通过对公钥重新排序来操纵结果。
有主持的彩票
在此应用中,已构建N-玩家彩票,其中没有一方充当“主持”。可能需要将此概念扩展到这种彩票,以确保资金不会在比特币生态系统中简单地丢失和浪费。例如,如果一方希望构建彩票和报价,通过承担所涉及的开销(如设置用户界面、实例化预言机或寻找参与者)来充当主持,则他们可能希望被激励这样做。这种激励可以采用超时机制的形式,这种机制会将彩票的中奖资金送到主持那里。实施此彩票将涉及N个玩家贡献x比特币和一个主持贡献r比特币。如果预言机交易被修改为采用图4中列出的形式,那么在某个约定的超时时间ΔTE过去后,主持将能够收回全部彩票资金并支付给他们的公钥PH。
在图4的预言机交易中,锁定脚本已被修改为包含超时失效保险,如果中奖方未在约定时间之前领取奖金,则这将允许作为主持的一方使用彩票资金。以蓝色突出显示的锁定脚本部分允许这种情况发生。在这种包括主持的区块链彩票中,每个玩家都有机会以1/(N+1)的概率赢得r+(N×x)个比特币,其中r是主持的买入贡献。这种向彩票加入主持的概念可以扩展到不一定有中奖者的彩票,例如各个国家的国家彩票,方法是包含一组与主持相对应的公钥。如果这些密钥中有一个被选中,彩票就会滚动。
中奖-兑现
一旦预言机交易被记录在区块链上,中奖公钥PW的所有者就可以使用中奖资金。图5中示出了这种类型的有效交易。
此交易的解锁脚本包含与中奖公钥对应的签名Sig PW。当解锁预言机交易所占用的资金时,兑现交易(scriptSig)的此输入将与先前预言机构建的交易的锁定脚本(scriptPubKey)一起运行。图6中示出这两段脚本的组合,表明中奖玩家只需提供与中奖公钥PW对应的签名,即可使用N×x比特币中奖资金。
N-面中本聪骰子
本申请的方法的第二应用是包括发牌员和一个玩家的游戏。这个游戏相当于玩家正确猜出N面骰子的掷骰结果。很明显,这个游戏只是上面概述的一般区块链彩票应用的两方例。在这里,一方充当发牌员,另一方充当玩家。
在此场景中,以下步骤将描述如何进行游戏
1.玩家做出自己的猜测c∈{0,N-1}。此猜测被计算为
c=H(XP)mod N
2.发起交易提交来自玩家的YP=H(XP)并且YD=H(XD),它们的原像将作为输入参数,以确定试验T的结果,该试验代表N面本聪骰子被抛出。此交易支付给预言机,包括玩家的金额x比特币和发牌员的中奖回报R比特币。
3.如国际专利申请WO 2017/145016中所述,使用秘密值分布技术将原像XP和XD发送到预言机。然后,预言机构建交易,将游戏资金锁定到中奖公钥PW。
T=H(XP+XD)mod N。
4.如果c=T,则玩家可通过使用预言机交易的输出来兑现中奖资金x+R比特币。否则,中奖资金可由发牌员兑现。
根据本申请前面的讨论,已成功生成了随机数RN:=T,它满足标准(1)-(3),并且已被用于确定运气游戏的结果。应该注意的是,上面描述的哈希方法可能更适合此应用,因为它允许更容易地根据玩家的偏好进行猜测。
平均而言,玩家在达到他想要的猜测值之前,可以计算最多N个任意原像XP的哈希值,然后可以将其提交到游戏中。以这种方式设置的运气游戏给了玩家1/N的机会赢得x+R比特币,其中相关收益R可能是x的函数。
播种其他发生器
上面已经展示了如何使用比特币区块链协议在脚本中安全地生成随机数。在所介绍的彩票应用中,已提议将这些随机数立即用于交易中的函数,而不是将它们用于其他地方,即用于某些链下用途。
本申请中描述的方法推广到通过安全的、基于共识的和透明的协议生成随机数的最简单情况。
例如,如果一方或一个组织希望产生随机数来为链下进程播种,则他们可以使用本文中介绍的一种或多种方法来做到这一点。该方仅需通过构建类似于用于彩票应用的交易流程来继续进行,但无需将大量资金与进程的全局输入和输出相关联。通过这种方式,该方可以使用区块链产生随机数RN或序列SR,这样机制、种子(即秘密值s′i的线性组合)和结果都被透明地记录在区块链公共分类账上。
现在转到图7,提供了可用于实施本公开的至少一个实施例的计算设备2600的说明性简化框图。在各种实施例中,所述计算设备2600可用于实现以上示出和说明的任何系统。例如,所述计算设备2600可配置为用作数据服务器、网络服务器、便携式计算设备、个人计算机或任何电子计算设备。如图7所示,计算设备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或蓝光)以及其他类似的存储介质。这样的程序和数据可以包括用于执行如在本公开中描述的一个或多个实施例的步骤的程序以及与在本公开中描述的交易和区块相关联的数据。
计算设备2600可以是各种类型的,包括便携式计算机设备、平板电脑、工作站或下文描述的任何其他设备。另外,计算设备2600可包括可通过一个或多个端口(例如,USB、耳机插孔、闪电连接器等)连接至计算设备2600的另一设备。可以连接到计算设备2600的设备可以包括被配置为接受光纤连接器的多个端口。因此,该设备可以被配置为将光信号转换成电信号,所述电信号可经由将该设备连接至计算设备2600进行处理的端口传输。由于计算机和网络的不断变化的性质,图7所示的计算设备2600的描述仅用作说明设备的优选实施例的特定示例。可能存在比图7所示系统的组件更多或更少的许多其他配置。
应当注意的是,上述实施例是说明而不是限制本公开,并且本领域技术人员在不脱离由所附权利要求书所限定的本公开的范围的情况下将能够设计许多替代实施例。在权利要求书中,括号中的任何附图标记都不应解释为对权利要求的限制。词语“包括”等不排除任一项权利要求或说明书中整体列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”是指“包含”或“由......组成”。元件的单数形式并不排除此类元件的复数形式,反之亦然。本公开可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个装置的设备权利要求中,这些装置中的几个装置可以由同一硬件来体现。在互不相同的从属权利要求中引用某些措施的事实并不意味着不能有利地使用这些措施的组合。
附录
1.签名的DER编码
2.验证脚本
i.原像验证
以下脚本可用于验证所提供的原像Xi中的每一个都对应于正确的预提交哈希值Yi,作为脚本内进程。
<Verify 1>=<Y1><X1>OP_SHA256 OP_EQUAL…<YN><XN>OP_SHA256 OP_EQUAL
ii.签名验证
以下脚本可用于验证所提供的第二签名Sig P′i和第一签名Sig Pi中的每一个都对应于公钥Pi,同样作为脚本内进程。
<Verify 2>=<P1>OP_DUP<Sig P1>OP_SWAP OP_CHECKSIG<s′1><r′1>OP_CAT OP_SWAP OP_CHECKSIG…<P1>OP_DUP<Sig PN>OP_SWAP OP_CHECKSIG<s′N><r′N>OP_CAT OP_SWAP OP_CHECKSIG
参考文献
Claims (23)
1.一种伪随机生成数据的方法,所述方法包括:
从多个第一参与者中的每一个接收第一数据,所述第一数据包括至少一个相应的第一数据项;
将多个所述第一数据项组合以生成第二数据;以及
对所述第二数据的至少一部分应用至少一个单向函数以生成第三数据,其中所述或每个所述单向函数适于接收输入数据并基于所述输入数据生成输出数据,其中不能从所述输出数据和所述单向函数推断出所述输入数据。
2.根据权利要求1所述的方法,其中所述第一数据是以加密形式从所述第一参与者接收的。
3.根据权利要求1或2所述的方法,所述方法进一步包括从多个所述第一参与者中的每一个接收第四数据,所述第四数据包括至少一个相应的第四数据项,其中所述或每个所述第四数据项是通过对与所述第一参与者对应的所述或每个相应的所述第一数据项应用至少一个单向函数来生成的。
4.根据权利要求3所述的方法,所述方法进一步包括将所述第四数据发送到多个所述第一参与者。
5.根据前述任一项权利要求所述的方法,其中至少一个所述单向函数为哈希函数。
6.根据前述任一项权利要求所述的方法,其中至少一个所述单向函数涉及密码学系统的相应的公钥-私钥对中的公钥和私钥。
7.根据权利要求6所述的方法,其中所述密码学系统为椭圆曲线密码学系统。
8.根据前述任一项权利要求所述的方法,其中至少一个所述第一数据项包括相应的第一数字签名的至少一部分。
9.根据权利要求8所述的方法,其中至少一个所述第一数据项包括相应第一数字签名的至少一部分,其中所述部分基于私钥和临时密钥。
10.根据权利要求8或9所述的方法,所述方法进一步包括从多个所述第一参与者中的每一个接收至少一个相应的第二数字签名,其中所述第二数字签名使用与对应的所述第一数字签名相同的私钥进行签名。
11.根据权利要求8至10中任一项所述的方法,所述方法进一步包括从多个所述第一参与者中的每一个接收第五数据,所述第五数据包括相应的第五数据项,其中所述第五数据项是对应的所述第一数字签名的一部分,并且所述第一数字签名是通过将所述第五数据项与所述对应的所述第一数据项组合而构成的。
12.根据权利要求11所述的方法,所述方法进一步包括将所述第五数据发送到多个所述第一参与者。
13.根据权利要求11或12所述的方法,其中至少一个所述第五数据项包括基于临时密钥的相应第一数字签名的至少一部分。
14.根据前述任一项权利要求所述的方法,所述方法进一步包括在生成所述第三数据之后将所述第一数据发送到多个所述第一参与者。
15.根据权利要求14所述的方法,其中所述第三数据构成通过脚本可兑现的区块链交易的一部分,所述脚本包含所述第一数据项。
16.根据权利要求15所述的方法,其中所述脚本的执行从所述第一数据项再生成所述第三数据。
17.根据前述权利要求中任一项所述的方法,其中所述第三数据是通过多个所述单向函数生成的。
18.根据前述权利要求中任一项所述的方法,其中所述第三数据是通过重复应用至少一个所述单向函数生成的。
19.根据前述权利要求中任一项所述的方法,其中所述第三数据是通过多个第二参与者生成的。
20.根据前述任一项权利要求所述的方法,所述方法进一步包括基于所述第三数据从多个项中选择一个项。
21.根据权利要求20所述的方法,其中所述选择包括选择密码学系统的公钥-私钥对中的公钥,其中至少一个所述参与者可访问所述对的私钥。
22.一种计算机实现的系统,包括:
处理器;以及
存储器,包括可执行指令,其中,所述处理器执行所述可执行指令时,使得所述系统执行根据权利要求1至21中任一项所述的计算机实现的方法的任何实施。
23.一种非暂时性计算机可读存储介质,其上存储有可执行指令,计算机系统的处理器执行所述可执行指令时,使得所述计算机系统至少执行根据权利要求1至21中任一项所述的方法的实施。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1901893.6 | 2019-02-11 | ||
GBGB1901893.6A GB201901893D0 (en) | 2019-02-11 | 2019-02-11 | Computer implemented system and method |
PCT/IB2020/050599 WO2020165669A1 (en) | 2019-02-11 | 2020-01-27 | Computer implemented method and system for pseudo-random data generation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113939800A true CN113939800A (zh) | 2022-01-14 |
Family
ID=65998539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080013811.9A Pending CN113939800A (zh) | 2019-02-11 | 2020-01-27 | 用于伪随机数据生成的计算机实现的方法和系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20220129249A1 (zh) |
EP (1) | EP3924810A1 (zh) |
JP (1) | JP2022520593A (zh) |
KR (1) | KR20210123393A (zh) |
CN (1) | CN113939800A (zh) |
GB (1) | GB201901893D0 (zh) |
SG (1) | SG11202108168PA (zh) |
TW (1) | TW202040486A (zh) |
WO (1) | WO2020165669A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2597955A (en) * | 2020-08-11 | 2022-02-16 | Nchain Holdings Ltd | Pseudo-ramdom selection on the blockchain |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778069A (en) * | 1996-04-10 | 1998-07-07 | Microsoft Corporation | Non-biased pseudo random number generator |
US6934846B2 (en) * | 2003-01-22 | 2005-08-23 | Walter Szrek | Method of generating unpredictable and auditable random numbers |
SG11201805472RA (en) | 2016-02-23 | 2018-07-30 | Nchain Holdings Ltd | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys |
-
2019
- 2019-02-11 GB GBGB1901893.6A patent/GB201901893D0/en not_active Ceased
-
2020
- 2020-01-27 EP EP20704943.8A patent/EP3924810A1/en active Pending
- 2020-01-27 US US17/429,734 patent/US20220129249A1/en active Pending
- 2020-01-27 KR KR1020217028765A patent/KR20210123393A/ko unknown
- 2020-01-27 WO PCT/IB2020/050599 patent/WO2020165669A1/en unknown
- 2020-01-27 JP JP2021547304A patent/JP2022520593A/ja active Pending
- 2020-01-27 SG SG11202108168PA patent/SG11202108168PA/en unknown
- 2020-01-27 CN CN202080013811.9A patent/CN113939800A/zh active Pending
- 2020-02-06 TW TW109103730A patent/TW202040486A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
TW202040486A (zh) | 2020-11-01 |
SG11202108168PA (en) | 2021-08-30 |
US20220129249A1 (en) | 2022-04-28 |
EP3924810A1 (en) | 2021-12-22 |
GB201901893D0 (en) | 2019-04-03 |
JP2022520593A (ja) | 2022-03-31 |
WO2020165669A1 (en) | 2020-08-20 |
KR20210123393A (ko) | 2021-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3449452B1 (en) | Implementing logic gate functionality using a blockchain | |
JP7428704B2 (ja) | デジタルリソースへのアクセスを移転するための、コンピュータにより実施されるシステム及び方法 | |
JP2022075949A (ja) | ブロックチェーンIoT装置のためのオペレーティングシステム | |
JP2023109981A (ja) | 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 | |
EP3718069A1 (en) | Blockchain system for confidential and anonymous smart contracts | |
CN110520881A (zh) | 使用区块链的安全数据记录分发的方法和系统 | |
KR20210135495A (ko) | 블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법 | |
CN115918030A (zh) | 使用区块链的可证明公平的游戏 | |
Li et al. | Metaopera: A cross-metaverse interoperability protocol | |
Chen et al. | A blockchain-based signature exchange protocol for metaverse | |
CN115485042A (zh) | 使用区块链的可证明公平的游戏 | |
CN113939800A (zh) | 用于伪随机数据生成的计算机实现的方法和系统 | |
Clark et al. | Research perspectives and challenges for bitcoin and cryptocurrencies | |
EP3954101A1 (en) | Computer implemented method and system for knowledge proof in blockchain transactions | |
TWI838514B (zh) | 區塊鏈交易中知識證明之電腦實行方法及系統 | |
KR102248890B1 (ko) | 공개 블록체인에 기초한 추첨 및 그것의 검증을 위한 시스템 및 방법 | |
Alleman | Randomness and Games on Ethereum | |
JP2024073535A (ja) | ブロックチェーンを用いる論理ゲート機能の実装 | |
Zhao et al. | Blockchain-Based Key Management Scheme Using Rational Secret Sharing. | |
TW201947482A (zh) | 用以使用區塊鏈來執行基元式互換之電腦實施系統及方法 | |
WO2023214152A1 (en) | Computer implemented systems and methods | |
Sama | Universally Composable Zero-knowledge Protocol Using Trusted Platform Modules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |