时间锁谜题 time-lock puzzle

  1. 介绍

我们的目标是面向时间的加密函数,意思是说,用这个加密函数加密后的消息只能在一段时间后解密,在这段时间之前,任何人都无法解密消息,包括发送消息的人。

面向时间的加密函数的应用有哪些呢?如下:

1.竞标者希望在竞标结束后才公开他的叫价。

2.一个将自己的房子抵押给其他机构的人希望在每个月的开始的时候,才将部分钱解密,付给机构。(这里的钱类似于bitcoin的UTXO脚本)

3.加密日记,希望50年后在打开。

4.密钥托管方案,只有一段时间后,管理人员才能打开密钥。

可能还有其他的应用。

有两种方法来实现面向时间的加密函数。

1.使用“时间锁谜题” 用计算机计算,必须进行一段时间的计算才能得到结果。

2.交付给可信代理,代理同意在一段时间后解封。()

 

  1. 时间谜题

首先探索基于计算复杂度的方法。也就是用计算机不停的计算,直到得到答案。但是问题是拥有计算机资源比较多的人更容易解密,例如并行计算机。因此我们需要找到抗并行的方法(解决时间锁就像是生孩子,两个女人不能使生孩子的时间缩短到4.5个月)。本文提出的时间锁谜题只能大致达到设置的时间,因为不同的计算机计算速度可能不一样。

需要注意,时间锁谜题是指计算机要不停的计算。

    1. 创建一个时间锁谜题

我们现在用于创建时间锁的方法的不断开方,x^2 mod n。创建过程如下:

  1. N= pq .其中pq是质数
  2. 计算欧拉函数 (p-1)(q-1)= mm;
  3. t = TS。S是计算机每秒能进行多少次开方。
  4. Cm = RC5(K,M)
  5. Ck = K + a^2t
  6. 我们可以快速的计算 e = 2^t(mod mm)
  7. 然后计算 b = a^e (mod n)
  8. 最后只公布谜题(n a t Ck Cm),p和q以及mm是删除的

Ps..和VDF可验证延迟函数很像。

    1. 后面的是代理方式,不看
  1.  

你可能感兴趣的:(时间锁谜题 time-lock puzzle)