如何验证骰子生成助记词的有效性

发布于: 雪球转发:0回复:0喜欢:1

撰文 | Cobo金库大掌柜


当我们设置钱包时,最关键的一步就是生成助记词环节。大家研究过助记词是如何生成的吗?

助记词是由一串随机数生成,我们称为“熵”。而随机数通常是由软件钱包的伪随机数生成器(PRNG)或硬件钱包的真随机数生成器(TRNG)生成。随机数的随机性就是保证我们的助记词(私钥)无法被暴力破解的关键之处。《真伪随机数的区别》

真随机数生成器(TRNG)的执行代码一般是由安全芯片厂商提供且不对外公开,也就是说,用户生成真随机数后无法验证,需要信任厂商。

很多用户不愿意信任安全芯片厂商,因此,一些硬件钱包允许用户用投掷骰子的结果作为随机熵值生成助记词,如 Cobo 金库和 ColdCard 硬件钱包。金库操作教程

Cobo 金库团队始终坚持“Don't trust, verify”的产品理念,并一直用实际行动去实现它,比如开源操作系统代码和安全芯片固件代码。

验证代码无疑是最直接的验证方法,但有一定的技术门槛。那么,对于没有技术背景的用户,我们可以用著名的 Ian Coleman 网页工具来做验证。

Tips:做验证前需要升级金库固件到V1.2.1或以上版本。


验证步骤

举个例子:我们投掷50次骰子,获得以下随机数

51236422654236551235532545533355551153256611442361

我们首先将50位随机数输入到金库,生成24位助记词。

boost nephew sea noise apology three grocery alter season gym leaf token defense today vacuum purse gate swear want road opera fine flag twice

注:投掷50次的随机性相当于128位随机数。投掷小于50次的结果随机性则太弱。为确保安全,掌柜的建议大家投掷满100次。

然后,我们打开 Ian Coleman 网页工具,勾选“Show entropy details”。

设置骰子规格、助记词位数参数,输入上面的50位骰子结果,我们可以得到相同的24位助记词。验证完成!

建议大家验证时,离线使用 Ian Coleman 网页工具(参考网页底部教程),预防恶意软件监控你的键盘、剪贴板以及其他电脑端攻击风险。