时间锁谜题 time
- 介绍
我们的目标是面向时间的加密函数,意思是说,用这个加密函数加密后的消息只能在一段时间后解密,在这段时间之前,任何人都无法解密消息,包括发送消息的人。
面向时间的加密函数的应用有哪些呢?如下:
1.竞标者希望在竞标结束后才公开他的叫价。
2.一个将自己的房子抵押给其他机构的人希望在每个月的开始的时候,才将部分钱解密,付给机构。(这里的钱类似于bitcoin的UTXO脚本)
3.加密日记,希望50年后在打开。
4.密钥托管方案,只有一段时间后,管理人员才能打开密钥。
可能还有其他的应用。
有两种方法来实现面向时间的加密函数。
1.使用“时间锁谜题” 用计算机计算,必须进行一段时间的计算才能得到结果。
2.交付给可信代理,代理同意在一段时间后解封。()
- 时间谜题
首先探索基于计算复杂度的方法。也就是用计算机不停的计算,直到得到答案。但是问题是拥有计算机资源比较多的人更容易解密,例如并行计算机。因此我们需要找到抗并行的方法(解决时间锁就像是生孩子,两个女人不能使生孩子的时间缩短到4.5个月)。本文提出的时间锁谜题只能大致达到设置的时间,因为不同的计算机计算速度可能不一样。
需要注意,时间锁谜题是指计算机要不停的计算。
-
- 创建一个时间锁谜题
我们现在用于创建时间锁的方法的不断开方,x^2 mod n。创建过程如下:
- N= pq .其中pq是质数
- 计算欧拉函数 (p-1)(q-1)= mm;
- t = TS。S是计算机每秒能进行多少次开方。
- Cm = RC5(K,M)
- Ck = K + a^2t
- 我们可以快速的计算 e = 2^t(mod mm)
- 然后计算 b = a^e (mod n)
- 最后只公布谜题(n a t Ck Cm),p和q以及mm是删除的
Ps..和VDF可验证延迟函数很像。
-
- 后面的是代理方式,不看
发布评论