1.一种计算机实现的安全方法,所述方法包括以下步骤:
(i)将第一用户能访问的第一秘密值转换为第一派生公钥,并将所述第一派生公钥发送给第二用户;
(ii)将所述第二用户能访问的第二秘密值转换为第二派生公钥,并将所述第二派生公钥发送给所述第一用户;
(iii)至少部分地基于所述第一派生公钥来计算第三派生公钥;
(iv)至少部分地基于所述第二派生公钥来计算第四派生公钥;
(v)对所述第一秘密值和所述第二秘密值中的每一个应用(34)单向函数,以创建相应的第一隐蔽秘密值和第二隐蔽秘密值;
(vi)将所述第一隐蔽秘密值从第一用户传达(36)到第二用户,并且将所述第二隐蔽秘密值从第二用户传达(36)到第一用户;以及
(vii)构造(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.根据前述权利要求中的任一项所述的方法,还包括以下步骤:
(viii)从第一秘密值和第二秘密值中的至少一个开始生成至少一个隐蔽秘密值的序列;
(ix)使用第一秘密值和第二秘密值中的至少一个来执行任一前述权利要求中的所述方法;
(x)赎回至少一个区块链交易以揭示第一秘密值和第二秘密值中的至少一个,从而使得揭示该序列的至少一个隐蔽秘密值。
10.根据权利要求9所述的方法,还包括至少执行以下步骤(vii):使用在步骤(x)中揭示的至少一个隐蔽秘密值来执行权利要求1至9中任一项的步骤(vii)。