Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

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

伤心骑士口
466 0 0
Don′t trust, verify!当我们设置钱包时,最关键的一步就是生成助记词环节。大家研究过助记词是如何生成的吗?
0 U; t" F: F6 H9 K# h0 u0 j
5 v0 b  l5 @" _3 ]6 P助记词是由一串随机数生成,我们称为“熵”。而随机数通常是由软件钱包的伪随机数生成器(PRNG)或硬件钱包的真随机数生成器(TRNG)生成。随机数的随机性就是保证我们的助记词(私钥)无法被暴力破解的关键之处。
+ {7 y( B8 J7 ]4 J7 f" n9 W3 j; J! x
- c5 B, s3 V! K, v0 l! P真随机数生成器(TRNG)的执行代码一般是由安全芯片厂商提供且不对外公开,也就是说,用户生成真随机数后无法验证,需要信任厂商。, {$ _4 y1 ?) T! T* D; t( `

- V/ C6 N- s; {& S1 I: R) }很多用户不愿意信任安全芯片厂商,因此,一些硬件钱包允许用户用投掷骰子的结果作为随机熵值生成助记词,如 Cobo 金库和 ColdCard 硬件钱包。$ c9 s, ~/ v" g8 `1 d
5 b/ E6 z7 a  W
Cobo 金库团队始终坚持“Don't trust, verify”的产品理念,并一直用实际行动去实现它,比如开源操作系统代码和安全芯片固件代码。
2 {+ j( |8 o) e: P
" d/ s7 s, m: {( ]4 j1 t验证代码无疑是最直接的验证方法,但有一定的技术门槛。那么,对于没有技术背景的用户,我们可以用著名的 Ian Coleman 网页工具来做验证。, z6 y. K. Z8 K7 Y: }
7 |1 a- ^4 y$ y  u- e# H5 [+ W
Tips:做验证前需要升级金库固件到V1.2.1或以上版本。
8 ^- N$ Z* O+ Q, X7 x1 T& ]
1 y; o: m' X6 ^0 G4 g
( X# p* Z* l8 z8 D+ n/ Y) Q验证步骤
5 r  ^- b# F! g, b: H
2 U: s& X9 s! I( u举个例子:我们投掷50次骰子,获得以下随机数) z% ?. G' w* O, A. Q) B" P0 ]9 [
# g: ?$ _* R: s$ a4 A4 I' Z
51236422654236551235532545533355551153256611442361
! \' I; G% B. h
* S5 t8 @' h9 A( F我们首先将50位随机数输入到金库,生成24位助记词。
; U2 H; P# Z" l. T6 H
* M5 X1 c# a# R# o) G" ~
( ^7 ~' D1 N+ @0 |# R# cboost nephew sea noise apology three grocery alter season gym leaf token defense today vacuum purse gate swear want road opera fine flag twice0 N' h9 H* M, \  Z& S! v. N& G
! r* v' J1 i6 z9 s; t
注:投掷50次的随机性相当于128位随机数。投掷小于50次的结果随机性则太弱。为确保安全,掌柜的建议大家投掷满100次。0 W" U+ D$ }8 |1 E/ U
% y* D3 l( W+ u
然后,我们打开 Ian Coleman 网页工具,勾选“Show entropy details”。3 \/ `/ n- `( C( i/ G. y) M1 Z8 U
设置骰子规格、助记词位数参数,输入上面的50位骰子结果,我们可以得到相同的24位助记词。验证完成!$ z2 J) J4 a7 }+ O3 Q7 _$ E
- S" p! |* @: G5 K, c8 L. C4 O
建议大家验证时,离线使用 Ian Coleman 网页工具(参考网页底部教程),预防恶意软件监控你的键盘、剪贴板以及其他电脑端攻击风险。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

伤心骑士口 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    37