Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

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

伤心骑士口
587 0 0
Don′t trust, verify!当我们设置钱包时,最关键的一步就是生成助记词环节。大家研究过助记词是如何生成的吗?
2 ^4 b5 R0 a  V7 F; ~: P4 t" L$ B% @: }1 y+ L7 A
助记词是由一串随机数生成,我们称为“熵”。而随机数通常是由软件钱包的伪随机数生成器(PRNG)或硬件钱包的真随机数生成器(TRNG)生成。随机数的随机性就是保证我们的助记词(私钥)无法被暴力破解的关键之处。5 K% B$ s# M: `6 _
$ [7 D, `6 ^; d4 @8 k: R1 `
真随机数生成器(TRNG)的执行代码一般是由安全芯片厂商提供且不对外公开,也就是说,用户生成真随机数后无法验证,需要信任厂商。
: j2 d9 |. v. w; m" u& p) y2 a* o& K! Z) b  Y4 t
很多用户不愿意信任安全芯片厂商,因此,一些硬件钱包允许用户用投掷骰子的结果作为随机熵值生成助记词,如 Cobo 金库和 ColdCard 硬件钱包。& F: E7 Q7 u& e" j

5 u. m5 u% V& a7 h# ACobo 金库团队始终坚持“Don't trust, verify”的产品理念,并一直用实际行动去实现它,比如开源操作系统代码和安全芯片固件代码。
0 P9 n4 S2 x5 ?9 V$ U/ d! f) N8 V) c" v& X
验证代码无疑是最直接的验证方法,但有一定的技术门槛。那么,对于没有技术背景的用户,我们可以用著名的 Ian Coleman 网页工具来做验证。
" Z8 v. N0 z% u7 N8 v$ l: ~. N" Y
% u; ]8 \; d, rTips:做验证前需要升级金库固件到V1.2.1或以上版本。; b* j4 x9 S. D" Z) w- W1 ?1 y' H
: G+ d( _, G  j  I

$ k' {% A% _7 |. B4 j/ P8 H/ b验证步骤  Q) r& Q/ j' I) ^6 s  @) }
7 @0 i* f8 [, y9 j6 ~4 M- _
举个例子:我们投掷50次骰子,获得以下随机数
( n3 P: |8 Z2 Z/ t1 ~$ Z. s+ _7 d
8 o2 F/ r& ~# D1 r* ~) j' w51236422654236551235532545533355551153256611442361
; \, `- u2 }8 ^/ W2 D" V
$ a: _0 J, v# T2 p我们首先将50位随机数输入到金库,生成24位助记词。: ?7 I. A% ^& H4 ^% I

; h  D) ?2 {3 r- U& @2 k6 P/ ?: \; S1 Z. _8 `
boost nephew sea noise apology three grocery alter season gym leaf token defense today vacuum purse gate swear want road opera fine flag twice
0 Q8 y3 |! O, ]3 V7 b9 w
1 [: J/ p- o; V. L2 z注:投掷50次的随机性相当于128位随机数。投掷小于50次的结果随机性则太弱。为确保安全,掌柜的建议大家投掷满100次。
! F5 l9 {7 j; c2 ?+ w' n( z1 z. N9 \8 v( }, R" q1 E
然后,我们打开 Ian Coleman 网页工具,勾选“Show entropy details”。- X% A" s) J  R
设置骰子规格、助记词位数参数,输入上面的50位骰子结果,我们可以得到相同的24位助记词。验证完成!
2 I/ R1 `. u, S3 N  K
0 V$ m( a: H9 |  R, u9 m1 m9 Q建议大家验证时,离线使用 Ian Coleman 网页工具(参考网页底部教程),预防恶意软件监控你的键盘、剪贴板以及其他电脑端攻击风险。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

伤心骑士口 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    37