CN111433797A - 基于复合密钥的区块链设备控制系统和方法 - Google Patents
基于复合密钥的区块链设备控制系统和方法 Download PDFInfo
- Publication number
- CN111433797A CN111433797A CN201980005871.3A CN201980005871A CN111433797A CN 111433797 A CN111433797 A CN 111433797A CN 201980005871 A CN201980005871 A CN 201980005871A CN 111433797 A CN111433797 A CN 111433797A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- key
- control
- address
- control data
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4015—Transaction verification using location information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于复合密钥的区块链设备控制系统和方法,其中复合密钥是从控制代码和唯一标识密钥创建的。控制代码用于控制区块链设备。该系统使用可以创建控制数据的控制系统。该系统使用控制数据来控制区块链设备。控制数据与区块链中的数据结合使用。该系统具有与智能合约集成的方法,以使区块链设备的执行依赖于智能合约。该系统可用于控制财务活动、移动活动、资产活动、设备活动、游戏活动。该系统具有将控制系统与区块链设备耦合的方法。该系统具有使区块链设备执行依赖于签名的机制。
Description
技术领域
本公开涉及一种用于控制区块链设备的系统,其包括控制系统、通信系统和区块链设备。
此外,本公开涉及控制区块链设备的方法,其包括控制系统、通信系统和区块链设备。
此外,本公开涉及计算机程序产品,该计算机程序产品包括与区块链和电子设备交互并执行本文描述的方法的硬件和软件。
引用文献
美国专利US4,995,082描述了高效的短签名生成。
美国专利申请WO2017187395A1描述了一种用于控制合约的履行的系统。
美国专利申请2016/0283920A1描述了一种用于在区块链中存储数字证据的哈希的系统。
美国专利US9849364B2描述了一种用于基于以太坊区块链的IOT设备控制的系统。
美国专利申请US 2016/0283941A1描述了一种使用P2SH进行个人识别和验证的机制。
公开号WO2017187396A1显示了使用区块链实现逻辑门功能的示例。
背景技术
区块链是比特币系统的基础技术。比特币是第一个基于加密的电子货币,于2008年发明。比特币是一种去中心化的点对点交易网络,用于记录和验证比特币交易。记录和验证比特币交易的单位称为矿工。矿工维护区块链中所有交易的账本。
在本文中,术语“区块链”包括所有形式的基于计算机的
电子分布式账本。这些包括基于共识的区块链、基于挖矿的技术、允许和不允许的账本、侧链和替代链技术、共享账本及其变体。区块链技术最广为人知的应用是比特币账本,尽管还开发了许多其他区块链实现。尽管出于方便和说明的目的在本文中可能提及比特币,但是应当注意,本公开不限于与比特币区块链一起使用,并且替代的区块链实施方式和协议落入本公开的范围内。
区块链在基于计算机的去中心分布式系统中实现,该系统由区块组成,而区块又由交易组成。每个交易都是一个数据结构,该数据结构编码了区块链系统参与者之间数字资产控制权的转移。它包括至少一个输入和至少一个输出。每个区块都包含前面区块的哈希值,以至于这些区块被链接在一起,从而产生一个自区块链创建以来写入区块链中的所有交易的永久不可更改记录。
典型的交易输出如下所示,其中“Input”表示通过签名(例如在scriptSig中)进行消费的人。“Output”代表已接收的人,在这种情况下为scriptPubKey的所有者(即接收者的比特币地址)
Input:
Previous tx:f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6
Index:0
ScriptSig:
304502206e2 1798a42fae0e85428 1abd38bacd1aeed3ee373 8d9e 14466 18c457ldlO
90db022l00e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b24l50l
Output:
Value:5000000000
scriptPubKey:OP_DUP OP_HASH160 404371705fa9bd789a2fcd52d2c580b65d35549d
OP_EQUALVERIFY OP_CHECKSIG
交易中被嵌入到其输入和输出中的被称为脚本的小程序(例如scriptPubKey),
指定了如何以及由谁来访问交易的输出。
在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)进行工作以确保每笔交易都是有效的,无效交易被网络拒绝。
通常,在比特币区块链技术中,可以被称为用户的交易实体是由公钥或具有秘密的用户标识的。在由公钥标识交易实体的情况中,这被称为P2PKH方法。用户具有秘密的另一方法称为P2SH方法。
在P2PKH方法中,公钥的持有者需要提供公钥和签名以从区块链地址取款。然后由矿工或共识提供者进行验证。矿工通过检查用户提供的公钥的哈希值以及公钥持有者的签名来验证用户。这种检查方法在比特币系统中称为P2PKH方法(向公钥哈希支付)。
在P2PKH方法中,根据椭圆曲线数字签名算法(ECDSA)创建公钥和私钥。
在P2SH方法中,由具有赎回脚本并且还具有赎回脚本的输入的用户来识别用户。在这种方法中,比特币用户将提供赎回脚本输入和赎回脚本来花费比特币。在这种方法中,矿工将验证赎回脚本的哈希值是否与存储在比特币地址中的哈希值匹配。然后,它根据赎回脚本处理赎回脚本输入。这种检查方法在比特币系统中称为P2SH(按脚本付费)。
在P2SH和P2PKH方法中,脚本使用比特币操作码,这些操作码是比特币指令,例如OP_IF,OP_DUP等。这些操作码指示矿工如何处理数据。
P2SH和P2PKH脚本被认为是比特币系统中的标准脚本。
为了提供定制功能,开发人员使用定制操作码来实现定制结果。此类脚本被视为非标准脚本。它们也称为比特币定制合约或比特币智能合约。
比特币定制合约通常使用P2SH方法,其中赎回脚本具有定制合约。定制合约可能包含非标准的操作码。当赎回脚本具有非标准操作码时,比特币矿工可能会拒绝挖掘非标准操作码,因为避免定制合约中的错误既昂贵又冒险。
因此,矿工对比特币定制合约的支持较少。因此,比特币定制合约不是很流行。
在P2SH方法中,流行的赎回脚本是P2PKH脚本和多重签名脚本。当P2PKH脚本用作赎回脚本时,花费者将提供签名和他的公钥以便花费。当多重签名脚本用作赎回脚本时,花费者将提供多重签名参与者的签名。
典型的P2SH使用以下模式
scriptPubKey:OP_HASH160<scriptHash>OP_EQUAL
scriptSig:<input to script><serialized script>
其中<input to script>是序列化脚本的输入。
典型的P2PKH使用以下模式
scriptPubKey:OP_DUP OP_HASH160<pubKeyHash>OP_EQUALVERIFY OP_CHECKSIG
scriptSig:<sig><pubKey>
典型的多重签名使用以下模式
scriptPubKey:OP_HASH160<scriptHash>OP_EQUAL
scriptSig:..signatures...<serialized scipt>
n中m多重签名交易:
scriptSig:0<sig1>...<script>
script:OP_m<pubKey1>...OP_n OP_CHECKMULTISIG
为了克服比特币定制合约的局限性,其他区块链解决方案得到了发展。流行的替代方案是以太坊和Hyperledger。在这些系统中,定制合约脚本用高级语言编写,例如Solidity、Go、Java。然后将它们安装在区块链中。然后由用户执行这些脚本以获得期望的结果。
本公开是对P2SH赎回脚本机制的标准用法的改进,由此消除了每个交易的签名依赖性。取而代之的是,使用UID密钥(唯一标识密钥)来识别区块链设备,并且可以使用移动设备上的SMS传递的秘密(例如PIN)或类似方法来执行交易。因此,更容易创建比特币定制合约。每当使用比特币定制合约时,都可以将它们与在某些情况下的依赖性签名分离,以执行交易。
这应该有助于在控制区块链设备的应用中更多地接受比特币定制合约。
另一种流行的方法是使用基于OP_RETURN的解决方案。在这种方法中,使用OP_RETURN来实现解决方案。通过使用OP_RETURN机制,将40个字节的数据存储在区块链中。这40个字节用于智能地实施一些解决方案,例如资产管理、文档签名、文档验证。但是,这种比特币解决方案的方法解决了不同的问题。因此,它与本公开无关。基于OP_RETURN的实现用于彩色币和多链。
本公开也可以被称为无脚本脚本,因为它实现了通常需要复杂脚本的功能,而不实际使用复杂脚本。
美国专利US4,995,082描述了高效的短签名生成机制。这通常被称为shnorr技术。在有关比特币中无脚本脚本的一些文章中对此进行了描述。这种机制是不同的,用于解决不同的问题。
美国专利申请WO2017187395A1描述了一种用于使用分布式哈希表和点对点分布式账本来控制合约的执行的系统。这使用常规的使用P2SH的方式来确保许可通过区块链进行控制。
美国专利申请WO2017187396A1示出了一种用于使用区块链来实现逻辑门的机制。但是,这使用了使用P2SH的传统方式。与该现有技术相比,本公开使用不同的机制。
美国专利申请US 2016/0283920 A1将证据的哈希存储在区块链中。这用于检测篡改。这解决了不同的问题。所公开的方法不同于该方法。
美国专利US9849364B2使用以太坊区块链来控制设备。使用公开的方法,可以使用比特币区块链实现类似的控制。
美国专利申请2016/0283941A1描述了一种使用P2SH进行个人识别和验证的机制。所公开的方法不同于该方法。
简要地,使用现有的比特币标准脚本使用机制不容易实现以下问题:
·使用传统的登录名/密码或一次性密码进行多用户批准。
·通过区块链远程锁定/解锁设备。
·通过区块链基于位置的活动触发。
·使用传统登录、OTP(一次性密码)进行多用户文档签名。
·在区块链上发布的可以轻松兑换的优惠券。
已经使用bitcoinjs-lib库版本2.3测试了所公开方法的可行性。工作可行性的确认是在调试环境中完成的。提供了屏幕截图和示例。但是,这些示例取决于执行它们所需的其他环境。
所提供的示例用于证明几种方法。但是,其用法不仅限于那些方法。
以下是对于P2SH的一些与隐私相关的观察。
在P2SH方法中,赎回脚本的输入是私有的,直到执行交易为止。但是,执行交易后,它在原始数据中对公众可见。这防止了使用公开的方法在区块链中的两个用户之间发生多个交易。这是此方法的局限性。
为了允许两个用户之间的多个交易,从而克服上述限制,提供了一种耦合控制系统和区块链设备的方法。
为了允许多次使用相同的区块链地址,提供了一种方法,以利用公开的方法为区块链交易建立依赖性签名。
另外,为了防止公开记录中的数据泄露,可以在赎回脚本输入中使用控制代码的哈希。
发明内容
在许多现代技术中,使用设备的远程控制是普遍的。通常,这是通过经由有线或无线网络连接的电子电路来控制设备来实现的。在某些应用中,通过互联网实现设备的远程控制。
在本公开中,描述了一种通过区块链控制此类设备的机制。
随着比特币区块链的发展,需要通过区块链控制远程设备。使用已知的使用比特币区块链脚本的方式,这是不可能的。因此,设计了一种新技术来提供通过区块链控制区块链设备的能力。
在比特币区块链环境中,通常,区块链设备由公钥标识。区块链设备使用对应的公钥的私钥签名以提取区块链中的值。
在本公开中,使用唯一标识密钥(UID密钥)提供了识别区块链设备的替代方式。使用此UID密钥,可以实施控制来花费区块链地址上的价值。
在本公开中,提供了一种或多种方法以在比特币区块链系统中实现诸如OTP、用户ID、密码的传统控制。
下面列出了使用该方法可能的一些解决方案。
·使用传统的登录名/密码或一次性密码进行多用户批准。
·通过区块链远程锁定/解锁设备。
·通过区块链基于位置的活动触发。
·使用传统登录、OTP进行多用户文档签名。
·可以在区块链上发布轻松可兑换的优惠券。
本公开示出了系统中的各种参与者的架构,该系统包括控制系统、通信系统、区块链设备。基于一个或多个控制代码,控制系统创建一个或多个控制数据以控制一个或多个区块链设备。然后,控制系统与一个或多个区块链设备、通过通信系统连接到区块链设备的附件(用户和设备)进行交互。
本公开可以描述一种或多种创建复合密钥的方法,所述复合密钥与P2SH方法一起使用以实现对区块链设备的控制的。
该方法可以包括创建用于区块链设备活动的唯一标识密钥(UID密钥)的步骤。
该方法可以描述一种用于合并UID密钥和一个或多个控制代码的技术。
该方法可以描述用于从复合密钥创建赎回脚本的步骤。
该方法可以包括用于赎回区块链中的价值的技术,其中,复合密钥由区块链设备使用可从连接到区块链设备的附件获得的数据来重建。
该方法可以包括将诸如整数、字符串、数组、JSON之类的一种或多种数据格式的一个或多个控制代码转换到缓冲区的步骤。
该方法可以包括以下步骤:将至少一个控制代码缓冲区合并到UID密钥缓冲区中的介于0到缓冲区末端之间的任何位置,包括UID密钥的两端,以创建复合密钥。
该方法可以包括以下步骤:哈希一个或多个控制代码一次或多次,然后将至少一个控制代码缓冲区合并到UID密钥缓冲区中介于0到缓冲区末端之间的任何位置,包括UID密钥的两端,以创建复合密钥。
该方法可以包括以下步骤:将完整的控制代码缓冲区哈希一次或多次,然后将至少一个控制代码缓冲区合并到UID密钥缓冲区中介于0到缓冲区末端之间的任何位置,包括UID密钥的两端,以创建复合密钥。
该方法可以包括用于将复合密钥转换为赎回脚本的步骤,其中,复合密钥的哈希存储在赎回脚本中。
该方法可以包括用于将赎回脚本转换为P2SH地址的步骤,其中,赎回脚本的哈希存储在P2SH地址中。
该方法可以包括以下步骤:识别一个或多个控制代码,需要通过通信系统中的一个或多个通信通道发送到区块链设备的控制数据。
该方法可以包括以下步骤:识别一个或多个控制代码,需要通过通信系统的一个或多个通信通道发送给连接到区块链设备的一个或多个附件的控制数据。
该方法可以包括以下步骤:读取一个或多个控制代码,通过通信系统中的一个或多个通信通道接收的控制数据。然后使用通过通信系统从连接到区块链设备的一个或多个附件接收的元数据来配置区块链设备。
该方法可以包括以下步骤:验证一个或多个控制码、通过通信系统中的一个或多个通信通道接收的控制数据的正确性。然后将结果显示给连接到区块链设备的一个或多个用户,以获取执行至少一项操作的指令或命令。
该方法可以包括以下步骤:使用一个或多个控制代码来构建赎回脚本输入(重建复合密钥)以执行一个或多个交易。然后将结果传达给连接到区块链设备的一个或多个附件,以指示它们执行一项或多项活动。
该方法可以包括以下步骤:验证适用的P2SH地址上的一个或多个过去的交易,然后执行一个或多个活动。
该方法可以包括用于区块链设备操作的步骤,该操作可以是验证数据或检查一项过去的数据或执行一项交易。
该方法可以包括以下步骤:基于区块链地址的价值或区块链地址的状态来激活区块链设备活动。
该方法可以包括以下步骤:基于区块链地址中的价值或区块链地址的状态的触发,来执行区块链设备活动。
该方法可以包括用于添加一个或多个智能合约以扩展所公开的方法的功能的步骤。
该方法可以包括用于获取一个或多个智能合约的输入以及复合密钥以执行区块链设备交易的步骤。
该方法可以包括为连接到一个或多个区块链地址的一个或多个活动配置区块链设备的步骤。
该方法可以描述用于执行一个或多个区块链设备活动的技术,其中活动的类型可以是金融活动、资产活动、设备活动、移动活动、游戏活动,其中执行的活动可以是根据活动类型的锁定、解锁、开始、停止、创建、删除、更新、去除、清空、添加、传输、发布等。
关于一个方面或实施例描述的任何特征也可以相对于另一方面或实施例使用。例如,关于方法描述的任何特征都可以适用于系统,反之亦然。
通过参考本文描述的实施例,本公开的这些和其他方面将变得明显并得到阐明。现在将通过示例和附图来描述本公开的实施例。
附图说明
图-1A:解决方案的架构。
图2A:将在UID密钥的位置10、20和结尾处合并的控制代码的示例。
图-3A:复合密钥创建的示例。
图-4A:复合密钥和赎回脚本的示例输出。
图-5A:创建复合密钥的流程图。
图-6A:元数据的示例。
图-7A:创建区块链地址的流程图。
图-8A:用作赎回脚本输入的重建复合密钥。
图-9A:通信系统。
图1B:区块链设备流程图。
图2B:区块链设备操作流程图。
图-3B:现有技术的P2SH和标准赎回脚本。
图-4B:P2SH和公开赎回脚本。
图-5B:由区块链设备获取用于执行的数据的示例。
图-6B:用于执行的数据的示例。
图-7B:使用重建的复合密钥执行的示例。
图8B:解决方案的系统架构。
图9B:解决方案的服务架构。
图-1C:解决方案的简单用例。
图2C:使用定制合约的步骤。
图-3C:使用定制合约的JavaScript示例。
图-4C:具有定制合约的交易的示例。
图-5C:使用定制合约的执行示例。
具体实施方式
本公开是对在区块链系统中使用赎回脚本的现有方法的改进,其中该改进是引入具有针对每个区块链设备活动的唯一标识密钥的控制代码。因此,可以轻松控制多个区块链设备。
所描述的系统和方法帮助使用简单技术来控制区块链设备,否则将需要复杂的定制脚本。因此导致了区块链的许多新型使用。
本公开中的系统和方法被分类为“控制系统”、“通信系统”和“区块链设备”。
这些系统和方法的架构在图-1A中示出。
在本公开中使用某些术语和短语来帮助描述系统和方法。它们在下面解释。
使用的术语和短语
控制系统:它是用于创建控制数据的硬件和软件。
控制数据:它表示包括控制代码、赎回脚本、区块链地址、元数据的数据集合。
定制合约:它是使用比特币操作码尝试提供定制功能的合约。它将定制输入作为输入。
定制输入:它是用于定制合约的合约输入。
智能合约:它是指在比特币上下文中的定制合约。它用于提供标准脚本中不提供的定制功能。
智能合约输入:这是智能合约的输入。它也称定制输入。
唯一标识密钥(UID-key):这是唯一标识密钥,被创建以标识区块链设备的每个活动。
赎回脚本:这是用于处理P2SH地址赎回的脚本。在某些地方,它被称为redeemScript或redeem-script。
控制代码:这是代表区块链设备上的一些控制指令的代码。在某些地方,它也称为control-code或Control-code。
复合密钥:它是通过将控制代码合并到UID密钥中来构造的数据。也称为composite-key。
重建复合密钥:这是由区块链设备构建的复合密钥。这也称rebuilt-composite-key。
复合密钥的赎回脚本:这是用于赎回复合密钥的赎回脚本。它也被称为composite-key-redeem-script。
赎回脚本输入:这是赎回脚本的输入。它也称为redeem-script-input。
元数据:它是由控制系统为区块链设备创建的辅助数据,以帮助组织区块链设备上的输入。这里的元数据既指复合密钥元数据,又指控制代码元数据。
复合密钥元数据:这是对应于复合密钥组织的元数据。这也称为composite-key-metadata。
控制代码元数据:这是对应于控制代码组织的元数据。这也称为control-code-metadata。
合约输入元数据:这是描述合约输入的元数据。
区块链设备:这是连接到区块链的设备,其基于区块链地址中的数据执行区块链操作。在某些地方,这也称为blockchain-device。
区块链附件:这些是连接到区块链设备的设备。
区块链地址:除非另有说明,否则此处的区块链地址是指比特币上下文中的P2SH地址。在某些地方,这也称为blockchain-address。
标准脚本:这些是公认安全的比特币脚本,通常被大多数比特币用户使用。
定制脚本:这些是比特币脚本,比特币用户社区不将其视为标准脚本。
交易输出:当在比特币的上下文中引用时,这是指区块链交易的输入/输出数据。
P2SH地址:这是使用P2SH方法从赎回脚本创建的区块链地址(比特币地址)。
UID密钥:它指的是为每个区块链设备活动创建的唯一标识密钥。在某些地方也称为Uidkey。
密钥对:由椭圆曲线数字签名算法(ECDSA)生成的公钥、私钥。
QR码:这是二维条形码,用于通过打印的标签、卡片、纸张、移动应用程序传递数据。
通信系统:这是控制系统与区块链设备之间的通信链路。这也称为communication-system。
设备区块链服务:这是将区块链设备与控制系统和附件集成的服务。它也被称为device-blockchain-service。
控制区块链服务:这是提供区块链设备控制服务的服务。它也称为controlling-blockchain-device。
在公开中提供的示例中,bitcoinjs-lib版本2.3随附的比特币的javascript库用于演示该功能。在调试环境中测试了工作可行性。提供了屏幕截图和示例。
提供所述示例以便以某些方式演示某些特征。这些不应被视为在其他环境或其他形式的使用中对所公开方法的使用的限制。
公开的方法和系统的索引
1.0解决方案架构
2.0控制系统
控制系统输入处理
为区块链设备创建UID密钥的步骤
从控制代码创建控制代码缓冲区的步骤
从控制代码创建复合密钥的步骤
从复合密钥创建赎回脚本的步骤
从赎回脚本创建P2SH地址的步骤
用于区块链设备的控制数据
用于区块链设备附件的控制数据
控制代码标准化
存储区块链设备控制数据以备将来使用
提供控制数据即服务。
根据价值、区块链地址状态的激活。
使用一个或多个智能合约
通过赎回脚本中的签名验证使用智能合约
控制各种类型的区块链设备
控制系统逻辑与区块链设备的耦合
3.0通讯系统
连接连接到区块链设备的多个附件
在不同的通道中发送部分控制数据
接收和转换控制数据
将控制数据发送到区块链设备
4.0区块链设备
区块链设备读取和初始化
区块链设备配置
区块链设备输入
区块链设备监听和执行操作
区块链设备执行活动
区块链设备从附件获得输入
区块链设备重建复合密钥(rebuild-composite-key)
区块链设备使用重建复合密钥作为赎回脚本输入
区块链设备验证复合密钥正确性
区块链设备使用重建复合密钥检查过去的交易
区块链设备数据标准化
区块链设备配置用于多种活动
基于价值、区块链地址状态的区块链设备激活
区块链设备接受一个或多个智能合约输入
区块链设备在智能合约输入中使用签名
各种类型的区块链设备
耦合的区块链设备
5.0用于控制区块链设备的计算系统
6.0用于控制区块链设备的区块链服务
7.0用例
用例:用户在特定GPS位置的设备执行
用例:无人机在指定的GPS位置解锁
用例:汇款/优惠券转让
用例:具有多个条件的文档签名
用例:多用户验证
1.0解决方案架构
图-1A示出了本公开中描述的解决方案的架构。A101是用于创建一组或多组控制数据的块。A101的输入可能来自计算机、服务、终端、设备。这些输入称为控制代码。控制代码的处理如流程图5A所示。块A101还创建唯一标识密钥(UID密钥),其是随机数据的缓冲区。
将UID密钥与控制代码一起进行处理以创建一组或多组控制数据,其包括复合密钥、赎回脚本、P2SH地址、复合密钥元数据、控制代码元数据。这些在图2A(控制代码的示例)、图3A(复合密钥创建的示例)、图5A(复合密钥流程图)、图7A(创建区块链地址的流程图)中解释。
创建的一组或多组控制数据可用于通信系统A102。一些控制数据可以存储在数据库或服务器A103中。该通信系统将以不同的通信通道向区块链设备提供可用的控制数据。这些数据的某些部分也可能提供给连接到区块链设备的附件。这在图9A中进一步示出。
区块链设备A105连接到通信系统的一个或多个通道,以接收一组或多组控制数据、控制代码。区块链设备具有必要的软件、可与附件交互的界面。它还具有与区块链进行交互的软件。连接到区块链设备的通信系统的架构如图9A所示。区块链设备功能的流程图如图1B所示。
2.0控制系统
控制系统输入处理
控制系统A101可以采用一个或多个控制代码作为输入,以控制一个或多个区块链设备。该数据可以是任何数据格式,例如整数、字符串、数组、JSON等。也可以从文件、服务器、数据库中加载数据,和通过终端输入。它可能与区块链设备的用户知道的一些数据有关,或者可能与连接到区块链设备的附件的一些数据有关。将控制代码转换为控制代码的缓冲区以进行进一步处理。用于处理控制代码的javascript示例在图3A中示出。
为区块链设备创建UID密钥的步骤
在控制系统中,创建了UID密钥。通常,它是唯一的随机密钥,用于标识区块链设备活动。在某些其他类型的设计中,可以将UID密钥从区块链设备提供给控制系统。
在示例图3A中,提供了比特币随机公钥生成功能,用于在A301行中创建UID密钥。但是,也可以使用其他随机密钥生成技术。
该UID密钥被转换为缓冲区以用于进一步处理。在此示例中,创建的UID密钥已经是缓冲区格式。因此,在图3A所示的示例中,没有看到UID密钥A301的转换。
从控制代码创建控制代码缓冲区的步骤
控制代码可以是任何格式,例如字符串、整数、数组、JSON等。它们被转换为缓冲区格式。转换之后,可以将控制代码串联起来以创建另一个控制代码缓冲区。相应地创建或更新了控制代码的元数据。
可以通过首先将JSON数据字符串化然后转换为缓冲区格式,来将JSON格式的一个或多个控制代码转换为缓冲区。相应地创建或更新了控制代码的元数据。
在图3A的示例中,在A313行中,可以在A315行中看到JSON数据变量
“Userjson”被字符串化,然后在A316行中转换为缓冲区。
在图6A A602中可以看到为“Userjson”的示例创建的元数据。在此示例中,元数据以JSON格式显示。然而,在其他实施例中,元数据可以是其他格式。
在图3A的示例中,javascript函数Buffer.from()用于将字符串“ABC”转换为缓冲区A308。对于JSON数据,JavaScript函数JSON.stringify()用于将JSON转换为字符串A315,然后使用Buffer.from()函数创建缓冲区。
在其他实施例中,可以使用将数据转换为缓冲区格式的其他方法。
在其他实施例中,可能需要转换数字数据的其他方法以将它们转换为缓冲区格式。
在其他实施例中,一些JSON数据可以被哈希一次或多次,并用于创建用于控制代码的缓冲区。
在其他实施例中,一些控制代码可以被哈希一次或多次,并被用于创建控制代码的缓冲区。
在图3A的示例中,在行A311、A312中对密码进行了两次哈希处理,以创建变量“passwordhashhash”。然后在行A314中使用变量“passwordhashhash”。
在其他实施例中,可以将JSON控制代码的完整字符串化数据或完整控制代码数据进行哈希处理一次或多次,并用于创建控制代码缓冲区。
从控制代码创建复合密钥的步骤
与上述转换过程相对应的流程图在图5A中示出。
对于每个控制代码A501,根据需要进行特定的编码或哈希。一旦编码或哈希处理完成后,将其转换为控制代码A502的缓冲区。它还创建了控制代码元数据A503。元数据的示例可见于图6A,A602、A603、A604。控制代码元数据包含有关在创建控制代码缓冲区时如何处理控制代码的信息。
该控制代码A502的缓冲区在0到UID密钥的末尾之间的任何位置被合并到UID密钥的缓冲区中。可以将控制代码A502的一个或多个缓冲区合并到UID密钥中。在合并到UID密钥之前,还可以对每个控制代码缓冲区进行哈希处理并创建另一个哈希控制代码缓冲区。这些合并功能在A504中完成。合并后的块A504的输出为复合密钥A506。有关合并的详细信息在复合密钥元数据A505中进行了更新。其示例在图-6A,A606中示出。
复合密钥元数据A505包含有关对控制代码缓冲区执行的哈希类型以及在何处将其合并到UID密钥等的信息。
在被认为是在图2A中演示该功能的示例中,可以看出,在A208行中,计划通过在“Uidkey”的第10个位置之后合并“Userjson”数据,在“Uidkey”的第20个位置之后合并“Pin”,在“Uidkey”的末尾之后合并“Company”,来创建复合密钥。在此,“Uidkey”是在A209中创建的唯一标识密钥(UID-key)的缓冲区。这在图3A中的javascript示例中进一步显示。
在图3A中,可以看到在行A301中创建了“Uidkey”。然后在A302、A303、A304中切成部分。然后在A305和A316之间创建每个控制代码缓冲区,然后在A317行中,创建要组装的每个部分的数组。然后,在A318行中将此数组拼接为所需的复合密钥。
在图-6A A606中看到为此操作而更新的相应元数据。
从复合密钥创建赎回脚本的步骤
在图7A的框A701、A702中,复合密钥用于创建复合密钥赎回脚本。复合密钥赎回脚本由检查“复合密钥哈希”是否正确的脚本组成,其中复合密钥的哈希是复合密钥赎回脚本的一部分。在A703中,该复合密钥赎回脚本也称为赎回脚本。
在比特币上下文中,复合密钥赎回脚本将由“哈希操作码”,“复合密钥的哈希值”,“检查哈希操作码”组成,其中“哈希操作码”和用于对复合密钥进行哈希处理的哈希算法必须相同。
复合密钥赎回脚本的示例在图4B的B406行中显示,即OP_HASH160<compositeKeyHash>OP_EQUAL。
其中,在处理了各种控制代码和UID密钥之后,从B405行获得了复合密钥。
使用bitcoinjs-lib创建redeemScript的javascript示例如下所示:
var compositeKeyHash=bitcoin.crypto.hash160(compositekey);
var redeemScript=bitcoin.script.compile([bitcoin.opcodes.OP_HASH160,
CompositeKeyHash,
bitcoin.opcodes.OP_EQUAL])
复合密钥赎回脚本具有赎回脚本的哈希,并且还具有操作码(脚本)以验证赎回脚本的正确性。
在A704中的P2SH地址创建中,复合密钥赎回脚本被用作赎回脚本。
在该示例中,实施例比特币操作码用于演示赎回脚本的创建。“哈希操作码”是“OP_HASH160”,创建“复合密钥哈希”的函数是bitcoin.crypto.hash160(),“检查哈希操作码”是OP_EQUAL。
在其他实施例中,替代的操作码可以用于创建赎回脚本。
在其他实施例中,替代的区块链操作码可以用于创建赎回脚本。
在其他实施例中,可以添加复合密钥哈希检查作为其他智能合约的一部分。
从赎回脚本创建P2SH地址的步骤
在比特币中创建P2SH地址的标准P2SH方法包括在scriptPubKey中插入赎回脚本哈希。然后对scriptPubKey进行编码以创建所需的区块链网络的地址。在图3B的B301行中显示了用于标准P2SH方法的scriptPubKey。
使用bitcoinjs-lib库在比特币测试网中创建P2SH地址的javascript示例如下所示:
var scriptPubKey=bitcoin.script.scriptHashOutput(bitcoin.crypto.hash160(redeemScript))
变量地址=bitcoin.address.fromOutputScript(scriptPubKey,bitcoin.networks.testnet)
在示例实施例中,比特币操作码和bitcoinjs-lib库用于演示根据赎回脚本创建P2SH地址。
在其他实施例中,替代的区块链操作码、替代的库可以用于创建P2SH地址。
可以看出,P2SH地址被编码为测试网比特币网络的P2SH地址。
然而,在其他实施例中,可以使用不同的编码方案来创建其他网络的地址。
区块链设备的控制数据
控制数据包括元数据、赎回脚本、P2SH地址、UID密钥、复合密钥、控制代码。
在使用智能合约的情况下,控制数据可包括元数据、赎回脚本、P2SH地址、UID密钥、复合密钥、合约输入、控制代码。
该控制数据通过通信系统的一个或多个通信通道(例如智能卡、印刷卡、文件、共享存储器、客户机-服务器链路等)被提供给区块链设备。
控制数据可以被存储在服务器、虚拟机、文件、数据库等上。该数据可以被存储,用于在一些转换之后发送到区块链设备。
用于区块链设备附件的控制数据
一个或多个区块链设备可能需要从连接到区块链设备的一个或多个附件中获取控制数据的一个或多个部分。这些区块链设备附件可以是用户、阀门、开关、移动设备、GPS设备、计算机等。区块链设备附件可以通过不同的通信通道(例如电子邮件、SMS、移动应用程序、电子产品,IOT设备等)连接到通信系统。
控制数据可以通过它们的通信通道到达这些区块链设备附件。
控制系统可以使用其相应的通道将控制数据分发给各个附件。
控制代码标准化
一个或多个控制代码可以取决于可变数据。此类控制代码在使用之前需要进行标准化。
考虑一个示例,其中针对不同的价格范围发出不同的折扣百分比。
例如价格范围的折扣是
对于1000$-10000$(范围a),10%
对于100$-1000$(范围b),15%
然后通过标准化
1000$-10000$范围内的用户将使用代码“RA”。
100$-1000$范围内的用户将使用代码“RB”。
代码“RA”、“RB”将用于创建复合密钥以实现折扣功能。
转换变量数据以使其可用于所公开的系统的过程称为标准化。
存储区块链设备控制数据以备将来使用。
在诸如银行、金融机构的许多应用中,需要创建控制数据以供客户、设备、系统、服务等将来使用。
在这种情况下,控制数据或部分控制数据存储在本地服务器、云服务器、远程服务器、中央服务器、硬盘、磁带、文件、网络存储等上。
在诸如无人机控制、锁定控制等许多应用中,必须将区块链设备控制数据提供给区块链设备制造商进行集成。
然后,可能需要将控制数据提供给设备制造商。
在这种情况下,控制数据或部分控制数据被存储在本地服务器、云服务器、远程服务器、中央服务器、硬盘、磁带、文件、网络存储器上并被提供。
提供控制数据即服务。
可以将提供各种行业的控制数据作为服务给出,其中,服务的每个用户将提供控制代码并获得控制数据。
然后,可以将控制数据应用于区块链设备。可以从诸如JSON文件、XML文件等服务收集控制数据。
这样的服务对于区块链设备制造商可能是有用的。
根据价值、区块链地址状态激活。
与区块链地址相关联的控制数据可以在将区块链价值存储到区块链地址中时激活。
可能存在在区块链地址中发现特定数量时触发活动的应用。这些是基于区块链地址的价值的触发。
可以基于区块链地址的特定状态来触发区块链设备活动。
区块链地址的状态可能是以下之一
·在区块链中没有任何记录的区块链地址状态
·具有零价值的区块链地址状态
·具有一定价值的区块链地址状态
·交易一定价值后的区块链地址状态
·至少一次过去交易后的区块链地址状态
使用一个或多个智能合约
可以与智能合约输入(定制输入)一起工作的任何智能合约(定制合约)可以与公开的方法集成。这可以通过添加操作码来验证复合密钥赎回脚本(composite-key-redeem-script)的输出,然后将智能合约拼接到redeem-script(composite-key-redeem-script)来完成。
显示了一个示例,如何将其他智能合约集成到所公开的方法中。
在图2C中,行C201示出了复合密钥赎回脚本的示例。
假设智能合约(定制合约)需要智能合约输入(定制输入)。
然后在行C203中,将复合密钥赎回脚本拼接到操作码以验证复合密钥赎回脚本执行的输出,然后拼接<custom-contract>。
在图3C中,在行C302中使用OTP=“6784”创建复合密钥。
然后,创建定制合约以采用输入Pin1,<Pin2>hash(C312,C313,C314),其中Pin1=“1234”,而<Pin2>hash=<“mypassword12”>hash。
定制合约在C312中显示。
在C316、C317中,复合密钥赎回脚本显示为
[bitcoin.opcodes.OP_HASH160,compositeKeyHash,bitcoin.opcodes.OP_EQUAL]
在C317中,用于验证复合密钥赎回脚本输出的操作码显示为
[bitcoin.opcodes.OP_VERIFY]
在C315中,显示了添加到赎回脚本的定制合约。
在当前实施例中,比特币操作码用于演示该功能,但是,在其他实施例中,其他区块链操作码可以用于实现相同的功能。
在当前实施例中,使用一组操作码来演示。但是,可以使用不同组的操作码来实现类似的功能
示例:-
在比特币系统中,以下操作码
[bitcoin.opcodes.OP_EQUAL].concat([bitcoin.opcodes.OP_VERIFY]
可以替换为
[bitcoin.opcodes.OP_EQUALVERIFY]
用于与所公开的方法一起使用的定制合约的示例的输出在图-4C中示出。
例如在调试环境中的示例的执行的区块链交易输出在图-5C中示出。
在示例实施例中,一个智能合约与所公开的方法一起使用,但是,在其他实施例中,一个或多个智能合约可以与所公开的方法一起使用。
使用具有赎回脚本中的签名验证的智能合约
考虑对于相同的区块链地址,有效用户多次使用公开的方法的情况。首次执行交易后,区块链公共记录中可用的交易输出数据将具有给予交易的输入。
因此,任何用户下次都可以攻击该地址并从区块链地址取款。可以通过在赎回脚本中建立签名验证的依赖性来克服此问题。然后,想要赎回的用户可能需要每次都提供签名才能从区块链地址赎回。这将防止对区块链地址的攻击。
这是通过使用如图2C所示的方法“使用一个或多个智能合约”来实现的,其中<custom-contract>为
OP_DUP OP_HASH160<pubKeyHash>OP_EQUALVERIFY OP_CHECKSIG
需要<sig><pubKey>的<custom-input>
其中<pubKey>所有者必须签署交易。
<sig>是<pubKey>所有者的签名。
在以上方法中,<custom-contract>将验证签名以及赎回用户的公钥的哈希。
图3C中提供的示例可以用于实现该方法。
控制各种类型的区块链设备
区块链设备可以是连接到移动对象、金融交易、设备管理、许可管理、使用管理、工业过程、无人机、阀门、开关等的任何电子设备,具有与区块链进行交互的能力。
可以基于活动的类型来大体上对区块链设备的类型进行分类,所述活动包括诸如金融活动、资产活动、设备活动、移动活动、游戏活动之类的活动。所执行的活动可以是锁定、解锁、开始、停止、创建、删除、更新、去除、清空、添加、转移、发布,具体取决于活动的类型。
为了控制这些设备,必须如本公开中所描述的那样进行控制代码、定制合约的设计和使用。
用于每种类型的区块链设备活动的控制代码的类型可以变化。可能需要标准化某些控制代码。在每个领域中,解决方案的设计者都必须考虑这些因素。
需要与区块链设备或其附件建立适当的通信通道,对每个通道进行适当的转换。控制系统逻辑与区块链设备的耦合
在某些应用中,区块链设备需要使用同一个UID密钥与控制系统进行多次交易。
然后在两者之间建立关系以使用复合密钥中的公共变量。每次使用前,都会更改公共变量。每次都会产生新的区块链地址。
公共变量的值可以通过编程逻辑或使用一些公共数据或在诸如电子邮件或SMS等的不同通道中共享公共数据来获得。
这被称为将区块链设备与控制系统耦合。
这将促进相同的UID密钥被多次使用,而不会损害区块链地址的安全性。
考虑一个示例,其中供应商希望使用针对每个客户的一个UID密钥通过区块链分别对每个账单进行账单支付。
供应商将为每个账单创建唯一的账单编号。
客户希望使用相同的UID密钥分别为每个账单支付账单。
在此示例中,客户将创建由<billno>hashhash和PIN制成的复合密钥。因此,每次都会将帐单支付到使用<billno>hashhash和PIN生成的唯一地址。
在账单支付之后,客户将通知供应商使用给定的PIN取款。这是供应商和客户之间的一种安排,其中他们应该对UID密钥和PIN保密。
供应商将使用PIN和他将拥有的<billno>hashhash取款。
这是一个简单的示例,用于演示两个用户之间的多个交易的耦合。
在理想的解决方案中,应该存在赎回用户提供签名以便取款的情况。在本公开中,这可以使用所公开的方法“使用签名验证来使用智能合约”来完成。
3.0通讯系统
通信系统是一种将由控制系统创建的控制数据连接到区块链设备的机制。这可能包括控制系统的操作者以及连接到区块链设备的附件。
在图-1A中,通信系统A102从控制系统收集一组或多组区块链设备控制数据,并以可被区块链设备A105或其附件A104消耗的方式将其提供。其中附件可能会从用户、连接到区块链设备的设备获得输入。这在图9A中进一步示出。
区块链设备控制数据可以包括元数据、赎回脚本、P2SH地址、UID密钥、复合密钥、控制代码。这里的元数据既代表复合密钥元数据,又代表控制代码元数据。
在使用智能合约的情况下,区块链设备控制数据可以包括元数据、赎回脚本、P2SH地址、UID密钥、复合密钥、控制代码、合约输入。这里的元数据表示复合密钥元数据、控制代码元数据、合约输入元数据。
可以通过将控制代码之一或缓冲区与UID密钥合并来创建复合密钥。
可以从复合密钥创建赎回脚本。在其他实施例中,可以通过拼接一个或多个定制合约并在两者之间包括适当的结果验证脚本来创建赎回脚本。
通过控制系统使用本公开中描述的方法来创建赎回脚本、P2SH地址。
通信系统A902可以在诸如有线、无线、电子卡、印刷卡等的任何通信介质中收集控制数据A901。可以通过诸如发送给用户A903、A904的SMS、电子邮件等不同的通讯通道来使控制数据、控制代码的一个或多个部分可用。
区块链设备可能需要从连接到区块链设备的附件中获取该控制代码。
区块链设备所需的一些数据可能需要从上下文信息中获取。上下文信息可以从其他外部设备、传感器、电子产品、移动设备、连接到区块链设备的计算机获取。对于收集的数据,使用前可能需要对数据进行适当的标准化。
需要从用户那里获取一些信息,例如“出生日期”、“加入日期”、“社会安全号码的前4位”。这些可能无法通过通信系统发送。
一些用户信息可以是生物特征或生物特征映射的用户信息。在这种情况下,将使用映射的用户信息。
在一些实施例中,可以使复合密钥的至少一部分或控制代码的至少一部分可用于不同通信通道中的区块链设备。
需要从外部电子产品获取的此类信息也不需要通过通信系统发送。这些都是在可以从附件中获得的区块链设备软件中编程的。
区块链设备程序员对设备进行编程所需的信息是从与控制数据一起提供的元数据中获得的。
通信系统可以通过诸如印刷卡、塑料卡、电子卡、电子邮件、客户端-服务器链接、服务器-移动设备链接、设备到设备链接、文件共享、存储媒体共享、网络上文件共享、云中数据共享等发送这些数据。
通信系统可以通过不同的通道向区块链设备提供控制数据的至少一部分。
一些通道可以是安全通道,一些通道可以是合法通道。
需要进行适当的变换以通过这些通道发送/接收。
示例:
可能需要QR码转换以便通过QR码设备扫描和发送数据。
对于要通过电子邮件系统发送的数据,可能需要电子邮件转换。
如果要通过文件传输机制发送数据,则可能需要文件传输转换。
连接连接到区块链设备的多个附件
区块链设备可能需要来自连接到区块链设备的一个或多个附件的输入。在这种情况下,通信系统可能需要为每个附件提供通信通道。
每个通道可能需要一种机制来读取数据,转换数据。该通信系统提供适当的数字转换,以使附件中的数据可消耗。
在不同的通道中发送部分控制数据
区块链设备控制数据的某些部分需要通过不同的通道发送,以提供适用于不同使用场景的范围,并提供安全使用。
在图1C中提供的示例中,控制系统已将部分控制数据(控制代码)OTP(通过SMS)发送给用户。区块链设备从用户那里获取OTP。使用此OTP,区块链设备可以执行交易。
这是通过不同通道发送的示例。这也是计算系统使用部分控制数据来控制区块链设备的示例。
在其他实施例中,可以通过诸如电子邮件等的不同通道来发送控制代码。
在其他实施例中,可以通过不同的通道发送区块链设备控制数据的其他部分。
接收和转换控制数据
在诸如银行之类的一些大型装置中,可以在服务器、磁带、硬盘等上接收控制数据。然后,该数据将被处理,以便由不同用户、不同系统持有的各种区块链设备以各自格式来消耗。
示例:一个区块链设备可能需要QR码格式的数据,另一个可能需要电子邮件格式的数据等。
服务器收集的数据被转换成各个区块链设备用户所需的格式。
将控制数据发送到区块链设备
区块链设备可以扫描条形码、QR码等以进行初始化。该通信系统以可消耗格式提供控制数据,以供区块链设备使用。
在某些区块链设备使用中,控制数据可以从磁带、服务器、文件等中加载。然后,可以使用加载的数据来初始化和配置区块链设备。在这种情况下,通信系统可以以服务器、磁带等所需的格式提供控制数据。
4.0区块链设备
区块链设备是通过电子网络连接到区块链的设备。电子网络可以是有线网络或无线网络。
区块链设备经历初始化、配置、监听、获取输入、执行操作、然后执行活动的过程。
在初始化阶段,使用UID密钥初始化区块链设备,然后进行配置,以使其监听附件。
一旦区块链设备开始监听,它就从这些附件中获取输入。然后对其进行处理以执行区块链操作。
区块链操作是由区块链设备基于区块链信息完成的操作。这将触发区块链活动。
区块链活动是在执行区块链操作之后触发的任何区块链设备活动。
区块链操作通常是,验证所获得的数据的正确性,进行至少一项成功的交易,验证至少一项过去的交易。
这些将在后续章节中讨论。
区块链设备读取和初始化
区块链设备可以读取通过扫描仪、条形码读取器、QR码读取器、文件、服务器、数据库等提供给它的一组或多组控制数据。
区块链设备可以初始化自身或者可以被外部系统初始化。区块链设备的每个活动都使用为其提供的相应UID密钥进行初始化。关联的赎回脚本、部分控制代码、部分复合密钥被应用于区块链设备的处理单元。
带有相关附件的区块链设备可能正在监听来自用户、其他设备、终端的输入。
区块链设备还可以具有显示单元,以显示交易状态、交易的金额、区块链设备上的重建复合密钥的验证状态。
区块链设备配置
区块链设备B100使用通信系统的各种通道从通信系统B101获取信息。区块链设备制造商将使用元数据为区块链设备创建软件,以使其使用区块链和附件中的数据(可能包含用户信息和上下文信息)进行操作。
通过识别必须从哪些设备收集哪些数据、必须从用户收集哪些数据、使用哪个通信通道来使控制数据可由区块链设备使用的过程称为配置B102。
一旦针对其活动配置了区块链设备,它将进行监听,以根据需要从用户或其他设备收集信息。这用于验证或执行交易。
区块链设备可以被配置为采用一个或多个不同的UID密钥。它可能需要采用固定的UID密钥或动态的UID密钥。如果已固定,则可以将其存储在设备上的永久性存储器中或与设备连接的永久性存储器中。如果将区块链设备配置为采用动态UID密钥,则区块链设备可以从扫描仪、QR代码、电子邮件、客户端-服务器连接等获取UID密钥。对于每个UID密钥,区块链设备可能会获得一些附带的控制数据。
在图-1B中示出了区块链设备监听B103的过程,处理操作B105,交互的B106。
区块链设备输入
区块链设备还可以连接到不同的其他附件,例如电子设备,提供有关环境、操作、物流、情况、上下文的信息的终端。该信息被共同标识为上下文信息A906。
区块链设备还可以从用户那里获取用户ID、密码、出生日期、出生地等。该信息被共同标识为用户信息A904、A903。这也可能有一些上下文信息。
区块链设备监听和执行操作
区块链设备可以监听B103用户或上下文信息B104,如配置的B102。一旦区块链设备获得用户或上下文信息,它就可以处理B105数据,以通过构建“重建的复合密钥”来检查数据的正确性。如图2B所示。
在图2B中,可以看到,在用户输入、上下文输入的每次更改之后,重新构建复合密钥B202。
如果用户和上下文数据正确,则操作可能需要用户确认B205。在用户给出确认之后,进行执行交易的操作B206。
可以执行的另一操作是检查区块链地址B207的任何过去的交易。
基于上述操作的输出,触发了区块链设备活动B107。
区块链设备执行活动
区块链设备一旦配置了UID密钥、元数据、控制数据B201,它将监听并从诸如用户、设备、终端等附件B203中获取输入,并根据元数据中的指令构建重建的复合密钥B202并测试其是否正确B204。测试的方法之一是使用rebuilt-composite-key构建P2SH地址,以查看它与给定的P2SH地址是否匹配。
区块链设备可以在执行之前提示用户或其他设备提供进一步的指令B205。区块链设备可以执行交易B206,并且在交易成功时,区块链设备可以执行区块链设备活动B107。
在其他实施例中,区块链设备可以检查所述P2SH地址上过去是否发生过交易,并决定执行区块链设备活动。
根据活动的类型,执行的区块链设备活动可以是锁定、解锁、开始、停止、创建、删除、更新、去除、清空、添加、转移、发布等。
活动的类型可以是如金融活动、设备活动、移动活动、资产活动、游戏活动等。
从附件获得的某些数据可能需要在使用前进行标准化。
区块链设备从附件输入
区块链设备A905可能需要从诸如用户(A904,A903)、上下文设备(A906)之类的附件中获取输入。每个用户都有可能通过SMS、电子邮件等不同通道接收到一个或多个控制代码。
这些输入在提供给用户和其他设备的界面中提供给区块链设备。这些接口可以是移动应用程序、web终端、应用程序编程接口等。
区块链设备重建复合密钥(rebuild-composite-key)
图2B中的块B202创建重建的复合密钥。它获取控制数据B201,并从附件中获取少量数据集B203。
基于元数据,完成了来自附件(用户和上下文输入)的数据处理。
对于所考虑的示例,元数据在图-6A中示出。
复合密钥元数据A606提供有关复合密钥的详细信息,即UID密钥长度为66,它具有3个部分,“part1”从0开始并在10结束,“part2”从10开始,并且结束于20,“part3”开始于20直到UID密钥结束。必须如何排列此数据的顺序显示为“Sequence”数组具有“part1,Userjson,pin,part3,company”。
“Userjson”的控制代码元数据是A602。它告诉如何处理“Userjson”。它告诉必须使用“stringify”函数,提到必须使用“Buffer”函数,JSON数据的各个字段表示为“fields”数组,其中包含名称“Login”和“Password”。在transformation字段中,第一个字段表示不进行转换,第二个字段表示转换(必须将hash160进行两次并转换为“hex”)。
一旦用户输入,根据元数据来处理上下文输入,创建输出。这在图6B中示出。在B603中可以看到重建的复合密钥。
所采用的输入是PIN=“1234”,公司=“ABC”。“Userjson”是JSON数据,密码字段用hash160处理两次,并转换为“hex”。这在图-6B的B602中示出。
控制代码的缓冲区在元数据A606中提到的位置合并到UID-key的缓冲区中。
一旦按照元数据的要求用UID密钥完成了所有控制代码的合并,就准备好重建复合密钥B202。
区块链设备使用重建的复合密钥作为赎回脚本输入
重建的复合密钥A801用作赎回脚本输入A802,用于在从P2SH地址赎回的同时进行交易处理。
赎回脚本输入将用于将交易提交给矿工进行处理。然后,矿工将验证赎回脚本输入和赎回脚本,以确认交易成功或失败。
在图-7B中的调试环境中示出了使用赎回脚本输入的示例。
在图-6B中生成用于该交易的输入。
在该示例中,B701“Input script”具有赎回脚本输入以及赎回脚本。
在提供的示例中,可以在图7B中看到,B703表示“True”。这意味着交易在调试环境中是成功的。
B702中的“Output script”具有赎回脚本的哈希,其将用于检查所提供的赎回脚本是否正确。稍后,它还使用赎回脚本输入来执行脚本。如果一切顺利,结果将是成功。这在B703中显示。
区块链设备验证重建复合密钥的正确性
通过使用重建复合密钥构建P2SH地址来完成验证重建复合密钥是否正确的方法。可以通过从附件中获取输入,然后按照元数据指令进行计算构建了重建复合密钥。
如果创建的P2SH地址与提供的区块链地址匹配,则可以推断出重建复合密钥正确。
如果重建的复合密钥是正确的,则可以推断出从附件提供的数据以及区块链设备的数据是正确的。
以下是使用重建复合密钥构建P2SH地址的javascript示例:
var compositeKeyHash=bitcoin.crypto.hash160(rebuild-composite-key);
var redeemScript=bitcoin.script.compile([bitcoin.opcodes.OP_HASH160,
compositeKeyHash,bitcoin.opcodes.OP_EQUAL])
var scriptPubKey=bitcoin.script.scriptHashOutput(bitcoin.crypto.hash160
(redeemScript))
var address=bitcoin.address.fromOutputScript(scriptPubKey,
bitcoin.networks.testnet)
该验证将有助于在区块链中执行交易之前提示用户进行确认。
该验证还有助于在匹配发生时检查区块链地址的过去交易。
区块链设备使用重建复合密钥检查过去的交易
可以设计一些应用,其中P2SH地址的过去交易可以是允许执行当前活动的指示。在这种情况下,一旦确认构建的重建复合密钥正确,则区块链设备可以检查该区块链地址是否发生了过去的交易。然后,它可以决定执行区块链设备活动。
区块链设备数据标准化
区块链设备使用的一个或多个控制代码可以是变量。在这种情况下,需要对其进行规范化以使其有用。
考虑一种情况,需要将区块链设备输入映射到范围0-500、500-1000、1000-1500、1500-2000。
这些可以被称为range-1、range-2、range-3、range-4。
假设必须映射数据512。
然后通过标准化,将512映射到“range-2”。
在处理复合密钥中的变量时,“range-2”标签可用于表示512。
区块链设备被配置用于多种活动
区块链设备可以被配置用于多个活动,每个活动由不同的地址、不同的控制代码、不同的元数据表示。区块链设备将监听与每个地址相对应的输入。然后,在处理了每个区块链地址的输入之后,可以执行该区块链地址的相应活动。
每个区块链地址可以源自相同的UID密钥或不同的UID密钥。
当区块链设备与多个地址相关联时,可能会发生这种情况,某些地址可能被激活,某些地址可能未被激活等。因此,与这些地址相关联的活动将变化。
基于价值、区块链地址状态的区块链设备激活
当区块链价值被存入区块链地址时,与区块链设备相关联的控制数据将被激活。
这将使区块链设备执行依赖于花费区块链地址上的该值来成功地进行交易。
可以基于区块链地址中的区块链价值(例如比特币价值)来触发一些区块链设备活动。
可以基于区块链地址的特定状态来触发一些区块链设备活动。
状态触发:
可以触发区块链设备活动的区块链地址的各种状态如下
·在区块链中没有任何记录的区块链地址状态
·具有零价值的区块链地址状态
·具有一定价值的区块链地址状态
·交易一定价值后的区块链地址状态
·至少一个过去交易的区块链地址状态
状态触发示例:
考虑将区块链地址赋予区块链设备的情况。区块链设备发现该地址的区块链中没有条目。这表明控制系统尚未激活区块链地址。这表明区块链设备尚未激活(状态为“在区块链中没有任何记录的区块链地址”)。
在以上示例中,与状态“在区块链中没有任何记录的区块链地址”相对应的操作由区块链地址触发。
价值触发:
区块链活动可能取决于要在区块链地址中找到特定价值。在这种情况下,仅当找到该价值时,活动才被触发。
价值触发示例:
考虑一种情况,其中仅当在区块链地址中找到特定金额时才发生金融交易。在此应用中,当将所需的区块链价值存储到区块链地址中时,就会触发金融交易。
在以上示例中,基于区块链地址的价值来触发操作。
区块链设备接受一个或多个智能合约输入
任何已知有效并且与公开的控制区块链设备的方法集成在一起的智能合约(定制合约),这样的系统可能需要采用<custom-contract>所需的<custom-input>来赎回智能合约。
这可以通过在用于赎回脚本输入的复合密钥之后提供<custom-input>来完成。
这在示例图4C、图5C中示出。OTP是重新构建的复合密钥的一部分,而Pin1和Pin2是<custom-input>的一部分。
这可以在图4C的行C407看到,复合密钥显示,前4个字符“6784”表示附加在UID密钥开头的OTP。在行C406中可以看到UID密钥。
行C407的内容如下所示
6784025dbd1b04f5c708e9f7775649ff89ec03dfef34bfad94b8f41c0e450f37b9fff5
组合的输入(<custom-input>和复合密钥)可以在图4C中的C409行中看到。
<custom-input>可以在图-5C的“Input script”部分C501中看到。Pin1为原始格式,Pin2为哈希格式。
图-5C中的结果“True”C503指示在调试环境中交易成功。
在以上示例中,一个智能合约输入与公开的方法一起使用,但是,在其他实施例中,可以使用许多智能合约输入。
区块链设备在智能合约输入中使用签名。
考虑使用公开的方法的情况,其中合法用户想要多次使用相同的P2SH地址。首次执行交易后,区块链公共记录中可用的交易输出数据将具有给予该交易的输入。这将创建攻击区块链地址的漏洞。
为了克服这个问题,区块链设备可以与控制系统共享由椭圆曲线数字签名算法创建的随机密钥对的公钥部分。然后将其用于创建公钥所有者签名的依赖性,以通过控制系统花费区块链地址中的价值。签名的这种依赖性将防止对区块链地址的攻击。
在那种情况下,公钥的所有者可能需要对赎回请求进行签名。这种所有权将由矿工在验证赎回脚本和赎回脚本输入时进行验证。
如果签名验证<custom-contract>是
OP_DUP OP_HASH160<pubKeyHash>OP_EQUALVERIFY OP_CHECKSIG
对应的<custom-input>将是<sig><pubKey>
其中<pubKey>所有者必须对交易签名。
然后,使用智能合约输入的赎回脚本输入将是
<sig><pubKey><composite-key>
上面的内容类似于在图4C中的C409行中可以看到的组合输入(<custom-input>和composite-key)。
各种类型的区块链设备
区块链设备可以是连接到移动对象、金融交易、设备管理、许可管理、使用管理、工业过程、无人机、阀门、开关等的任何电子设备,具有与区块链进行交互的能力。
可以基于来自诸如金融活动、资产活动、设备活动、运动活动、游戏活动之类的活动的列表中的活动类型来大致地对区块链设备的类型进行分类。所执行的活动可能是锁定、解锁、开始、停止、创建、删除、更新、去除、清空、添加、转移、发布,具体取决于活动的类型。
耦合的区块链设备
在区块链设备需要与另一用户(控制系统)多次使用同一UID密钥的应用中,在两者之间建立关系以使用复合密钥中的公共变量。每次使用前,都会更改公共变量。这样每次都会产生新的区块链地址。
公共变量的值可以通过编程逻辑或使用一些公共数据或在诸如电子邮件或SMS等的不同通道中共享公共数据来获得。
这被称为将区块链设备与控制系统耦合。
这将促进相同的UID密钥被多次使用,而不会损害区块链地址的安全性。
5.0用于控制区块链设备的计算系统
计算系统B809,其连接至区块链,其包括存储器、硬盘、网络,其中一种或多种方法处理控制系统B801以控制一个或多个称为区块链设备B807的计算设备。可以从终端B804获取一个或多个控制代码。控制数据的一个或多个部分存储在服务器和数据库B803中,一个或多个部分提供给连接到区块链设备的其他附件B806。通过通信系统B802的通信通道将控制数据的一个或多个部分发送到区块链设备B807。区块链设备的执行取决于区块链地址中的数据。
区块链设备的计算系统B810,其自行配置或由外部设备、软件配置。区块链设备从附件获取上下文信息。一个或多个系统来处理和检查从附件接收的数据是否与区块链地址的数据相对应。区块链设备可以提示用户并执行交易。区块链设备可以基于交易的成功执行活动。区块链设备可以基于输入数据的正确性执行活动。区块链设备可以基于至少一项过去的成功交易来执行活动。
一个或多个计算系统,包括控制系统,通信系统,在具有处理器、存储器、硬盘、网络的系统上运行的区块链设备。
在一个或多个节点上运行的区块链的一个或多个计算系统,它们通过有线或无线网络连接。
6.0用于控制区块链设备的区块链服务
控制区块链服务B903,用于为可从终端B904获取的各种类型的控制代码提供控制数据,该控制码可用于控制区块链设备B907,这可通过连接区块链设备的通信系统进行。
控制区块链服务B903由连接到控制系统的一个或多个计算系统提供,该控制系统运行创建控制数据的方法或过程。
连接至设备区块链服务B905的区块链设备B907从通过通信系统B902连接至区块链设备的附件B906中获取一组或多组数据。
设备区块链服务,用于向区块链设备提供一种或多种计算服务,该区块链设备具有区块链设备及其附件所需的一种或多种方法或过程。
7.0用例
用例:用户在特定GPS位置的设备执行
假设基于PIN和特定的GPS位置,连接到区块链的区块链设备必须是可执行的。使用公开的方法处理特定于GPS和PIN的控制代码,以创建区块链地址。区块链地址被激活。区块链设备被提供有控制数据。
PIN在不同的通道中被发送到区块链设备,例如通过SMS发送给用户。区块链设备能够获取GPS作为上下文信息。
区块链设备将从用户获取PIN,并从GPS位置获取上下文输入。然后使用GPS和PIN执行交易。如果PIN或GPS错误,则复合密钥将错误并且交易将失败。
这将确保仅在特定的GPS位置以及带有PIN的用户在场时才执行设备。
用例:无人机在指定的GPS位置解锁
假设对无人机进行了编程以在特定位置解锁托运货物。使用公开的方法,可以在区块链地址内部秘密地编程解锁位置。然后激活区块链地址。
无人机区块链设备将持续获取GPS上下文信息,并将其馈送到区块链设备以执行交易。一旦到达指定位置,交易将使用位置GPS数据成功完成。然后,无人机可以解锁托运货物。
如果无人驾驶飞机到达错误的位置,则GPS数据将与所需的GPS坐标不匹配,因此交易将不会成功,因此无人驾驶飞机可能无法在错误的位置解锁托运货物。
用例:汇款/优惠券转让。
假定必须发布汇款优惠券,该优惠券应可由任何优惠券兑现设备兑现。
使用公开的方法,创建控制代码,该控制代码可以是OTP。使用控制代码,创建区块链地址和控制数据。OTP通过SMS发送给用户。优惠券控制数据可以被打印为QR码。区块链地址被激活。
为了兑换,优惠券持有者将随后将优惠券提交给优惠券兑现装置。优惠券兑现设备将扫描QR码,然后提示用户输入OTP。一旦用户提供了OTP,优惠券兑现设备就可以执行交易并兑现优惠券。
用例:具有多个条件的文档签名。
假设当局需要获得由特定人员在特定位置签署的文件的记录。
该人通过发送到他的移动电话的“OTP”来标识。所述文档由其哈希标识。所述地点由其GPS坐标标识。
在当局识别上述项目之后,创建以下字符串
<OTP-person-1><GPS-loc><doc-hash><UID-key>
使用公开的方法,创建了区块链地址和控制数据。区块链地址被激活。用户的移动应用程序充当区块链设备。它将获得一些控制数据。
UID密钥被分配给用户的移动应用程序。这是通过扫描控制数据的QR码完成的。该移动应用程序将接收具有OTP的SMS。GPS位置由手机自动获取。使用提供的哈希值验证文档哈希值。
然后,用户将在移动应用程序中确认协议。交易在区块链中执行。这样可以确保在规定的条件下对文档进行签名。
用例:多用户验证。
假设服务需要3个用户的批准。
使用公开的方法,以JSON格式创建多用户名称代码对。
将该JSON数据转换为区块链地址,并使用公开的方法激活。
通过SMS向每个用户发送其各自的代码。每个用户将提供收到的代码。服务验证器在web应用程序中具有一个区块链设备,该设备接受每个用户已收到的代码。
一旦所有用户都提供了代码,则web应用程序将执行交易,以赎回区块链地址中的价值。这将验证所有收到验证码并批准的用户。如果用户不想批准,他将不提供代码。这将确保多用户批准。
在本公开中,以上提供了涉及比特币系统的示例和描述作为示例。然而,本公开的实施例不限于“比特币”。本公开的实施例用于解释某些概念。可以对本公开的实施例进行修改,而不脱离由所附权利要求限定的本公开的范围。诸如“包括”、“包含”、“并入”、“由...组成”、“具有”等表述用于描述和要求本公开旨在以非排它的方式理解,即允许存在未明确描述的项目、组件或元件。提及单数也应解释为涉及复数。
Claims (20)
1.一种控制区块链设备的方法,包括:
至少一个复合密钥和唯一标识密钥,其中,将至少一个控制代码与唯一标识密钥合并以创建复合密钥;
处理复合密钥以创建赎回脚本、区块链地址;
其中,控制数据定义为赎回脚本、区块链地址、控制代码、元数据和唯一标识密钥;
赎回脚本能够验证复合密钥的哈希值;
一种接收至少一个控制代码以创建控制数据的至少一部分的方法;
一种通过通信系统发送控制数据的至少一部分的方法。
2.根据权利要求1所述的方法,其中,通过在控制系统与区块链设备之间具有至少一个公共改变变量,在控制系统与区块链设备之间建立所述耦合。
3.根据权利要求1所述的方法,其中,至少一个智能合约与赎回脚本一起使用,以使得执行赎回脚本取决于智能合约和智能合约输入。
4.根据权利要求1所述的方法,其中,控制数据的至少一部分被保持在存储系统中,其中,所述存储系统是从基本上由以下各项组成的组中选择的:硬盘,存储区域网,文件,服务器,网络文件系统,分布式文件系统,星际文件系统,数据库,ROM,闪存,虚拟机。
5.根据权利要求1所述的方法,其中执行区块链地址交易。
6.根据权利要求1所述的方法,其中,计算系统使用部分控制数据来控制区块链设备;
7.根据权利要求1所述的方法,其中在与唯一识别密钥合并之前,至少一个控制代码被哈希至少一次。
8.根据权利要求3所述的方法,其中,智能合约验证至少一个签名以执行所述交易。
9.根据权利要求1所述的方法,其中,通过字符串化至少一个JSON数据来创建至少一个控制代码。
10.根据权利要求1所述的方法,其中,用于验证复合密钥的脚本被嵌入在区块链的区块链地址中。
11.一种区块链设备的方法,其中
区块链设备由至少一个唯一标识密钥标识,区块链设备使用至少一部分控制数据,
其中,控制数据定义为赎回脚本、区块链地址、控制代码、元数据、唯一标识密钥;
其中,赎回脚本取决于至少一个复合密钥;
区块链设备包括:
一种可以执行至少一项区块链交易的方法;
一种可以使用附件中的数据构建至少一个复合密钥的方法;
一种可以验证至少一个重建的复合密钥的方法;
一种可以从通信系统接收控制数据的至少一部分的方法;
可以执行至少一个操作的区块链设备,其中该操作选自以下一组操作:
验证复合密钥的正确性,
进行至少一项交易,
验证至少一项过去的交易;
一种可以基于至少一个区块链地址触发的方法;
一种可以执行至少一项活动的方法。
12.如权利要求11所述的方法,其中,所述区块链设备接收至少一个智能合约输入以及复合密钥。
13.根据权利要求11所述的方法,其中,所述触发是基于区块链地址中的价值发生的。
14.根据权利要求11所述的方法,其中,所述触发是基于区块链地址的状态发生的,其中,所述状态是从包括以下各项的一组状态中选择的:
在区块链中没有任何记录的区块链地址状态,
具有零价值的区块链地址状态,
具有一定价值的区块链地址状态,
交易一些价值后的区块链地址状态,
至少一项过去交易后的区块链地址状态。
15.如权利要求11所述的方法,其中,活动类型选自基本上由金融活动、资产活动、设备活动、运动活动、游戏活动组成的活动类型组,其中执行的活动选自基本上由锁定、解锁、开始、停止、创建、删除、更新、去除、清空、添加、传输、发布活动组成的活动组。
16.一种通信系统,其通信至少一部分控制数据,
其中控制数据定义为赎回脚本、区块链地址、控制代码、元数据、唯一标识密钥、智能合约输入;
通讯系统连接至少一个区块链装置;
通信系统可以连接至至少一个连接至区块链设备的附件设备;
通信系统可以连接到至少一个连接到区块链设备的用户设备;
通信系统配置为:
从控制系统收集控制数据的至少一部分;
将控制数据的至少一部分发送到区块链设备。
17.一种控制区块链设备的系统,包括:
至少一个复合密钥和唯一标识密钥,其中至少一个控制代码被合并到唯一标识密钥以创建复合密钥;
处理复合密钥以创建赎回脚本、区块链地址;
其中,控制数据定义为赎回脚本、区块链地址、控制代码、元数据和唯一标识密钥;
赎回脚本能够验证复合密钥的哈希值;
其中控制系统被配置为:
接收至少一个控制代码以创建控制数据的至少一部分;
通过通信系统发送控制数据的至少一部分。
18.一种区块链设备系统,其中
区块链设备由至少一个唯一标识密钥标识,区块链设备使用至少一部分控制数据,
其中,控制数据定义为赎回脚本、区块链地址、控制代码、元数据、唯一标识密钥;
其中,赎回脚本取决于至少一个复合密钥;
区块链设备配置为:
执行至少一项区块链交易;
使用来自附件的元数据和数据构建至少一个复合密钥;
验证至少一个重建的复合密钥;
从通信系统接收控制数据的至少一部分;
执行至少一个操作,其中该操作选自以下一组操作:
验证复合密钥的正确性,
进行至少一项交易,
验证至少一项过去的交易;
根据至少一个区块链地址触发;
进行至少一项活动。
19.一种计算机程序产品,包括硬件、软件、存储器,与区块链和电子设备通信,实现权利要求1所述的方法。
20.一种计算机程序产品,包括硬件、软件、存储器,与区块链和电子设备通信,实现权利要求11所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201841010702 | 2018-03-23 | ||
IN201841010702 | 2018-03-23 | ||
PCT/IN2019/050174 WO2019180733A1 (en) | 2018-03-23 | 2019-03-01 | System and method for composite-key based blockchain device control |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111433797A true CN111433797A (zh) | 2020-07-17 |
CN111433797B CN111433797B (zh) | 2023-03-28 |
Family
ID=67984366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005871.3A Active CN111433797B (zh) | 2018-03-23 | 2019-03-01 | 基于复合密钥的区块链设备控制系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10693637B2 (zh) |
CN (1) | CN111433797B (zh) |
AU (1) | AU2019237372B2 (zh) |
GB (1) | GB2582078A (zh) |
SG (1) | SG11202005222XA (zh) |
WO (1) | WO2019180733A1 (zh) |
ZA (1) | ZA202005512B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662452A (zh) * | 2023-07-31 | 2023-08-29 | 中国人民解放军军事科学院系统工程研究院 | 基于区块链和ipfs的无人蜂群数据存储方法及系统 |
CN118070874A (zh) * | 2024-03-21 | 2024-05-24 | 共幸科技(深圳)有限公司 | 一种基于数据共享技术的机器自主学习系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11769147B2 (en) * | 2018-08-30 | 2023-09-26 | International Business Machines Corporation | Secure smart note |
US11893554B2 (en) | 2018-08-30 | 2024-02-06 | International Business Machines Corporation | Secure smart note |
KR101997673B1 (ko) * | 2018-12-06 | 2019-07-08 | 주식회사 푸시풀시스템 | 가상 블록체인을 갖는 듀얼 블록체인 기반의 디지털 전자기기 |
GB201820947D0 (en) * | 2018-12-21 | 2019-02-06 | Nchain Holdings Ltd | Computer-implemented system and method |
GB202002285D0 (en) * | 2020-02-19 | 2020-04-01 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201907345D0 (en) | 2019-05-24 | 2019-07-10 | Nchain Holdings Ltd | Protocol for validating blockchain transactions |
GB201907347D0 (en) * | 2019-05-24 | 2019-07-10 | Nchain Holdings Ltd | In-script functions within a blockchain transaction |
US11329804B2 (en) * | 2019-10-18 | 2022-05-10 | Honeywell International Inc. | Systems and methods for providing provenance and anti-counterfeiting of a part using blockchain technology |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
US11189131B1 (en) * | 2020-07-24 | 2021-11-30 | Pocketful of Quarters, Inc. | System and method for blockchain tokens for gaming |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017145019A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Registry and automated management method for blockchain-enforced smart contracts |
US20170279783A1 (en) * | 2016-03-28 | 2017-09-28 | Accenture Global Solutions Limited | Secure 3d model sharing using distributed ledger |
WO2017187397A1 (en) * | 2016-04-29 | 2017-11-02 | nChain Holdings Limited | Operating system for blockchain iot devices |
WO2018007916A1 (en) * | 2016-07-05 | 2018-01-11 | nChain Holdings Limited | A blockchain-implemented control method and system for controlling an external process or system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG10201909244RA (en) * | 2015-04-06 | 2019-11-28 | Bitmark Inc | System and method for decentralized title recordation and authentication |
US20170243193A1 (en) * | 2016-02-18 | 2017-08-24 | Skuchain, Inc. | Hybrid blockchain |
US10366062B1 (en) * | 2016-03-28 | 2019-07-30 | Amazon Technologies, Inc. | Cycled clustering for redundancy coded data storage systems |
EP3443530A1 (en) * | 2016-04-11 | 2019-02-20 | Nchain Holdings Limited | A method for secure peer-to-peer communication on a blockchain |
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 |
US10521196B1 (en) * | 2018-10-04 | 2019-12-31 | Sap Se | Distributed ledger-based rapid application development |
-
2018
- 2018-08-12 US US16/101,452 patent/US10693637B2/en not_active Expired - Fee Related
-
2019
- 2019-03-01 CN CN201980005871.3A patent/CN111433797B/zh active Active
- 2019-03-01 SG SG11202005222XA patent/SG11202005222XA/en unknown
- 2019-03-01 WO PCT/IN2019/050174 patent/WO2019180733A1/en active Application Filing
- 2019-03-01 GB GB2006933.2A patent/GB2582078A/en not_active Withdrawn
- 2019-03-01 AU AU2019237372A patent/AU2019237372B2/en not_active Ceased
-
2020
- 2020-09-04 ZA ZA2020/05512A patent/ZA202005512B/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017145019A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Registry and automated management method for blockchain-enforced smart contracts |
US20170279783A1 (en) * | 2016-03-28 | 2017-09-28 | Accenture Global Solutions Limited | Secure 3d model sharing using distributed ledger |
WO2017187397A1 (en) * | 2016-04-29 | 2017-11-02 | nChain Holdings Limited | Operating system for blockchain iot devices |
WO2018007916A1 (en) * | 2016-07-05 | 2018-01-11 | nChain Holdings Limited | A blockchain-implemented control method and system for controlling an external process or system |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662452A (zh) * | 2023-07-31 | 2023-08-29 | 中国人民解放军军事科学院系统工程研究院 | 基于区块链和ipfs的无人蜂群数据存储方法及系统 |
CN116662452B (zh) * | 2023-07-31 | 2023-11-03 | 中国人民解放军军事科学院系统工程研究院 | 基于区块链和ipfs的无人蜂群数据存储方法及系统 |
CN118070874A (zh) * | 2024-03-21 | 2024-05-24 | 共幸科技(深圳)有限公司 | 一种基于数据共享技术的机器自主学习系统 |
CN118070874B (zh) * | 2024-03-21 | 2024-09-24 | 共幸科技(深圳)有限公司 | 一种基于数据共享技术的机器自主学习系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2019180733A1 (en) | 2019-09-26 |
US10693637B2 (en) | 2020-06-23 |
SG11202005222XA (en) | 2020-07-29 |
GB2582078A (en) | 2020-09-09 |
AU2019237372A1 (en) | 2020-06-18 |
CN111433797B (zh) | 2023-03-28 |
GB202006933D0 (en) | 2020-06-24 |
ZA202005512B (en) | 2021-09-29 |
US20190296903A1 (en) | 2019-09-26 |
AU2019237372B2 (en) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111433797B (zh) | 基于复合密钥的区块链设备控制系统和方法 | |
Antonopoulos et al. | Mastering bitcoin | |
JP7436568B2 (ja) | ブロックチェーンにより実現される方法及びシステム | |
KR102416506B1 (ko) | 블록체인을 이용한 논리 게이트 기능 구현 | |
CN109074579B (zh) | 使用分布式散列表和区块链保护计算机软件的方法及系统 | |
KR101936756B1 (ko) | 블록체인을 이용한 공유경제 관리 장치 | |
KR20210128455A (ko) | 블록체인 네트워크를 통한 이전을 구현하는 컴퓨터 구현 시스템 및 방법 | |
KR101936757B1 (ko) | 블록체인 기반의 공유경제를 위해 키를 생성하는 분산 원장 장치 및 분산 원장 방법 | |
JP2022504637A (ja) | 暗号化デジタルidのための分散型台帳 | |
Tackmann | Secure event tickets on a blockchain | |
CN109615351A (zh) | Sim卡、终端机和数字货币管理系统 | |
US20200082388A1 (en) | Authenticating server and method for transactions on blockchain | |
JP7462903B2 (ja) | 利用者端末、認証者端末、登録者端末、管理システムおよびプログラム | |
KR102166690B1 (ko) | 전자문서를 위한 전자서명 관리서버 및 관리방법 | |
CN110533417B (zh) | 一种数字资产管理装置、发行方法及系统 | |
KR102333811B1 (ko) | 블록체인 기반의 카드 결제 처리 시스템 및 방법 | |
Ahmed et al. | A blockchain self-sovereign identity for open banking secured by the customer’s banking cards | |
CN111221904A (zh) | 智能合约部署、执行方法、装置、电子设备及存储介质 | |
KR20210117731A (ko) | 블록체인 기반의 거래내역 확인 시스템 | |
KR101502944B1 (ko) | 휴대단말을 이용한 전자서명 시스템 | |
CN116472694A (zh) | 生成、保护和维护表情符号序列数字令牌的系统及方法 | |
KR101962287B1 (ko) | 블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치 | |
Antal et al. | Distributed Ledger Technology Review and Decentralized Applications Development Guidelines. Future Internet 2021, 13, 62 | |
US20240249277A1 (en) | System and method for transfering non-fungible token | |
Stearns | A Decentralized Approach to Messaging Using Blockchain Technology |
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 |