V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
jefferyJQ
V2EX  ›  奇思妙想

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

  •  1
     
  •   jefferyJQ · 18 天前 · 3036 次点击

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

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

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

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

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

    第 1 条附言  ·  18 天前
    其实看了一圈大家的建议,特别是提到“多签”或者“托付给朋友”的方案,我觉得对于我来说,HODL 本质上是个人性问题,而不是简单的技术问题。

    之所以想找“时间胶囊”这种物理/代码层面的强制工具,就是因为我不相信“人”的意志力——既不相信我自己,也不相信帮我把控的朋友。

    如果依靠朋友或家人来做多签把控,最大的漏洞在于:当行情剧烈波动、我情绪上头的时候,我一定会想方设法去“攻破”这个人。-- 之前实践过

    无论是暴涨怕踏空,还是暴跌怕归零,在那个人性最脆弱的时刻,我肯定会找出一万个看似“合理”的理由(比如“这次不一样”、“家里急用钱”、“肯定是历史大顶了”等等),软磨硬泡、甚至动用人情压力去说服朋友同意提前解锁。朋友毕竟是人,很难长时间扛住当事人的这种疯狂输出。

    只有冷冰冰的代码和数学,才不会听我的解释、借口和哀求。 这就是我为什么执着于找一个“无法被说服”的工具的原因,我需要的是一堵撞不破的墙,而不是一扇能敲开的门。
    53 条回复    2026-02-09 11:46:41 +08:00
    jocover
        1
    jocover  
       18 天前
    申请个邮箱,定时发邮件,几年后把私钥发给自己就行了
    jefferyJQ
        2
    jefferyJQ  
    OP
       18 天前
    @jocover 那不还是自己的账号邮箱吗?还是可以自己登录上去看发给自己的邮件
    dilidilid
        3
    dilidilid  
       18 天前   ❤️ 2
    密码学上来说似乎不太现实,你不可能在现在拿到未来的信标。。。本质上只能依赖人为的约束比如合约
    jocover
        4
    jocover  
       18 天前
    @jefferyJQ 你用别人邮箱发也可以呀
    pweng286
        5
    pweng286  
       18 天前
    把钱转给我我帮你操作
    kz453
        7
    kz453  
       18 天前
    拿 AES128 加密你要锁的信息,然后抛弃 AES 密钥的一部分比特,接着找台计算机运行暴力破解你抛弃的那部分密钥。这个要算精确点,比如 32bit ,平均要运行 2^32 次尝试,单核算大概一分钟,想管住一个月算算大概是 48bit 。

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

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

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

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

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

    另外防止节点挂掉无法解密,可以找几个不同的服务/朋友作为互备。
    JohnSmith
        15
    JohnSmith  
       18 天前 via Android
    写个合约不就好了 把 token 放进去 到时候才能拿
    z7356995
        16
    z7356995  
       18 天前 via Android
    把密钥存在 vps 上,服务器上写死 ssh 登录脚本,脚本内容为,如果时间未达到指定时间前,禁止任何登录。
    ntedshen
        17
    ntedshen  
       18 天前
    结个婚,离婚的时候拿(狗头
    FarAhead
        18
    FarAhead  
       18 天前
    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
        19
    z7356995  
       18 天前 via Android
    这个可以自己做一个,用 vps 为例,自已写一个脚本,指定时间到以前,禁止任何 ssh 连接,连不上来就没法拷走密钥。当然 vps 上可能有各种备份恢复。这个思路就可以延伸为自己写一个 linux 的脚本,指定时间指南用网络时间,然后时间到以前禁止登陆。自己攻防几次。把自己到指定时间前能登陆的路都堵死,原理和 ipad 输错密码锁定机器一样,只不过这个程序是自己写的
    blackcurrant
        20
    blackcurrant  
       18 天前
    bitcoin 实现这个根本用不着智能合约,转账加个 locktime 就好了。
    xuanbg
        21
    xuanbg  
       18 天前
    要什么密码学。。。没有什么参数是只能来源于未来的,密码学也无能为力。

    最简单的办法是:你把比特币转给我,约定一个还给你的时间就好了。
    davidqw
        22
    davidqw  
       18 天前
    比特币用时间锁脚本,以太坊用智能合约
    gy0624ww
        23
    gy0624ww  
       18 天前
    我有一个疑问,既然虚拟货币波动很大,为什么不做 T 来降低成本,要锁起来 只进不出呢?
    skydiver
        24
    skydiver  
       18 天前 via Android
    @gy0624ww 万一做反了呢?岂不是增加成本?不可能所有人做 t 都赚钱
    xxbing
        25
    xxbing  
       18 天前
    1. Bitcoin 里面 Taproot 下可以实现“锁定 N 个区块之后才能取出 BTC”,而且这是比特币原生支持、非常成熟的能力。
    2. EVM 链直接写个合约,用区块高度锁或者时间戳锁. 锁定资产解冻日期.
    willwon1
        26
    willwon1  
       18 天前
    部署一个在线合约、用转账的条件是区块链上的区块数量
    xxbing
        27
    xxbing  
       18 天前   ❤️ 1
    “这样在设定时间到达之前,哪怕比特币涨到 20 万或者跌到 1 万,我也只能干瞪眼,没有任何办法卖出。 现在的智能合约(如 CLTV )虽然能做到锁定,但往往操作门槛高,而且要把币转到合约里总觉得不放心。”
    不要担心恐惧合约这种东西,到 bsc 或者 eth 等等公共测试链,领取水龙头测试代币.随心所欲的测试、实践. 彻底懂了再到主链上实操
    seakingii
        28
    seakingii  
       18 天前
    你可以把私钥发给我,N 年后我再发给你
    realdaniel
        29
    realdaniel  
       18 天前
    https://timelock.dev/
    但是如果是几十年的话,可能服务关掉了,再也解不开。
    evplus
        30
    evplus  
       18 天前
    换个策略,按现在的价格买,仓位不能太轻,因为大概率没到底,所以一直跌跌得你失去信心,不得不在现实中赚钱,不再有关注的兴趣。远离相关论坛节点,取关相关账号。直到某一天你看到 20 万的(大众渠道的)新闻才想起来。我相信绝大多数 HODL 过来的人都有这样的经历,而不是什么高科技。
    czzhengkw
        31
    czzhengkw  
       18 天前
    写一个智能合约,设置一个时间点,在这个时间点之后发一笔交易给合约,它就会把资金里的资金全部转到你在代码里指定的地址里
    然后往里面转资产,等到时间到了发交易就能收到资产了
    时间未到之前发交易是没有用的
    gy0624ww
        32
    gy0624ww  
       18 天前
    @skydiver 既然波动很大,而且看好增长,不可能做反把,反正都是拿着,和套着没区别。
    只要高抛低吸,没到要求就拿着呗。
    Kirkcong
        33
    Kirkcong  
       18 天前
    @jefferyJQ #10 你想要的应该是某个必须花费一定时长的物理限制,类似于 bit 币那样,必须要花费这么多时间。有是有,能实现你说的这种方式,但是稳定性有问题。

    https://github.com/rayanamal/timelock

    上面这个就是物理限制,依靠 cpu 计算一定次数来加密解密。但是不可靠,作者说他最长有过 12 小时,对于你来说肯定不够。还有一个问题,“必须花费一定时长的物理限制”,这意味着他真的需要连续跑你设定的这么长时间,你得真的有设备持续不断的运算这么久。这点来看,可靠性真的不如 tlock ,最好依赖一个可信的第三方。

    或者,使用 aws nitro-enclaves ,写个简单的 py 脚本,里面设置逻辑,只有当 xxx 日期后才能输出密钥,放入 enclaves ,启动,enclaves 不可更改,不可调试,绝对按照你脚本逻辑运行,非常安全。

    脚本逻辑:
    1. 获取到用户传入的 key 。
    2. 输出 key 之前验证当前日期是否大于 xxx ,是则输出 key ,否则拒绝请求。( enclaves 不可更改,意味着时间也不可更改)
    jefferyJQ
        34
    jefferyJQ  
    OP
       18 天前
    @gy0624ww #32 人性经不住考验,币圈有 100 倍杠杆,99%的人都忍不住的
    Kirkcong
        35
    Kirkcong  
       18 天前
    @Kirkcong #33 当然,这个前提是你的 enclaves 不可以关机,必须一直跑着,否则 key 丢失。aws 可以保证这一点,但是你要承担 ec2 的价格,不是很贵,但也确实得一直跑着。
    FFM
        36
    FFM  
       18 天前
    再加密一层交给朋友家人就行。
    jefferyJQ
        37
    jefferyJQ  
    OP
       18 天前
    @JohnSmith 不会 web3 的东西,投资第一原则不做不擅长的事情
    jefferyJQ
        38
    jefferyJQ  
    OP
       18 天前
    @FFM 我试过,然后上头了几句话就套出来了
    jefferyJQ
        39
    jefferyJQ  
    OP
       18 天前
    @evplus 大部分人,包括我,没办法忍住不看的。这种人真的是反人性的
    jefferyJQ
        40
    jefferyJQ  
    OP
       18 天前
    @jocover #4 这种很难的,人家只是保管,不想关系破裂。有时候会因为行情大变而否定之前的决策,然后会想办法找回数据,人家不可能不给的
    cyp0633
        41
    cyp0633  
       18 天前
    @rolandzhou #13 还真行,今天在 HN 上了解到一个算法,可以在 M 个朋友里有至少 N 个提供各自部分密钥的情况下解密
    jefferyJQ
        42
    jefferyJQ  
    OP
       18 天前
    @z7356995 #16 这种也是一种方式,但是我咋感觉不太可靠
    jefferyJQ
        43
    jefferyJQ  
    OP
       18 天前
    其实看了一圈大家的建议,特别是提到“多签”或者“托付给朋友”的方案,我觉得对于我来说,HODL 本质上是个人性问题,而不是简单的技术问题。

    之所以想找“时间胶囊”这种物理/代码层面的强制工具,就是因为我不相信“人”的意志力——既不相信我自己,也不相信帮我把控的朋友。

    如果依靠朋友或家人来做多签把控,最大的漏洞在于:当行情剧烈波动、我情绪上头的时候,我一定会想方设法去“攻破”这个人。-- 之前实践过

    无论是暴涨怕踏空,还是暴跌怕归零,在那个人性最脆弱的时刻,我肯定会找出一万个看似“合理”的理由(比如“这次不一样”、“家里急用钱”、“肯定是历史大顶了”等等),软磨硬泡、甚至动用人情压力去说服朋友同意提前解锁。朋友毕竟是人,很难长时间扛住当事人的这种疯狂输出。

    只有冷冰冰的代码和数学,才不会听我的解释、借口和哀求。 这就是我为什么执着于找一个“无法被说服”的工具的原因,我需要的是一堵撞不破的墙,而不是一扇能敲开的门。
    jefferyJQ
        44
    jefferyJQ  
    OP
       18 天前
    @FarAhead 是的
    jefferyJQ
        45
    jefferyJQ  
    OP
       18 天前
    @blackcurrant 的确是一个非常好的方式
    jefferyJQ
        46
    jefferyJQ  
    OP
       18 天前
    @xxbing #27 感谢,看起来这种方式比直接加密私钥更稳妥一些
    sugost
        47
    sugost  
       18 天前
    是不是可以以比特币区块数量 来判定时间 有没有到?其他链可能倒闭,比特币肯定不会,如果比特币链也倒闭也就没有解密的必要了。
    lanyi96
        48
    lanyi96  
       18 天前
    智能合约-时间锁很成熟的机制了
    tywtyw2002
        49
    tywtyw2002  
       18 天前 via iPhone
    技术上这类算法实现了,就等于 p=np 解决了。

    目前基于数学原理,你没有办法用现在的信息得到未来的信息。

    所以基于这套原理才有了 比特币的 暴力逆向 hash 挖矿。
    Hyschtaxjh
        50
    Hyschtaxjh  
       18 天前 via iPhone   ❤️ 3
    坐牢
    streamrx
        51
    streamrx  
       17 天前 via iPhone
    你直接写个 eth 的合约锁进去不就行了。 非 eth 链的 比如 btc 也可以换成 cbBTC 这些去存
    z7356995
        52
    z7356995  
       17 天前 via Android
    修改 linux 代码,让机器在指定时间到达前禁止登录,类似于 ipad 输错密码锁住,或者存在 ipad 上故意输错密码,直到 20 年后才能再次尝试密码
    lucas56
        53
    lucas56  
       16 天前 via iPhone
    写个合约把币放进去,设置时间锁和到期接收账户,到期了任何人都可以执行函数触发合约转账到之前设定的账户
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1277 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:02 · PVG 01:02 · LAX 09:02 · JFK 12:02
    ♥ Do have faith in what you're doing.