CN109478278B - 用于控制外部进程或系统的区块链实现的控制方法和系统 - Google Patents

用于控制外部进程或系统的区块链实现的控制方法和系统 Download PDF

Info

Publication number
CN109478278B
CN109478278B CN201780037506.1A CN201780037506A CN109478278B CN 109478278 B CN109478278 B CN 109478278B CN 201780037506 A CN201780037506 A CN 201780037506A CN 109478278 B CN109478278 B CN 109478278B
Authority
CN
China
Prior art keywords
transaction
input
controller
value
output
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
Application number
CN201780037506.1A
Other languages
English (en)
Other versions
CN109478278A (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
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of CN109478278A publication Critical patent/CN109478278A/zh
Application granted granted Critical
Publication of CN109478278B publication Critical patent/CN109478278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/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/3247Cryptographic 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

本发明提供了一种计算机实现的方法和相应的系统,其使用诸如区块链等电子分类帐来实现。这可能是也可能不是比特币区块链。本发明可用于实现、执行和/或控制任务或进程的执行。根据本发明的方法包括生成区块链交易的步骤,该交易包括:至少一个包含值的签名输入;以及至少一个可修改的输出。还包括以下步骤:从签名输入中提取该值,并将其提供给逻辑部分,以获得结果;并使用该结果修改交易的输出。所述交易提供逻辑部分执行和/或结果的记录和/或表示。使用解锁脚本将签名输入提供给交易。使用签名散列类型对至少一个输入进行签名,该签名散列类型使得输入不可修改。这签名散列类型可以是SIGHASH_NONE。所述交易还可以包括至少一个未签名输入。所述未签名输入可以在修改输出后被签名。所述未签名输入可以使用防止修改整个交易的签名散列类型来签名。签名散列类型可以是SIGHASH_ALL。此外,该值可以嵌入到与签名输入相关联的公钥中;并从公钥中提取,以便将其提供给逻辑部分。该逻辑部分可以被设置为实现逻辑门或门的组合的功能,例如,AND、NOT、OR、NOR、XOR、IMPLY、NAND、NONIMPLY或XNOR门。因此,本发明为使用区块链实现任务提供了一种高度通用和有用的技术方法。

Description

用于控制外部进程或系统的区块链实现的控制方法和系统
技术领域
本发明涉及分布式分类帐技术(包括区块链相关技术),特别涉及实现、控制和/或自动化任务或进程中使用区块链。本发明可以涉及使用区块链或相关技术来记录或表示逻辑部分的执行。该逻辑部分可以用来实现一个或多个逻辑门的功能(functionality),例如,AND、XOR、NOT、OR等。
背景技术
重要的是,注意到,在本文件中,我们使用‘区块链’一词是为了方便和便于参考,因为这是目前这方面最广为人知的术语。然而,在本文中使用术语(包括在权利要求中),以包括所有形式的基于计算机的电子分布式分类帐,包括但不限于区块链和交易链技术、许可和不许可分类帐、共享分类帐及其变体。
区块链是电子分类帐,该电子分类帐被实现为由块组成的基于计算机的分散分布式系统,块又由交易组成。每个交易包括至少一个输入和至少一个输出。每个块都包含前一个块的散列,这样块就会被链接在一起,以创建所有交易的永久的、不可更改的记录。自创建以来,这些交易被写入区块链中。交易包含被称为脚本的小程序,这些小程序被嵌入到交易的输入和输出中,这些程序指定了如何以及由谁来访问交易的输出。在比特币平台上,使用基于堆栈的脚本语言编写这些脚本。
为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作,以确保每个交易都是有效的,网络拒绝无效的交易。安装在节点上的软件客户端通过执行其锁定和解锁脚本来对未花费交易(UTXO)执行该验证工作。如果锁定和解锁脚本的执行评估为TRUE,则该交易有效,并将该交易写入区块链。
尽管已经提出和开发了其他区块链实现方式,但区块链技术最广为人知的应用是比特币分类账。虽然在本文中出于方便和说明的目的可以提及比特币,但是应当注意,本发明不限于与比特币区块链一起使用,并且替代的区块链实现方式也在本发明的范围内。
区块链技术以使用加密货币实现方式而闻名。然而,最近,数字企业家开始探索比特币所基于的加密安全系统的使用以及可以存储在区块链上的数据,以实现新系统。如果区块链可以用于任务和进程,例如,自动化控制进程,这将是非常有利的,但这并不局限于加密货币领域。这种解决方案将能够利用区块链的优势(例如,事件的永久防篡改记录、分布式处理等),同时在其应用中更加通用。
发明内容
现在已经设计出这样一种改进的解决方案。因此,根据本发明,提供了一种如所附权利要求中定义的系统和方法。
因此,根据本发明,可以提供一种执行逻辑部分的计算机实现的方法。另外或替代地,本发明可以被描述为控制方法。其可以控制硬件和/或软件资源的操作。且其可以控制计算机实现的进程的执行。另外或可替换地,该方法可以提供一种技术机制,用于使用区块链记录或表示逻辑部分的执行或执行结果。
该方法可以包括以下步骤:
生成区块链交易,所述交易包括:
包含值的至少一个签名输入;以及
至少一个可修改的输出;
从签名输入中提取该值,并将其提供给逻辑部分,以获得结果;并且
使用该结果修改该交易的输出。
可以将结果用于修改输出,使得交易表示结果。交易可以提供逻辑部分的执行记录。该记录可以存储在区块链上。其可以提供执行结果的记录。其可以提供包括与执行相关的参数的记录。
术语“区块链”旨在包括所有形式的基于计算机的电子分布式分类帐,包括区块链和交易链技术、竞争币区块链、许可和不许可分类帐、共享分类帐及其变体。
逻辑部分可以是计算机实现的进程。其可以被设置为执行指定的任务。
逻辑部分可以在交易和/或区块链的外部。此外,控制器(即,交易的所有者和在输入签名后可以更新交易输出的唯一实体)也可以在交易和/或区块链的外部。外部控制器可以将逻辑部分应用于所提取的值,以获得结果,并与交易通信,以基于所述结果修改交易的输出。所述逻辑部分可以表示在交易和/或区块链的外部的系统,并且所述方法还包括基于所述交易的修改的输出修改系统的状态。这样,可以设想本发明利用区块链系统的固有安全性来实现或至少记录外部(“离块”)逻辑系统的状态,从而将区块链系统的功能和安全性扩展到外部系统。
外部系统可以是区块链外部的任何系统,其功能可以例如简化为数学函数(function)、算法或逻辑部分,例如,一个逻辑门或多个逻辑门的功能。这种系统通常具有一个或多个输入,并对输入执行一个或多个操作,以生成一个或多个输出。
本发明的实施例有助于确保这种系统的控制器保持对系统的控制,并且该系统对于来自另一实体的攻击(例如,黑客攻击)是强健的。从区块链的角度来看,由本发明的至少某些实施例解决的技术问题是如何利用区块链系统的固有安全性来控制外部“离块”系统。从外部系统的角度来看,由本发明的至少某些实施例解决的技术问题是如何提高外部系统的安全性,使得其对来自第三方的黑客攻击是强健的。
在本文中描述了可应用本发明的外部系统的示例,包括:交易平台;电子锁;车辆控制系统;传感器;照明系统;加热/冷却系统;警报系统;以及工业制造系统。然而,这些表示非穷举列表,并且重要的是,注意到,本发明的实施例原则上可以应用于将区块链系统的功能引入任何外部系统,该外部系统可以由一个或多个输入、对输入的一个或多个操作以及一个或多个输出来表示。
该逻辑部分可以被设置为实现一个逻辑门或多个逻辑门的功能。逻辑门可以是AND、NOT、OR、NOR、XOR、IMPLY、NAND、NONIMPLY或XNOR门。
该方法还可以包括将交易提交给区块链的步骤。
可以使用解锁脚本将签名的输入提供给交易。
所述至少一个输入可以使用签名散列类型来签名,所述签名散列类型使得所述输入不可修改。签名散列类型可以是SIGHASH_NONE。
交易还可以包括至少一个未签名输入。
该方法还可以包括将交易提交给区块链的步骤。
其可以包括在修改输出后对未签名输入签名的步骤。
所述未签名输入可以使用防止修改整个交易的签名散列类型来签名。签名散列类型可以是SIGHASH_ALL。
该值(包含在至少一个签名输入中的)可以嵌入在与签名输入相关联的公钥中。另外或可替换地,其可以从公钥中提取,以便将其提供给逻辑部分。
该方法还可以包括建立和/或选择协议并使用该协议将该值嵌入公钥中的步骤。所述公钥可以用于在中间区块链交易中创建锁定脚本。
该方法还可以包括将中间交易提交给区块链的步骤。
可以通过生成新的公钥P′将该值嵌入公钥中,其中:
其中:
P是基本或初始公钥;
G是椭圆曲线函数,例如,secp256k1;
x表示椭圆曲线乘以标量;并且
表示椭圆曲线加法。
该方法还可以包括生成与新公钥对应的新私钥的步骤,其中:
新私钥V′=V+HASH(值+S)
嵌入在公钥中的值可以选自特定范围的值。
本发明还提供了相应的系统。该系统可以被设置为实现上述方法的任何实施例。
本发明可以提供一种计算机实现的系统,包括:
至少一个基于计算机的资源,其被设置为执行任何前述权利要求的步骤;以及
区块链或其他类型的电子分类帐。其可以是分布式分类帐。
就本发明的一个方面或实施例而描述的任何特征也可以用于实现一个或多个其他方面/实施例。
附图说明
参考在本文中描述的实施例,本发明的这些和其他方面将变得显而易见并得到阐述。现在仅通过示例并参考附图来描述本发明的实施例,其中:
图1示出了示例交易和用SIGHASH_ALL和SIGHASH_NONE散列的部分;
图2a示出了函数控制器如何与每个输入源建立PubKey协议;
图2b示出了一种场景,其中,输入源具有要通信的值,并根据其协议(PubKey协议)计算具有嵌入值的公钥(PubKey)。
图2c示出了一种场景,其中,输入源使用具有嵌入值的PubKey来创建锁定脚本,该脚本用于中间交易的一个输出中。
图2d示出了一种场景,其中,创建交易;来自控制器的未签名输入和每个输入相加;
图2e示出了一种场景,其中,每个输入源用签名类型SIGHASH_NONE对其相应的交易输入进行签名;
图2f示出了一种场景,其中,控制器从交易中每个输入源的解锁脚本中获取具有嵌入值的PubKey,并基于相关的PubKey协议提取嵌入值;
图2g示出了一种场景,其中,控制器将函数应用于提取的值,并基于结果修改交易输出;
图2h示出了一种场景,其中,控制器使用SIGHASH_ALL对其输入进行签名,并将交易提交给区块链;
图3至图8示出了根据下面提供的用例示例1使用的区块链交易;
图9至14示出了根据下面提供的用例示例2使用的区块链交易;
图15至20示出了根据下面提供的用例示例3使用的区块链交易;
图21a至25示出了根据下面提供的用例示例4使用的区块链交易;
图26a至30示出了根据下面提供的用例示例5使用的区块链交易;
图31至35示出了根据下面提供的用例示例6使用的区块链交易;
图36a至40示出了根据下面提供的用例示例7使用的区块链交易;
图41a至45示出了根据下面提供的用例示例7使用的区块链交易。
具体实施方式
我们现在提供本发明的说明性实施例。该实施例包括涉及以下方面的技术:
·共享密钥的建立及其在新密钥生成中的应用;
·用于在椭圆曲线公钥中安全嵌入值的机制;
·区块链相关的方案或解决方案,其中,输出取决于使用特定签名散列组合的输入;以及
·这些技术的组合,以提供用于构建外部评估函数(即,区块链外部)的新机制。
本发明提供了一种使用区块链来实现函数的新颖且有利的解决方案。区块链用于提供函数执行的记录和/或其结果。函数可以是应用于一组输入并返回一组输出的子程序或程序(即,进程或逻辑部分)。在一个优选实施例中,函数是执行的‘离块’,即,其执行不依赖于区块链。由基于计算机的资源执行该函数。
区块链(例如,比特币)交易是(例如,比特币)值的转移,通常引用先前的交易输出,作为新的交易输入,并将所有输入值专用于新的输出。交易没有加密,因此可以浏览和查看收集到一个区块的每个交易。然而,能够构造起函数作用的区块链交易将是非常有利的,其中,交易输出取决于或者依赖于嵌入在交易输入中的信息。
本发明的重要方面包括(但不限于)一种用于创建表示函数的区块链交易的方法,其中:
·函数输入由交易输入解锁脚本中使用的公钥表示;
·函数输出由发送交易输出的地址表示;
·在区块链交易外部评估函数程序;
·在应用函数逻辑和更新函数输出之前,可以锁定函数输入。
因此,本发明包括以下内容:
·分配密值的技术:这可以使用采用椭圆曲线算法的方法来实现,使得消息可以嵌入私钥/公钥中;此外,可以通过不安全的网络建立共享密钥;
用于在椭圆曲线公钥/私钥中安全嵌入值的技术,本发明包括一种用于密值分配的技术,该技术允许值安全地嵌入椭圆曲线公钥/私钥中。该值可以由接收方在线性时间内提取,但是对于攻击者来说仍然难以处理,即使泄露用来建立嵌入方法的参数;
·取决于输入的比特币交易输出;
·创新的方法,首先用SIGHASH_NONE(输入锁定)对交易的所有输入(除了一个以外)进行签名,然后用SIGHASH_ALL(输入和输出锁定)对剩余的输入进行签名。这种流程允许根据输入来调节输出。
将经由下面提供的用例示例来说明本发明,其中,区块链(例如,比特币)交易可以用来表示逻辑门提供的功能。
本发明利用将消息嵌入到加密(公钥/私钥)密钥中并且建立共享密钥的技术。这些描述如下。
消息嵌入
给定:
·私钥V(整数)
·公钥P(椭圆曲线点)
·EC发生器G(椭圆曲线函数)
·消息M(可以表示为整数的值)
在EC算法中已知:
P=V x G表示椭圆曲线乘以标量
如果嵌入了消息M:
则V’=V+M表示整数加法
P’=P+M x G表示椭圆曲线点加法
V’和P’是嵌入了消息M的私钥/公钥
共享密钥
给定:
·带有私钥VA和公钥PA的A方
·带有私钥VB和公钥PB的B方
·EC发生器G(椭圆曲线函数)
在EC算法中已知:
PA=VA x G
PB=VB x G
如果双方都公布了其公钥,则可以安全地建立共享密钥:
A方共享密钥=VA x PB=VA x(VB x G)
B方共享密钥=VB x PA=VB x(VA x G)
因为EC算法是可交换的,所以双方共享的密钥是等价的。
椭圆曲线公钥/私钥中的安全值嵌入
可以将消息(值)嵌入EC公钥/私钥中。为了将这一概念用作双方之间的安全通信的方法,需要以下参数:
嵌入值方法
发送方可以使用安全公式M嵌入一个值,例如:
V’=V+HASH(值+S)表示嵌入值私钥
表示嵌入值公钥
其中:
P是基本或初始公钥;
G是椭圆曲线函数,例如,secp256k1;
x表示椭圆曲线乘以标量;并且
表示椭圆曲线加法。
这种方法的安全性包含并体现了以下几点:
·嵌入值公钥使用EC算法,这种算法是单向的,难以逆转;
·散列函数是单向的,很难逆转;
共享密钥S用作散列盐。这意味着,即使泄露所有其他参数,攻击者也不能简单地通过可能的值来迭代计算出嵌入值。除非泄露私钥,否则可以保证S是安全的。
值提取方法
嵌入公钥中的值的接收方可以在线性时间提取该值。通过为每个可能的值计算嵌入值的公钥来完成的,直到找到匹配。这可以通过以下方式实现:
对于在v_0到v_n范围内的每一个v,//在这个特定的脚本中,v_0,v_1,…,v_n是一个范围,而不是一个集合
v'=M(v,P,S,G),//M是使用EC算法嵌入v的公式
如果v'等于P',
则退出循环,//v是嵌入值
区块链交易输出取决于输入
本节介绍了一种构建区块链交易的方法,其中,输出取决于输入。这是基于关于使用SIGHASH_ALL和SIGHASH_NONE签名类型的知识,该知识在公共领域是可用的:https://bitcoin.org/en/developer-guide#signature-hash-types
签名类型
比特币签名是交易的选择部分的散列。由签名散列类型确定选择的部分。签名保护散列部分,因为任何修改都会产生不同的签名,从而显示篡改。图1示出了示例交易和用SIGHASH_ALL和SIGHASH_NONE散列的部分。应该注意,在对输入进行签名时,所有其他输入的scriptSigLen和scriptSig都被空脚本替换。
交易构造方法
1、创建区块链交易,通过所有实体添加输入;
2、除所有者外,所有实体都用SIGHASH_NONE对其输入进行签名(这将锁定输入,因此无法修改输入);
3、所有者确定输出,并更新交易;
4、所有者用SIGHASH_ALL对其输入进行签名,至此交易完成(这锁定了输入和输出)。
实现外部评估函数为区块链交易
本发明可以组合所有先前描述的概念/方法。
关键方面包括:
·函数的输入值可以嵌入作为交易输入进行传送的公钥中;
·该函数的所有者(即,负责执行该函数的资源)可以在区块链发布之前询问交易,以实现该函数;
·仅函数的所有者可以在完成之前修改交易的输出地址,以表示函数的输出。
关键术语
为了清楚起见,以下术语将在全文中用于定义本发明的实现方式和使用情况。
实现方式
1、控制器与每个输入源建立PubKey协议,如图2a所示。
2、如图2b所示,输入源具有要传送的值,并根据其PubKey协议计算嵌入值PubKey。
3、输入源使用嵌入值PubKey创建锁定脚本,该脚本用于中间交易的一个输出(由输入源创建)。中间交易提交给区块链;锁定脚本是P2PKH还是P2SH并不重要。这如图2c所示。
4、创建交易,并添加来自控制器和每个输入源的未签名输入;参见图2d。
a.每个输入源的输入引用了其中间交易,特别是带有嵌入值PubKey的输出;
a.只要在步骤4之前将所有输入添加到该交易中,则首先创建该交易还是中间交易(即,步骤2-3的顺序)并不重要;
b.只要相关各方都能修改交易,谁创建交易并不重要。
5、每个输入源都用签名散列类型SIGHASH_NONE对其交易的输入进行签名
a.这锁定输入,但允许自由修改输出;
b.在添加所有输入时,如何通知/检查每个输入源并不重要。
6、控制器从交易中每个输入源的解锁脚本中获取嵌入值PubKey,并提取基于相关PubKey协议嵌入的值;参见图2f。
a.在比特币交易的外部进行值提取;
b.当输入源的所有输入都签名时,如何通知/检查控制器并不重要。
7、控制器将函数应用于提取的值,并基于结果修改交易输出;参见图2g。
a.该函数应用于比特币交易的外部;
8、控制器使用SIGHASH_ALL对其输入进行签名,并将交易提交给区块链;参见图2h。
用例示例1:XOR逻辑门
为了说明的目的,我们现在给出一个示例用例,该用例通过使用(比特币)交易来表示具有两个输入源的XOR逻辑门来实现本发明。考虑以下场景。
Alice是一名自学成才的交易员,她认为通过交易XYZ公司的股票期权有机会赚取额外收入。她在一家接受比特币支付的网上证券交易所开立了账户。Alice开发了一个简单的交易机器人、股价机器人和市场指数值机器人(“Bot”)。(每个“机器人bot”都是基于计算机的资源,其中该资源可执行自动化任务或进程)。
设置股价机器人和市场指数值机器人,使得:
·这两个机器人记录股票市场的开盘价范围;
·如果一个机器人在白天看到值变化另一个范围的价值变化,则这两个机器人会与交易机器人通信;
·股价机器人获胜:
ο股价XYZ–{P1,p2,…,p10}*
·市场指数值机器人获胜:
ο市场指数值–{M1,M2,…,M5}*
*以升序表示值的范围。P1<P2<…<P10。
交易机器人基于其接收到的市场数据购买看涨期权和看跌期权:
重要的是,注意,股价机器人和市场指数机器人只发送市场数据,他们不知道策略。
现有设置
·Alice给出了具有5BTC的交易机器人私钥/公钥对A
·Alice给出了具有1BTC的股价机器人私钥/公钥对X
·Alice给出了具有1BTC的市场指数值机器人私钥/公钥对Y
·交易所分别在公钥E_PUT和E_CALL上就看跌期权和看涨期权收取款项。
步骤:
1、Alice第一次运行所有三个机器人:
a.交易机器人通过以下参数与股价机器人建立PubKey协议:
b.交易机器人通过以下参数与市场指数值机器人建立PubKey协议:
2、股价机器人和市场指数值机器人分别记录股票市场的开盘价范围为P5和M3。
3、市场指数值机器人检测到M2的变化。这两个机器人都计算嵌入值PubKey,以发送给交易机器人。
a.股价机器人:
b.市场指数值机器人:
4、这两个机器人都创建并向区块链提交中间交易,该交易的输出需要P2PKH解锁脚本,该脚本带有嵌入值的PubKey;
股价机器人的中间交易见图3。注意,输出1需要具有嵌入值PubKey X’的解锁脚本;输出2改变回股价机器人;
市场指数值机器人的中间交易见图4;注意,输出1需要具有嵌入值PubKey Y’的解锁脚本;输出2改变回股价机器人。
5、这两个机器人都向交易机器人发送包含相应的嵌入值PubKey的未签名的交易输入。
股价机器人的输入见图5a;
市场指数值机器人的输入见图5b。
6、参见图6:交易机器人创建了表示XOR门的交易,包括从股价机器人和市场指数值机器人接收到的交易输入。
7、参见图7:交易机器人向股价机器人和市场指数值机器人通知交易的存储/访问细节,并要求他们对其输入进行签名。
a.这两个机器人都用SIGHASH_NONE进行签名,锁定输入。
8、交易机器人从解锁脚本中获取<PubKeyX'>,并计算P1、P2、…、P10的嵌入值PubKey,直到找到与P5匹配的pubkey。
9、交易机器人从解锁脚本中获取<PubKeyY'>,并计算M1、M2、…、M5的嵌入值PubKey,直到找到与M2匹配的pubkey。
10、交易机器人将XOR逻辑门应用于这些值,并确定应该购买看涨期权。
a.P5∈{P7,P8,P9,P10}XOR M2∈{M1,M2};
b.FALSE XOR TRUE;
c.TRUE–买入看涨期权。
11、参见图8:贸易机器人更新输出,将5BTC发送到E_PUT,用SIGHASH_ALL对其输出进行签名,并提交给区块链。
用例示例2:AND逻辑门
实现比特币交易,以表示具有两个输入源的AND逻辑门。想象一家银行包含一个带有双重控制(双重保管)电子密码锁的金库。没有一个人具有两个组合,需要两名银行经理同时在场才能开门。如果两个组合同时正确输入(‘1111’和‘2222’),金库门将解锁,否则将激活金库报警。这是AND门的实现方式。
整个系统由4个实体组成:密码锁A、密码锁B、控制器和金库。
控制器中的AND逻辑:组合A=='1111'和组合B=='2222'
应该注意的是,所有的逻辑评估都是由控制器执行的。密码锁只发送4位数的代码,但不评估代码是真还是假。
现有设置
·密码锁A拥有具有1BTC的私钥/公钥对A
·密码锁B拥有具有1BTC的私钥/公钥对B
·控制器拥有具有1BTC的私钥/公钥对C
·金库拥有私钥/公钥对V_DOOR和V_ALARM
步骤:
1、当首次安装系统时,控制器建立了带有密码锁A和密码锁B的PubKey协议,以允许安全的信号通信:
a.控制器和密码锁A的PubKey协议参数:
b.控制器和密码锁B的PubKey协议参数:
2、银行经理同时将其相应的4位数代码(1111和2222)输入密码锁A和密码锁B。每个密码锁将其4位数代码嵌入到嵌入值PubKey(PubKeyA’和PubKeyB’)中。
c.密码锁A:
d.密码锁B:
3、两个密码锁创建比特币交易(中间交易)并提交给区块链,输出给其相应的嵌入值PubKey。
a.密码锁A的中间交易:见图9
输出1–花费该输出的输入将向控制器传送PubKeyA’
输出2–变回密码锁A的公钥A
b.密码锁B的中间交易:见图10
输出1–花费该输出的输入将向控制器传送PubKeyB’
输出2–变回密码锁B的公钥B
4、这两个密码锁都创建了未签名比特币交易输入,该输入花费了其相应中间交易的输出1。他们将这个输入发送给控制器,参见图11,
a.密码锁A的交易输入
b.密码锁B的交易输入
5、控制器使用来自密码锁的比特币交易输入,并创建表示AND门的比特币交易(AND门交易)。该交易包括来自控制器本身的输入,因此可以单独修改输出。参见图12。
6、控制器请求密码锁A和密码锁B使用SIGHASH_NONE在AND门交易中对其相应的输入进行签名。这锁定了输入,同时仍然允许修改输出,参见图13。
7、控制器使用其带有密码锁A的PubKey协议来计算每个4位组合0000,0001,…,9998,9999的嵌入值PubKey,直到找到与PubKeyA’匹配的值。
a.控制器发现‘1111’产生的与PubKeyA’相同的嵌入值PubKey
8、控制器使用其带有密码锁B的PubKey协议来计算每个4位组合0000,0001,…,9998,9999的嵌入值PubKey,直到找到与PubKeyB’匹配的值。
a.控制器发现‘2222’产生的与PubKeyB’相同的嵌入值PubKey
9、控制器将AND门逻辑应用于组合:
a.组合A=‘1111’AND组合B=‘2222’
b.TRUE AND TRUE
c.TRUE-向V_DOOR发送信号,以解锁门
10、控制器更新AND门交易的输出,以向V_DOOR发送信号,并改变回自身。然后,用SIGHASH_ALL对其输入进行签名,以锁定所有输入和输出,并提交给区块链:参见图14。
11、当看到交易输出到V_DOOR,金库将打开金库门。
用例示例3:IMPLY逻辑门
在这个示例中,我们实现了比特币交易,以表示具有两个输入源的IMPLY逻辑门。想象一架飞机有两个开关,开关A打开/关闭手动模式,开关B打开/关闭起落架延伸系统。如果开关A关闭(自动着陆),则起落架总是伸出,而不管开关B如何。开关A打开(手动模式),起落架基于开关B延伸。这是IMPLY门的实现方式。整个系统由4个实体组成:开关A、开关B、控制器和起落架。
控制器中IMPLY逻辑:开关A==打开IMPLY开关B==打开
所有逻辑评估都由控制器执行。开关只是发送其状态。
现有设置
·开关A拥有具有1BTC的私钥/公钥对A
·开关B拥有具有1BTC的私钥/公钥对B
·控制器拥有具有1BTC的私钥/公钥对C
·起落架延伸系统拥有私钥/公钥对L_EXTEND和L_RETRACT
步骤:
1、当首次安装系统时,控制器建立了带有开关A和开关B的PubKey协议,以允许安全的信号通信:
a.控制器和开关A的PubKey协议参数:
b.控制器和开关B的PubKey协议参数:
2、手动模式当前接合(开关A打开),起落架收起(开关B关闭)。
3、飞行员准备着陆,关闭开关A(自动着陆)。每个开关将其状态嵌入到嵌入值PubKey(PubKeyA’和PubKeyB’)中。
a.开关A:
b.开关B:
4、两个开关创建比特币交易(中间交易)并提交给区块链,输出给其相应的嵌入值PubKey。
a.开关A的中间交易:见图15
输出1–花费该输出的输入将向控制器传送PubKeyA’
输出2–变回开关A的公钥A
b.开关B的中间交易:见图16
输出1–花费该输出的输入将向控制器传送PubKeyB’
输出2–变回开关B的公钥B
5、这两个开关都创建了未签名比特币交易输入,该输入花费了其相应中间交易的输出1。他们将这个输入发送给控制器,参见图17,
a.开关A的交易输入
b.开关B的交易输入
6、控制器使用来自开关的比特币交易输入,并创建表示IMPLY门的比特币交易(IMPLY门交易)。该交易包括来自控制器本身的输入,因此可以单独修改输出。参见图18。
7、控制器请求开关A和开关B使用SIGHASH_NONE在IMPLY门交易中对其相应的输入进行签名。这锁定了输入,同时仍然允许修改输出,参见图19。
8、控制器使用其带有开关A的PubKey协议来计算打开和关闭的嵌入值PubKey,以找到与PubKeyA’匹配的值。
a.控制器发现关闭产生与PubKeyA’相同的嵌入值PubKey
9、控制器使用其带有开关A的PubKey协议来计算打开和关闭的嵌入值PubKey,以找到与PubKeyB’匹配的值。
a.控制器发现关闭产生与PubKeyB’相同的嵌入值PubKey
10、控制器应用IMPLY门逻辑:
a.开关A==打开IMPLY开关B==打开
b.关闭==打开IMPLY关闭==打开
c.FALSE IMPLY FALSE
d.TRUE–向L_EXTEND发送信号,以延长起落架
11、控制器更新IMPLY门交易的输出,以向L_EXTEND发送信号,并改变回自身。然后,用SIGHASH_ALL对其输入进行签名,以锁定所有输入和输出,并提交给区块链:参见图20。
12、当看到L_EXTEND的交易输出时,起落架延伸系统打开。
用例示例4:NAND逻辑门
在这个示例中,我们实现了比特币交易,以表示具有两个输入源的NAND逻辑门。在汽车中,每个车门通常都有一个开关,当车门打开时,该开关打开,如果一个或多个车门打开,则警示灯就会打开,以警告驾驶员。这是NAND门的实现方式。整个系统由4个实体组成:开关A、开关B、控制器和灯。当其中一个开关改变状态时,这两个开关都向控制器发送信号。
控制器中的NAND逻辑:开关A=关闭NAND开关B=关闭
/>
所有逻辑评估都由控制器执行。开关只是将其打开或关闭状态发送给控制器。
现有设置
·开关A拥有具有1BTC的私钥/公钥对A
·开关B拥有具有1BTC的私钥/公钥对B
·控制器拥有具有1BTC的私钥/公钥对C
·灯拥有私钥/公钥对L_TURNON和L_TURNOFF
步骤:
1、当首次安装系统时,控制器建立了带有开关A和开关B的PubKey协议,以允许安全的信号通信:
a.控制器和开关A的PubKey协议参数:
b.控制器和开关B的PubKey协议参数:
2、开关A检测到其门从关闭状态变为打开状态,而开关B检测到其门保持关闭状态。每个开关将其相应状态(打开和关闭)嵌入到嵌入值PubKey(PubKeyA’和PubKeyB’)中。
a.开关A:
b.开关B:
3、参见图21a和图21b。这两个开关创建比特币交易(中间交易)并提交给区块链,输出给其相应的嵌入值PubKey。
a.开关A的中间交易:图21a
输出1–花费该输出的输入将向控制器传送PubKeyA’
输出2–变回开关A的公钥A
b.开关B的中间交易:图21b
输出1–花费该输出的输入将向控制器传送PubKeyB’
输出2–变回开关B的公钥B
4、这两个开关都向控制器发送未签名的比特币交易输入,该输入花费了其相应中间交易的输出1。参见图22,
a.开关A的交易输入
b.开关B的交易输入
5、控制器使用来自开关的比特币交易输入,并创建表示NAND门的比特币交易(NAND门交易)。该交易包括来自控制器本身的输入,因此可以单独修改输出。参见图23。
6、控制器请求开关A和开关B使用SIGHASH_NONE在NAND门交易中对其相应的输入进行签名。这锁定了输入,同时仍然允许修改输出,参见图24。
7、控制器使用其带有开关A的PubKey协议来计算每个打开和关闭状态的嵌入值PubKey。
a.控制器发现‘打开’产生与PubKeyA’相同的嵌入值PubKey
b.控制器使用其带有开关B的PubKey协议来计算每个打开和关闭状态的嵌入值PubKey。
控制器发现‘关闭’产生与PubKeyB’相同的嵌入值PubKey。
8、控制器将NAND门逻辑应用于开关状态:
a.开关A=关闭NAND开关B=关闭
b.FALSE NAND TRUE
c.TRUE-向L_TURNON发送信号,以打开灯
9、控制器更新NAND门交易的输出,以向L_TURNON发送信号,并改变回自身。然后,用SIGHASH_ALL对其输入进行签名,以锁定所有输入和输出,并提交给区块链:参见图25。
10、当看到交易输出到L_TURNON时,灯打开。
用例示例5:NONIMPLY逻辑门
在这个示例中,我们实现了比特币交易,以表示具有两个输入源的NONIMPLY逻辑门。想象智能车道照明系统具有检测到汽车存在的传感器A和仅打开/关闭手动模式的开关B。如果传感器A没有检测到汽车,则车道灯关闭。如果传感器A检测到汽车,如果开关B手动模式关闭,则会自动打开车道灯。这是NONIMPLY门的实现方式。整个系统由4个实体组成:传感器A、开关B、控制器和车道灯。
控制器中的NONIMPLY逻辑:传感器A=='汽车'IMPLY开关B=='手动打开'
所有逻辑评估都由控制器执行。传感器和开关只是发送其状态。
现有设置:
·传感器A拥有具有1BTC的私钥/公钥对A
·开关B拥有具有1BTC的私钥/公钥对B
·控制器拥有具有1BTC的私钥/公钥对C
·车道灯拥有私钥/公钥对L_ON和L_OFF
步骤:
1、当首次安装系统时,控制器建立了带有传感器A和开关B的PubKey协议,以允许安全的信号通信:
a.控制器和传感器A的PubKey协议参数:
b.控制器和开关B的PubKey协议参数:
/>
2、传感器A当前检测到没有汽车,开关B关闭了手动模式。
3、传感器A检测到车道上有汽车。传感器和开关将其状态嵌入到嵌入值PubKey(PubKeyA’和PubKeyB’)
a.传感器A:
b.开关B:
4、两个开关创建比特币交易(中间交易)并提交给区块链,输出给其相应的嵌入值PubKey。
a.传感器A的中间交易:见图26a
输出1–花费该输出的输入将向控制器传送PubKeyA’
输出2–变回开关A的公钥A
b.开关B的中间交易:见图16
输出1–花费该输出的输入将向控制器传送PubKeyB’
输出2–变回开关B的公钥B
5、传感器A和开关B创建了未签名比特币交易输入,该输入花费了其相应中间交易的输出1。他们将这个输入发送给控制器,参见图27,
a.传感器A的交易输入
b.开关B的交易输入
6、控制器使用来自传感器和开关的比特币交易输入,以创建表示NONIMPLY门的比特币交易(NONIMPLY门交易)。该交易包括来自控制器本身的输入,因此可以单独修改输出。参见图28。
7、控制器请求传感器A和开关B使用SIGHASH_NONE在NONIMPLY门交易中对其相应的输入进行签名。这锁定了输入,同时仍然允许修改输出,参见图29。
8、控制器使用其带有传感器A的PubKey协议来计算有汽车和没有汽车的嵌入值PubKey,以找到与PubKeyA’匹配的值。
a.控制器发现汽车产生与PubKeyA’相同的嵌入值PubKey
9、控制器使用其带有开关A的PubKey协议来计算手动打开和手动关闭的嵌入值PubKey,以找到与PubKeyB’匹配的值。
a.控制器发现手动关闭产生与PubKeyB’相同的嵌入值PubKey
10、控制器应用NONIMPLY门逻辑:
a.传感器A=='汽车'NONIMPLY开关B==‘手动打开’
b.'汽车'=='汽车'NONIMPLY‘手动关闭’==‘手动打开’
c.TRUE IMPLY FALSE
d.TRUE–向L_ON发送信号,以打开车道灯
11、控制器更新NONIMPLY门交易的输出,以向L_ON发送信号,并改变回自身。然后,用SIGHASH_ALL对其输入进行签名,以锁定所有输入和输出,并提交给区块链:参见图30。
12、当看到交易输出到L_ON时,车道灯打开。
用例示例6:NOT逻辑门
在这个示例中,我们实现了比特币交易,以表示具有一个输入源的NOT逻辑门。想象伦敦塔中的皇冠珠宝每年都会展示给数百万游客。想象帝国皇冠坐落在通常关闭的压敏开关上。将皇冠放在开关上,配备警报。从开关上取下皇冠,会激活警报。这是NOT门的实现方式。整个系统由控制器、开关和警报组成。当开关改变状态时,开关向控制器发送信号。
控制器中的NOT逻辑:NOT开关=关闭
来自开关的信号 控制器NOT逻辑 从控制器到警报的输出信号
关闭 False 激活警报
打开 True 配备警报
现有设置
·开关拥有具有1BTC的私钥/公钥对X
·控制器拥有具有1BTC的私钥/公钥对C
·警报拥有私钥/公钥对A_Activate和A_Arm
步骤:
1、在安装过程中,控制器和开关使用以下参数建立PubKey协议:
2、开关最初处于关闭状态(皇冠位于开关上)
3、在移走皇冠时,开关检测到变化。开关将信号‘false’嵌入到嵌入值PubKey(PubKeyX’)中。
a.
4、开关创建中间交易,并提交给区块链,输出给其嵌入值的PubKey。见图31
输出1–花费该输出的输入将向控制器传送PubKeyX’
输出2–变回开关X的公钥A
5、开关向控制器发送未签名比特币交易输入,该输入花费了中间交易的输出1。参见图32。
6、控制器创建表示NOT门的比特币交易(NOT门交易)。该交易包括从开关接收的比特币交易输入。参见图33。
7、控制器请求开关在NOT门交易中对其输入进行签名,以便锁定
a.使用SIGHASH_NONE切换签名,防止其被修改:图34。
8、控制器计算‘true’和‘false’的嵌入值PubKe,并将其与解锁脚本中的嵌入值PubKey(PubKeyX’)进行比较。找到了与‘false’的匹配。
9、控制器将NOT门应用于值‘false’,并确定应该发送信号,以激活警报(A_ACTIVE)
10、控制器更新NOT门交易的输出,以向A_ACTIVATE发送信号,并改变回自身。然后,用SIGHASH_ALL对输入进行签名,并提交给区块链:参见图35。
输出1–激活警报的信号
输出2–变回控制器的公钥C
11、当看到A_ACTIVE的交易输出时,警报激活。
用例示例7:OR逻辑门
实现比特币交易,以表示具有两个输入源的OR逻辑门。考虑带有自动气流系统的建筑物,该系统使用内部和外部温度传感器。温度传感器读取从-30到50的整数摄氏度。如果内部温度高于21或者外部温度高于25,则气流系统排出冷空气,否则气流系统排出热空气。这是OR门的实现方式。整个系统由4个实体组成:温度传感器A、温度传感器B、控制器和气流系统。当任一传感器检测到温度变化时,这两个传感器都会向控制器发送信号。
控制器中的OR逻辑:温度A>21或者温度B>25
所有逻辑评估都由控制器执行。温度传感器只发送温度读数,但不评估是热的还是冷的。
现有设置
·温度传感器A拥有具有1BTC的私钥/公钥对A
·温度传感器B拥有具有1BTC的私钥/公钥对B
·控制器拥有具有1BTC的私钥/公钥对C
·气流系统拥有私钥/公钥对S_COOL和S_WARM
步骤:
1、当首次安装系统时,控制器建立了带有温度传感器A和温度传感器B的PubKey协议,以允许安全的信号通信:
a.控制器和温度传感器A的PubKey协议参数:
b.控制器和温度传感器B的PubKey协议参数:
2、温度传感器A当前读数为21和温度传感器B读数为27。
3、温度传感器B检测到从21到20的变化。每个温度传感器将其读数嵌入到嵌入值PubKey(PubKeyA’和PubKeyB’)中。
a.温度传感器A:
b.温度传感器B:
4、两个温度传感器创建比特币交易(中间交易)并提交给区块链,输出给其相应的嵌入值PubKey。
a.温度传感器A的中间交易:图36a
输出1–花费该输出的输入将向控制器传送PubKeyA’
输出2–变回温度传感器A的公钥A
b.温度传感器B的中间交易:图36b
输出1–花费该输出的输入将向控制器传送PubKeyB’
输出2–变回温度传感器B的公钥B
5、这两个温度传感器都创建了未签名比特币交易输入,该输入花费了其相应中间交易的输出1。他们将这个输入发送给控制器,参见图37,
a.温度传感器A的交易输入
b.温度传感器B的交易输入
6、控制器使用来自温度传感器的比特币交易输入,并创建表示OR门的比特币交易(OR门交易)。该交易包括来自控制器本身的输入,因此可以单独修改输出。参见图38。
7、控制器请求温度传感器A和温度传感器B使用SIGHASH_NONE在OR门交易中对其相应的输入进行签名。这锁定了输入,同时仍然允许修改输出,参见图39。
8、控制器使用其带有温度传感器A的PubKey协议来计算每个温度-30,-29,…,49,50的嵌入值PubKey,直到找到与PubKeyA’匹配的值。
a.控制器发现20产生与PubKeyA’相同的嵌入值PubKey
9、控制器使用其带有温度传感器B的PubKey协议来计算每个温度-30,-29,…,49,50的嵌入值PubKey,直到找到与PubKeyB’匹配的值。
a.控制器发现27产生与PubKeyB’相同的嵌入值PubKey
10、控制器应用OR门逻辑到温度读数:
a.温度A>21OR温度B>25
b.20>21OR 27>25
c.FALSE OR TRUE
d.TRUE–向S_COOL发送信号,以排出冷空气
11、控制器更新OR门交易的输出,以向S_COOL发送信号,并改变回自身。然后,用SIGHASH_ALL对其输入进行签名,以锁定所有输入和输出,并提交给区块链:参见图40。
12、当看到交易输出到S_COOL时,排出冷空气。
用例示例8:XNOR逻辑门
在这个示例中,我们实现了比特币交易,以表示具有两个输入源的XNOR逻辑门。考虑生产两种物品的生产系统:板球和板球软木塞。这两个物品都通过了同样的具有两个扫描仪A和B的质量控制。扫描仪A给出了球是否是红色的0、5、10、…、95、100%的置信读数。扫描仪B给出了球是否有缝线的0、5、10、…、95、100%的置信读数。如果一个球具有这两个特征,就作为普通的板球而接受。如果一个球没有这两个特征,也可以作为软木软木塞而接受。如果一个球只有一个特征,则会被拒绝,因为这是一个缺陷。这是XNOR门的实现方式。
整个系统由4个实体组成:扫描仪A、扫描仪B、控制器和生产系统。当其中一个检测到变化时,这两个检测器都向控制器发送置信。
控制器中的XNOR逻辑:扫描仪置信A>90% XNOR扫描仪置信B>60%
检测到缝线不如检测到红色准确,因此扫描仪B使用了更大范围的可接受值。
所有逻辑评估都由控制器执行。扫描仪只是发送其置信读数,但是没有评估其是否足够高,以假设发生了火灾。
现有设置
·扫描仪A拥有具有1BTC的私钥/公钥对A
·扫描仪B拥有具有1BTC的私钥/公钥对B
·控制器拥有具有1BTC的私钥/公钥对C
·生产系统拥有私钥/公钥对S_ACCEPT和S_REJECT
步骤:
1、当首次安装系统时,控制器建立了带有扫描仪A和扫描仪B的PubKey协议,以允许安全的信号通信:
a.控制器和扫描仪A的PubKey协议参数:
b.控制器和扫描仪B的PubKey协议参数:
2、一个球穿过扫描仪。扫描仪A读取100%匹配。扫描仪B读取75%匹配。
3、每个扫描仪将其读数嵌入到嵌入值PubKey(PubKeyA’和PubKeyB’)中。
a.扫描仪A:
b.扫描仪B:
4、两个扫描仪创建比特币交易(中间交易)并提交给区块链,输出给其相应的嵌入值PubKey。
d.扫描仪A的中间交易:见图41a
输出1–花费该输出的输入将向控制器传送PubKeyA’
输出2–变回扫描仪A的公钥A
e.扫描仪B的中间交易:见图41b
输出1–花费该输出的输入将向控制器传送PubKeyB’
输出2–变回扫描仪B的公钥B
5、这两个开关都创建了未签名比特币交易输入,该输入花费了其相应中间交易的输出1。他们将这个输入发送给控制器,参见图42,
a.扫描仪A的交易输入
c.扫描仪B的交易输入
6、控制器使用来自扫描仪的比特币交易输入,并创建表示XNOR门的比特币交易(XNOR门交易)。该交易包括来自控制器本身的输入,因此可以单独修改输出。参见图43。
7、控制器请求扫描仪A和扫描仪B使用SIGHASH_NONE在XNOR门交易中对其相应的输入进行签名。这锁定了输入,同时仍然允许修改输出,参见图44。
8、控制器使用其带有扫描仪A的PubKey协议来计算每个置信0、5、…、95、100%的嵌入值PubKey,直到找到与PubKeyA’匹配的值。
a.控制器发现100%产生与PubKeyA’相同的嵌入值PubKey
9、控制器使用其带有扫描仪B的PubKey协议来计算每个置信0、5、…、95、100%的嵌入值PubKey,直到找到与PubKeyB’匹配的值。
a.控制器发现75%产生与PubKeyB’相同的嵌入值PubKey
10、控制器将NOR门逻辑应用于温度读数:
a.扫描仪置信A>90% XNOR扫描仪置信B>60%
b.100>60XNOR 75>60
c.TRUE OR TRUE
d.TRUE–向S_ACCEPT发送信号,以接受球
11、控制器更新XNOR门交易的输出,以向S_ACCEPT发送信号,并改变回自身。然后,用SIGHASH_ALL对其输入进行签名,以锁定所有输入和输出,并提交给区块链:参见图45。
12、当看到S_ACCEPT的交易输出时,系统允许球继续打包。
应当注意,上述实施例说明而不是限制本发明,并且本领域技术人员能够设计许多替代实施例,而不脱离由所附权利要求限定的本发明的范围。在权利要求中,括号中的任何附图标记不应被解释为限制权利要求。词语“包括的”和“包括”等不排除任何权利要求或整个说明书中列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括”是指“包括或由…组成”和“包括的”是指“包括的或由…组成的”。元素的单数引用不排除这些元素的复数引用,反之亦然。本发明可以通过包括几个不同元件的硬件并且通过适当编程的计算机来实现。在列举了几个装置的装置权利要求中,这些装置中的几个可以由同一个硬件来体现。在相互不同的从属权利要求中列举了某些措施这一事实并不表示这些措施的组合不能有利地使用。

Claims (16)

1.一种执行逻辑部分的计算机实现的方法,所述方法包括以下步骤:
生成区块链交易,所述交易包括:
从一个或多个输入源获得的至少一个签名输入,该至少一个签名输入包括被嵌入在与所述至少一个签名输入相关联的公钥中的值,其中在给定输入源与控制器之间建立或选择协议,该控制器在所述交易和/或区块链的外部,其中所述协议用于将该值嵌入所述公钥中;
与所述控制器相关联的至少一个未签名输入;以及
至少一个可修改的输出;
基于所述协议从所述公钥中提取该值,并将其提供给逻辑部分,以获得结果,其中所述逻辑部分表示在所述交易和/或区块链的外部的系统,其中所述控制器将所述逻辑部分应用于所提取的值,以获得所述结果,并与所述交易通信,以基于所述结果修改所述交易的输出;
使用所述结果修改交易的输出,使交易表示所述结果;
在修改输出后由所述控制器对所述未签名输入签名;
基于所述交易的已修改输出修改所述外部的系统的状态,
其中所述外部的系统是以下中的一个或多个:电子锁、车辆控制系统、传感器、照明系统、加热/冷却系统、警报系统、和/或工业制造系统;以及
其中,所述逻辑部分被设置为实现逻辑门的功能。
2.根据权利要求1所述的方法,其中,所述逻辑部分在所述交易和/或区块链的外部。
3.根据权利要求1所述的方法,其中,所述逻辑门是AND、NOT、OR、NOR、XOR、IMPLY、NAND、NONIMPLY或XNOR门。
4.根据权利要求1所述的方法,还包括所述控制器将所述交易提交给区块链的步骤。
5.根据权利要求1所述的方法,其中,使用解锁脚本将所述签名输入提供给所述交易。
6.根据权利要求1-5中任一项所述的方法,其中,所述至少一个签名输入通过所述给定的输入源使用签名散列类型被签名,所述签名散列类型使得所述签名输入不可修改。
7.根据权利要求6所述的方法,其中,所述签名散列类型是SIGHASH_NONE。
8.根据权利要求1-5中任一项所述的方法,其中,使用防止修改整个交易的签名散列类型来对所述未签名输入进行签名。
9.根据权利要求8所述的方法,其中,所述签名散列类型是SIGHASH_ALL。
10.根据权利要求1-5中任一项所述的方法,其中,嵌入值的所述公钥用于在与所述给定输入源相关联的中间区块链交易中创建锁定脚本。
11.根据权利要求10所述的方法,还包括由所述给定输入源向区块链提交所述中间区块链交易的步骤。
12.根据权利要求1-5中任一项所述的方法,其中,通过以下生成用于输入源的嵌入值的所述公钥:
P′=P+HASH(值S)x G
其中:
P是与所述一个或多个输入源相关联的基本或初始公钥;
G是椭圆曲线函数;
x表示椭圆曲线乘以标量;
S表示共享密钥;并且
表示椭圆曲线加法。
13.根据权利要求12所述的方法,其中所述椭圆曲线函数是secp256k1。
14.根据权利要求1-5中任一项所述的方法,还包括通过以下生成与嵌入值的公钥对应的新私钥V′的步骤:
V′=V+HASH(值+S),其中V是与给定输入源相关联的私钥。
15.根据权利要求1-5中任一项所述的方法,其中,嵌入在公钥中的值选自特定范围的值。
16.一种计算机实现的系统,包括:
至少一个基于计算机的资源,用于执行权利要求1-15中任一项所述的方法的步骤。
CN201780037506.1A 2016-07-05 2017-06-30 用于控制外部进程或系统的区块链实现的控制方法和系统 Active CN109478278B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1611698.0 2016-07-05
GBGB1611698.0A GB201611698D0 (en) 2016-07-05 2016-07-05 Blockchain-implemented control method and system
PCT/IB2017/053957 WO2018007916A1 (en) 2016-07-05 2017-06-30 A blockchain-implemented control method and system for controlling an external process or system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410177663.4A Division CN118035959A (zh) 2016-07-05 2017-06-30 用于控制外部进程或系统的区块链实现的控制方法和系统

Publications (2)

Publication Number Publication Date
CN109478278A CN109478278A (zh) 2019-03-15
CN109478278B true CN109478278B (zh) 2024-03-08

Family

ID=56891040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780037506.1A Active CN109478278B (zh) 2016-07-05 2017-06-30 用于控制外部进程或系统的区块链实现的控制方法和系统

Country Status (9)

Country Link
US (2) US11463260B2 (zh)
EP (1) EP3482365A1 (zh)
JP (3) JP7096774B2 (zh)
KR (1) KR102467625B1 (zh)
CN (1) CN109478278B (zh)
GB (1) GB201611698D0 (zh)
SG (2) SG10202112767PA (zh)
WO (1) WO2018007916A1 (zh)
ZA (1) ZA201900510B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11271736B2 (en) * 2016-07-29 2022-03-08 nChain Holdings Limited Blockchain-implemented method and system
CN106980649B (zh) 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
EP3525498B1 (en) * 2018-02-08 2022-04-20 Sony Group Corporation Electronic devices, systems and methods for vehicular communication
US10693637B2 (en) * 2018-03-23 2020-06-23 Belavadi Nagarajaswamy Ramesh System and method for composite-key based blockchain device control
CN112119611A (zh) 2018-05-14 2020-12-22 区块链控股有限公司 使用区块链执行原子交换的计算机实现的系统和方法
CN108830463B (zh) * 2018-05-29 2021-03-19 厦门哈希科技有限公司 一种评价记录的存储方法、装置、存储介质及系统
EP3804279A4 (en) * 2018-06-01 2022-01-19 Nokia Technologies OY METHOD AND DEVICE FOR DISTRIBUTED TRUST ASSESSMENT IN A DISTRIBUTED NETWORK
US11227282B2 (en) 2018-08-20 2022-01-18 Probloch LLC Time-bounded activity chains with multiple authenticated agent participation bound by distributed single-source-of-truth networks that can enforce automated value transfer
KR102218884B1 (ko) * 2018-11-28 2021-02-24 주식회사 이와이엘 블록체인 기반의 양자 엔트로피 소스를 이용한 사용자 인증 방법 및 시스템
US11455846B2 (en) 2019-01-03 2022-09-27 International Business Machines Corporation Consensus vehicular collision properties determination
US20210092127A1 (en) * 2019-09-19 2021-03-25 Microsoft Technology Licensing, Llc Writing role-backed access control to chain
GB2614077A (en) * 2021-12-21 2023-06-28 Nchain Licensing Ag Signature-based atomic swap

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1178619A (zh) * 1996-01-26 1998-04-08 布尔Cp8公司 非对称密码通信过程与相关的便携装置
CN102378974A (zh) * 2009-04-01 2012-03-14 微软公司 使用访问图来提供对数据项的访问
CN102629403A (zh) * 2012-03-14 2012-08-08 深圳市紫金支点技术股份有限公司 一种基于atm设备的u盘授权方法及系统
CN104463001A (zh) * 2014-12-19 2015-03-25 比特卡国际有限公司 一种独立生成和保存加密数字货币私钥的方法及承载加密数字货币私钥的装置
CA3004263A1 (en) * 2014-03-18 2015-09-24 nChain Holdings Limited Virtual currency system
CN105515763A (zh) * 2014-10-01 2016-04-20 马克西姆综合产品公司 用于经由逻辑门加密来提高机密性的系统和方法
WO2016062727A1 (en) * 2014-10-21 2016-04-28 Gemalto Sa Method for accessing a service, corresponding first device, second device and system
US9331856B1 (en) * 2014-02-10 2016-05-03 Symantec Corporation Systems and methods for validating digital signatures

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511121A (en) 1994-02-23 1996-04-23 Bell Communications Research, Inc. Efficient electronic money
KR101061906B1 (ko) 2004-02-19 2011-09-02 삼성전자주식회사 전력분석공격에 안전한 기본 연산 장치 및 방법
US7617397B2 (en) * 2005-04-29 2009-11-10 Microsoft Corporation Systems and methods for generation and validation of isogeny-based signatures
US8484723B2 (en) * 2009-06-05 2013-07-09 Signix, Inc. Method and system for signing and authenticating electronic documents via a signature authority which may act in concert with software controlled by the signer
US8452969B2 (en) * 2009-09-16 2013-05-28 GM Global Technology Operations LLC Flexible broadcast authentication in resource-constrained systems: providing a tradeoff between communication and computational overheads
US8509426B1 (en) 2010-12-01 2013-08-13 King Fahd University Of Petroleum And Minerals XZ-elliptic curve cryptography system and method
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.
US9876775B2 (en) 2012-11-09 2018-01-23 Ent Technologies, Inc. Generalized entity network translation (GENT)
US20160085955A1 (en) * 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
WO2015106285A1 (en) 2014-01-13 2015-07-16 Yago Yaron Edan Verification method
US20150213433A1 (en) * 2014-01-28 2015-07-30 Apple Inc. Secure provisioning of credentials on an electronic device using elliptic curve cryptography
EP3123423A4 (en) 2014-03-27 2017-08-30 Nokia Technologies Oy Method and apparatus for automatic inter-device authorisation
US9705683B2 (en) 2014-04-04 2017-07-11 Etas Embedded Systems Canada Inc. Verifiable implicit certificates
WO2015183497A1 (en) * 2014-05-06 2015-12-03 Case Wallet, Inc. Cryptocurrency virtual wallet system and method
EP3140979A4 (en) 2014-05-09 2017-12-27 Veritaseum Inc. Devices, systems, and methods for facilitating low trust and zero trust value transfers
US20150356523A1 (en) * 2014-06-07 2015-12-10 ChainID LLC Decentralized identity verification systems and methods
US10148441B2 (en) 2014-09-12 2018-12-04 Verisign, Inc. Systems, devices, and methods for detecting double signing in a one-time use signature scheme
US10409827B2 (en) * 2014-10-31 2019-09-10 21, Inc. Digital currency mining circuitry having shared processing logic
JP6364132B2 (ja) 2015-03-31 2018-07-25 ナスダック, インコーポレイテッドNasdaq, Inc. ブロックチェーン取引記録のシステムおよび方法
US20170091756A1 (en) * 2015-07-14 2017-03-30 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
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
US11271736B2 (en) * 2016-07-29 2022-03-08 nChain Holdings Limited Blockchain-implemented method and system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1178619A (zh) * 1996-01-26 1998-04-08 布尔Cp8公司 非对称密码通信过程与相关的便携装置
CN102378974A (zh) * 2009-04-01 2012-03-14 微软公司 使用访问图来提供对数据项的访问
CN102629403A (zh) * 2012-03-14 2012-08-08 深圳市紫金支点技术股份有限公司 一种基于atm设备的u盘授权方法及系统
US9331856B1 (en) * 2014-02-10 2016-05-03 Symantec Corporation Systems and methods for validating digital signatures
CA3004263A1 (en) * 2014-03-18 2015-09-24 nChain Holdings Limited Virtual currency system
CN105515763A (zh) * 2014-10-01 2016-04-20 马克西姆综合产品公司 用于经由逻辑门加密来提高机密性的系统和方法
WO2016062727A1 (en) * 2014-10-21 2016-04-28 Gemalto Sa Method for accessing a service, corresponding first device, second device and system
CN104463001A (zh) * 2014-12-19 2015-03-25 比特卡国际有限公司 一种独立生成和保存加密数字货币私钥的方法及承载加密数字货币私钥的装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ethereum:A Next- Generation Smart Contract and Decentralized Application Platform;Chih Cheng Liang;《White Paper》;20160413;第5-29页 *

Also Published As

Publication number Publication date
JP2022126806A (ja) 2022-08-30
GB201611698D0 (en) 2016-08-17
JP2023162388A (ja) 2023-11-08
KR20190025942A (ko) 2019-03-12
KR102467625B1 (ko) 2022-11-16
SG11201811008RA (en) 2019-01-30
US20210194697A1 (en) 2021-06-24
EP3482365A1 (en) 2019-05-15
JP2019526192A (ja) 2019-09-12
ZA201900510B (en) 2023-07-26
US20230144153A1 (en) 2023-05-11
WO2018007916A1 (en) 2018-01-11
US11463260B2 (en) 2022-10-04
CN109478278A (zh) 2019-03-15
SG10202112767PA (en) 2021-12-30
JP7096774B2 (ja) 2022-07-06
JP7344350B2 (ja) 2023-09-13

Similar Documents

Publication Publication Date Title
CN109478278B (zh) 用于控制外部进程或系统的区块链实现的控制方法和系统
US11777953B2 (en) Systems and methods for managing digital identities
US20240005310A1 (en) Implementing logic gate functionality using a blockchain
Yue et al. Big data model of security sharing based on blockchain
KR20190033580A (ko) 블록체인 구현 방법 및 시스템
CN111295655B (zh) 用于一个或多个进程的分布式隐私保护共享执行的计算机系统和方法
CN109033895B (zh) 一种基于改进的dapuf电路的轻量级认证体系
Bergquist Blockchain technology and smart contracts: privacy-preserving tools
CN111213170A (zh) 资产托管方法,存储介质,区块链系统及区块链节点
JP2005525731A (ja) 物理アクセス制御
CN118035959A (zh) 用于控制外部进程或系统的区块链实现的控制方法和系统
Dascano Blockchain Explained: Learning the essentials
Islam et al. Blockchain-based decentralized digital self-sovereign identity wallet for secure transaction
Zhao et al. A Comprehensive Overview of Security Vulnerability Penetration Methods in Blockchain Cross-Chain Bridges
Sujatha et al. Smart door locking system using IoT—A security for railway engine pilots
CN111698284A (zh) 基于区块链的计算机加密系统及方法
Jodeiri Akbarfam et al. Deep Learning Meets Blockchain for Automated and Secure Access Control

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