Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

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

伤心骑士口
414 0 0
Don′t trust, verify!当我们设置钱包时,最关键的一步就是生成助记词环节。大家研究过助记词是如何生成的吗?$ d8 j/ s% [0 i
. o6 [# b2 b, r' u: M+ m3 L
助记词是由一串随机数生成,我们称为“熵”。而随机数通常是由软件钱包的伪随机数生成器(PRNG)或硬件钱包的真随机数生成器(TRNG)生成。随机数的随机性就是保证我们的助记词(私钥)无法被暴力破解的关键之处。% V" }: Q- B: e. q

- n. M2 @  v7 T3 p" Y7 v真随机数生成器(TRNG)的执行代码一般是由安全芯片厂商提供且不对外公开,也就是说,用户生成真随机数后无法验证,需要信任厂商。; i& V: n, N) G+ C' b0 E9 W7 _
3 N. Y! Y$ P+ [0 p8 f# W
很多用户不愿意信任安全芯片厂商,因此,一些硬件钱包允许用户用投掷骰子的结果作为随机熵值生成助记词,如 Cobo 金库和 ColdCard 硬件钱包。* N7 t" }- P' I% G) r& e
9 r6 e# U) _; y7 H- V
Cobo 金库团队始终坚持“Don't trust, verify”的产品理念,并一直用实际行动去实现它,比如开源操作系统代码和安全芯片固件代码。* p5 Q! U/ b  P1 F
) J  W) B2 r  J- B
验证代码无疑是最直接的验证方法,但有一定的技术门槛。那么,对于没有技术背景的用户,我们可以用著名的 Ian Coleman 网页工具来做验证。
& B; x* @8 g# P$ b- H" n( h, B) w  c+ B: A4 A% u" @; y& E/ n. b& ^
Tips:做验证前需要升级金库固件到V1.2.1或以上版本。
2 j" I$ J8 v0 X) X
9 s+ o& {3 ]" h+ V1 G% Y9 G1 \. U3 [: R
验证步骤
. l( i* M/ G4 _- \
" n8 ]# u6 ^' Y3 L5 t. M9 S举个例子:我们投掷50次骰子,获得以下随机数
3 N- D; ?" t$ `  i
* f6 y  t4 q: X51236422654236551235532545533355551153256611442361) v% z6 \; k. k0 ~+ C' e

: {/ V  V7 |3 ]( d/ I" v我们首先将50位随机数输入到金库,生成24位助记词。
, G7 M' G8 B6 W. S2 C) V# w* ?% V. c6 _

5 o. y( x+ _9 Iboost nephew sea noise apology three grocery alter season gym leaf token defense today vacuum purse gate swear want road opera fine flag twice
( H+ H2 J: m/ u# g, i0 x; ^7 F+ U2 u* e1 ~  g# j& O6 l+ e$ F; H
注:投掷50次的随机性相当于128位随机数。投掷小于50次的结果随机性则太弱。为确保安全,掌柜的建议大家投掷满100次。
9 Q8 h# K/ R, a* g. s  s( e* e: b! Y7 Q6 I; Q: K' u% h! P! P: `
然后,我们打开 Ian Coleman 网页工具,勾选“Show entropy details”。! g# y3 Q$ X" G5 a* y( M
设置骰子规格、助记词位数参数,输入上面的50位骰子结果,我们可以得到相同的24位助记词。验证完成!$ P3 F! b& t' l
/ z9 M/ ^/ `0 r' d6 @
建议大家验证时,离线使用 Ian Coleman 网页工具(参考网页底部教程),预防恶意软件监控你的键盘、剪贴板以及其他电脑端攻击风险。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

伤心骑士口 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    37