CN111466100A - 用于多方生成基于区块链的智能合约的系统和方法 - Google Patents

用于多方生成基于区块链的智能合约的系统和方法 Download PDF

Info

Publication number
CN111466100A
CN111466100A CN201880081012.8A CN201880081012A CN111466100A CN 111466100 A CN111466100 A CN 111466100A CN 201880081012 A CN201880081012 A CN 201880081012A CN 111466100 A CN111466100 A CN 111466100A
Authority
CN
China
Prior art keywords
computing entity
elliptic curve
curve points
computing
polynomial
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.)
Granted
Application number
CN201880081012.8A
Other languages
English (en)
Other versions
CN111466100B (zh
Inventor
亚历山卓·科瓦奇
西蒙·马蒂奥
帕特里克·蒙特利斯基
史蒂芬·文森特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from GBGB1720768.9A external-priority patent/GB201720768D0/en
Priority claimed from GBGB1813770.3A external-priority patent/GB201813770D0/en
Priority claimed from GBGB1813772.9A external-priority patent/GB201813772D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Priority to CN202311311745.5A priority Critical patent/CN117478315A/zh
Publication of CN111466100A publication Critical patent/CN111466100A/zh
Application granted granted Critical
Publication of CN111466100B publication Critical patent/CN111466100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本文描述的系统和方法涉及允许多个当事方共同生成或共同商定用于生成智能合约的参数(例如验证密钥)的技术。智能合约的执行可以由第三方执行,例如区块链网络上的工作节点。本文描述的技术可以用作协议的一部分,在该协议中,智能合约的各方以如下方式来共享秘密的幂:允许各方确定相同的公共参考字符串、就智能合约的参数达成一致、同意和/或按比例贡献智能合约及其组合。智能合约可以发布到区块链网络(例如,比特币现金)。该协议可以是零知识协议。

Description

用于多方生成基于区块链的智能合约的系统和方法
技术领域
本发明总体上涉及多个(例如,两个以上)当事方之间智能合约的执行,更具体地涉及智能合约的验证密钥由智能合约的两个及以上当事方共同生成的实现方式,并且第三方(例如,区块链网络上的工作节点)被用于以可计算验证的方式执行智能合约。第三计算实体可以生成智能合约的正确执行的证明,该证明可以用于解锁由第一计算实体和第二计算实体所锁定(encumbered)的数字资产。本发明特别适合但不限于在区块链网络(例如基于比特币的区块链网络)中使用。
背景技术
区块链可以指点对点的电子账本,其被实现为基于计算机的、去中心化的分布式系统,该系统由区块组成,区块又可以由交易和其他信息组成。在一些示例中,“区块链交易”是指对字段值的结构化集合进行编码的输入消息,该字段值的结构化集合包括数据和条件集合,其中满足条件集合是将字段集写入区块链数据结构的先决条件。例如,对于比特币,每个交易是对区块链系统中参与者之间的数字资产的控制转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。在一些实施例中,“数字资产”是指与使用权相关联的二进制数据。数字资产的示例包括比特币、以太币(ether)和莱特币(Litecoins)。在一些实现中,可以通过将数字资产的至少一部分从第一实体重新关联到第二实体来执行数字资产的转移控制。区块链的每个区块可以包含前一区块的散列(hash),如此,这些区块被链接在一起,以创建所有交易的永久的、不可更改的记录,这些交易自区块链诞生之始写入区块链。交易包含小程序,这些小程序称为脚本,嵌入至交易的输入和输出中,这些小程序指定了如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
尽管区块链技术因使用加密货币实现方案而广为人知,但数字企业家已经开始探索使用比特币所基于的加密安全系统和可以存储在区块链上的数据,以实现新系统。如果区块链能够用于不局限于加密货币领域的自动化任务和过程,那么将是非常有利的。这类解决方案能够利用区块链的优势(例如,事件的永久防篡改记录、分布式处理等),同时在其应用中更具通用性。
本发明描述了一个或多个基于区块链的计算机程序的技术方面。基于区块链的计算机程序可以是记录在区块链交易中的机器可读和可执行程序。基于区块链的计算机程序可以包括规则,该规则可以处理输入以产生结果,然后可以根据这些结果执行动作。当前研究的一个领域是使用基于区块链的计算机程序来执行“智能合约”。与用自然语言编写的传统合约不同,智能合约可以是计算机程序,该计算机程序旨在使机器可读合约或协议条款的执行自动化。
发明内容
因此,期望通过交换可用于确定两个及以上当事方之间共享秘密的幂的数量,为区块链上的多方验证密钥记录提供协议。在各种实施例中,可以希望智能合约的两个及以上当事方交换数量,该数量可用于确定包括验证密钥和评估密钥的公共参考字符串。在各种实施例中,本文描述的技术允许两个及以上当事方交换共享秘密的幂,而无需使用加密技术(诸如加密),并且也无需当事方建立通信通道,该通信通道要求对通过该通信通道交换的数据的保密性提供加密可验证的保证。
现在已经设计出这样一种改进的方案。
因此,根据本发明,提供了如所附权利要求中定义的系统和方法。
根据本发明,可以提供一种用于区块链网络的节点的计算机实现的方法,该计算机实现的方法包括在第一计算实体处:至少部分地基于第一多项式和至少两个椭圆曲线点,确定第二计算实体的椭圆曲线点集;使该椭圆曲线点集的子集对第二计算实体可用;接收使用第二多项式生成的第二椭圆曲线点集;至少部分基于第一集合和第二集合来确定秘密的幂;至少部分地基于秘密的幂,确定公共参考字符串,该公共参考字符串包括验证密钥和评估密钥,其中该公共参考字符串也可由第二计算实体确定作为第一计算实体向第二计算实体提供子集的结果;以及生成智能合约,该智能合约包括由第一计算实体提供的第一交易输入和由第二计算实体提供的第二交易输入,其中由第三计算实体正确执行智能合约使得第三计算实体能够使用智能合约的输出生成区块链交易。
如上所述的椭圆曲线点集可以包括第一多项式的幂的对应椭圆曲线点(例如,每个多项式的幂的椭圆曲线点)。
优选地,第一多项式可以至少为2阶。
优选地,上述子集是椭圆曲线点集。此外,除非另有说明或与上下文矛盾,否则对应集合的术语“子集”不一定表示对应集合的适当子集,而是子集和对应集合可以相等。
秘密可以在第一计算实体和第二计算实体之间共享,无需使用加密保护的通信通道。
第一计算实体和第二计算实体可以共同确定第一数字资产和第二数字资产。
优选地,本文描述的一些或所有方法还可以包括:基于第三多项式和至少两个椭圆曲线点,确定第二计算实体的第三椭圆曲线点集;使第三椭圆曲线点集的第二子集对第二计算实体可用;接收第四椭圆曲线点集;至少部分地基于第三集合和第四集合来确定参数,该参数也可由第二计算实体来确定作为第一计算实体向第二计算实体提供第二子集的结果;并且其中公共参考字符串的确定还至少部分地基于该参数。
优选地,本文描述的一些或所有方法还可以包括使用沙米尔秘密共享方案(Shamir’s Secret Sharing Scheme)在第一计算实体和第二计算实体之间共享椭圆曲线参数。
优选地,本文描述的一些或所有方法还可以包括使用迪菲·赫尔曼方案(Diffie-Hellman scheme)(例如,使用迪菲·赫尔曼密钥交换算法)在第一计算实体和第二计算实体之间交换标量参数。
智能合约可以包括支付脚本散列(P2SH)类型的解锁脚本,该解锁脚本允许第三计算实体响应于提供正确执行的有效证明来解锁第一数字资产和第二数字资产。
第一计算实体可以通过链外通信通道使椭圆曲线点集的子集对第二计算实体可用。
第二多项式对于第一计算实体可以是不可访问的。
优选地,至少两个椭圆曲线点是两个不同的椭圆曲线点。
还期望提供一种系统,包括:处理器;和包括可执行指令的存储器,可执行指令由于被处理器执行而使得系统执行如权利要求所述的任何方法。
还期望提供一种非暂时性计算机可读存储介质,其上存储有可执行指令,可执行指令由于被计算机系统的一个或多个处理器执行而使得计算机系统至少执行如权利要求所述的任何方法。
附图说明
参考本文描述的实施例,本发明的这些和其他方面将变得显而易见并得以阐述。现在将仅通过示例并参考附图来描述本发明的实施例,其中:
图1示出了计算环境,其中智能合约的多个当事方与第三方签订协议以执行智能合约;
图2示出了计算环境,其中第一计算实体和第二计算实体交换数量,该数量可用于确定两个及以上当事方之间的共享秘密的幂;
图3示出了计算环境,其中第一计算实体和第二计算实体交换参数集,该参数集呈现零知识;
图4示出了基于双方公共参考字符串(CRS)和相应的正确性证明(POC)或正确执行的证明的协议的示意图;
图5示出了根据实施例的用于生成双方公共参考字符串的过程,该双方公共参考字符串包括验证密钥和评估密钥;
图6示出了根据至少一个实施例的用于在多个当事方之间共享共享秘密的幂的过程;和
图7示出了计算设备的简化框图,该计算设备可用于实践本发明的至少一个实施例。
具体实施方式
图1示出了可以在其中实现各种实施例的区块链环境;
本发明描述了可用于实现系统和方法的技术,该系统和方法允许多个当事方安全地共享群组的元素,该群组的元素的指数或乘法系数取决于共享秘密的幂。数量可以被共享,使得多个当事方交换基于共享秘密(例如,共享秘密的幂)的数量,而无需暴露该共享秘密。因此,在各种实施例中,多个n个参与者建立共享秘密的幂(例如,在乘法情况下<si>G)的表示。
在实施例中,智能合约的两个当事方使用利用本文描述的技术和方法的协议来共享数量,该数量可以被当事方用来确定共享秘密的幂,而无需共享秘密本身,也无需泄露信息,该信息允许另一个计算实体(例如,不是智能合约的一方的计算实体)来确定秘密。在一个实施例中,协议包括智能合约的第一方计算传输到智能合约的第二方的第一参数集,该第二方计算第二参数集并将这些参数提交给第一方,其中,在如上所述的参数交换之后,双方能够计算相同的公共参考字符串,该公共参考字符串包括验证密钥。然后,双方可以就交易达成一致,在该交易中,他们向智能合约按比例贡献数字资产,该数字资产被锁定到一个地址(例如,区块链网络的工作节点的地址),并且可以被解锁(例如,被花费)。在实施例中,智能合约的当事方之间的链外通信限于参数(该参数用于生成公共参考字符串)的交换,同时确保安全性得到维护(例如,秘密值不被非智能合约当事方的对手方或其他计算实体基于交换的参数泄露或以其他方式确定)。在实施例中,双方(或者,在更一般的情况下,两个或以上当事方)利用共享共享秘密的幂的技术,例如以本文件中其他地方(例如结合图1-7)描述的方式。
可以参考图1,其示出了其中可以实践本发明的各种实施例的示例计算环境100。本文描述的系统和方法可以涉及智能合约的各方交换数量的协议,第一和第二计算实体可使用该协议来计算相同的公共参考字符串。图1示出了计算环境100,其包括交换参数集的第一计算实体102和第二计算实体104,该参数集允许第一计算实体和第二计算实体两者确定公共参考字符串108。各方可以利用公共参考字符串来生成智能合约110,该智能合约110锁定数字资产,该数字资产由任一或两个计算实体贡献作为交易输入。公共参考字符串可以包括评估密钥112和验证密钥112。智能合约110可以发布到区块链(例如图1所示的区块链118)。智能合约110可以由第三计算实体106执行,该第三计算实体不是智能合约106的当事方。作为执行智能合约的一部分或者与执行智能合约相关联,第三计算实体(例如,工作者)可以至少部分地基于公共参考字符串的评估密钥来生成智能合约的正确执行的证明116。正确执行的证明116可以由任何合适的计算系统(例如,智能合约的各方或充当验证者节点的区块链网络的节点)在计算上进行验证。在实施例中,第四计算实体(例如,验证者计算机系统)利用验证密钥114来验证发布到区块链网络118的证明是正确的。
根据至少一个实施例,第一计算实体102和第二计算实体104是作为智能合约的当事方的计算机系统。智能合约的当事方可以指两个及以上计算实体,其同意(例如,根据通过相关联的用户输入设备提供的用户输入)关于智能合约的执行的条款。第一计算实体102和第二计算实体104都可以就智能合约达成一致,并且向智能合约贡献交易输入,使得智能合约的各个交易输入被锁定脚本锁定(encumbered),由于工作节点提供了智能合约的正确执行的证明,该锁定脚本可以被解锁(例如,被花费)。本文描述的系统和方法涉及使锁定脚本能够保护验证密钥VK不被篡改并检查证明π的有效性,从而允许在交易验证期间在区块链上执行零知识协议。
在各个实施例中,第一计算实体102和第二计算实体104可以在实施例中通过交换消息集合来达成智能合约,该消息集合对智能合约的参数(诸如日期、时间、条件和动作(例如,数字资产的控制转移))进行编码,该智能合约的参数用于控制智能合约的执行。例如,智能合约(例如,可执行程序)可以确保当事方避免特定航班的延误,并且该程序的执行可以包括使用外部数据(例如特定日期特定商业航班的航班信息)来确定特定航班是否延误。如果航班延误,程序的当事方可能会收到资产的转移(例如,提供针对延误的旅行保险的智能合约)。
在实施例中,智能合约110以高级编程语言编码为源代码,例如C、C++或Java。这些仅仅是说明性的示例,智能合约可以使用其他合适的编程语言来进行编码。在实施例中,软件(诸如编译器、解释器和/或汇编器)可以用于将智能合约110转换为由“线”组成的算术电路,该“线”携带来自域
Figure BDA0002539667620000081
的值并连接到加法门和乘法门。应当注意,算术电路是指可以由物理电路实现的逻辑电路,该物理电路包括通过物理导线连接的一系列物理门(例如,使用晶体管-晶体管逻辑(TTL)集成电路(诸如7400系列门、触发器、缓冲器、解码器、多路复用器等))。尽管在图1的上下文中和其他地方描述了智能合约110的执行,但是智能合约的使用仅仅是可以被转换成算术电路的源代码的一个非限制性示例。在实施例中,客户端(例如,第一计算实体102,单独或与第二计算实体104结合)确定用于执行任务的源代码,该任务由操作集合定义,其中任务的执行被委托给第三计算实体106(称为工作者或证明者)。一般来说,验证者可以执行与确定证明者正确执行任务相关联的任务,例如通过验证证明者生成的正确执行的证明116的有效性。
可验证计算是一种允许生成计算证明的技术。在实施例中,客户端利用这种技术,将对输入x上的函数f的评估外包给另一计算实体(本文中称为证明者)。在一些情况下,客户端在计算上受到限制,使得客户端无法执行函数的评估(例如,使用客户端可用的计算资源的计算的预期运行时间超过最大可接受阈值),尽管情况并非如此,一般来说,客户端可以基于任何合适的标准,例如计算运行时间、计算成本(例如,分配计算资源以执行函数的评估的财务成本)等,委托对输入x的函数f的评估。
在实施例中,证明者是任何合适的计算实体(例如在本发明的其他地方更详细描述的区块链节点)。在实施例中,证明者(例如,区块链节点)评估输入x上的函数f,并生成输出y和输出y的正确性证明π,该证明π可以由其他计算实体(诸如如上所述的客户端和/或区块链网络的其他节点)来进行验证。证明(也可以称为自变量)可以比进行实际计算更快地被验证,因此,通过验证证明的正确性,而不是在输入x上重新计算函数f以确定由上述证明者生成的输出的正确性,可以减少计算开销(例如,减少与供电和运行计算资源相关的功率开销和成本)。在零知识可验证计算中,证明者向客户端提供认证,证明者知道具有特定属性的输入。
零知识证明的有效变体是zk_SNARK(Succinct Non-interactive ARgument ofKnowledge,简洁的非交互式知识论证)。在实施例中,所有基于配对的zk SNARKs包括一个过程,其中证明者使用通用的群组运算来计算若干个群组元素,并且验证者使用若干个配对乘积方程式来检查证明。在实施例中,线性交互式证明在有限域上工作,证明者和验证者的消息包括、编码、引用或以其他方式包括可用于确定域元素的向量的信息。
在实施例中,第一计算实体和/或第二计算实体通过交换消息集合(例如一个或多个布尔表达式)来就智能合约的执行条款达成一致,该消息集合对用于执行智能合约的建议参数进行编码,该布尔表达式对确定是否和/或如何执行智能合约的条件集合以及基于满足的条件执行的操作集合进行编码。在实施例中,一个计算实体向第二计算实体发送参数集作为协议的一部分,并且第二计算实体确定该参数对于智能合约是否可接受。如果参数不被接受,则第二计算实体可以向第一计算实体提供不同的参数集,作为用于执行智能合约的第二建议参数集。第二计算实体还可以提供第一参数集不可接受的信号,并且第一计算实体确定要提供的第二参数集。在任一种情况下,一旦所有当事方都用信号表示同意参数,在实施例中,任一计算实体都可以生成锁定交易,其中输出之一被程序(例如,智能合约脚本)锁定,并将其发送给智能合约的对手方。锁定交易可以指初始化约束的交易,基于该约束,解锁交易可以被验证。在一些示例中,“解锁交易”是指区块链交易,该区块链交易将数字资产的至少一部分(由先前交易的UTXO表征)重新关联(例如,转移所有权或控制权)到与区块链地址相关联的实体。
在实施例中,第一计算实体生成锁定交易,并添加交易输入,该交易输入覆盖一部分工作者费用。应该注意的是,此时由于交易输入的值不等于锁定交易的交易输出的值,因此锁定交易尚未生效。继续使用该示例,当第二计算实体接收到锁定交易时,第二计算实体验证智能合约(例如,验证用于执行智能合约的公共参考字符串和参数),并且将输入添加到锁定交易,并且解锁UTXO以向发行者传送商定的数字资产以及要向工作者支付的用于执行程序(例如,智能合约)的费用和向工作者转移具有费用值的输出。在第一计算实体和第二计算实体都向智能合约贡献交易输入的情况下,智能合约可以由双方共同拥有,并且智能合约的转让(例如,交换或销售)可能需要来自双方的认证。
智能合约110可以由第三计算实体106(例如区块链网络的节点)执行。第三计算实体106可以被称为工作者或证明者。在实施例中,工作者通过至少执行计算任务来执行智能合约,该计算任务涉及输入上的函数的计算。在实施例中,工作者是任何合适的计算机系统,智能合约的所有者可以将计算任务委托给该计算机系统。在实施例中,输入包括认证工作者身份的信息,例如使用与工作者相关联的私钥生成的数字签名。在实施例中,工作者是计算机系统,第一和第二计算实体同意向该计算机系统转移数字资产,以作为成功完成计算任务的回报。在实施例中,智能合约的所有者向证明者提供输入x和评估密钥EK112,证明者使用计算例程的评估模块来计算输出y(即,y=f(x),其中输入是x,函数是f),并且使用评估密钥EK来产生正确执行的证明116,其在本发明的其他地方也可以称为正确性证明。在实施例中,工作者是包括硬件和/或软件的计算机系统,该硬件和/或软件包括指令,该指令如果由计算机系统的一个或多个处理器执行,则使计算机系统评估QAP的内部电路线的值,并且产生QAP的输出y。
在实施例中,输出y、内部电路线(或其子集)的值和评估密钥EK用于产生正确性证明。证明π可以存储在区块链上并由多个当事方验证,无需工作者与多个当事方单独交互。通过这种方式,第四计算实体(例如,验证者计算机系统)可以使用公共验证密钥VK114和证明π来验证已广播的交易,从而验证智能合约。在某些情况下,如果验证失败,智能合约的所有者可以收回被已广播的交易锁定(encumbered)的数字资产。在某些情况下,智能合约的所有者可以执行对证明的验证。
在实施例中,根据上文和/或下文描述的技术生成验证密钥114和相应的证明116。因此,给验证者提供验证密钥VK和证明π:
Figure BDA0002539667620000111
Figure BDA0002539667620000112
使得验证者计算多个椭圆曲线乘法(例如,对每个公共输入变量使用一个乘法)和五个配对检验,其中一个配对检验包括额外的配对乘法。
在给定验证密钥VK、证明π和(a1,a2,…,aN)的情况下,为了验证t(x)除以p(x),和(xN+1,…,xm)=f(x0,…,xN),验证者进行如下操作。首先,检验所有三个α项:
Figure BDA0002539667620000121
Figure BDA0002539667620000122
Figure BDA0002539667620000123
其中,
Figure BDA0002539667620000124
并且
Figure BDA0002539667620000125
Figure BDA0002539667620000126
然后,验证者检验项目β:
Figure BDA0002539667620000127
并且
Figure BDA0002539667620000128
最后,验证者检验可除性要求:
Figure BDA0002539667620000129
其中
Figure BDA00025396676200001210
Figure BDA00025396676200001211
并且
Figure BDA00025396676200001212
因此,根据一个实施例,在考虑来自上述部分的符号和本发明中描述的示例后,该验证包括以下元素的配对检验集合:
Figure BDA00025396676200001213
Figure BDA00025396676200001214
Figure BDA00025396676200001215
Figure BDA00025396676200001216
Figure BDA00025396676200001217
图2示出了计算环境200,其中第一计算实体202和第二计算实体204交换数量,该数量可用于确定两个及以上当事方之间共享秘密的幂。第一计算实体202和第二计算实体204可以交换数量(如图2中所示的水平箭头下方所示),该数量用于计算相同的公共参考字符串。在实施例中,第一计算实体和第二计算实体是区块链网络的节点,其与结合图1所描述的那些节点一致。根据至少一个实施例,设
Figure BDA0002539667620000131
是域上的函数,并且设
Figure BDA0002539667620000139
是相应的算术电路,以及
Figure BDA0002539667620000132
为相应的QAP(二次算术程序),大小为m,次数(degree)为d。此外,设
Figure BDA0002539667620000133
是双线性映射,并且G是
Figure BDA0002539667620000134
的生成器。在实施例中,选择加法表示(与指数表示相反)。在实施例中,通过以下方式选择评估密钥和验证密钥:选择随机的
Figure BDA0002539667620000135
并设置ry=rv·rw,rv·G=<gv>(通常:<a>=a·G),以及相应地<gw>,<gy>,以构造密钥:
Figure BDA0002539667620000136
VK=(<1>,<αv>,<αw>,<αy>,<γ>,<βγ>,<t(s)>,{<vk(s)><wk(s)><yk(s)>}k∈{0}∪[N])
其中N=Nin+Nout,即输入和输出的数量。在考虑非对称配对的实施例中,配对映射将被定义为:
Figure BDA0002539667620000137
Figure BDA0002539667620000138
的生成器Gi。在这种情况下,CRS将略有变化,并且VK将
VK
=(<1>1,<1>2,<αv>2,<αw>2,<αw>1,<αy>2,<β>1,<β>2,<ryt(s)>1,{<vk(s)>1<wk(s)>2<yk(s)>1}k∈{0}∪[N])
其中ry=rv·rw且<a>i=a·Gi
如所指出的,电路通过多项式v,w来描述,而多项式又是在秘密s中评估,该秘密s只为拥有/创建电路和相应的QAP的当事方(例如,智能合约的所有者)所知。
更准确地说,如上所述,客户端生成以下元素:
Figure BDA0002539667620000141
尽管所提出的解决方案的安全性依赖于参数s,但是在一些实施例中,暴露剩余的(rv,rwvwy,β,γ)可以揭露信息,该信息不使系统呈现零知识和/或客户端不希望其他实体知道。
在实施例中,对于要求工作者提供正确性证明的解决方案,可以存在用于对照验证密钥来验证该正确性证明的OP_code(或等效码)。
应该注意的是,在整个本发明中,除非另有说明,否则本文中的多项式是在域
Figure BDA0002539667620000142
上定义的。因此,设
Figure BDA0002539667620000143
为域。因此,
Figure BDA0002539667620000144
上的多项式由下式给出
Figure BDA0002539667620000145
Figure BDA0002539667620000146
其中
Figure BDA0002539667620000147
在实施例中,公共参考字符串通过在秘密s中评估的多项式v(x),w(x)来表示,表示为如下形式:
v(s)=a0+a1s+a2s2+…+ansn
w(s)=b0+b1s+b2s2+…+bnsn
在实施例中,本文描述的技术用于确定和共享以下形式的椭圆曲线点:<v(s)>G=<a0>G+<a1s>G+<a2s2>G+…,该椭圆曲线点用于相关群组(例如,椭圆曲线点)的生成器G。因此,在实施例中,本文描述的系统和方法用于确定和分配任意整数幂r的srG=<sr>G
根据至少一个实施例,图2中示出了共享和分配<sr>G的技术。作为示例,下面结合图2更详细地描述了n=2的情况,并且该情况应该被认为是共享智能合约各方之间的秘密的幂的非限制性示例。此外,应注意,在本文描述的各个实施例中,阈值的等效值是先验给出的,并且假设必要数量的参与者首先同意。
图2示出了根据至少一个实施例的在两个参与者的情况下共享和分配共享秘密的幂的技术。如图2所示,根据至少一个实施例,恰好两个当事方(即,n=2的情况)是共享共享秘密的幂的参与者。第一和第二计算实体可以分别被称为A和B。在实施例中,A和B可以交换以下信息:A向B发送<p1(xi)>G,并反过来接收<p2(xi)>G(i∈{1,2})。这样,双方都可以计算
<p(xi)>G=<p1(xi)+p2(xi)>G
使用拉格朗日插值(Lagrange interpolation)(拉格朗日多项式,n.d.),p可以用p(x1)和p(x2)来表示:
Figure BDA0002539667620000151
并且,通过,通过<p(xi)>G,扩展<p(x)>G(参见WP0559)。虽然参与者不能重建p(x),但他们可以通过交换的点<pi(xj)>G来重建<p(x)>G(特别是<p(0)>G)。对于<pn(x)>G的更高的幂也是如此。作为多项式公式(多项式定理,n.d.(Multinomial Theorem,n.d.))的结果:
Figure BDA0002539667620000152
对于m=2,这变成
Figure BDA0002539667620000153
反过来,这产生了下列项的“塔(tower)”(这里i=1,2):
Figure BDA0002539667620000161
示意性地,交换可能如下所示(对于某些xi):
Figure BDA0002539667620000162
在该交换之后(遵循某些预先安排的约定),双方可以计算<pn(xj)>G,尤其是<pn(0)>G=<sn>G
图3示出了计算环境300,其中第一计算实体302和第二计算实体304交换参数集,该参数集使协议(例如结合图1描述的那些)呈现零知识。根据各种实施例,公共验证密钥可以采取以下形式:
VK
=(<1>1,<1>2,<αv>2,<αw>2,<αw>1,<αy>2,<β>1,<β>2,<ryt(s)>1,{<vk(s)>1<wk(s)>2<yk(s)>1}k∈{0}∪[N])
尽管所提出的解决方案的安全性依赖于参数s,但是在一些实施例中,暴露其余(rv,rwvwy,β,γ)可以揭示不会使系统呈现零知识和/或客户端不希望其他实体知道的信息。因此,在实施例中,使用结合图3描述的技术来共享一些或所有剩余参数,该一些或所有剩余参数用于生成验证密钥306。
在实施例中,根据本发明中其他地方描述的技术(例如结合图1、图2和图4讨论的技术),在第一计算实体302和第二计算实体304(可以分别称为A和B)之间交换多项式。因此,在实施例中,第一计算实体302计算并向第二计算实体304共享椭圆曲线点集
Figure BDA0002539667620000171
第二计算实体304计算并向第一计算实体302共享椭圆曲线点集
Figure BDA0002539667620000172
此外,用于生成验证密钥306的其他参数可以不以明文格式在通信通道上公开,而是使用下文描述的技术来传输。
根据实施例,设Gi
Figure BDA0002539667620000174
的生成器,并且对于p=v,w,y,<pk(s)>i=rp·pk(s)·Gi。此外,在实施例中,
Figure BDA0002539667620000173
被共享,并且以确保参数秘密性的方式(例如,加密或其他隐藏技术)传播其他参数。需要注意,任何一个参与者都可以相反地生成参数
Figure BDA0002539667620000175
并将该参数离线或在线(例如,链上)传递给另一参与者。关于前者——即确保其他参数的保密性——可以使用各种技术。例如,通过使用沙米尔的秘密共享方案(Shamir’s Secret Sharing Scheme,简称4S)来共享元素<αv>2,<αw>2,<αw>1,<αy>2(并且可能地<β>1,<β>2,取决于实现/协议)和/或对于rv,rw,β,γ使用类似迪菲-赫尔曼(Diffie-Hellman)的秘密生成。
在实施例中,元素<αv>2,<αw>2,<αw>1,<αy>2,<β>1,<β>2或它们的某种组合是<a>i=a·Gi的形式。与s的情况一样,每个参与者i生成多项式qi,在xj,j∈{1,…,m}中对其进行评估,并与参与者j共享相应的qi(xj)。因此,每个参与者可以确定
Figure BDA0002539667620000181
并且具体地q(0)·Gi=<q(0)>i,其中q(0)可以是αvwy,或它们的某种组合,其特定组合可以基于协议/约定,例如zk_SNARKs协议。
在实施例中,α-参数通过椭圆曲线点共享,而其他参数可以通过标量值共享。对于这样的值,根据至少一个实施例,迪菲-赫尔曼方案用于在两个计算实体之间共享标量参数,而不共享参数本身。因此,在实施例中,设P={t1,…,tN}是N参数集。在实施例中,假设A和B已经同意使用具有模数μ和生成器γ的乘法群Γ,并且参与者(A和B)继续执行以下步骤(虽然本文使用指数表示作为说明性示例,但是可以使用其他合适的表示):对于每个i∈{1,…,N},第一和第二计算实体分别创建(私有)随机数vA,i,vB,i,并且两者都导出(公共)元素:
Figure BDA0002539667620000182
Figure BDA0002539667620000183
然后,计算实体分别交换
Figure BDA0002539667620000184
Figure BDA0002539667620000185
并计算
Figure BDA0002539667620000186
Figure BDA0002539667620000187
相应地,参数被设置为
Figure BDA0002539667620000188
因此,以上技术已经证明,第一和第二计算实体共享参数ti,而无需通过交换
Figure BDA0002539667620000189
Figure BDA00025396676200001810
来交换该参数ti。应当注意,根据至少一个实施例,由于至少一个参数以前述方式被交换,参与者的数量被限制为n=2。
图4示出了基于双方公共参考字符串(Common Reference String,简称CRS)和相应的正确性证明(Proof-of-Correctness,简称POC)或正确执行的证明的协议的图400。图400示出了第一计算实体402、第二计算实体404和第三计算实体106,其中第一计算实体402和第二计算实体404共同对智能合约做出贡献,该智能合约可以在智能合约执行时被第三计算实体406解锁。在实施例中,该协议至少部分地使用区块链网络来实现。
根据本发明,并且更详细地描述(例如,结合图4),用于两个参与者A和B的方案和协议可以被用来生成共享秘密,并且因此生成共享公共参考字符串(CRS),该共享公共参考字符串可以用于验证相关电路的正确执行。在实施例中,该方案假设数据的链外交换,首先是在A和B之间,其次是在A+B(或两者之一)和工作者C之间,该工作者C代表A或B中的至少一个执行计算任务。为了使工作者C执行计算任务(例如,智能合约的执行),A和B都签署交易(其可以包含或不包含P2SH类型的赎回脚本),这要求工作者C提供正确性证明并证明拥有正确的验证密钥(Verification Key,简称VK),以便解锁资金。
在一些实施例中,用于实现本发明中呈现的协议的技术不需要对现有的区块链网络进行任何协议改变(例如,可以使用已经被支持的现有命令在基于比特币的区块链网络上实现)。在一些实施例中,本文还讨论了对比特币协议所支持的现有命令集的扩展——该扩展可以包括新的命令(例如,新的操作代码),其可以具有各种益处,例如提高智能合约的执行效率、减小智能合约的大小(这可以减少区块链网络的节点正常运行所需的存储空间量)等等。在一些实施例中,确认到区块链的智能交易的成本至少部分地基于智能合约的大小。
在实施例中,椭圆曲线点和其他数据的交换和转移是链外转移的,该椭圆曲线点和其他数据与公共参考字符串相关。在实施例中,通过数字资产的交换,验证密钥最终被广播或以其他方式在链上可用,该数字资产用于由工作者C和希望评估其智能合约的双方(A和B)执行的工作(例如,智能合约的执行)。如本文所述,几种方案是可能的。例如,在准备锁定交易时,A和B可以同时或可以不同时提供VK或VK的散列。换句话说,在实施例中,大部分容量密集型工作负载是链外完成的。
在实施例中,协议包括链外和链上组件,如图4中虚线所示。链外组件可以包括数据和信息的通信和交换,其无需将数据存储到区块链账本中就可以发生。例如,协议的链外组件可以包括源和目的地(例如,第一计算实体402是将第一参数集传输到目的地即第二计算实体404的源)之间的IP分组交换。例如,协议的链上组件可以包括向区块链账本广播数据,该账本可用于区块链网络的节点。
在实施例中,第一计算实体402至少部分基于第一多项式计算椭圆曲线点集
Figure BDA0002539667620000201
第一计算实体402可以向第二计算实体404传输数据,该数据包括椭圆曲线点集中的至少一些。例如,第一计算实体402可以传输整个椭圆曲线点集。作为第二示例,第一计算实体402可以传输椭圆曲线点的子集
Figure BDA0002539667620000202
在一些实施例中,传输附加数据,该附加数据不是维护共享秘密s的保密性所需要的,但是可能是使系统呈现零知识所必需的。例如,
Figure BDA0002539667620000203
q1,I(I=v,w,y)或其某种组合也可以被计算(如上文结合图3所述)以生成附加参数值,该附加参数值可以被用作确定公共参考字符串的一部分。在实施例中,
Figure BDA0002539667620000204
是标量值集合。在实施例中,q1,I(I=v,w,y)是指椭圆曲线点集。
在实施例中,第二计算实体404基于可能不同于第一计算实体402所使用的多项式同样计算椭圆曲线点集
Figure BDA0002539667620000205
第二计算实体404可以执行如上所述的类似操作。例如,第二计算实体404可以将生成的椭圆曲线点的子集
Figure BDA0002539667620000206
传输到第一计算实体402。此外,在实施例中,可以交换可选的参数,例如
Figure BDA0002539667620000207
或其某种组合,这些参数虽然不是维护共享秘密s的秘密性所必需的,但是可以用来确保协议是零知识。
在实施例中,第一计算实体402和第二计算实体404可以利用交换的数量来计算相同的公共参考字符串。它们可以向或可以不向第三计算实体(例如,工作者)提供公共参考字符串,因为第三计算实体406稍后必须证明拥有正确的验证密钥。第一和第二计算实体对相同公共参考字符串的确定可以链外执行。
继续该协议,根据一个实施例,第一和第二计算实体就交易达成一致,在该交易中,它们为智能合约的执行做出成比例的贡献。在实施例中,第一和第二计算实体就一定比例的贡献达成一致,并且每个计算实体都提供交易输入,该交易输入被锁定(encumbered)在智能合约中并且可以在智能合约执行时由第三计算实体进行解锁。这可能是也可能不是支付脚本散列(pay-to-script-hash,简称P2SH)类型的协议,其中双方都将资金转移到同一地址(C)地址。P2SH类型脚本可能包含也可能不包含验证密钥的元素或验证密钥的散列值,即hi=HASH(VKi)。在实施例中,密钥已经被分成块。智能合约可以作为图4所示的第一交易410被广播到区块链,该第一交易410具有由第一计算实体402贡献的第一交易输入和由第二计算实体404贡献的第二交易输入,该第二交易输入用作工作者费用,该费用按照第一和第二计算实体商定的比例支付。
在实施例中,第三计算实体406——也被称为工作者——根据英国专利申请第1719998.5号和/或英国专利申请第1720768.9号中的协议在第二交易410中解锁资金,并且第三计算实体406解锁用于工作(电路的正确执行)的资金,并且在这样做时,证明其拥有(a)正确的验证密钥和(b)有效的正确性证明。验证可以由另一个计算机系统(例如,作为验证者的区块链的节点)或者由计算实体中的任一方/双方来执行,该计算实体为智能合约的当事方。
图5示出了根据实施例的过程500的说明性示例,该过程用于生成包括验证密钥和评估密钥的双方公共参考字符串。过程500的一些或全部(或本文描述的任何其他过程,或其变化和/或组合)可以在配置有计算机可执行指令的一个或多个计算机系统的控制下执行,并且可以通过硬件、软件或其组合实现为在一个或多个处理器上共同执行的代码(例如,计算机可执行指令、一个或多个计算机程序、或一个或多个应用程序)。该代码可以存储在计算机可读存储介质上,例如,以计算机程序的形式,该计算机程序包括可由一个或多个处理器执行的多个计算机可读指令。计算机可读存储介质可以是非暂时性计算机可读介质。在一些实施例中,可用于执行过程500的至少一些计算机可读指令不是仅使用暂时性信号(例如,传播的暂态电或电磁传输)来存储的。非暂时性计算机可读介质可以包括暂时性信号收发器内的非暂时性数据存储电路(例如,缓冲器、高速缓存和队列)。
在实施例中,执行过程500的系统是作为智能合约的当事方的计算实体,该智能合约执行过程,以至少建立信息,该信息可由系统和智能合约的另一方用来计算相同的公共参考字符串。结合过程500描述的公共参考字符串可以与结合例如图1-4讨论的公共参考字符串一致。在实施例中,公共参考字符串通过以如下形式在秘密s中评估的多项式v(x)、w(x)来表示:
v(s)=a0+a1s+a2s2+…+ansn
w(s)=b0+b1s+b2s2+…+bnsn
在实施例中,第一计算实体确定(502)第一多项式以生成第一椭圆曲线值集合。在实施例中,系统为相关群组(例如,椭圆曲线点)的一些生成器G生成椭圆曲线点,该椭圆曲线点的形式为<v(s)>G=<a0G+<a1s>G+<a2s2G+…。除非另有说明,否则该过程500中的多项式在域
Figure BDA0002539667620000221
上定义。因此,设
Figure BDA0002539667620000222
为域。然后,由
Figure BDA0002539667620000223
Figure BDA0002539667620000224
给出在
Figure BDA0002539667620000225
上的多项式,其中
Figure BDA0002539667620000226
该椭圆曲线点集可以表示为
Figure BDA0002539667620000227
第一计算实体可以使得(504)该椭圆曲线点集对第二计算实体可用。在实施例中,系统不需要使整个椭圆曲线点集对第二计算实体可用,而是在实施例中,系统传输椭圆曲线点的子集
Figure BDA0002539667620000228
例如,根据至少一个实施例,其中n=2,第一计算实体计算
Figure BDA0002539667620000229
并与第二计算实体共享
Figure BDA00025396676200002210
剩余数量
Figure BDA0002539667620000231
可以被第一计算实体用来计算公共参考字符串。
第二计算实体(也是智能合约的当事方)可以为相同的输入点独立地生成椭圆曲线点集(例如,生成椭圆曲线点
Figure BDA0002539667620000232
),并且向第一计算实体提供全部或部分生成的点。第一计算实体可以从第二计算实体接收(506)第二椭圆曲线点集,该第二椭圆曲线点集对应于由该第二计算实体生成的一些或全部椭圆曲线点,其中子集可以基于本发明中其他地方(例如,结合图2和图6)描述的技术来确定。
在实施例中,系统基于该第一和第二椭圆曲线点集的至少一部分来确定(508)相同的公共参考字符串。例如,在交换椭圆曲线点之后,可以用拉格朗日插值通过p(x1)和p(x2)来表示p。在实施例中,智能合约的双方都可以通过交换的点<pi(xj)>G来重建幂<pn(x)>G(尤其是<pn(0)>G=<sn>G)。对于幂<pn(x)>G,可以使用如上所述的多项式公式:
Figure BDA0002539667620000233
例如,对于m=2,这变成
Figure BDA0002539667620000234
在实施例中,附加参数(例如,标量值和/或椭圆曲线点)在第一和第二计算实体之间交换(例如以结合图3描述的方式),并且该参数结合共享秘密<sn>G的幂被用于计算验证密钥和/或评估密钥。在实施例中,在不依赖于加密和/或通信通道的情况下交换参数,该加密和/或通信通道提供可加密验证的秘密性保证。
在实施例中,第一和第二计算实体就交易达成一致,并且各自对智能合约的相应交易输入做出(510)贡献,该智能合约可以由正确执行智能合约的第三计算实体(例如,工作者)解锁。在实施例中,计算实体中的任一个提供成比例的工作者费用。可能有也可能没有P2SH类型的协议,其中两者对相同的地址(例如,工作者的地址)做出贡献。在实施例中,P2SH脚本包括验证密钥的元素或验证密钥的散列值。工作者(例如,第三计算实体)可以通过提供计算上可验证的认证来解锁(例如,解锁)贡献,该认证为工作者具有正确的验证并提供有效的正确性证明。例如,通过使用结合英国专利申请号1719998.5和/或英国专利申请号1720768.9描述的技术。
图6示出了根据至少一个实施例的过程600的说明性示例,该过程600用于在n个当事方(例如,n>2)之间共享共享秘密的幂。过程600的一些或全部(或本文描述的任何其他过程,或其变化和/或组合)可以在配置有计算机可执行指令的一个或多个计算机系统的控制下执行,并且可以通过硬件、软件或其组合实现为在一个或多个处理器上共同执行的代码(例如,计算机可执行指令、一个或多个计算机程序、或一个或多个应用程序)。该代码可以存储在计算机可读存储介质上,例如,以计算机程序的形式,该计算机程序包括可由一个或多个处理器执行的多个计算机可读指令。计算机可读存储介质可以是非暂时性计算机可读介质。在一些实施例中,可用于执行过程600的至少一些计算机可读指令不是仅使用暂时性信号(例如,传播的暂态电或电磁传输)来存储的。非暂时性计算机可读介质可以包括暂时性信号收发器内的非暂时性数据存储电路(例如,缓冲器、高速缓存和队列)。在实施例中,阈值的等效值是先验给出的,并且假设必要数量的参与者首先同意。这不同于现有的各种技术,例如在沙米尔的秘密共享方案(Shamir’s Secret Sharing Scheme,简称4S)中描述的那些技术,其中秘密的共享仅在达到给定阈值的限制下才有效。
根据各个实施例,秘密共享对于任意数量的当事方都是有效的。在实施例中,本发明中描述的形式主义的大部分可以应用于多方(n>2)场景。在一些实施例中,多方(n>2)系统不需要隐藏某些其他参数(例如,以下非椭圆曲线(例如,标量)参数中的一些或全部:(rv,rwvwy,β,γ)。但是,如果这些参数根据协议保持私有,可以利用不同的方法(例如结合图3描述的方法)来隐藏参数(例如rv,rw)。
在实施例中,所有参与者同意(602)和/或有权使用将有限域元素映射到其他有限域元素的函数
Figure BDA0002539667620000251
在实施例中,该函数用作群组的生成器的系数/指数。处于说明的目的,下文描述的实施例集中在多项式上,因为我们感兴趣的函数可以通过泰勒级数(Taylor series)的推广用多项式来表示。特别地,在各个实施例中,所涉及的各方以相同的值来评估函数,而无需在该函数之间传递该值。例如,在1阶多项式的情况下,这相当于利用了沙米尔的秘密共享方案。对于更高的阶数(n>1),各方正在处理以下形式的表达式:
f(s)=a0+a1s+a2s2+…+ansn
因此,本文描述的技术可以用来确保所有参与者都具有相同的<f(s)>G。例如,在根据至少一个实施例描述的协议中,对于任意整数幂r,相同的EQ_FSG可以通过以<sr>G的形式公开分配点,在两个及以上参与者(即n>1)之间共享,因为<f(s)>G=<a0>G+<a1s>G+<a2s2>G+…,其中G是所讨论的群组(例如,椭圆曲线点)的生成器。
在实施例中,每个参与者能够生成(604)多项式,该多项式在点(x1,x2,…)集中被评估,其中,
Figure BDA0002539667620000252
并且该点对于所有当事方都是已知的。在实施例中,每个参与者的多项式的和构成(主)多项式,其中与y轴的交点是秘密,即,
Figure BDA0002539667620000253
其中,p(0)=s,m是参与者的数量。如上所述与y轴的交点可以称为交点(intersectionpoint)。
为了建立s,每个参与者共享(606)在不同点(x1,x2,…)评估的相应多项式。更具体地,对于i,j∈{1,…,m},参与者i创建/计算pi(xj)并发送<pi(xj)>G到j。一旦这些数量被共享,每个参与者能够计算或以其他方式确定(608)共享秘密sr的幂。
考虑sr时需要稍加仔细检查,因为这等同于共享表示
Figure BDA0002539667620000261
因为通常生成器的幂未被定义,可能无法计算<pi(xj)>G的幂。但是,由于所有参与者都可以通过交换的<pi(xj)>G来推断<s>G,因此可以从检查拉格朗日插值多项式L(x)的幂开始(因为主多项式通常可以通过拉格朗日插值((Lagrange Polynomial,n.d.)来构造)。该拉格朗日插值可以写成:
Figure BDA0002539667620000262
其中
Figure BDA0002539667620000263
并且因此
Figure BDA0002539667620000264
其中
Figure BDA0002539667620000265
是多项式系数(多项式定理,Multinomial Theorem,n.d.)。因此,lj(x)多项式可以由每个参与者独立计算。接下来,每个参与者可以计算:
Figure BDA0002539667620000271
使得
<pn(xj)>G=<[p1(xj)+…+pk(xj)]n>G
反过来,这可以重写为(使用多项式展开):
Figure BDA0002539667620000272
这意味着参与者i(多项式pi的所有者/创建者)可以向参与者j提供<pi(xj)>G的幂,即具有以下集合:
Figure BDA0002539667620000273
这允许参与者j计算
Figure BDA0002539667620000274
(和类似地
Figure BDA0002539667620000275
)等。在实施例中,参与者计算以下形式的表达式:
Figure BDA0002539667620000276
根据至少一个实施例,考虑示例,其中参与者使用椭圆曲线,并且其中G在相应的(乘法)表示中是生成器。在两个参与者的情况下,A和B:A发送<p1(x2)>G给B,并且反过来接收<p2(x1)>G。因此,参与者A可以计算
<p(x1)>G=<p1(x1)+p2(x1)>G
并且类似地,参与者B可以计算:
<p(x2)>G=<p1(x2)+p2(x2)>G
使用拉格朗日插值,可以用p(x1)和p(x2)来表示p:
Figure BDA0002539667620000281
每个参与者都可以通过交换的点<pi(xj)>G重建<p(x)>G(特别是<p(0)>G)。对于<pn(x)>G的更高的幂,可以使用上一节中的多项式公式:
Figure BDA0002539667620000282
对于m=2,这变成:
Figure BDA0002539667620000283
在此交换之后(遵循某些预先安排的约定),双方可以计算<pn(xj)>G,尤其是<pn(0)>G=<sn>G
下文描述根据过程600的协议。由于每个参与者都需要能够获得
Figure BDA0002539667620000284
形式的表达式,因此在交换点时,可能需要进行排序。本文我们说明了一种这样的解决方案。
在不失一般性的前提下,根据至少一个实施例,可以假设参与者1是提交第一椭圆曲线点的参与者。在实施例中,该协议遵循以下步骤:
1.参与者1将
Figure BDA0002539667620000285
分配给所有i≠1的参与者,其中k1=1,…,n和j=1,…,m,其中这里的m是参与者的数量;
2.对于k1=0,…,n-1,k2=1,…,n和j=1,…,m,参与者2将
Figure BDA0002539667620000286
分配给所有i≠2参与者;
3.对于k1=0,…,n-1,k2=0,…,n-1,k3=1,…,n和j=1,…,m,参与者3将
Figure BDA0002539667620000287
分配给所有i≠3参与者;
4.…(对于每个参与者,依此类推)。
对于ki=0,…,n-1(其中i∈{1,..,l-1}),kl=1,…,n和j=1,…,m,序列中的第l个参与者将
Figure BDA0002539667620000291
分配给所有i≠l的参与者。当最后一个参与者m分配他/她的点时,所有参与者都具有必要的组件来计算<sn>G=<pn(0)>G
在实施例中,过程600包括多个m个参与者(例如,多于2个参与者),该m个参与者交换
Figure BDA0002539667620000292
形式的点集,其中每个参与者使用这些点来计算<pk(xj)>G。然后,参与者可以使用<pk(xj)>G连同拉格朗日插值以获得<pk(x)>G,尤其是<sk>G=<pk(0)>G。在实施例中,该点是椭圆曲线点,其中
Figure BDA0002539667620000293
因此,说明书和附图应被认为是说明性的而非限制性的。但是,显而易见的是,在不脱离权利要求中所阐述的本发明的范围的情况下,可以对其进行各种修改和变化。同样,其他变型在本发明的范围内。因此,虽然所公开的技术易受各种修改和替代构造的影响,但特定示出的实施例在附图中示出并且已经在上文中详细描述。然而,应当理解的是,无意将本发明限制于所公开的一种或多种特定形式,相反,其目的是涵盖所附权利要求所定义的落入本发明的范围内的所有修改、替代构造和等效方案。
除非另有说明或与上下文矛盾,否则术语“集合(set)”(例如,“项目集合(a setof items)”)或“子集(subset)”的使用应理解为包括一个或多个成员的非空集合。此外,除非另有说明或与上下文矛盾,否则对应集合的术语“子集”不一定表示对应集合的适当子集,而是子集和对应集合可以相等。
除非另有明确说明或与上下文明显矛盾,否则诸如“A、B和C中的至少一个(atleast one of A,B,and C)”或“A、B或C中的至少一个(at least one of A,B,or C)”形式的短语之类的连接语言,在上下文中理解为通常用来表示一个项目、术语等,可以是A或B或C,也可以是A和B和C集合的任何非空子集。例如,在具有三个成员的集合的说明性示例中,连接短语“A、B和C中的至少一个”和“A、B或C中的至少一个”是指以下任意集合:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,这种连接语言通常并不旨在意味着特定实施例要求以下三者都存在:A中的至少一个、B中的至少一个和C中的至少一个。此外,除非另有说明或从上下文中可以清楚得知,否则短语“基于(based on)”是指“至少部分基于”而不是“仅基于”。
除非另有说明或者与上下文明显矛盾,否则过程的操作可以以任何合适的顺序执行。所描述的过程(或其变型和/或组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以通过硬件或其组合实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。在一些实施例中,代码可以例如以计算机程序的形式存储在计算机可读存储介质上,计算机程序包括可由一个或多个处理器执行的多个指令。在一些实施例中,计算机可读存储介质是非暂时性的。
除非另有说明,否则提供的任何和所有示例或示例性语言(例如,“诸如(suchas)”)的使用仅旨在更好地说明本发明的实施例,并且不对本发明的范围构成限制。说明书中的任何语言都不应解释为表明任何未要求保护的要素对于实现本发明必不可少。
描述了本发明的实施例,包括发明人已知的用于实施本发明的最佳方式。通过阅读前述说明书,这些实施例的变型对于本领域普通技术人员来说将变得显而易见。发明人期望熟练的技术人员适当地采用这类变型,发明人打算以不同于具体描述的方式来实践本发明的实施例。因此,本发明的范围包括适用法律允许的所附权利要求中列举的主要内容的所有修改和等效方案。此外,除非另有说明或者与上下文明显矛盾,否则上述要素在其所有可能的变型中的任何组合都包含在本发明的范围内。
所引用的所有参考文献(包括出版物、专利申请和专利)通过引用并入本文,其并入程度与每个参考文献单独且明确地被指出通过引用并入并完整列出的程度相同。
应当说明的是,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法的结合不能获得有益效果。

Claims (15)

1.一种计算机实现的方法,包括在第一计算实体处:
至少部分地基于第一多项式和至少两个椭圆曲线点,确定第二计算实体的椭圆曲线点集;
使所述椭圆曲线点集的子集对所述第二计算实体可用;
接收使用第二多项式生成的第二椭圆曲线点集;
至少部分基于所述第一集合和所述第二集合来确定秘密的幂;
至少部分地基于所述秘密的幂,确定公共参考字符串,所述公共参考字符串包括验证密钥和评估密钥,其中所述公共参考字符串也可由所述第二计算实体确定作为所述第一计算实体向所述第二计算实体提供所述子集的结果;和
生成智能合约,所述智能合约包括由所述第一计算实体提供的第一交易输入和由所述第二计算实体提供的第二交易输入,其中由第三计算实体正确执行智能合约使得所述第三计算实体能够使用所述智能合约的输出生成区块链交易。
2.根据任一前述权利要求所述的方法,其中所述椭圆曲线点集包括所述第一多项式的幂的对应椭圆曲线点。
3.根据任一前述权利要求所述的方法,其中所述第一多项式至少为2阶。
4.根据任一前述权利要求所述的方法,其中所述子集是所述椭圆曲线点集。
5.根据任一前述权利要求所述的方法,其中所述秘密在所述第一计算实体和所述第二计算实体之间共享,无需使用加密保护的通信通道。
6.根据任一前述权利要求所述的方法,其中所述第一计算实体和所述第二计算实体共同确定第一数字资产和第二数字资产。
7.根据任一前述权利要求所述的方法,还包括:
基于第三多项式和所述至少两个椭圆曲线点,确定所述第二计算实体的第三椭圆曲线点集;
使所述第三椭圆曲线点集的第二子集对所述第二计算实体可用;
接收第四椭圆曲线点集;
至少部分地基于所述第三集合和所述第四集合来确定参数,所述参数也可由所述第二计算实体来确定作为所述第一计算实体向所述第二计算实体提供所述第二子集的结果;和
其中所述公共参考字符串的确定还至少部分地基于所述参数。
8.根据任一前述权利要求所述的方法,还包括:使用沙米尔秘密共享方案在所述第一计算实体和所述第二计算实体之间共享椭圆曲线参数。
9.根据任一前述权利要求所述的方法,还包括:使用迪菲·赫尔曼方案在所述第一计算实体和所述第二计算实体之间交换标量参数。
10.根据任一前述权利要求所述的方法,其中所述智能合约包括P2SH型解锁脚本,所述P2SH型解锁脚本允许所述第三计算实体响应于提供正确执行的证明来解锁所述第一数字资产和所述第二数字资产。
11.根据任一前述权利要求所述的方法,其中,所述第一计算实体通过链外通信通道使所述子集对所述第二计算实体可用。
12.根据任一前述权利要求所述的方法,其中所述第二多项式对于所述第一计算实体是不可访问的。
13.根据任一前述权利要求所述的方法,其中所述至少两个椭圆曲线点是两个不同的椭圆曲线点。
14.一种系统,包括:
处理器;和
存储器,包括可执行指令,所述可执行指令由于被所述处理器执行而使得所述系统执行根据任一前述权利要求所述的计算机实现的方法。
15.一种非暂时性计算机可读存储介质,所述存储介质上存储有可执行指令,所述可执行指令由于被计算机系统的处理器执行而使得所述计算机系统至少执行根据权利要求1至13中任一项所述的计算机实现的方法。
CN201880081012.8A 2017-12-13 2018-12-12 用于多方生成基于区块链的智能合约的系统和方法 Active CN111466100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311311745.5A CN117478315A (zh) 2017-12-13 2018-12-12 用于多方生成基于区块链的智能合约的系统和方法

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GBGB1720768.9A GB201720768D0 (en) 2017-12-13 2017-12-13 Computer-implemented system and method
GB1720768.9 2017-12-13
GBGB1813770.3A GB201813770D0 (en) 2018-08-23 2018-08-23 Computer-Implemented system and method
GB1813770.3 2018-08-23
GBGB1813772.9A GB201813772D0 (en) 2018-08-23 2018-08-23 Computer-Implemented system and method
GB1813772.9 2018-08-23
PCT/IB2018/059918 WO2019116246A1 (en) 2017-12-13 2018-12-12 System and method for multi-party generation of blockchain-based smart contract

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311311745.5A Division CN117478315A (zh) 2017-12-13 2018-12-12 用于多方生成基于区块链的智能合约的系统和方法

Publications (2)

Publication Number Publication Date
CN111466100A true CN111466100A (zh) 2020-07-28
CN111466100B CN111466100B (zh) 2023-10-31

Family

ID=65013743

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202410473675.1A Pending CN118449685A (zh) 2017-12-13 2018-12-07 安全共享加密材料的系统和方法
CN201880080950.6A Active CN111466095B (zh) 2017-12-13 2018-12-07 安全共享加密材料的系统和方法
CN202311311745.5A Pending CN117478315A (zh) 2017-12-13 2018-12-12 用于多方生成基于区块链的智能合约的系统和方法
CN201880081012.8A Active CN111466100B (zh) 2017-12-13 2018-12-12 用于多方生成基于区块链的智能合约的系统和方法

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN202410473675.1A Pending CN118449685A (zh) 2017-12-13 2018-12-07 安全共享加密材料的系统和方法
CN201880080950.6A Active CN111466095B (zh) 2017-12-13 2018-12-07 安全共享加密材料的系统和方法
CN202311311745.5A Pending CN117478315A (zh) 2017-12-13 2018-12-12 用于多方生成基于区块链的智能合约的系统和方法

Country Status (9)

Country Link
US (6) US11683164B2 (zh)
EP (3) EP3725028A1 (zh)
JP (4) JP7453911B2 (zh)
KR (2) KR20200096248A (zh)
CN (4) CN118449685A (zh)
SG (2) SG11202005567QA (zh)
TW (1) TWI794366B (zh)
WO (2) WO2019116187A1 (zh)
ZA (2) ZA202004255B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024179772A1 (en) * 2023-02-28 2024-09-06 Nchain Licensing Ag Verification of scalar multiplication of elliptic curve points in script
WO2024179770A1 (en) * 2023-02-28 2024-09-06 Nchain Licensing Ag Verification of scalar multiplication of elliptic curve points in script

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2018320435B9 (en) * 2017-08-22 2021-06-17 Nippon Telegraph And Telephone Corporation Agreement system, agreement apparatus, program, and recording medium
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
WO2021013813A1 (en) * 2019-07-24 2021-01-28 Koninklijke Philips N.V. Summarizing a genomic data entry
CN110535916B (zh) * 2019-08-09 2022-04-15 江苏科技大学 一种基于区块链的供应保障管理方法
CN111427958A (zh) * 2020-03-26 2020-07-17 北京链化未来科技有限公司 基于区块链的去中心化数据数据共享方法
TWI790450B (zh) * 2020-06-15 2023-01-21 台灣灣谷科技股份有限公司 智能合約上鏈方法及其系統
WO2022006361A1 (en) * 2020-06-30 2022-01-06 Interdigital Patent Holdings, Inc. Methods, architectures, apparatuses and systems directed to messaging through blockchain networks
US11991284B1 (en) * 2020-07-02 2024-05-21 Steven Ali Ghabel Blockchain-based authentication system and method
KR102346880B1 (ko) 2020-09-01 2022-01-03 김바올 블록체인에 기반한 성인인증정보 관리 방법 및 장치
CN112653550A (zh) * 2020-10-11 2021-04-13 黑龙江头雁科技有限公司 一种基于BlockChain的多项密钥管理方法
JP2022158677A (ja) 2021-04-02 2022-10-17 株式会社野村総合研究所 マルチパーティ計算で行われるゼロ知識証明のための装置およびシステム
US20220337424A1 (en) * 2021-04-16 2022-10-20 Portable Data Corp Apparatuses And Methods For Facilitating Cryptographically Mediated Organizations And Tokens And Related Interactions
WO2023055582A1 (en) * 2021-09-30 2023-04-06 Visa International Service Association Round optimal oblivious transfers from isogenies
KR20230077838A (ko) 2021-11-26 2023-06-02 (주) 이노트리 다자간 계약의 개인정보 보호를 위한 온라인 전자 계약 플랫폼 시스템
US12086630B2 (en) * 2022-04-07 2024-09-10 Piamond Corp. Method and system for generating and managing smart contract

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014096420A1 (en) * 2012-12-21 2014-06-26 Koninklijke Philips N.V. Key sharing network device and configuration thereof
US20150100785A1 (en) * 2013-10-09 2015-04-09 Thomson Licensing Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product
WO2017008829A1 (en) * 2015-07-10 2017-01-19 Nec Europe Ltd. A method and a system for reliable computation of a program
CN106559211A (zh) * 2016-11-22 2017-04-05 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法
US20170220815A1 (en) * 2016-01-28 2017-08-03 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain

Family Cites Families (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4667290A (en) 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
JPH03126133A (ja) 1989-10-11 1991-05-29 Matsushita Electric Ind Co Ltd コンパイラ処理方法
US5499191A (en) 1992-06-15 1996-03-12 Minc Incorporated Multi-level logic optimization in programmable logic devices
US5297150A (en) 1992-06-17 1994-03-22 International Business Machines Corporation Rule-based method for testing of programming segments
US6064928A (en) 1997-04-24 2000-05-16 Automation Systems Laboratory, Inc. Mechanical sensor diagnostic method and system
US5920830A (en) 1997-07-09 1999-07-06 General Electric Company Methods and apparatus for generating test vectors and validating ASIC designs
US6161180A (en) 1997-08-29 2000-12-12 International Business Machines Corporation Authentication for secure devices with limited cryptography
US6519754B1 (en) 1999-05-17 2003-02-11 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
EP1283422A1 (en) 2001-08-07 2003-02-12 Lucent Technologies Inc. Testbench for the validation of a device under test
US7209555B2 (en) 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
US7085701B2 (en) 2002-01-02 2006-08-01 International Business Machines Corporation Size reduction techniques for vital compliant VHDL simulation models
ATE314763T1 (de) * 2002-03-13 2006-01-15 Koninkl Philips Electronics Nv Mehrbenutzerschlüsselerzeugung auf polynombasis und authentisierungsverfahren uns system
US7281017B2 (en) 2002-06-21 2007-10-09 Sumisho Computer Systems Corporation Views for software atomization
US7657748B2 (en) * 2002-08-28 2010-02-02 Ntt Docomo, Inc. Certificate-based encryption and public key infrastructure
US6983456B2 (en) 2002-10-31 2006-01-03 Src Computers, Inc. Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
US20050004899A1 (en) 2003-04-29 2005-01-06 Adrian Baldwin Auditing method and service
US20060149962A1 (en) * 2003-07-11 2006-07-06 Ingrian Networks, Inc. Network attached encryption
US7059517B2 (en) * 2003-12-31 2006-06-13 Hewlett-Packard Development Company, L.P. On-line PIN verification using polynomials
US7664957B2 (en) * 2004-05-20 2010-02-16 Ntt Docomo, Inc. Digital signatures including identity-based aggregate signatures
US7590236B1 (en) * 2004-06-04 2009-09-15 Voltage Security, Inc. Identity-based-encryption system
US20160004820A1 (en) 2005-02-01 2016-01-07 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US8874477B2 (en) * 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
TW200725415A (en) 2005-12-30 2007-07-01 Tatung Co Ltd Method for automatically translating high level programming language into hardware description language
US8850411B2 (en) 2006-06-21 2014-09-30 Element Cxi, Llc Compiler system, method and software for a resilient integrated circuit architecture
US7926040B2 (en) 2006-09-06 2011-04-12 International Business Machines Corporation Method and system for timing code execution in a korn shell script
US20100067686A1 (en) * 2006-10-30 2010-03-18 Kazuhiro Minematsu Shared key block cipher apparatus, its method, its program and recording medium
FR2918525A1 (fr) * 2007-07-06 2009-01-09 France Telecom Procede asymetrique de chiffrement ou de verification de signature.
WO2009064122A1 (en) 2007-11-18 2009-05-22 Lg Electronics Inc. Methods of joint coding in mobile communication system
US8923510B2 (en) * 2007-12-28 2014-12-30 Intel Corporation Method and apparatus for efficiently implementing the advanced encryption standard
JP2010096787A (ja) * 2008-10-14 2010-04-30 Tokyo Metropolitan Univ 秘密情報分散装置、秘密情報分散プログラム、秘密情報分散方法、秘密情報復元装置、秘密情報復元プログラム、秘密情報復元方法、及び秘密情報分散復元システム
US8336036B2 (en) 2008-11-21 2012-12-18 Korea University Industrial & Academic Collaboration Foundation System and method for translating high programming level languages code into hardware description language code
US8639931B2 (en) * 2008-12-16 2014-01-28 Certicom Corp. Acceleration of key agreement protocols
US8165287B2 (en) * 2008-12-30 2012-04-24 King Fahd University Of Petroleum & Minerals Cryptographic hash functions using elliptic polynomial cryptography
US8189771B2 (en) * 2009-01-12 2012-05-29 King Fahd University Of Petroleum & Minerals Hash functions with elliptic polynomial hopping
FR2947404B1 (fr) 2009-06-30 2011-12-16 Sagem Securite Cryptographie par parametrisation sur une courbe elliptique
JP5159752B2 (ja) 2009-12-03 2013-03-13 セイコープレシジョン株式会社 通信データの検証装置及びそのコンピュータプログラム
US8189775B2 (en) * 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
US8910014B2 (en) * 2010-04-27 2014-12-09 Nec Corporation Coding device, error-correction code configuration method, and program thereof
US10515567B2 (en) * 2010-06-01 2019-12-24 Ternarylogic Llc Cryptographic machines with N-state lab-transformed switching devices
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
EP2721766A4 (en) * 2011-03-18 2015-01-28 Certicom Corp SECURE FINANCIAL TRANSACTIONS
US9569771B2 (en) * 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
EP2705479A4 (en) 2011-05-03 2014-12-24 Panther Payments Llc METHOD AND SYSTEM FOR FACILITATING PERSON-TO-PERSON PAYMENTS
US8607129B2 (en) * 2011-07-01 2013-12-10 Intel Corporation Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic
JP5697153B2 (ja) 2011-08-04 2015-04-08 キヤノンマーケティングジャパン株式会社 情報処理システム、携帯端末、制御方法、及びプログラム
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US20150379510A1 (en) 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US8683193B1 (en) 2013-03-01 2014-03-25 Robert Hansen Strict communications transport security
EP2989742B1 (en) * 2013-04-24 2018-08-29 NEC Corporation Method and system for enforcing access control policies on data
US20140321644A1 (en) 2013-04-29 2014-10-30 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of National Defence Method and system for calculations on encrypted data
US11127001B2 (en) 2013-05-09 2021-09-21 Wayne Fueling Systems Llc Systems and methods for secure communication
US9553982B2 (en) 2013-07-06 2017-01-24 Newvoicemedia, Ltd. System and methods for tamper proof interaction recording and timestamping
US9026978B1 (en) 2013-10-24 2015-05-05 Cadence Design Systems, Inc. Reverse interface logic model for optimizing physical hierarchy under full chip constraint
JP6095584B2 (ja) 2014-01-15 2017-03-15 日本電信電話株式会社 マルチパーティ計算システム、秘匿計算装置、マルチパーティ計算方法及びプログラム
FR3018378A1 (fr) 2014-03-12 2015-09-11 Enrico Maim Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses
US10320781B2 (en) 2016-12-08 2019-06-11 Sensoriant, Inc. System and methods for sharing and trading user data and preferences between computer programs and other entities while preserving user privacy
US9645794B2 (en) 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
US10025926B2 (en) 2014-11-19 2018-07-17 The Mitre Corporation Side-channel leakage evaluator and analysis kit
US20160162897A1 (en) 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
CN104580240A (zh) 2015-01-22 2015-04-29 杭州安存网络科技有限公司 聊天证据固定方法及装置
EP3259871B1 (en) 2015-02-20 2020-09-16 Telefonaktiebolaget LM Ericsson (publ) Method of providing a hash value for a piece of data, electronic device and computer program
EP3767878A1 (en) 2015-03-27 2021-01-20 Black Gold Coin, Inc. A system and a method for personal identification and verification
WO2016155804A1 (en) 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
JP2017004044A (ja) 2015-06-04 2017-01-05 富士通株式会社 ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム
CN106293892B (zh) 2015-06-26 2019-03-19 阿里巴巴集团控股有限公司 分布式流计算系统、方法和装置
US10339523B2 (en) * 2015-07-14 2019-07-02 Fmr Llc Point-to-point transaction guidance apparatuses, methods and systems
US11488147B2 (en) * 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
US20170048209A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170091756A1 (en) * 2015-07-14 2017-03-30 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
US10366204B2 (en) 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
DE102015114215A1 (de) 2015-08-27 2017-03-02 Rwe Ag Versorgungssystem und verfahren zum betreiben eines versorgungssystems
WO2017079652A1 (en) 2015-11-05 2017-05-11 Pulsifer Allen Cryptographic transactions system
US10269012B2 (en) * 2015-11-06 2019-04-23 Swfl, Inc. Systems and methods for secure and private communications
US10048952B2 (en) 2015-11-11 2018-08-14 Oracle International Corporation Compiler optimized data model evaluation
FR3043811B1 (fr) 2015-11-16 2017-11-10 Morpho Procede d'identification d'une entite
US20170140408A1 (en) 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
EP3378087B1 (en) * 2015-11-16 2021-12-01 Cavendish Kinetics, Inc. Naturally closed mems switch for esd protection
US9992028B2 (en) * 2015-11-26 2018-06-05 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
US11423498B2 (en) 2015-12-16 2022-08-23 International Business Machines Corporation Multimedia content player with digital rights management while maintaining privacy of users
JP2017111591A (ja) 2015-12-16 2017-06-22 株式会社ソシオネクスト 設計方法、設計プログラム及び設計装置
US9715373B2 (en) 2015-12-18 2017-07-25 International Business Machines Corporation Dynamic recompilation techniques for machine learning programs
US10044696B2 (en) 2015-12-22 2018-08-07 Mcafee, Llc Simplified sensor integrity
US9483596B1 (en) 2016-01-08 2016-11-01 International Business Machines Corporation Multi power synthesis in digital circuit design
US9960920B2 (en) 2016-01-26 2018-05-01 Stampery Inc. Systems and methods for certification of data units and/or certification verification
AU2017223129A1 (en) * 2016-02-23 2018-07-12 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
WO2017148527A1 (en) 2016-03-03 2017-09-08 Nec Europe Ltd. Method for managing data in a network of nodes
US20200327498A1 (en) * 2016-03-21 2020-10-15 National Ict Australia Limited Business Process Execution on a Blockchain Platform
US11017387B2 (en) 2016-03-24 2021-05-25 International Business Machines Corporation Cryptographically assured zero-knowledge cloud services for elemental transactions
US11017388B2 (en) 2016-03-25 2021-05-25 International Business Machines Corporation Cryptographically assured zero-knowledge cloud service for composable atomic transactions
US10839096B2 (en) 2016-03-28 2020-11-17 International Business Machines Corporation Cryptographically provable zero-knowledge content distribution network
AU2017240796A1 (en) 2016-03-31 2018-10-25 Clause, Inc. System and method for creating and executing data-driven legal contracts
EP3440823B1 (en) 2016-04-05 2020-09-02 Zamna Technologies Limited Method and system for managing personal information within independent computer systems and digital networks
US10545739B2 (en) 2016-04-05 2020-01-28 International Business Machines Corporation LLVM-based system C compiler for architecture synthesis
KR102415260B1 (ko) 2016-04-11 2022-06-30 엔체인 홀딩스 리미티드 블록체인에서 안전한 피어-투-피어 통신을 위한 방법
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
EP3452929B1 (en) 2016-05-06 2020-04-01 Innogy Innovation GmbH System for evaluating telemetry data
US20170337319A1 (en) 2016-05-20 2017-11-23 Ecole polytechnique fédérale de Lausanne (EPFL) System and Method for Optimization of Digital Circuits with Timing and Behavior Co-Designed by Introduction and Exploitation of False Paths
US9967088B2 (en) * 2016-05-23 2018-05-08 Accenture Global Solutions Limited Rewritable blockchain
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
CN107438002B (zh) 2016-05-27 2022-02-11 索尼公司 基于区块链的系统以及系统中的电子设备和方法
FR3052286B1 (fr) 2016-06-06 2018-06-15 Morpho Procede de verification d'un droit d'acces d'un individu
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
KR101795696B1 (ko) 2016-07-14 2017-11-09 주식회사 코인플러그 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
US20180018738A1 (en) 2016-07-14 2018-01-18 Digital Asset Holdings Digital asset platform
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
WO2018058105A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of managing trustless asset portfolios
CN106506146A (zh) 2016-10-26 2017-03-15 北京瑞卓喜投科技发展有限公司 基于区块链技术的交易信息校验方法、装置及系统
CN106534317B (zh) 2016-11-17 2019-09-03 杭州云象网络技术有限公司 一种基于区块链技术的灾备云存储系统构建方法
CN110383751B (zh) 2017-01-06 2023-05-09 皇家飞利浦有限公司 关于证实的数据的pinocchio/trinocchio
EP3566389B1 (en) 2017-01-06 2021-08-18 Koninklijke Philips N.V. Distributed privacy-preserving verifiable computation
CN106846666B (zh) * 2017-01-18 2019-05-07 北京云知科技有限公司 一种基于区块链的存取款方法
US10880089B2 (en) 2017-03-15 2020-12-29 NuID, Inc. Methods and systems for universal storage and access to user-owned credentials for trans-institutional digital authentication
KR101882802B1 (ko) 2017-04-17 2018-07-27 주식회사 코인플러그 Utxo 기반 프로토콜을 이용한 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
US10419209B1 (en) * 2017-04-26 2019-09-17 Wells Fargo Bank, N.A. Parallel assurance of blockchain signatures
CN107274184A (zh) 2017-05-11 2017-10-20 上海点融信息科技有限责任公司 基于零知识证明的区块链数据处理
CN107040545B (zh) 2017-05-26 2019-05-31 中国人民解放军信息工程大学 工程文件全生命周期安全保护方法
CN107179932A (zh) 2017-05-26 2017-09-19 福建师范大学 基于fpga高层次综合指令的优化方法及其系统
CN107425967B (zh) * 2017-06-15 2019-08-27 武汉理工大学 一种理论安全的灵活多秘密共享方法
CN107426234A (zh) 2017-08-08 2017-12-01 武汉协鑫新能源电力设计有限公司 一种基于区块链技术的绿色电力认证机制
US10268829B2 (en) 2017-08-11 2019-04-23 Dragonchain, Inc. Security systems and methods based on cryptographic utility token inventory tenure
US10135607B1 (en) 2017-08-11 2018-11-20 Dragonchain, Inc. Distributed ledger interaction systems and methods
US10333710B2 (en) 2017-09-12 2019-06-25 Qed-It Systems Ltd. Method and system for determining desired size of private randomness using Tsallis entropy
US10521616B2 (en) 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions
CN108009441B (zh) * 2017-11-23 2023-05-30 创新先进技术有限公司 资源转移和资金转移的方法和装置
US10949511B2 (en) * 2017-11-30 2021-03-16 Bank Of America Corporation Multicomputer processing for data authentication using a blockchain approach
US20190180276A1 (en) * 2017-12-07 2019-06-13 Bank Of America Corporation Automated Event Processing Computing Platform for Handling and Enriching Blockchain Data
FR3075534B1 (fr) 2017-12-14 2020-01-10 CopSonic Dispositif de stockage de cles numeriques pour signer des transactions sur une chaine de blocs
FR3098947B1 (fr) * 2019-07-19 2021-09-10 Idemia Identity & Security France Procédé de traitement d’une transaction émise depuis une entité de preuve

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014096420A1 (en) * 2012-12-21 2014-06-26 Koninklijke Philips N.V. Key sharing network device and configuration thereof
US20150100785A1 (en) * 2013-10-09 2015-04-09 Thomson Licensing Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product
WO2017008829A1 (en) * 2015-07-10 2017-01-19 Nec Europe Ltd. A method and a system for reliable computation of a program
US20170220815A1 (en) * 2016-01-28 2017-08-03 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
CN106559211A (zh) * 2016-11-22 2017-04-05 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024179772A1 (en) * 2023-02-28 2024-09-06 Nchain Licensing Ag Verification of scalar multiplication of elliptic curve points in script
WO2024179770A1 (en) * 2023-02-28 2024-09-06 Nchain Licensing Ag Verification of scalar multiplication of elliptic curve points in script

Also Published As

Publication number Publication date
US20210075610A1 (en) 2021-03-11
US11683164B2 (en) 2023-06-20
TW201928755A (zh) 2019-07-16
ZA202004255B (en) 2023-12-20
TWI794366B (zh) 2023-03-01
US11271729B2 (en) 2022-03-08
US20210075597A1 (en) 2021-03-11
US20230370253A1 (en) 2023-11-16
JP2024063228A (ja) 2024-05-10
CN111466095B (zh) 2024-05-14
KR20200096248A (ko) 2020-08-11
US20220271919A1 (en) 2022-08-25
ZA202004256B (en) 2023-01-25
JP7453911B2 (ja) 2024-03-21
CN117478315A (zh) 2024-01-30
US11888976B2 (en) 2024-01-30
US20240348429A1 (en) 2024-10-17
JP7252233B2 (ja) 2023-04-04
EP3725032A1 (en) 2020-10-21
EP3725032B1 (en) 2021-11-17
WO2019116246A1 (en) 2019-06-20
JP2023068139A (ja) 2023-05-16
US20240195611A1 (en) 2024-06-13
SG11202005564WA (en) 2020-07-29
JP2021507563A (ja) 2021-02-22
EP3725028A1 (en) 2020-10-21
WO2019116187A1 (en) 2019-06-20
CN111466095A (zh) 2020-07-28
JP2021507562A (ja) 2021-02-22
SG11202005567QA (en) 2020-07-29
CN111466100B (zh) 2023-10-31
CN118449685A (zh) 2024-08-06
EP4009577A1 (en) 2022-06-08
KR20200094173A (ko) 2020-08-06

Similar Documents

Publication Publication Date Title
CN111466100B (zh) 用于多方生成基于区块链的智能合约的系统和方法
EP3646563B1 (en) Method, system, and computer program product for determining solvency of a digital asset exchange
EP3707872B1 (en) Systems and methods for ensuring correct execution of computer program using a mediator computer system
CN111801910A (zh) 基于证明验证的用于认证链外数据的系统和方法
US11811866B2 (en) Computer-implemented system and method for controlling processing steps of a distributed system

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
GR01 Patent grant
GR01 Patent grant