Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

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

伤心骑士口
589 0 0
Don′t trust, verify!当我们设置钱包时,最关键的一步就是生成助记词环节。大家研究过助记词是如何生成的吗?
1 @  h6 r$ _' @' B$ T% f; h: `7 w' |' g8 A8 ]
助记词是由一串随机数生成,我们称为“熵”。而随机数通常是由软件钱包的伪随机数生成器(PRNG)或硬件钱包的真随机数生成器(TRNG)生成。随机数的随机性就是保证我们的助记词(私钥)无法被暴力破解的关键之处。( G# g8 y% M- Q5 B4 Z
7 V) T3 z7 p, g5 [! d
真随机数生成器(TRNG)的执行代码一般是由安全芯片厂商提供且不对外公开,也就是说,用户生成真随机数后无法验证,需要信任厂商。; j) Q) T- Z2 ?1 Z% U

' G- p3 g" v& b) R' A' w/ `很多用户不愿意信任安全芯片厂商,因此,一些硬件钱包允许用户用投掷骰子的结果作为随机熵值生成助记词,如 Cobo 金库和 ColdCard 硬件钱包。
. m: U; u8 ]) D6 W! s, k7 P, `. o: X  p3 `& _6 L/ H' M  X% P7 K/ ]
Cobo 金库团队始终坚持“Don't trust, verify”的产品理念,并一直用实际行动去实现它,比如开源操作系统代码和安全芯片固件代码。
9 u% f% h6 j" U. c# T; G- W
9 |+ y) b- ~3 X; k; v验证代码无疑是最直接的验证方法,但有一定的技术门槛。那么,对于没有技术背景的用户,我们可以用著名的 Ian Coleman 网页工具来做验证。
- H1 W& _% e) Q# v+ N! _4 I7 W' }; \2 b
Tips:做验证前需要升级金库固件到V1.2.1或以上版本。5 J% e8 M4 _+ B' |) G

5 \6 P1 J! b, L/ g1 c+ z$ q3 Z' R6 L: J- P3 R
验证步骤4 g- P& V- W: w, }8 A" [
2 D  H: q% ^! R  Z5 I
举个例子:我们投掷50次骰子,获得以下随机数) S8 `* ]- M' N! s2 d% T% [
1 u% Z% J, }% [. y. D' Y, w- Z
51236422654236551235532545533355551153256611442361
% }0 O" ^; ~& }* m2 l* x& u" ^% X+ ~% g2 M2 ~3 ~6 e; \  M" e
我们首先将50位随机数输入到金库,生成24位助记词。6 Z1 ]" [5 {) k! J( V' X' C* h* E- T

2 R; e$ |' Q2 i( d
# x7 Y" a) M/ b4 Y7 B0 uboost nephew sea noise apology three grocery alter season gym leaf token defense today vacuum purse gate swear want road opera fine flag twice
* K+ A2 e# d, [# @, [, x/ L2 M3 f3 v) S  _
注:投掷50次的随机性相当于128位随机数。投掷小于50次的结果随机性则太弱。为确保安全,掌柜的建议大家投掷满100次。
: `3 \9 B" q3 U: v1 _( ]* A' d
6 d) G# a. ?2 n" X3 @然后,我们打开 Ian Coleman 网页工具,勾选“Show entropy details”。
5 `  E# p: S6 o! A设置骰子规格、助记词位数参数,输入上面的50位骰子结果,我们可以得到相同的24位助记词。验证完成!% y, o" R% F: m: `/ }# M" n& `) ~1 r( @
7 Z0 T5 l8 R; f$ J/ a) T) d
建议大家验证时,离线使用 Ian Coleman 网页工具(参考网页底部教程),预防恶意软件监控你的键盘、剪贴板以及其他电脑端攻击风险。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

伤心骑士口 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    37