CN112154626A - 使用区块链执行原子交换的计算机实现的系统和方法 - Google Patents

使用区块链执行原子交换的计算机实现的系统和方法 Download PDF

Info

Publication number
CN112154626A
CN112154626A CN201980032652.4A CN201980032652A CN112154626A CN 112154626 A CN112154626 A CN 112154626A CN 201980032652 A CN201980032652 A CN 201980032652A CN 112154626 A CN112154626 A CN 112154626A
Authority
CN
China
Prior art keywords
node
secret
public key
user
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980032652.4A
Other languages
English (en)
Inventor
C·S·赖特
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 GBGB1807807.1A external-priority patent/GB201807807D0/en
Priority claimed from GBGB1807816.2A external-priority patent/GB201807816D0/en
Priority claimed from GBGB1807813.9A external-priority patent/GB201807813D0/en
Priority claimed from GBGB1807811.3A external-priority patent/GB201807811D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of CN112154626A publication Critical patent/CN112154626A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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

Abstract

提供了一种计算机实现的交换方法。该方法可以在一个或多个区块链(例如,比特币现金区块链)上进行。该方法包括以下步骤:将第一隐蔽的秘密值(H(A0))从第一用户传达到第二用户,并且将第二隐蔽的秘密值(H(B0))从第二用户传达到第一用户;以及构造第一区块链交易和第二区块链交易(tx1,tx2),其每一个包括第一隐蔽的秘密值和第二隐蔽的秘密值,交易被布置为在向相应的区块链交易提供第一秘密值(A0)和第二秘密值(B0)时是可解锁的,以转移对相应的第一资源或第二资源的控制,其中,第一区块链交易的解锁使第一秘密值被揭示给第二用户,第二区块链交易的解锁使第二秘密值被揭示给第一用户。

Description

使用区块链执行原子交换的计算机实现的系统和方法
技术领域
本发明大体上涉及计算机实现的安全方法和密码技术。更具体地,本发明涉及一种用于原子交换资源控制的方法。本发明特别适合但不限于在一个或多个区块链和关联的协议上使用。
背景技术
在本文献中,我们使用术语“区块链”用来包括所有形式的电子的、基于计算机的、分布式的账本。这些包括基于共识的区块链和交易链技术、被许可的和未被许可的账本、共享账本及其变型。尽管已经提出并开发了其他区块链实现,但是区块链技术最广为人知的应用是比特币帐本。尽管为了方便和说明的目的在本文中可能提及比特币,但是应当注意,本发明不限于与比特币区块链一起使用,并且替代的区块链实现和协议落入本发明的范围内。术语“用户”在本文中可以指基于人类或基于处理器的资源。另外,本文使用的术语“比特币”旨在包括源自比特币协议的协议或实现方式的所有版本和变型。
区块链是一种点对点的电子帐本,其被实现为基于计算机的去中心化的、分布式系统,该系统由区块组成,该区块又由交易组成。每个交易是数据结构,该数据结构对区块链系统中的参与者之间的数字资产或资源的控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值,以使得区块被链接在一起来创建自区块链建立以来就已经被写入到该区块链的所有交易的永久、不可更改的记录。交易包含被称为嵌入到交易的输入和输出中的脚本的小程序,这些小程序指定如何以及谁可以访问交易的输出。在比特币平台上,使用基于堆栈的脚本语言编写这些脚本。
为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易均有效,而无效交易则被网络拒绝。安装在节点上的软件客户端通过执行其锁定和解锁脚本来对未使用的交易(UTXO)执行此验证工作。如果锁定和解锁脚本的执行评估为TRUE,则该交易有效,并将该交易写入区块链。因此,为了将交易写入区块链,必须:i)由接收交易的第一个节点验证–如果交易被验证,则该节点将其中继到网络中的其他节点;ii)添加到矿工建造的新区块中;iii)挖矿,即添加到过去交易的公共账本中。
尽管区块链技术因使用加密货币实现方式而被广泛了解,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可以存储在区块链上的数据这两者以实现新系统。如果区块链可以用于不限于加密货币领域的自动化任务和过程,那将是非常有利的。这样的方案将能够利用区块链的好处,例如,事件的永久性、防篡改记录、分布式处理等,同时在其应用中具有更多用途。
原子交换的概念先前已在加密货币社区中讨论过。各方之间的交换是“原子性的”,其从某种意义上说,即所有参与者都收到了他们期望的资源(例如,加密货币令牌或硬币),或者参与者都没有接收到他们期望的资源。在撰写本文档时,维基百科将原子交换描述为“在加密货币中提出的功能,其允许一种加密货币与另一种加密货币进行交换,而无需受信任的第三方。在传统的加密货币中,诸如加密货币交易所之类的受信任的第三方对于进行加密货币的交换是必需的,以防止一方在没有收到返回的货币情况下发送货币。原子交换系统使用哈希时间锁定的智能合约,从而当事方必须在指定时间内交付要交换的货币,否则交易将被取消。这样可以保持原子性,因为要么进行交换,要么没有交换货币”-https://en.wikipedia.org/wiki/Atomic_swap。
因此,原子交换在通过区块链进行的转移方面提供了增强的安全性,因为去除对受信任的第三方的需求消除了利用和恶意干预的风险–对于诸如Mount Gox之类的加密货币交换,已经发生了许多安全漏洞或“黑客攻击”。
但是,提出的原子交换方案涉及仅使用一个秘密,并且交换是异步执行的。这产生了以下缺点:必须先花费一笔交易,然后才能花费另一笔交易。
发明内容
因此,期望提供一种密码增强的资源交换方法,该方法原子地交换具有由区块链技术提供的不信任和不变性的资源或资产,并且增强了在区块链实现的网络上进行转移的安全性。
现在已经设计出了这种改进的方案。
根据本发明,提供了一种计算机实现的交换、互换或转移方法。根据附加的或替代的限定,本发明提供了一种安全方法,该安全方法控制资源何时可以或不可以跨网络从发送者传输到接收者。附加地或可替代地,本发明提供了一种方法和对应的系统,其被布置为经由区块链执行资源的原子交换或传输。该方法可以包括以下步骤:
(i)将第一隐蔽的秘密值从第一用户传达到第二用户,并且将第二隐蔽的秘密值从第二用户传达到第一用户;以及
(ii)构造第一区块链交易和第二区块链交易,其每一个包括第一隐蔽的秘密值和第二隐蔽的秘密值,交易被布置为在向相应的区块链交易提供第一秘密值和第二秘密值时是可解锁的,以转移对相应的第一资源或第二资源的控制,
其中,第一区块链交易的解锁使第一秘密值被揭示给第二用户,第二区块链交易的解锁使第二秘密值被揭示给第一用户。
该方法可以通过包括至少两个交易(Tx1和Tx2)来提供原子交换机制,每个交易具有至少一个未花费的输出(UTXO),该至少一个未花费的输出仅在向与相应的输出相关联的多个难题或脚本提供所需的标准时才可以被解锁。换句话说,第一交易中未花费的输出的锁定和解锁标准可以与该交易或另一交易中未花费的输出的锁定标准相同并通过其被镜像。
向第一交易中未花费的输出提供所需的解锁标准可以揭示解锁该交易或另一交易中未花费的输出所需的一个或多个秘密值或使其是可访问的。
包含秘密值的解锁脚本可以在后续交易的输入中提供,该后续交易在第一交易或第二交易中花费输出。一旦后续交易的解锁脚本与第一交易或第二交易的锁定脚本一起被执行,那么后续交易就可以被验证并随后被发布在区块链上,这使在后续交易的输入中提供的一个或多个秘密值是从区块链可访问的或可读的。
该方法提供了一种确保在不信任的环境中原子交换秘密值的安全方法,在该环境中,该方法的任何用户都没有比其他用户拥有对该方法的更多的控制。
秘密值与对应的隐蔽的秘密值有关,因为秘密值不能从隐蔽的秘密值中确定,但是隐蔽的秘密值可以从秘密值中确定。这种关系的示例是将单向函数(例如,哈希或模算术)应用于秘密值提供隐蔽的秘密值。因此,根据一种限定,隐蔽(秘密)值可以是可以从原始(秘密)值导出或已经从原始(秘密)值导出的值,但不能用于确定原始(秘密)值。可能无法对隐蔽值进行逆向工程以提供原始值。
短语“解锁交易”可以包括解锁或花费交易中提供的至少一个未花费的输出(UTXO)的含义。这可以通过提供满足与未花费的输出关联的锁定脚本所必需的所需数据/解锁脚本来实现。
第一交易和第二交易中的至少一个可以被配置为仅在应用或提供相应的第一私钥和第二私钥时才是可赎回的(可花费的)。
这样做的优点在于,只有预定的接收者(由其私钥指示)才能解锁交易。
该方法还可包括计算以下中的至少一个的步骤:(a)至少部分地基于第一用户的第一公钥的第一派生公钥;以及(b)至少部分地基于第二用户的第二公钥的第二派生公钥,其中,第一派生公钥是具有第一私钥的加密密钥对的一部分,第二派生公钥是具有第二私钥的加密密钥对的一部分。
这使得资产或资源能够存储在派生而不是公开已知的地址处,从而为该方法的用户提供了额外的隐私性和安全性。应当注意,术语“资产”和“资源”在本文中可以互换使用。术语“资产”不应仅被解释为具有财务背景或用途。资产可以是例如代币,其表示区块链上或区块链外的其他实体。
计算以下中的至少一个的步骤:(a)至少部分地基于第一用户的第一公钥的第一派生公钥;以及(b)至少部分地基于第二用户的第二公钥的第二派生公钥,还可以包括:第一隐蔽秘密值和第二隐蔽秘密值的组合。
这提供了以下优点:提供进行的原子交换和交易之间记录的和不可磨灭的链接。
第一隐蔽的秘密值和第二隐蔽的秘密值的组合可以包括第一隐蔽的秘密值和第二隐蔽的秘密值的串接,以及至少一个隐蔽的秘密值与随机或伪随机值的串接中的至少一个。
这提供了以下优点:经由附加的确定性混淆进一步提高交易的安全性。
该方法还可以包括以下步骤:构造以下中的至少一个:第三区块链交易,其被配置为响应于经过第一交易的非赎回的第一时间段,将对第一资源的控制返回给第一用户;以及第四区块链交易,其被配置为响应于经过第二交易的非赎回的第二时间段,将对第二资源的控制返回给第二用户。
这使得该方法的至少一个用户能够在另一用户没有完全参与交换的情况下将对相应的资源的控制返回给他们,从而增加了该方法的多功能性。
第一隐蔽的秘密值和第二隐蔽的秘密值中的至少一个可以包括第一秘密值和第二秘密值中的至少一个与第一用户和第二用户两者都可访问的共享秘密值的组合。
这提供了增加该方法提供的隐私性和安全性的优点。
可以在步骤(i)之前将共享秘密值建立为公共秘密。
这提供了进一步增加该方法的安全性的优点。
该方法还可以包括以下步骤:
(iii)从第一秘密值和第二秘密值中的至少一个开始生成至少一个隐蔽的秘密值的序列;
(iv)使用第一秘密值和第二秘密值中的至少一个来执行任一前述权利要求中的方法;
(v)赎回至少一个区块链交易以揭示第一秘密值和第二秘密值中的至少一个,从而使该序列的至少一个隐蔽的秘密值被揭示。
这使得以比方法的简单重复更高的效率来执行安全原子交换链,因为存储秘密所需的存储空间更少。此外,所需的通信回合更少。这样可以节省时间并提高安全性。
执行该方法的至少步骤(ii)的步骤可以使用在该方法的步骤(v)中揭示的至少一个隐蔽的秘密值。
这提供了进一步提高该方法的效率的优点。
附图说明
通过参考本文描述的实施例,本发明的这些和其他方面将变得显而易见和被阐明。现在将参考附图仅以举例的方式而不是任何限制的方式描述本发明的实施例,其中:
图1示出了说明实施本发明的方法中采取的步骤的流程图;
图2是用于确定第一节点和第二节点的公共秘密的示例系统的示意图,该系统可以根据本发明用于高度敏感信息的安全传输;
图3是用于确定公共秘密的计算机实现的方法的流程图,该方法可以根据本发明用于高度敏感信息的安全传输;
图4是用于注册第一节点和第二节点的计算机实现方法的流程图;以及
图5是用于确定公共秘密的计算机实现的方法的另一流程图,该方法可以根据本发明用于高度敏感信息的安全传输。
具体实施方式
区块链上的原子交易交换意味着对于两个交易,一个交易从第一用户爱丽丝到第二用户鲍勃,而另一个交易从鲍勃到爱丽丝,要么两个交易都完成,要么两个交易都没完成。
参照图1,本发明涉及使爱丽丝和鲍勃均能够创建秘密(分别表示为A0和B0)30。如果爱丽丝和鲍勃是可信任的,则他们可以使用通信信道来交换包括这些秘密的信息,该通信信道不是区块链协议的一部分。他们可以使用下面在副标题“确定公共秘密”下描述的安全秘密交换。
假设一方不可信任,并且没有分享他们的秘密。本发明提供了该方花费其资金的唯一方法是在区块链上揭示其秘密,从而使该秘密成为公共知识并可供其他用户使用。这是由于交换中使用的交易的配置。因此,该方法不需要任何一方信任另一方。
在本发明的实施例中,存在两个秘密:一个秘密由爱丽丝生成并可由爱丽丝访问,另一个秘密由鲍勃生成并可由鲍勃生访问。这些通过链下信道(off-blockchain channel)进行传达。
单原子交换
Figure BDA0002779521850000061
表示具有对应的私钥
Figure BDA0002779521850000062
的爱丽丝的椭圆曲线数字签名算法(ECDSA)公钥,而令
Figure BDA0002779521850000063
表示具有私钥
Figure BDA0002779521850000064
的鲍勃的公钥。
1.在30处,爱丽丝选择了只有她自己知道的秘密
Figure BDA0002779521850000065
而鲍勃选择了只有他自己知道的秘密这些秘密与爱丽丝和鲍勃的公钥或私钥无关。在此,n是椭圆曲线生成器点G的阶数。秘密可以是已通过SHA256(mod n)算法的通用数据结构的形式。
2.爱丽丝和鲍勃打开他们之间的通信信道。这可以是使用下面在副标题“确定公共秘密”下描述的方法创建的安全通信信道。然后,他们对各自的秘密进行哈希处理(步骤34),并共享其公钥和各自秘密的哈希值(步骤36)。A0和B0的哈希值分别表示为H(A0)和H(B0),其中,可以使用诸如SHA-256等标准哈希函数。也可以公开地共享值H(A0)和H(B0)。爱丽丝和鲍勃现在都知道
Figure BDA0002779521850000071
H(A0),H(B0)。
3.在38处,爱丽丝和鲍勃计算确定性密钥
H(A0)|H(B0),
其中,“|”表示操作OP_CAT,或可替代地,派生的哈希值,例如H(H(A0)|H(B0))。
4.在40处,现在,爱丽丝和鲍勃创建派生的公钥
爱丽丝:
Figure BDA0002779521850000072
鲍勃:
Figure BDA0002779521850000073
其具有对应的私钥
爱丽丝:
Figure BDA0002779521850000074
鲍勃:
Figure BDA0002779521850000075
爱丽丝和鲍勃将使用派生的公钥
Figure BDA0002779521850000076
执行原子交换。原则上,他们可以使用其原始的公钥
Figure BDA0002779521850000077
但是派生的公钥具有与原子交换绑定的优点,并且可以很容易地由爱丽丝和鲍勃而不由其他任何人计算得出(除非H(A0)和H(B0)已公开)。
如果在38处还合并确定性伪随机表象值(例如,如下所示的),则可以实现增加的隐私:
H(A0)|H(B0)|Z
其中,Z是双方都可以计算的值,例如Zeta函数,它是基于共享的起始值预先约定的。
5.在42处,爱丽丝和鲍勃构造以下锁定脚本。在此,通过稍后示出的比特币脚本中的示例性实现示意性地描述了脚本。
Figure BDA0002779521850000081
与Solve H(A0)与Solve H(B0)
Figure BDA0002779521850000082
与Solve H(A0)与Solve H(B0)
过程
Figure BDA0002779521850000083
是针对公钥/私钥对
Figure BDA0002779521850000084
的标准ECDSA签名验证操作。取而代之的是,可以使用
Figure BDA0002779521850000085
这是具有公钥/私钥对
Figure BDA0002779521850000086
Figure BDA0002779521850000087
的标准ECDSA签名验证。过程Solve H(A0)是具有解A0的哈希难题(hash puzzle),这意味着解锁脚本必须包含有效值A0,该值在被哈希处理时等于锁定脚本中提供的H(A0)。解锁脚本由下式给出
Figure BDA0002779521850000088
Figure BDA0002779521850000089
此处,可以看出,如果爱丽丝或鲍勃解锁他们的资金,则他们必须在区块链上暴露值A0和B0
6.在42处,爱丽丝通过锁定脚本LockingScript(B)创建到
Figure BDA00027795218500000810
的交易tx1,而鲍勃使用锁定脚本LockingScript(A)创建到
Figure BDA00027795218500000811
的交易tx2。在该阶段,由于爱丽丝和鲍勃都不知道A0和B0,因此双方都不能在
Figure BDA00027795218500000812
Figure BDA00027795218500000813
处花费资金。这些交易被发送到网络,随后出现在区块链上。
7.在46C处,爱丽丝向鲍勃发送她的秘密A0,鲍勃向爱丽丝发送他的秘密B0。这是使用上面建立的爱丽丝和鲍勃之间的通信信道执行的。爱丽丝和鲍勃可以通过确认其哈希值等于H(A0)和H(B0)来检查这些值是正确的。
8.假设爱丽丝和鲍勃都是诚实的并且共享其正确的秘密,则双方都知道这两个秘密(步骤48C),并且都可以花费锁定在
Figure BDA00027795218500000814
Figure BDA00027795218500000815
中的资金(步骤50C),完成原子交换。
9.例如,假设鲍勃没有将其正确的秘密B0发送给爱丽丝。即,假设只有爱丽丝发送她的秘密,发生步骤46B而不是46C。由于锁定脚本LockingSc%ipt(B)的形式,为了使鲍勃花费锁定的资金
Figure BDA0002779521850000091
他必须在解锁脚本中公开地暴露他的秘密B0。因此,只要鲍勃花了他的资金,爱丽丝就得知鲍勃的秘密(步骤48B),因此能够花费她在
Figure BDA0002779521850000092
中的资金(步骤50B)。这样可以确保要么爱丽丝和鲍勃都可以花费他们的资金,要么都不能花费他们的资金。
以下是上述步骤4中与比特币区块链兼容的爱丽丝的示例性锁定和解锁脚本。
爱丽丝的锁定脚本:
Figure BDA0002779521850000093
爱丽丝的解锁脚本:
Figure BDA0002779521850000094
请注意,到支付到公钥哈希(P2PKH)地址和支付到脚本哈希(P2SH)地址的交易都允许锁定和解锁上述类型的脚本。对于P2SH地址,锁定脚本被呈现为包含相同信息的赎回脚本的哈希。
以上方法是参照区块链进行描述的,该区块链使用类似于比特币区块链上使用的ECSDA的公钥/私钥加密系统。但是,该方法可以推广到通用加密机制,该机制要求在解锁脚本中暴露的秘密的通用形式,其可以是任意数据结构。所需的是锁定脚本、交易和区块链,这是安全、可验证的通信信道。
时间锁退款交易
如果鲍勃拒绝给爱丽丝其正确的秘密B0,并且也没有解锁其存储在地址
Figure BDA0002779521850000095
中的资金,那么鲍勃的秘密将不会被揭示给爱丽丝,她也永远无法解锁她存储在
Figure BDA0002779521850000096
中的资金。此外,爱丽丝也永远无法收回她发送给鲍勃的存储在
Figure BDA0002779521850000097
中的资金。
可以通过引入从鲍勃到爱丽丝的新交易来解决该问题,该新交易被配置为如果资金未被花费,那么一定量的时间后将资金发送回去。这还需要稍微修改LockingScript(A)和LockingScript(B),下面将对修改进行描述。
该新交易使用锁定脚本中依赖于时间的操作,该操作仅在经过特定的预定时间后才允许区块接受交易。例如,在比特币脚本中,这可以是自指定值以来的相对时间量的操作“检查序列验证”(CSV)或者固定时间值的“检查锁定时间验证”(CLTV)。
修改了上面步骤4中的锁定脚本,以包括如果爱丽丝和鲍勃都同意签字则进行花费的选项,如下所示:
Figure BDA0002779521850000101
Figure BDA0002779521850000102
在44处,然后在上述方法中的步骤4之后和步骤5之前创建两个新交易。爱丽丝创建了从
Figure BDA0002779521850000103
到鲍勃的交易tx4,该交易返回了鲍勃所有的资金。该交易是时间锁定的,使得该交易仅可以在一定量的时间(例如,24小时)之后在区块中被接受。鲍勃创建了从
Figure BDA0002779521850000104
到爱丽丝的类似的交易tx3。交易tx3和tx4具有相应的锁定脚本
Figure BDA0002779521850000105
与CSV(24hours)
Figure BDA0002779521850000106
与CSV(24hours)
爱丽丝签署tx4并将其发送给鲍勃,鲍勃则对其进行签名并将其发送给网络。类似地,鲍勃签署tx3并将其发送给爱丽丝,爱丽丝则对其进行签名并将其发送给网络。
在此阶段,如果任何一方都不遵守,则该过程将被放弃,并且资金不会被转移。如果双方都遵守,则执行以上方法的步骤5(42)。现在,如果任何一方都没有花费在原子交换中交换的资金(46A),则这些资金将在24小时后退还给原始所有者(48A,50A)。
请注意,此处以24小时的CSV相对时间为例,但是有可能使用将来的任何相对时间或将来的任何特定时间(例如,使用CLTV运算符)。
使用比特币区块链在24小时后将资金返还给爱丽丝的tx3的锁定脚本的示例是
Figure BDA0002779521850000111
对应的解锁脚本由
Figure BDA0002779521850000112
给出
秘密值的掩蔽
另一替代实施例包括掩蔽步骤32,使得值A0和B0仅对爱丽丝和鲍勃是已知的,并且从不公开。
最初,爱丽丝和鲍伯都同意只有他们知道的共享秘密Sc。这可以通过使用下面描述的标题为“确定公共秘密”的方法安全地交换秘密来实现。
然后爱丽丝和鲍勃定义新的秘密
A′0=A0+Sc
B′0=B0+Sc
然后,他们通过掩蔽的秘密A′0、B′0而不是原始秘密按照上面概述的方法进行操作。在原子交换期间,只有掩蔽的秘密才在区块链上被揭示给公众。
如果秘密值A0和B0也将在其他背景下(例如,在下面描述的其他实施例中)使用,则这是有用的。
另一替代实施例使爱丽丝和鲍勃能够进行一系列的n个原子交换。各方从随机秘密开始,并创建该秘密的哈希值的序列,这称为访问链。当执行原子交换时,它将暴露要在下一个原子交换中使用的下一个秘密的哈希值。迭代地重复该过程,直到n次的最大值。
该方法在一系列单独的交换上可高效节约,因为爱丽丝和鲍勃一次只需要存储一个秘密,秘密所需的存储空间更少。他们可以从哈希先前的秘密来计算下一个秘密。由于他们不需要每次都传达他们秘密的哈希,因此他们彼此之间需要更少的通信回合。
该方法如下:
爱丽丝和鲍勃同意重复交换的次数n。他们分别创建随机值An和Bn。爱丽丝计算以下访问链:
Figure BDA0002779521850000121
鲍勃从Bn开始计算等效链。这些链对应于将在一系列交换中使用的秘密值。可能的交换的数量将按顺序{0,1,…,n}。也就是说,各方可以在需要重新初始化新链之前将这些值用于0和n个交易之间的交换。
下面概述了实现交换的方法。应当理解,鲍勃遵循等效的过程。
1.爱丽丝从她的链A0,A1,…,An、鲍勃的公钥
Figure BDA0002779521850000122
以及鲍勃的秘密的哈希值H(B0)开始。和以前一样,鲍勃可以公开地分享H(B0)。
2.爱丽丝计算派生的公钥
爱丽丝:
Figure BDA0002779521850000123
鲍勃:
Figure BDA0002779521850000124
然后计算锁定脚本
Figure BDA0002779521850000125
与Solve H(A0)Solve H(B0)
Figure BDA0002779521850000126
与Solve H(A0)Solve H(B0).
注意,在较早的实施例中描述的依赖于时间的退款可以被包括在上述锁定脚本中,而无需对逻辑进行任何实质性改变。
3.爱丽丝和鲍勃执行第一交换。如上所述,这涉及在爱丽丝和鲍勃之间交换A0和B0。这意味着在交换之后,爱丽丝现在知道H(B1)=B0
4.爱丽丝重复该方法的步骤2,但是使用了链中的鲍勃的第二秘密的哈希值H(B1)。明确地,她计算派生的公钥
爱丽丝:
Figure BDA0002779521850000131
鲍勃:
Figure BDA0002779521850000132
和锁定脚本
Figure BDA0002779521850000133
与Solve H(A1)Solve H(B1)
Figure BDA0002779521850000134
与Solve H(A1)Solve H(B1).
5.一旦已经完成了第二交换,爱丽丝就知道了H(B2)=B1。她利用鲍勃的第三秘密的哈希值H(B2)再次重复步骤2。
6.迭代地重复该过程,直到任一交换未完成或已达到n个交换的最大数量。
如较早的实施例中所述,可以通过将伪随机值Zi引入到操作H(Ai)|H(Bi)|Zi来合并进一步的安全性。在这种情况下,该函数应通过使用哈希函数Zi-1=H(Zi)变换每次迭代。
上面概述的原子交换方法不限于比特币区块链。上述原子交换方法中的重要组成部分是,当一方在步骤7中花费其资金时,他们会在区块链上揭示其秘密。这意味着上述方法可用于在任何允许锁定和解锁步骤4中给出的形式的脚本的区块链上执行原子交换。
此外,原子交换方法可以用于交换加密货币。例如,它可以用于爱丽丝在比特币区块链上将比特币发送给鲍勃,以及用于鲍勃在以太币区块链上将以太币发送给爱丽丝。
发送 接收
爱丽丝 BCH Eth
鲍勃 Eth BCH
对两个不同区块链之间的原子交换的唯一限制是,这两个区块链允许在锁定脚本(或等效脚本)的哈希难题中使用相同的哈希函数。原因如下:假设爱丽丝的区块链仅允许使用SHA-256哈希算法,而鲍勃的区块链仅允许使用SHA-384算法。鲍勃向爱丽丝发送一个秘密的SHA-256哈希,但是在鲍勃的锁定脚本中,他为不同的秘密设置了SHA-384哈希难题。当鲍勃花费其资金时,解锁脚本将向爱丽丝揭示无用的秘密,直到鲍勃已经花光他的资金,爱丽丝才知道该秘密。
根据另一实施例,提供了一种方法,该方法使双方均能够创建公钥,对于该公钥,仅使得双方都可访问对应的私钥或都不可访问对应的私钥。该方法利用上述原子交换方法,以便在双方之间交换两个秘密值。这些秘密值用于计算私钥。
该方法的一种应用是,它允许两方交换由单个公钥/私钥对控制的多种类型的加密货币。
该方法使爱丽丝和鲍勃均能够创建公钥,对于该公钥,直到发生原子交换,才知道私钥。原子交换确保爱丽丝和鲍勃都可以计算其对应的私钥,或者都不可以计算其私钥。
下面使用ECSDA私钥和公钥对(例如在比特币、以太币和达世币(Dash)中所使用的)对该方法进行描述。然而,该方法不是严格地依赖于ECDSA协议,并且可以容易地适用于任何基于公钥/私钥的密码系统,对于任何基于公钥/私钥的密码系统,可以从现有的私钥和公共已知的确定性密钥确定性地创建新的安全公钥。
该方法是匿名的,在某种意义上来说,关于新私钥的部分信息存储在为开放式账本的一个或多个区块链上。但是,只有该过程中涉及的各方才能解码此信息,因此安全性永远不会受到损害。
1.爱丽丝以私钥SA和对应的公钥PA=SA·G以及只有她自己知道的秘密S2开始。鲍勃以私钥SB和对应的公钥PB=SB·G以及只有他自己知道的秘密S1开始。
2.爱丽丝向鲍勃发送P2=S2·G,鲍勃向爱丽丝发送P1=S1·G。由于秘密被乘以椭圆曲线基点,因此在此过程中它们不会被暴露,P2和P1可能是公开已知的。
3.爱丽丝创建新的公钥PAE=PA+P1,其可以用作接收比特币交易的地址,或类似替代币的地址。鲍勃创建新的公钥PBE=PB+P2
根据椭圆曲线密码学的特性,PAE的对应私钥为SAE=SA+S1,这意味着PAE=SAE·G。PBE的对应私钥为SBE=SB+S2
在此阶段,爱丽丝不知道S1,因此不知道PAE的私钥。尽管鲍勃知道S1,但他不知道SA,因此也不知道PAE的私钥。按照同样的逻辑,爱丽丝和鲍勃都不知道PBE的私钥。
4.爱丽丝向鲍勃的地址PBE进行交易,而鲍勃向爱丽丝的地址PAE进行交易。这些交易可以是使用公钥/私钥系统的任何加密货币的交换,或者它们可以将令牌甚至物理资产转移给公钥PAE和PBE的所有者。它也可以是上述的组合。
5.如上所述,爱丽丝和鲍勃现在使用任何区块链通过S2和S1作为各自的秘密来初始化原子交换。
6.爱丽丝和鲍勃交换秘密。这意味着:
发送 接收
爱丽丝 S2 S1
鲍勃 S1 S2
爱丽丝和鲍勃可以使用公式P1=S1·G和P2=S2·G来检查他们已经接收到了正确的秘密。如果他们没有交换正确的值,那么他们将不能花费原子交换的输出。
7.现在,爱丽丝拥有S1,她可以计算与PAE相对应的私钥。由于除了爱丽丝之外,没有其他人知道她的私钥SA,因此即使S1是公开已知的,也没有其他人可以计算出与PAE相对应的私钥。类似地,既然鲍勃拥有秘密S2,则他可以计算对应于PBE的私钥,并且除了鲍勃之外,没有其他人可以这样做。
如果爱丽丝和鲍勃都不花费原子交换的交易输出,则爱丽丝的秘密S2不会暴露给鲍勃,鲍勃的秘密S1也不会暴露给爱丽丝。在这种情况下,爱丽丝和鲍勃都无法计算与PAE和PBE对应的私钥。
区块链使用公钥/私钥加密系统签署交易并证明对交易输出的所有权。这使得能够使用以上实施例的方法来以几种加密货币同时向PAE和PBE发送交易。例如,在上述步骤3中建立PAE和PBE之后:
爱丽丝将BCH和ETH中的资金转移到PBE
鲍勃将BCH和DASH中的资金转移到PAE
一旦已经执行了原子交换,就解锁了PBE和PAE的私钥。这些解锁了爱丽丝持有的比特币和以太币公钥以及鲍勃持有的比特币和达世币公钥中的资金。因此,从爱丽丝到鲍勃的以下交易可以安全地完成
发送 接收
爱丽丝 BCH,Eth BCH,DASH
鲍勃 BCH,DASH BCH,Eth
请注意,这些区块链不必在其锁定脚本中允许相同的哈希函数。
上面提供了两方通过使用原子交换进行的秘密交换来解锁公钥的通用方法。这具有超越加密货币交换的应用,并且与使用类似于ECDSA的公钥/私钥加密方案的任何系统有关。例如,其他用例包括但不限于:
1.提供对分布式哈希表(DHT)的访问;
2.加密计算;
3.私人电子邮件客户;
4.获取物流数据和交换;
5.商品和服务的交换;
6.值的私有交换;以及
7.密钥层次结构。
确定公共秘密
在适当的情况下,可以通过以下方法来提高安全性:使用例如如下所述的公钥/私钥系统在两方之间交换信息的安全方法。
公共秘密(CS)可以在两方之间建立,然后用于生成用于传输一个或多个份额的安全的加密密钥。公共秘密(CS)被生成并用于使任何秘密(SA,B,1,2)(例如,秘密值、密钥或其份额)能够安全交换。
在下文中,为了方便起见,爱丽丝和鲍勃将被称为第一节点(C)和第二节点(S)。目的是生成两个节点都知道的公共秘密(CS),但是未经由通信信道发送该公共秘密,从而消除了未经授权的发现的可能性。
安全传输技术涉及在传输的每一端以独立的方式生成CS,因此,尽管两个节点都知道CS,但是CS不必在可能不安全的通信信道上传输。一旦已经在两端处建立了CS,就可以使用它来生成安全的加密密钥,此后两个节点都可以使用该安全的加密密钥进行通信。
图2示出了系统1,该系统包括第一节点3,该第一节点3通过通信网络5与第二节点7通信。第一节点3具有关联的第一处理装置23,第二节点5具有关联的第二处理装置27。第一节点3和第二节点7可以包括电子装置,例如计算机、电话、平板计算机、移动通信装置、计算机服务器等。在一个示例中,第一节点3可以是客户端(用户)装置,第二节点7可以是服务器。该服务器可以是数字钱包提供商的服务器。
第一节点3与具有第一节点主私钥(V1C)和第一节点主公钥(P1C)的第一非对称密码对相关联。第二节点(7)与具有第二节点主私钥(V1S)和第二节点主公钥(P1S)的第二非对称密码对相关联。换句话说,第一节点和第二节点均具有相应的公钥-私钥对。
相应的第一节点3和第二节点7的第一非对称密码对和第二非对称密码对可以在诸如钱包的注册之类的注册过程期间生成。每个节点的公钥可以例如通过通信网络5被公开地共享。
为了确定第一节点3和第二节点7两者处的公共秘密(CS),节点3、7执行相应的方法300、400的步骤,而无需通过通信网络5传达私钥。
由第一节点3执行的方法300包括:至少基于第一节点主私钥(V1C)和生成器值(GV)来确定330第一节点第二私钥(V2C)。生成器值可以基于在第一节点和第二节点之间共享的消息(M),其可以包括如下文更详细描述的在通信网络5上共享消息。方法300还包括至少基于第二节点主公钥(P1S)和生成器值(GV)来确定370第二节点第二公钥(P2S)。方法300包括基于第一节点第二私钥(V2C)和第二节点第二公钥(P2S)确定380公共秘密(CS)。
也可以通过方法400在第二节点7处确定相同的公共秘密(CS)。方法400包括:基于第一节点主公钥(P1C)和生成器值(GV)来确定430第一节点第二公钥(P2C)。方法400还包括基于第二节点主私钥(V1S)和生成器值(GV)来确定470第二节点第二私钥(V2S)。方法400包括基于第二节点第二私钥(V2S)和第一节点第二公钥(P2C)确定480公共秘密(CS)。
通信网络5可以包括局域网、广域网、蜂窝网络、无线电通信网络、互联网等。可以经由诸如电线、光纤之类的通信介质来传输数据或者无线地传输数据的这些网络可能例如通过窃听者11容易被窃听。方法300、400可以允许第一节点3和第二节点7两者独立地确定公共秘密,而无需在通信网络5上传输公共秘密。
因此,一个优点是,可以由每个节点安全且独立地确定公用秘密(CS),而不必通过可能不安全的通信网络5传输私钥。反过来,公用秘密可以用作秘密密钥(或作为秘密密钥的基础),用于在第一节点3和第二节点7之间通过通信网络5进行加密通信。
方法300、400可以包括附加步骤。方法300可以包括在第一节点3处基于消息(M)和第一节点第二私钥(V2C)来生成签名的消息(SM1)。方法300还包括通过通信网络向第二节点7发送360第一签名的消息(SM1)。反过来,第二节点7可以执行接收440第一签名的消息(SM1)的步骤。方法400还包括以下步骤:利用第一节点第二公钥(P2C)来验证450第一签名的消息(SM2),以及基于验证第一签名的消息(SM1)的结果来认证460第一节点3。有利地,这允许第二节点7认证声称的第一节点(其中生成了第一签名的消息)是第一节点3。这基于这样的假设:仅第一节点3可以访问第一节点主私钥(V1C),因此只有第一节点3可以确定第一节点第二私钥(V2C),以生成第一签名的消息(SM1)。应当理解,类似地,第二签名的消息(SM2)可以在第二节点7处生成并被发送到第一节点3,使得第一节点3可以例如在对等场景(peer-to-peer scenario)中认证第二节点7。
可以以各种方式来实现在第一节点与第二节点之间共享消息(M)。在一个示例中,消息可以在第一节点3处生成,然后通过通信网络5被发送到第二节点7。或者,消息可以在第二节点7处生成然后通过通信网络5被发送到第二节点7。在又一示例中,该消息可在第三节点9处生成,并且该消息被发送到第一节点3和第二节点7。在又一替代方案中,用户可以通过用户界面15输入要由第一节点3和第二节点7接收的消息。在又一示例中,消息(M)可以从数据存储19中检索并发送到第一节点3和第二节点7。在一些示例中,消息(M)可以是公开的,因此可以在不安全的网络5上传输。
在其他示例中,一个或多个消息(M)可以存储在数据存储13、17、19中,其中,该消息可以与某个实体相关联,例如,数字钱包或在第一节点3和第二节点7之间建立的通信会话。因此,消息(M)可被检索并用于在相应的第一节点3和第二节点7处重新创建与该钱包或会话相关联的公共秘密(CS)。
有利地,可以保留允许重建公共秘密(CS)的记录,而记录本身不必私下地存储或安全地传输。如果在第一节点3和第二节点7处执行大量交易并且将所有消息(M)都存储在节点自身处是不切实际的时候,这可能是有利的。
将参考图4描述注册方法100、200的示例,其中,方法100由第一节点3执行,方法200由第二节点7执行。这包括建立相应的第一节点3和第二节点7的第一非对称密码对和第二非对称密码对。
非对称密码对包括关联的私钥和公钥,例如在公钥加密中使用的私钥和公钥。在此示例中,使用椭圆曲线密码术(ECC)和椭圆曲线操作的特性生成非对称密码对。
ECC的标准可以包括已知的标准,例如高效密码技术标准组(www.sceg.org)描述的那些标准。椭圆曲线密码术还在以下文献中进行描述:US 5,600,725、US 5,761,305、US5889,865、US 5,896,455、US 5,933,504、US 6,122,736、US6,141,420、US 6,618,483、US6,704,870、US 6,785,813、US 6,078,667、US 6,792,530。
在方法100、200中,这包括第一节点和第二节点在公共ECC系统上达成协议110、210并且使用基点(G)(请注意:基点可以称为公共生成器,但术语“基点”用于避免与生成器值GV混淆)。在一个示例中,公共ECC系统可以基于secp256K1,secp256K1是比特币使用的ECC系统。可以选择、随机生成或分配基点(G)。
现在转到第一节点3,方法100包括选定110公共ECC系统和基点(G)。这可以包括从第二节点7或第三节点9接收公共ECC系统和基点。可替代地,用户界面15可以与第一节点3相关联,由此用户可以选择性地提供公共ECC系统和/或基点(G)。在又一替代方案中,公共ECC系统和/或基点(G)之一或二者可以由第一节点3随机地选择。第一节点3可以通过通信网络5向第二节点7发送指示使用公共ECC系统以及基点(G)的通知。反过来,第二节点7可以通过发送指示使用公共ECC系统和基点(G)的确认的通知来进行选定210。
方法100还包括第一节点3生成120第一非对称密码对,该第一非对称密码对包括第一节点主私钥(V1C)和第一节点主公钥(P1C)。这包括至少部分地基于在公共ECC系统中指定的可允许范围内的随机整数来生成第一主私钥(V1C)。这还包括根据以下公式基于第一节点主私钥(P1C)和基点(G)的椭圆曲线点乘法来确定第一节点主公钥(P1C):
P1C=V1C x G (等式1)
因此,第一非对称密码对包括:
V1C:第一节点秘密保留的第一节点主私钥。
P1C:公开已知的第一节点主公钥。
第一节点3可以将第一节点主私钥(V1C)和第一节点主公钥(P1C)存储在与第一节点3相关联的第一数据存储13中。为了安全起见,第一节点主私钥(V1C)可以存储在第一数据存储13的安全部分中,以确保密钥保持私有。
方法100还包括通过通信网络5向第二节点7发送130第一节点主公钥(P1C)。第二节点7在接收到220第一节点主公钥(P1C)时,可以在与第二节点7相关联的第二数据存储17中存储230第一节点主公钥(P1C
类似于第一节点3,第二节点7的方法200包括生成240第二非对称密码对,该第二非对称密码对包括第二节点主私钥(V1S)和第二节点主公钥(P1S)。第二节点主私钥(V1S)也是可允许范围内的随机整数。反过来,第二节点主公钥(P1S)由以下公式确定:
P1S=V1S x G (等式2)
因此,第二非对称密码对包括:
V1S:第二节点将其保密的第二节点主私钥。
P1S:公开已知的第二节点主公钥。
第二节点7可以将第二非对称密码对存储在第二数据存储17中。方法200还包括将第二节点主公钥(P1S)发送250到第一节点3。反过来,第一节点3可以接收140并存储150第二节点主公钥(P1S)。
应当理解,在一些替代方案中,可以接收相应的公共主密钥并将其存储在与第三节点9(例如,受信任的第三方)相关联的第三数据存储19处。这可以包括充当共用目录(public directory)的第三方,例如认证机构。因此,在一些示例中,仅当需要确定公共秘密(CS)时,第二节点7才可以请求和接收第一节点主公钥(P1C),反之亦然。
注册步骤可能只需要发生一次,作为例如数字钱包的初始设置。
现在将参考图5描述确定公共秘密(CS)的示例。公共秘密(CS)可以用于第一节点3和第二节点7之间的特定会话、时间、交易或其他目的,因此使用同一公共秘密(CS)可能并不是期望的,或也是不安全的。因此,可以在不同的会话、时间、交易等之间改变公共秘密(CS)。
提供以下内容以说明上述安全传输技术。
在该示例中,由第一节点3执行的方法300包括生成310消息(M)。消息(M)可以是随机的、伪随机的或用户限定的。在一个示例中,消息(M)基于Unix时间和随机数(和任意值)。例如,消息(M)可以被提供为:
消息(M)=Unix时间+随机数 (等式3)
在一些示例中,消息(M)是任意的。然而,应当理解,消息(M)可以具有在某些应用中可能有用的选择值(例如,Unix时间等)。
方法300包括通过通信网络3向第二节点7发送315消息(M)。由于消息(M)不包括关于私钥的信息,所以消息(M)可以通过不安全的网络发送。
方法300还包括基于消息(M)确定320生成器值(GV)的步骤。在该示例中,这包括确定消息的密码哈希。密码哈希算法的示例包括SHA-256,用于创建256位生成器值(GV)。即:
GV=SHA-256(M) (等式4)
应当理解,可以使用其他哈希算法。这可以包括安全哈希算法(SHA)族中的其他算法。一些特定示例包括SHA-3子集中的实例,包括SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256。其他哈希算法可以包括RACE完整性基元评估消息摘要(RIPEMD)族中的算法。特定示例可以包括RIPEMD-160。其他哈希函数可以包括基于Zémor-Tillich哈希函数的族和基于背包(knapsack)的哈希函数。
然后方法300包括基于第二节点主私钥(V1C)和生成器值(GV)来确定330第一节点第二私钥(V2C)的步骤330。这可以根据以下公式基于第一节点主私钥(V1C)和生成器值(GV)的标量加法:
V2C=V1C+GV (等式5)
因此,第一节点第二私钥(V2C)不是随机值,而是确定性地从第一节点主私钥导出的。密码对中对应的公钥(即第一节点第二公钥(P2C))具有以下关系:
P2C=V2C x G (等式6)
将来自等式5的V2C代入公式6提供:
P2C=(V1C+GV)x G (等式7)
其中,“+”运算符表示椭圆曲线点加法。注意,椭圆曲线密码代数是分布式的,等式7可以表示为:
P2C=V1C x G+GV x G (等式8)
最后,等式1可以被代入等式7以提供
P2C=P1C+GV x G (等式9.1)
P2C=P1C+SHA-256(M)x G (等式9.2)
因此,给定第一节点主公钥(P1C)和消息(M)的知识,对应的第一节点第二公钥(P2C)可以是可导出的。第二节点7可以具有这样的知识,以独立地确定第一节点第二公钥(P2C),如下面将相关于方法400更详细地讨论的。
方法300还包括基于消息(M)和确定的第一节点第二私钥(V2C)来生成350第一签名的消息(SM1)。生成签名的消息包括应用数字签名算法对消息(M)进行数字签名。在一个示例中,这包括在椭圆曲线数字签名算法(ECDSA)中将第一节点第二私钥(V2C)应用于消息,以获得第一签名的消息(SM1)。
ECDSA的示例包括基于具有secp256k1、secp256r1、secp384r1、se3cp521r1的ECC系统的ECDSA。
可以在第二节点7处利用对应的第一节点第二公钥(P2C)验证第一签名的消息(SM1)。第二节点7可以使用对第一签名的消息(SM1)的该验证来认证第一节点3,这将在下面的方法400中讨论。
然后,第一节点3可以确定370第二节点第二公钥(P2S)。如上所述,第二节点第二公钥(P2S)可以至少基于第二节点主公钥(P1S)和生成器值(GV)。在该示例中,由于公钥通过基点(G)和椭圆曲线点乘法被确定370'为私钥,因此可以以类似于等式6的方式表示第二节点第二公钥(P2S),如下:
P2S=V2S x G (等式10.1)
P2S=P1S+GV x G (等式10.2)
等式10.2的数学证明与上述推导第一节点第二公钥(P2C)的等式9.1所描述的相同。应当理解,第一节点3可以独立于第二节点7确定370第二节点第二公钥。
然后,第一节点3可以基于确定的第一节点第二私钥(V2C)和确定的第二节点第二公钥(P2S)来确定380公共秘密(CS)。可以由第一节点3通过以下公式确定公共秘密(CS):
S=V2C x P2S (等式11)
在第二节点7处执行的方法400
现在将描述在第二节点7处执行的对应的方法400。应当理解,这些步骤中的一些类似于第一节点3执行的上述步骤。
方法400包括通过通信网络5从第一节点3接收410消息(M)。这可以包括在步骤315处由第一节点3发送的消息(M)。然后第二节点7基于消息(M)确定420a生成器值(GV)。第二节点7确定420生成器值(GV)的步骤与上述第一节点执行的步骤320相似。在该示例中,第二节点7独立于第一节点3执行该确定步骤420。
下一步骤包括基于第一节点主公钥(P1C)和生成器值(GV)来确定430第一节点第二公钥(P2C)。在此示例中,由于公钥通过基点(G)和椭圆曲线点乘法被确定430'为私钥,因此可以以类似于等式9的方式表示第一节点第二公钥(P2c),如下:
P2C=V2C x G (等式12.1)
P2C=P1C+GV x G (等式12.2)
等式12.1和12.2的数学证明与上面针对公式10.1和10.2讨论的证明相同。
方法400可以包括由第二节点7执行的步骤,用于认证声称的第一节点3是第一节点3。如先前所讨论的,这包括从第一节点3接收440第一签名的消息(SM1)。然后第二节点7可以利用第一节点第二公钥(P2C)来验证450第一签名的消息(SM1)上的签名,该第一节点第二公钥(P2C)是在步骤430处确定的。
可以根据如上所述的椭圆曲线数字签名算法(ECDSA)来完成对数字签名的验证。重要的是,由于V2C和P2C形成了密码对,所以利用第一节点第二私钥(V2C)签名的第一签名的消息(SM1)应该仅通过对应的第一节点第二公钥(P2C)进行正确地验证。由于在第一节点3的注册时生成的第一节点主私钥(V1C)和第一节点主公钥(P1C)上这些密钥是确定的,因此,验证第一签名的消息(SM1)可以被用作以下验证的基础:验证在注册期间发送第一签名的消息(SM1)的声称的第一节点为同一第一节点3。因此,第二节点7还可以执行基于验证(450)第一签名的消息的结果,认证(460)第一节点3的步骤。
以上认证可以适用于以下情景:两个节点之一是受信任节点,并且仅一个节点需要被认证。例如,第一节点3可以是客户端,而第二节点7可以是客户端信任的服务器,例如钱包提供商。因此,服务器(第二节点7)可能需要认证客户端(第一节点3)的凭证(credential),以允许客户端访问服务器系统。服务器可能没有必要向客户端认证服务器的凭证。然而,在某些情景下,例如在对等场景下,可能期望两个节点都彼此认证。
方法400还可以包括第二节点7基于第二节点主私钥(V1S)和生成器值(GV)来确定470第二节点第二私钥(V2S)。类似于第一节点3执行的步骤330,第二节点第二私钥(V2S)可以根据以下公式基于第二节点主私钥(V1S)和生成器值(GV)的标量加法:
V2S=V1S+GV (等式13.1)
V2S=V1S+SHA-256(M) (等式13.2)
然后,第二节点7可以独立于第一节点3,基于以下公式,基于第二节点第二私钥(V2S)和第一节点第二公钥(P2C)确定480公共秘密(CS):
S=V2S x P2C (等式14)
由第一节点3确定的公共秘密(CS)与在第二节点7处确定的公共秘密(CS)相同。现在将描述等式11和等式14提供相同的公共秘密(CS)的数学证明。
转向由第一节点3确定的公共秘密(CS),可以将等式10.1代入等式11,如下所示:
S=V2C x P2S (等式11)
S=V2C x(V2S x G))
S=(V2C x V2S)x G (等式15)
转向由第二节点7确定的公共秘密(CS),可以将等式12.1代入等式14,如下所示:
S=V2S x P2C (等式14)
S=V2S x(V2C x G)
S=(V2S x V2C)x G (等式16)
由于ECC代数是可交换的,因此等式15和等式16是等效的,因为:
S=(V2C x V2S)x G=(V2S x V2C)x G (等式17)
现在,公共秘密(CS)可以用作秘密密钥,或者用作对称密钥算法中秘密密钥的基础,以用于第一节点3和第二节点7之间的安全通信。该通信可以用于传达私钥的一部分、私钥的表示形式或标识符,或私钥的助记符。因此,一旦已经在例如数字钱包或其他受控资源的建立期间使用了本发明,则此后可以在各方之间进行安全通信。
共同秘密(CS)可以是椭圆曲线点的形式(xS,yS)。可以使用节点3、7同意的公开已知的标准操作将其转换为标准密钥格式。例如,xS值可以是256位整数,可以用作AES256加密的密钥。对于需要该长度密钥的任何应用,也可以使用RIPEMD160将其转换为160位整数。
可以根据需要确定公共秘密(CS)。重要的是,第一节点3不需要存储公共秘密(CS),因为可以根据消息(M)重新确定公共秘密。在一些示例中,使用的消息(M)可以被存储在数据存储装13、17、19(或其他数据存储)中,而无需与主私钥所需的相同级别的安全性。在一些示例中,消息(M)可以是公开可用的。
然而,根据某些应用,公共秘密(CS)可以存储在与第一节点相关联的第一数据存储(X)中,只要公共秘密(CS)被保持与第一节点主私钥(V1C)一样安全。
应当注意,上述实施例说明而不是限制本发明,并且本领域技术人员将能够设计许多替代实施例而不脱离由所附权利要求书限定的本发明的范围。在权利要求书中,括号中的任何附图标记都不应解释为对权利要求的限制。单词“包括”和“包含”等不排除任何权利要求或整个说明书中列出的元素或步骤之外的元素或步骤的存在。在本说明书中,“包括”是指“包含或由……组成”。元素的单数形式并不排除此类元素的复数形式,反之亦然。本发明可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个器件的装置权利要求中,这些装置中的几个可以由一个且相同的硬件来实施。在互不相同的从属权利要求中记载某些手段的事实并不表示不能有利地使用这些手段的组合。

Claims (10)

1.一种计算机实现的交换方法,所述方法包括以下步骤:
(i)将第一隐蔽秘密值从第一用户传达(36)到第二用户,并且将第二隐蔽秘密值从第二用户传达到第一用户;以及
(ii)构造(42)第一区块链交易和第二区块链交易,其每一个包括所述第一隐蔽秘密值和第二隐蔽秘密值,交易被设置为在向相应的区块链交易提供第一秘密值和第二秘密值时是能解锁的,以转移对相应的第一资源或第二资源的控制,
其中,所述第一区块链交易的解锁使第一秘密值被揭示给第二用户,所述第二区块链交易的解锁(48B)使第二秘密值被揭示给第一用户。
2.根据权利要求1所述的方法,其中,所述第一交易和所述第二交易中的至少一个被配置为仅在应用相应的第一私钥和第二私钥时是能赎回的。
3.根据权利要求2所述的方法,还包括计算(40)以下中的至少一个的步骤:(a)至少部分地基于所述第一用户的第一公钥的第一派生公钥;以及(b)至少部分地基于所述第二用户的第二公钥的第二派生公钥,其中,所述第一派生公钥是具有第一私钥的加密密钥对的一部分,所述第二派生公钥是具有第二私钥的加密密钥对的一部分。
4.根据权利要求3所述的方法,其中,计算(a)至少部分地基于第一用户的第一公钥的第一派生公钥以及(b)至少部分地基于第二用户的第二公钥的第二派生公钥中的至少一个的步骤还包括:第一隐蔽秘密值和第二隐蔽秘密值的组合(38)。
5.根据权利要求4所述的方法,其中,所述第一隐蔽秘密值和所述第二隐蔽秘密值的组合包括第一隐蔽秘密值和第二隐蔽秘密值的串接、以及至少一个隐蔽秘密值与随机或伪随机值的串接中的至少一个。
6.根据前述权利要求中的任一项所述的方法,还包括构造(44)以下中的至少一个的步骤:第三区块链交易,其被配置为响应于经过所述第一交易的非赎回的第一时间段,将对第一资源的控制返回给第一用户;以及第四区块链交易,其被配置为响应于经过所述第二交易的非赎回的第二时间段,将对第二资源的控制返回给第二用户。
7.根据前述权利要求中的任一项所述的方法,其中,所述第一隐蔽秘密值和所述第二隐蔽秘密值中的至少一个包括第一秘密值和第二秘密值中的至少一个与第一用户和第二用户两者都能访问的共享秘密值的组合(32)。
8.根据权利要求7所述的方法,其中,所述共享秘密值在步骤(i)之前被建立为公共秘密(CS)。
9.根据前述权利要求中的任一项所述的方法,还包括以下步骤:
(iii)从第一秘密值和第二秘密值中的至少一个开始生成至少一个隐蔽秘密值的序列;
(iv)使用第一秘密值和第二秘密值中的至少一个来执行任一前述权利要求中的所述方法;
(v)赎回至少一个区块链交易以揭示第一秘密值和第二秘密值中的至少一个,从而使得揭示该序列的至少一个隐蔽秘密值。
10.根据权利要求9所述的方法,还包括至少执行以下步骤(ii):使用在步骤(v)中揭示的至少一个隐蔽秘密值来执行权利要求1至9中任一项的步骤(ii)。
CN201980032652.4A 2018-05-14 2019-05-08 使用区块链执行原子交换的计算机实现的系统和方法 Pending CN112154626A (zh)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
IB2018053350 2018-05-14
GB1807816.2 2018-05-14
IBPCT/IB2018/053347 2018-05-14
GBGB1807807.1A GB201807807D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
IB2018053346 2018-05-14
IBPCT/IB2018/053350 2018-05-14
GBGB1807816.2A GB201807816D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
IBPCT/IB2018/053346 2018-05-14
IB2018053349 2018-05-14
GBGB1807813.9A GB201807813D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
IB2018053347 2018-05-14
GB1807813.9 2018-05-14
GBGB1807811.3A GB201807811D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
GB1807807.1 2018-05-14
IBPCT/IB2018/053349 2018-05-14
GB1807811.3 2018-05-14
PCT/IB2019/053771 WO2019220270A1 (en) 2018-05-14 2019-05-08 Computer-implemented systems and methods for using a blockchain to perform an atomic swap

Publications (1)

Publication Number Publication Date
CN112154626A true CN112154626A (zh) 2020-12-29

Family

ID=66530378

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201980032652.4A Pending CN112154626A (zh) 2018-05-14 2019-05-08 使用区块链执行原子交换的计算机实现的系统和方法
CN201980032651.XA Pending CN112119611A (zh) 2018-05-14 2019-05-08 使用区块链执行原子交换的计算机实现的系统和方法
CN201980032577.1A Pending CN112119610A (zh) 2018-05-14 2019-05-13 用于控制对资源的访问的令牌的存储、生成和验证的改进系统和方法
CN201980032565.9A Pending CN112166578A (zh) 2018-05-14 2019-05-13 用于控制对资源的访问的令牌的存储、生成和验证的改进系统和方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN201980032651.XA Pending CN112119611A (zh) 2018-05-14 2019-05-08 使用区块链执行原子交换的计算机实现的系统和方法
CN201980032577.1A Pending CN112119610A (zh) 2018-05-14 2019-05-13 用于控制对资源的访问的令牌的存储、生成和验证的改进系统和方法
CN201980032565.9A Pending CN112166578A (zh) 2018-05-14 2019-05-13 用于控制对资源的访问的令牌的存储、生成和验证的改进系统和方法

Country Status (8)

Country Link
US (6) US11431477B2 (zh)
EP (4) EP3794766A1 (zh)
JP (7) JP7372938B2 (zh)
KR (1) KR20210008516A (zh)
CN (4) CN112154626A (zh)
SG (1) SG11202010346TA (zh)
TW (1) TW201947482A (zh)
WO (4) WO2019220271A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201711867D0 (en) * 2017-07-24 2017-09-06 Nchain Holdings Ltd Computer-implemented system and method
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
US11431477B2 (en) * 2018-05-14 2022-08-30 nChain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
GB202002285D0 (en) * 2020-02-19 2020-04-01 Nchain Holdings Ltd Computer-implemented system and method
JP2022552419A (ja) * 2019-10-18 2022-12-15 ティービーシーエーソフト,インコーポレイテッド 資格証明書検証用検証要件文書
JP7040815B2 (ja) * 2019-12-25 2022-03-23 株式会社アクセル 取引システム、取引装置、取引方法及び取引プログラム
SG10202000134RA (en) * 2020-01-07 2021-08-30 Alipay Labs Singapore Pte Ltd Methods and devices for providing atomic transaction on blockchain
SG10202000133TA (en) * 2020-01-07 2021-08-30 Alipay Labs Singapore Pte Ltd Methods And Devices For Providing Atomic Transaction On Blockchain
WO2021163668A1 (en) * 2020-02-13 2021-08-19 Hashquin Llc Systems and methods for marking and authenticating scarce items
CN111464636B (zh) * 2020-03-31 2021-12-07 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质
CN111464538B (zh) * 2020-03-31 2022-02-01 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质、资产交易后台
US11544787B2 (en) 2020-06-29 2023-01-03 Hong Kong Applied Science and Technology Research Institute Company Limited Apparatus and method for providing protocol for digital asset trading
JP7371927B2 (ja) 2020-12-04 2023-10-31 株式会社アクセル 処理システム、処理装置、処理方法及び処理プログラム
US11403629B2 (en) * 2020-12-07 2022-08-02 II Thomas T. Meredith Systems and methods thereof for exchanging different digital currencies on different blockchains
CN112968772B (zh) * 2021-01-29 2022-10-14 上海分布信息科技有限公司 一种区块链数据的跨链解耦方法、系统
US11689355B2 (en) * 2021-03-04 2023-06-27 Mastercard International Incorporated Method and system for the atomic exchange of blockchain assets using transient key pairs
GB202111189D0 (en) * 2021-08-03 2021-09-15 Nchain Licensing Ag A computer implemented method and system
GB2614077A (en) * 2021-12-21 2023-06-28 Nchain Licensing Ag Signature-based atomic swap
GB2620401A (en) * 2022-07-05 2024-01-10 Elas Holdings PTY LTD Computer implemented systems and methods

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160330034A1 (en) * 2015-05-07 2016-11-10 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
WO2017145010A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US20170293912A1 (en) * 2016-04-12 2017-10-12 Digicash Pty Ltd. Secure transaction controller for value token exchange systems
WO2018020370A1 (en) * 2016-07-29 2018-02-01 nChain Holdings Limited Blockchain-implemented method and system
CN107924389A (zh) * 2015-07-02 2018-04-17 纳斯达克公司 对分布式交易数据库的安全溯源的系统和方法

Family Cites Families (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0639907B1 (en) 1993-08-17 1999-12-08 R3 Security Engineering AG Digital signature method and key agreement method
DE69534603T2 (de) 1994-07-29 2006-08-03 Certicom Corp., Mississauga Verschlüsselungssystem für elliptische kurve
US6785813B1 (en) 1997-11-07 2004-08-31 Certicom Corp. Key agreement and transport protocol with implicit signatures
WO1996033565A1 (en) 1995-04-21 1996-10-24 Certicom Corp. Method for signature and session key generation
US5761305A (en) 1995-04-21 1998-06-02 Certicom Corporation Key agreement and transport protocol with implicit signatures
CA2176972C (en) 1995-05-17 2008-11-25 Scott A. Vanstone Key agreement and transport protocol with implicit signatures
GB9510035D0 (en) 1995-05-18 1995-08-02 Cryptech Systems Inc Strengthened public key protocols
US5999626A (en) 1996-04-16 1999-12-07 Certicom Corp. Digital signatures on a smartcard
US6078667A (en) 1996-10-10 2000-06-20 Certicom Corp. Generating unique and unpredictable values
CA2304342C (en) 1997-09-22 2009-01-27 Eolas Technologies, Incorporated Method and system for transient key digital time stamps
GB9802152D0 (en) * 1998-01-30 1998-04-01 Certicom Corp Secure one way authentication communication system
CA2235359C (en) 1998-03-23 2012-04-10 Certicom Corp. Implicit certificate scheme with ca chaining
US6834272B1 (en) 1999-08-10 2004-12-21 Yeda Research And Development Company Ltd. Privacy preserving negotiation and computation
FI109864B (fi) 2000-03-30 2002-10-15 Nokia Corp Tilaajan autentikaatio
JP2002207427A (ja) * 2001-01-10 2002-07-26 Sony Corp 公開鍵証明書発行システム、公開鍵証明書発行方法、および情報処理装置、情報記録媒体、並びにプログラム記憶媒体
JP2002297548A (ja) * 2001-03-30 2002-10-11 Matsushita Electric Ind Co Ltd 端末登録システムとそれを構成する装置及び方法
JP2004005643A (ja) * 2002-05-30 2004-01-08 Internatl Business Mach Corp <Ibm> 定義されたパーティにより検証可能な匿名支払方法
KR100940202B1 (ko) 2002-08-29 2010-02-10 삼성전자주식회사 일방향 함수를 사용하여 계층적으로 암호화하는 장치 및방법
US7184551B2 (en) * 2002-09-30 2007-02-27 Micron Technology, Inc. Public key cryptography using matrices
JP4800624B2 (ja) 2003-01-07 2011-10-26 クゥアルコム・インコーポレイテッド 暗号鍵を入れ替えるためのシステム、装置及び方法
JP4527661B2 (ja) 2003-03-11 2010-08-18 パナソニック株式会社 コンテンツ記録再生システム、配信装置、再生装置、記録装置
AU2003227190A1 (en) * 2003-03-20 2004-10-11 Japan Medical Data Center Co., Ltd. Information management system
US7551737B2 (en) 2003-03-31 2009-06-23 International Business Machines Corporation Cryptographic keys using random numbers instead of random primes
KR100529594B1 (ko) 2003-06-13 2006-01-09 학교법인 성균관대학 서로 다른 인증 도메인에서 공개키를 검증하기 위한 방법
JP2005033640A (ja) 2003-07-09 2005-02-03 Canon Inc コンテンツ流通方法またはコンテンツ改ざん検出方法
DE10341096A1 (de) 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
JP4139382B2 (ja) 2004-12-28 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 製品/サービスに係る所有権限を認証する装置、製品/サービスに係る所有権限を認証する方法、及び製品/サービスに係る所有権限を認証するプログラム
US8190895B2 (en) 2005-08-18 2012-05-29 Microsoft Corporation Authenticated key exchange with derived ephemeral keys
US9137012B2 (en) * 2006-02-03 2015-09-15 Emc Corporation Wireless authentication methods and apparatus
EP1912376B1 (en) * 2006-10-10 2009-04-22 NTT DoCoMo, Inc. Method and apparatus for authentication
DE602007000729D1 (de) * 2007-06-15 2009-04-30 Ntt Docomo Inc Verfahren und Vorrichtung zur Authentifizierung
JP2010240896A (ja) 2009-04-02 2010-10-28 Sharp Corp 画像形成装置、画像処理端末及びそれらにより構成される画像形成システム
US9159046B2 (en) * 2009-06-29 2015-10-13 Sap Se Systems and methods for implementing supply chain visibility policies
JP2011023854A (ja) 2009-07-14 2011-02-03 Sony Corp 情報処理装置、情報処理方法およびプログラム
WO2012017612A1 (ja) 2010-08-06 2012-02-09 パナソニック株式会社 匿名化情報共有装置および匿名化情報共有方法
WO2012168838A1 (en) * 2011-06-10 2012-12-13 Koninklijke Philips Electronics N.V. Secure protocol execution in a network
US9858401B2 (en) * 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
US9330245B2 (en) * 2011-12-01 2016-05-03 Dashlane SAS Cloud-based data backup and sync with secure local storage of access keys
JP2014052588A (ja) * 2012-09-10 2014-03-20 Sony Corp 情報処理装置、情報処理方法及びコンピュータプログラム
US9967352B2 (en) * 2014-01-15 2018-05-08 Telenav, Inc. Communication system with location based services mechanism and method of operation thereof
US20150213433A1 (en) 2014-01-28 2015-07-30 Apple Inc. Secure provisioning of credentials on an electronic device using elliptic curve cryptography
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
US9374373B1 (en) * 2015-02-03 2016-06-21 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Encryption techniques for improved sharing and distribution of encrypted content
US9813392B2 (en) 2015-03-06 2017-11-07 Qualcomm Incorporated Apparatus and method for providing a public key for authenticating an integrated circuit
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
US9735958B2 (en) 2015-05-19 2017-08-15 Coinbase, Inc. Key ceremony of a security system forming part of a host computer for cryptographic transactions
GB2539430A (en) 2015-06-16 2016-12-21 The Provost Fellows Found Scholars & The Other Members Of Board Of The College Of The Holy & Unidv T Digital token exchange system
US10402792B2 (en) 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US20180331832A1 (en) 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US10915874B2 (en) 2015-11-10 2021-02-09 Loyyal Corporation System and process for tokenization of digital media
TWI593267B (zh) 2015-12-17 2017-07-21 國立清華大學 具有時戳驗證的免憑證公開金鑰管理方法
US20170193464A1 (en) * 2015-12-18 2017-07-06 Justin SHER Protocol utilizing bitcoin blockchain for maintaining independently proposed and approved set contents
WO2017109994A1 (ja) * 2015-12-25 2017-06-29 日立オムロンターミナルソリューションズ株式会社 自動取引システム
US10103885B2 (en) * 2016-01-20 2018-10-16 Mastercard International Incorporated Method and system for distributed cryptographic key provisioning and storage via elliptic curve cryptography
HUE040631T2 (hu) 2016-02-23 2019-03-28 Nchain Holdings Ltd Közös titok meghatározása biztonsági információcseréhez, és hierarchikus, determinisztikus rejtjel kulcsok
AU2017223138B2 (en) 2016-02-23 2022-02-10 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
GB2562621A (en) * 2016-02-23 2018-11-21 Nchain Holdings Ltd System and method for controlling asset-related actions via a blockchain
EP3420517B1 (en) * 2016-02-23 2022-07-06 nChain Holdings Limited A method and system for the secure transfer of entities on a blockchain
AU2017222470B2 (en) * 2016-02-23 2023-01-12 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
MX2018010048A (es) * 2016-02-23 2019-01-21 Nchain Holdings Ltd Sistema universal de tokenizacion para criptomonedas basadas en cadena de bloques.
WO2017152150A1 (en) * 2016-03-04 2017-09-08 ShoCard, Inc. Method and system for authenticated login using static or dynamic codes
CN109074565A (zh) 2016-04-11 2018-12-21 区块链控股有限公司 用于验证用于基于区块链的加密货币的通证的计算机实现的方法及系统
WO2017180382A1 (en) 2016-04-12 2017-10-19 Pcms Holdings, Inc. System and method for data validation in a decentralized sensor network
DE102016206916B4 (de) 2016-04-22 2023-07-06 Bundesdruckerei Gmbh Elektronisches Verfahren zur kryptographisch gesicherten Überweisung eines Betrags einer Kryptowährung
EP3449452B1 (en) 2016-04-29 2022-06-29 Nchain Holdings Limited Implementing logic gate functionality using a blockchain
WO2017191472A1 (en) 2016-05-05 2017-11-09 Invasec Ltd. A verification system and method
WO2017195161A1 (en) * 2016-05-13 2017-11-16 nChain Holdings Limited A method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger
WO2017218440A1 (en) * 2016-06-13 2017-12-21 CloudMode, LLC Secure initiation and transfer of a cryptographic database and/or a cryptographic unit
CN106100847B (zh) * 2016-06-14 2021-10-26 惠众商务顾问(北京)有限公司 非对称加密区块链身份信息验证方法及装置
GB201611698D0 (en) * 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
US10025941B1 (en) 2016-08-23 2018-07-17 Wells Fargo Bank, N.A. Data element tokenization management
US20180089669A1 (en) * 2016-09-23 2018-03-29 American Express Travel Related Services Company. Inc. Systems and Methods for an Electronic Payment System
CN106452785B (zh) * 2016-09-29 2019-05-17 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
US10218511B2 (en) 2016-12-23 2019-02-26 Amazon Technologies, Inc. Signature delegation
AU2018101669A4 (en) * 2017-01-08 2018-12-13 Rene F. Bernard A method for checking and/ or updating information relating to assets
WO2018132108A1 (en) * 2017-01-13 2018-07-19 Visa International Service Association Techniques for secure blockchain management
US10754970B2 (en) * 2017-01-27 2020-08-25 International Business Machines Corporation Data masking
WO2018175666A1 (en) * 2017-03-21 2018-09-27 Dappsters, LLC Blockchain systems and methods
KR102432356B1 (ko) 2017-03-23 2022-08-16 삼성에스디에스 주식회사 키 생성 장치 및 방법, 암호화 장치 및 방법
GB201706132D0 (en) * 2017-04-18 2017-05-31 Nchain Holdings Ltd Computer-implemented system and method
EP3396608A1 (en) * 2017-04-24 2018-10-31 BlockSettle AB Method and system for settling a blockchain transaction
CN107169764A (zh) * 2017-05-10 2017-09-15 山东大学 基于区块链的公平数据交易方法
GB201707788D0 (en) 2017-05-15 2017-06-28 Nchain Holdings Ltd Computer-implemented system and method
US11055703B2 (en) * 2017-06-19 2021-07-06 Hitachi, Ltd. Smart contract lifecycle management
US10567369B2 (en) * 2017-07-10 2020-02-18 Intuit Inc. Secure token passing via hash chains
US11416832B2 (en) * 2017-07-18 2022-08-16 nChain Holdings Limited Systems and methods for blockchain-dependent operation sets
CN107592292B (zh) * 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间通信方法及装置
EP3439233B1 (en) 2017-07-31 2020-12-30 Koninklijke Philips N.V. Distributing a computation output
CN107919954B (zh) * 2017-10-20 2019-05-14 浙江大学 一种基于sgx软件防护扩展指令的区块链用户密钥保护方法和装置
KR101857223B1 (ko) * 2017-11-13 2018-05-11 주식회사 온더 블록체인 토큰 기반의 사용자 식별 방법 및 시스템
CN108009441B (zh) * 2017-11-23 2023-05-30 创新先进技术有限公司 资源转移和资金转移的方法和装置
CN107888384B (zh) * 2017-11-30 2020-11-27 中链科技有限公司 一种身份数据管理方法、系统和计算机可读存储介质
CN108009830A (zh) 2017-12-14 2018-05-08 上海密尔克卫化工储存有限公司 基于区块链的产品流通跟踪方法与系统
US11429956B2 (en) 2017-12-15 2022-08-30 nChain Holdings Limited Computer-implemented systems and methods for authorising blockchain transactions with low-entropy passwords
US11315110B2 (en) * 2017-12-27 2022-04-26 International Business Machines Corporation Private resource discovery and subgroup formation on a blockchain
US20190303623A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Promotion smart contracts for software development processes
CN108664221B (zh) * 2018-05-11 2022-04-01 北京奇虎科技有限公司 一种数据持有证明方法、装置及可读存储介质
US11431477B2 (en) * 2018-05-14 2022-08-30 nChain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
GB201913704D0 (en) 2019-09-23 2019-11-06 Nchain Holdings Ltd Computer implemented method and system for storing certified data on a blockchain
GB2589349A (en) * 2019-11-27 2021-06-02 Nchain Holdings Ltd Povably fair games using a blockchain

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160330034A1 (en) * 2015-05-07 2016-11-10 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
CN107924389A (zh) * 2015-07-02 2018-04-17 纳斯达克公司 对分布式交易数据库的安全溯源的系统和方法
WO2017145010A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US20170293912A1 (en) * 2016-04-12 2017-10-12 Digicash Pty Ltd. Secure transaction controller for value token exchange systems
WO2018020370A1 (en) * 2016-07-29 2018-02-01 nChain Holdings Limited Blockchain-implemented method and system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARCIN ANDRYCHOWICZ: "Fair Two-Party Computations via Bitcoin Deposits", FINANCIAL CRYPTOGRAPHY AND DATA SECURITY, pages 10 - 11 *

Also Published As

Publication number Publication date
CN112166578A (zh) 2021-01-01
US20230421355A1 (en) 2023-12-28
WO2019220318A1 (en) 2019-11-21
JP2023179761A (ja) 2023-12-19
US20210218575A1 (en) 2021-07-15
EP3794766A1 (en) 2021-03-24
US20210226787A1 (en) 2021-07-22
JP2021524185A (ja) 2021-09-09
US11764947B2 (en) 2023-09-19
US11431477B2 (en) 2022-08-30
EP3794765A1 (en) 2021-03-24
JP2021523610A (ja) 2021-09-02
EP3794768A1 (en) 2021-03-24
CN112119611A (zh) 2020-12-22
US11917051B2 (en) 2024-02-27
JP2021523609A (ja) 2021-09-02
JP7371015B2 (ja) 2023-10-30
SG11202010346TA (en) 2020-11-27
US20210203481A1 (en) 2021-07-01
JP2023179729A (ja) 2023-12-19
WO2019220270A1 (en) 2019-11-21
WO2019220317A1 (en) 2019-11-21
JP2024019716A (ja) 2024-02-09
US20210218552A1 (en) 2021-07-15
US11838407B2 (en) 2023-12-05
JP2021524186A (ja) 2021-09-09
WO2019220271A1 (en) 2019-11-21
US20230137104A1 (en) 2023-05-04
JP7372938B2 (ja) 2023-11-01
KR20210008516A (ko) 2021-01-22
EP3794767A1 (en) 2021-03-24
TW201947482A (zh) 2019-12-16
CN112119610A (zh) 2020-12-22
JP7414734B2 (ja) 2024-01-16

Similar Documents

Publication Publication Date Title
JP7371015B2 (ja) ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
CN108885741B (zh) 一种实现区块链上交换的令牌化方法及系统
CN109478279B (zh) 区块链实现的方法和系统
AU2017223133B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
EP3659082B1 (en) Computer-implemented system and method enabling secure storage of a large blockchain over a plurality of storage nodes
EP3857814A1 (en) Computer-implemented system and method for transferring access to digital resource
Mir et al. Decentralized, privacy-preserving, single sign-on
Qiao Group Signatures for Preserving Anonymity in Blockchain Supply Chain Transactions

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