有没有一种“把私钥关进时间胶囊”的工具?想物理强制自己 HODL

2 月 7 日
 jefferyJQ

最近在思考一个反人性的操作:与其考验主观耐力,不如从客观上切断退路。 我想找这样一个工具:

  1. 本地生成一个新的钱包私钥。
  2. 对私钥进行“时间锁加密”( Time-lock Encryption )。设定一个解密难度或者依赖未来的某个时间戳(比如 Drand 信标)才能解密。
  3. 把币转进去,然后彻底删除明文私钥,只保留那个“打不开”的加密文件。
  4. 这样在设定时间到达之前,哪怕比特币涨到 20 万或者跌到 1 万,我也只能干瞪眼,没有任何办法卖出。 现在的智能合约(如 CLTV )虽然能做到锁定,但往往操作门槛高,而且要把币转到合约里总觉得不放心。我想问问大家:

● 这种“加密后丢弃钥匙”的方案,目前有成熟的开源工具吗?

● 这种做法最大的风险是不是如果不小心把加密文件也删了,就彻底归零了?

● 还有没有比这更绝的“防手贱”方案?

4196 次点击
所在节点    奇思妙想
53 条回复
jocover
2 月 7 日
申请个邮箱,定时发邮件,几年后把私钥发给自己就行了
jefferyJQ
2 月 7 日
@jocover 那不还是自己的账号邮箱吗?还是可以自己登录上去看发给自己的邮件
dilidilid
2 月 7 日
密码学上来说似乎不太现实,你不可能在现在拿到未来的信标。。。本质上只能依赖人为的约束比如合约
jocover
2 月 7 日
@jefferyJQ 你用别人邮箱发也可以呀
pweng286
2 月 7 日
把钱转给我我帮你操作
Kirkcong
2 月 7 日
kz453
2 月 7 日
拿 AES128 加密你要锁的信息,然后抛弃 AES 密钥的一部分比特,接着找台计算机运行暴力破解你抛弃的那部分密钥。这个要算精确点,比如 32bit ,平均要运行 2^32 次尝试,单核算大概一分钟,想管住一个月算算大概是 48bit 。

有两个缺点,一个是时间不固定,另一个是你可以用多核或者 GPU 加速。

不过其实你只是想管住自己的手,这么做估计够用了

此外还有一个: https://en.wikipedia.org/wiki/LCS35
testj
2 月 7 日
在现实中各种对私钥的操作都会增加私钥的暴露或者遗失风险,最稳妥的还是依赖合约实现。可以使用 OpenZeppelin 的 TokenTimelock ,毕竟经过业界验证。
加密世界重要的两条规则:
1. Not your keys, not your coins.
2. Code is Law
sillydaddy
2 月 7 日
很有意思的想法。目前看来就是你说的 2 个方案:
1 是借助冷冰冰的物理和算法,像 vdf 这种本地挑战难题,甚至无法用硬件加速。它只需要你在电脑上一直跑解密程序,跑个几年。
2 是借助外界(如区块链)监督,如各种智能合约。

哪种更让人安心,因人而异。但合约明显更方便吧。
jefferyJQ
2 月 7 日
@Kirkcong 这个的确是一个很好的方案,但是考虑到长时间的锁定情况下,要是网站不继续运营,还需要一个备用的依靠本地离线计算解密的备用方案。
jefferyJQ
2 月 7 日
@sillydaddy 合约主要是怕有漏洞或者项目方作恶等风险
jefferyJQ
2 月 7 日
@pweng286 刚接触的时候的确有这种想法,把币转给朋友代为保管。但是人性是经不住考验的
rolandzhou
2 月 7 日
好像有现成的。Gemini 回答的。还没查验。

这种服务通常被称为**“时间胶锁加密”( Time-Lock Encryption )或“定时解密”( Timed-release Encryption )**。
目前市面上确实存在几类不同的实现方案,它们通过不同的技术手段来确保“私钥在未来某刻才可用”。
1. 基于信标链( Beacon )的服务:Drand
这是目前最成熟、最接近你描述的服务。Drand 是一个分布式随机信标项目,它利用门限加密技术提供一种“基于时间的加密”服务。
• 工作原理:Drand 网络每隔一段时间(例如 30 秒)会生成一个不可预测的随机数。通过数学构造,你可以针对**未来的某个轮次( Round )**进行加密。
• 如何实现: 你可以使用当前的公钥加密信息,而解密所需的“私钥”实际上是该未来轮次生成的随机签名。在该时间点到来之前,全球没有任何人(包括你和节点服务器)能算出这个签名。
• 特点: 去中心化、开源、无需信任单一第三方。
2. 基于智能合约的方案( Web3 )
在以太坊等区块链上,有一些协议通过去中心化网络来管理密钥分发。
• 代表项目:Tlock (基于 Drand) 或一些 DAO 治理工具。
• 机制: 你将数据加密后存储,并将解密触发器设置为某个区块高度或特定时间戳。当时间到达时,网络中的节点会协作释放私钥碎片或执行解密逻辑。
rolandzhou
2 月 7 日
@jefferyJQ 你可以再加密一层,把加密后的交出去嘛。这层秘钥留在手里就好。

另外防止节点挂掉无法解密,可以找几个不同的服务/朋友作为互备。
JohnSmith
2 月 7 日
写个合约不就好了 把 token 放进去 到时候才能拿
z7356995
2 月 7 日
把密钥存在 vps 上,服务器上写死 ssh 登录脚本,脚本内容为,如果时间未达到指定时间前,禁止任何登录。
ntedshen
2 月 7 日
结个婚,离婚的时候拿(狗头
FarAhead
2 月 7 日
hold on for dear life
What Does HODL Mean? HODL, originally a typo for "hold," has morphed into an investment strategy acronym for "hold on for dear life," echoing a long-term commitment among cryptocurrency enthusiasts.

你说的 HODL 是这个意思?
z7356995
2 月 7 日
这个可以自己做一个,用 vps 为例,自已写一个脚本,指定时间到以前,禁止任何 ssh 连接,连不上来就没法拷走密钥。当然 vps 上可能有各种备份恢复。这个思路就可以延伸为自己写一个 linux 的脚本,指定时间指南用网络时间,然后时间到以前禁止登陆。自己攻防几次。把自己到指定时间前能登陆的路都堵死,原理和 ipad 输错密码锁定机器一样,只不过这个程序是自己写的
blackcurrant
2 月 7 日
bitcoin 实现这个根本用不着智能合约,转账加个 locktime 就好了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1191350

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX