发送者对消息加密后,任何人都无法立即解密,必须经过预定的时间才能解开,从而将消息发送到未来。
之前分享过一个简易版,那个版本加密需要花费和解密同样的时间,因此几乎没有可玩性。
最近更新了下算法,加密过程支持多线程,并且支持 GPU 加速,从而可利用显卡的并行能力提速几十到几百倍。当然,解密过程仍然只能 CPU 单线程,确保解密不会被加速。具体原理可参考文档。
https://github.com/EtherDream/timelock/blob/main/README-zh.md
不过这个版本也有个缺陷,由于加密结果需要保存每个线程的种子信息,而 GPU 通常有几千个线程,导致结果会非常大。即使降低一些安全性用较短的种子,结果也有 10KB 甚至更长,导致通过 URL 分享很困难,至少在聊天软件无法分享,只能通过文章或论坛里的超链接分享。
另外出于兼容性目前仍使用 WebGL2 的 GPGPU 方案,之后再改成 WebGPU 。(不知 WebGPU 稳定性方面是否更高,目前 WebGL2 加密时进行频繁界面操作经常会崩溃)
如果算法和程序没问题的话,之后再约定时间点发一些拼 CPU 性能的活动,第一个解密成功的可以领取奖励,鼓励大家升级 CPU 硬件~
1
Satansickle 107 天前
使用场景是啥啊?
|
2
araaaa 107 天前
vdf 吗
|
3
Hancock 107 天前
@Satansickle 遗嘱
|
4
InkStone 107 天前
理念挺有意思的,用的跟 bitcoin 一样的 PoW 机制。
不过实用性就差太多了……我不可能真放一个 CPU 在那里跑三十年就为了立遗嘱啊 |
5
zhwq 107 天前
idea 先申请专利
|
6
iqoo OP @Satansickle 本地版是用来锁钱包私钥的,那个不管锁几年都可以瞬间解密。这个浏览器版的纯属好玩而已,即使锁几天用高端显卡加密也要好久~
|
7
iqoo OP @Satansickle @iqoo 写错了,是瞬间加密。
|
8
Satansickle 107 天前
@Hancock 用来做遗嘱还得预测死期,有点难啊
|
9
coolfan 107 天前
👍设定的时间过长在解密的时候岂不是也要等近似的时间。之前也想过这个”指定时间后解密“的操作,没啥头绪
|