一粒种子只能开一次花,你种的时候就得想好,收种子只能靠你自己。

这是我在花园里想明白的事。@BabylonLabs_io 的WOTS密钥,就是这种种子:一次性使用,用过的密钥材料作废,新的流程必须换新的。协议把一次性写死,备份的责任落在用户手里。

做个思想实验。假设密钥可以重复用,会发生什么?签名材料的复用,等于给攻击者留了重复利用的窗口,一次泄漏,次次遭殃。我原以为一次性设计是麻烦,读完才发现,它把风险拦在最前面:密钥用完即弃,泄漏的窗口直接关闭。花园里,一粒种子只开一次花,反而是防虫害最好的办法,虫吃了一次,下一次没有花可吃。

那用户要做什么?备份。种子用完就没有了,所以播种之前必须留好下一批种子。备份清单要记金库对应关系,记一次性使用状态,记材料存放位置,漏一项,等于漏了一季的收成。

备份清单具体记什么?金库对应关系、一次性密钥的使用状态、材料的存放位置,三样缺一不可。光记位置不记状态,种子在不在都不知道;光记状态不记关系,收成归谁说不清。花园里的规矩,标记做全了,来年才有得收。$BABY 生态里,凡是写着"只能用一次"的东西,都值得备份两份。

收尾记一句:一次性不是刁难,是把安全成本前置到创建那一天。前置的成本用户看得见,后置的风险用户看不见,看得见的成本好管理,看不见的风险才吓人。种花的人都知道,好收成从选种开始,备份这份功课,做在播种之前。材料放三处:本地、离线盘、纸质,链上留索引,丢一份还有两份。

慢慢看这个设计,越看越顺:一次性是协议的安全底线,备份是用户的责任边界,两者各管各的。Babylon把底线和责任分得清清楚楚,用户照着做就行。#baby