发送者对消息加密后,任何人都无法立即解密,必须经过预定的时间才能解开,从而将消息发送到未来。
之前分享过一个简易版,那个版本加密需要花费和解密同样的时间,因此几乎没有可玩性。
最近更新了下算法,加密过程支持多线程,并且支持 GPU 加速,从而可利用显卡的并行能力提速几十到几百倍。当然,解密过程仍然只能 CPU 单线程,确保解密不会被加速。具体原理可参考文档。
https://github.com/EtherDream/timelock/blob/main/README-zh.md
不过这个版本也有个缺陷,由于加密结果需要保存每个线程的种子信息,而 GPU 通常有几千个线程,导致结果会非常大。即使降低一些安全性用较短的种子,结果也有 10KB 甚至更长,导致通过 URL 分享很困难,至少在聊天软件无法分享,只能通过文章或论坛里的超链接分享。
另外出于兼容性目前仍使用 WebGL2 的 GPGPU 方案,之后再改成 WebGPU 。(不知 WebGPU 稳定性方面是否更高,目前 WebGL2 加密时进行频繁界面操作经常会崩溃)
如果算法和程序没问题的话,之后再约定时间点发一些拼 CPU 性能的活动,第一个解密成功的可以领取奖励,鼓励大家升级 CPU 硬件~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.