Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

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

伤心骑士口
406 0 0
Don′t trust, verify!当我们设置钱包时,最关键的一步就是生成助记词环节。大家研究过助记词是如何生成的吗?
! e5 c* Y4 f. L- Y! t* o! v1 v0 q/ I1 W( r
助记词是由一串随机数生成,我们称为“熵”。而随机数通常是由软件钱包的伪随机数生成器(PRNG)或硬件钱包的真随机数生成器(TRNG)生成。随机数的随机性就是保证我们的助记词(私钥)无法被暴力破解的关键之处。3 B# h/ t5 ~' c; r

" n" A: e. `* h6 Q9 M* Y- ^真随机数生成器(TRNG)的执行代码一般是由安全芯片厂商提供且不对外公开,也就是说,用户生成真随机数后无法验证,需要信任厂商。
( r, E5 m6 y, P9 P& B0 G% {# _) n
很多用户不愿意信任安全芯片厂商,因此,一些硬件钱包允许用户用投掷骰子的结果作为随机熵值生成助记词,如 Cobo 金库和 ColdCard 硬件钱包。0 E- n* y7 M% @4 G
: ]2 o1 y. ?/ ?$ @( y0 _$ R
Cobo 金库团队始终坚持“Don't trust, verify”的产品理念,并一直用实际行动去实现它,比如开源操作系统代码和安全芯片固件代码。3 Z1 Y9 p2 e7 x( k8 A
4 `& V. v; k. O' Y
验证代码无疑是最直接的验证方法,但有一定的技术门槛。那么,对于没有技术背景的用户,我们可以用著名的 Ian Coleman 网页工具来做验证。; C, u/ }7 H5 I
# i* ]6 T. _/ j+ V8 [+ g8 G
Tips:做验证前需要升级金库固件到V1.2.1或以上版本。
! K+ }9 d& l' h" g& `/ V5 n+ w" u1 g5 n8 g, v3 F* q

; x0 J( C1 j+ ]' r% l+ _; \# ~验证步骤6 |. h: O! _) H* ]

+ X3 B: ]6 Y; q- e# k( r  o. I举个例子:我们投掷50次骰子,获得以下随机数
% |7 m6 c9 e" Y, B3 U' z  d6 ^( L  e
/ P2 Y8 _- J2 ]9 T5 q$ A51236422654236551235532545533355551153256611442361
5 i4 P) r) W7 A) ?; c4 ?3 F2 C) ]/ {% w# R$ m7 v
我们首先将50位随机数输入到金库,生成24位助记词。2 ]5 N! R; |9 l" p" z2 }- i' F
9 w) S( Z/ |& f' J( B
5 S3 ?9 z( u3 Y& `: a7 B
boost nephew sea noise apology three grocery alter season gym leaf token defense today vacuum purse gate swear want road opera fine flag twice
; ]2 n# p, v$ K/ m
, [3 n* U2 H% s# S! G注:投掷50次的随机性相当于128位随机数。投掷小于50次的结果随机性则太弱。为确保安全,掌柜的建议大家投掷满100次。7 w1 h' d, y: r, ~
2 O7 r. q7 \/ R
然后,我们打开 Ian Coleman 网页工具,勾选“Show entropy details”。6 t" j$ y  q7 A2 i
设置骰子规格、助记词位数参数,输入上面的50位骰子结果,我们可以得到相同的24位助记词。验证完成!( X3 a: O& @* ]4 i6 E& H, Q

0 h% a, D# H" L# p1 n* x9 m建议大家验证时,离线使用 Ian Coleman 网页工具(参考网页底部教程),预防恶意软件监控你的键盘、剪贴板以及其他电脑端攻击风险。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

伤心骑士口 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    37