导航:首页 > 源码编译 > 以太助记词算法

以太助记词算法

发布时间:2023-01-14 03:50:23

A. 什么是助记词

助记词是明文私钥的另一种表现形式,最早是由 BIP39 提案提出,其目的是为了帮助用户记忆复杂的私钥 ( 64 位的哈希值)。助记词一般由12、15、18、21个单词构成,这些单词都取自一个固定词库,其生成顺序也是按照一定算法而来,所以用户没必要担心随便输入 12 个单词就会生成一个地址。虽然助记词和 Keystore 都可以作为私钥的另一种表现形式,但与 Keystore 不同的是,助记词是未经加密的私钥,任何人得到了你的助记词,可以不费吹灰之力的夺走你的资产控制权。所以在用户在备份助记词之后,一定要注意三点:
1. 尽可能采用物理介质备份,例如用笔抄在纸上等,尽可能不要采用截屏或者拍照之后放在联网的设备里,以防被黑客窃取;
2. 多次验证备份的助记词是否正确,一旦抄错一两个单词,那么将对后续找回正确的助记词带来巨大的困难;
3. 将备份后的助记词妥善保管,做好防盗防丢措施。
PS:用户可以使用备份的助记词,重新导入 imToken,用新的密码生成一个新的 Keystore,用这种方法来修改钱包密码。

B. 2048个助记词,能不能破解一下算完让我崩溃

 文:财神下山  /  ID:caishen-wdd

这是财神下山的第(6)篇

使用过数字钱包的人,应该都会遇到助记词,用一句话来解释助记词就是: 它是私钥的明文显示。

意如其名,帮助你记忆私钥的单词。因为,一串长长的字符总没有几个单词好记忆。

在写完《比特币里的私钥,公钥,地址是如何产生的?》文章后,其实财神还是有点迷惑的,就是当时在写助记词的时候,只是顺带一句话,并不知道它的真实产生过程。

好在,最近又看了精通以太坊这本书的介绍。

回顾一下私钥空间,比特币,以太坊的私人密钥空间的大小(2^256)是一个难以置信的大数目。十进制大约是10^77。可见宇宙估计含有10^80原子。

要从这么大的空间里找到一个私钥,它刚好是V神的钱包,这概率……比大海捞针,而且是不能借助任何工具,还难。

后来,财神了解到,所有的助记词字典,其实只有2048个单词。

通过下面这个连接就可以访问:

https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

今天,学一学助记词是怎么计算出来的。

教学开始!

1. 先从熵开始,熵的长度是32的整数倍,分别为 128, 160, 192, 224, 256,也就是我们私钥的长度。

2. 熵的长度再加上校验和的长度。为熵的长度/32 位, 所以校验和长度可为 4,5,6,7,8 位;

3. 一共有2048个助记词,用二进制表示的话需要11位。 2的11次方等于2048。所以,上面助记词的个数分别是12,15,18,21,24。

例如: 128位的熵,加上 4位校验和,等于132位长度的二进制,每11个切割成一组,那需要12组。

(128+4)/11 =12, 也即128长度的熵需要12个助记词

(256+8)/11 =24, 也即256长度的熵需要24个助记词

画张流程图就是

每个单词有唯一一个码,好了,上面就是助记词生成的整个过程。

12个助记词安全吗?

我们的钱包只有12-24个单词,从表面看上去,假如全球用户的所有帐户加起来有10亿个钱包,那我从2048个字典里随机挑出12个单词,这个好像有机会瞎猫碰到死耗子一样,再不行,我拿计算机一直尝试12个单词的随机组合,然后看看是不是一个钱包的私钥……

哈哈……哈哈……

直到财神求值了一下……不算不知道,一算吓我一跳。

下面分别是2个单词 到 24个单词的随机组合个数,到第4个单词时已经17万亿了,再往上就不知道怎么读了。

  4194304

  8589934592

  17592186044416

  36028797018963968

  73786976294838206464

  151115727451828646838272

  309485009821345068724781056

 

 

 

  (已经40位数了,除以10亿,还有31位)

继续13个单词

 

 

 

 

 

 

 

 

 

 104

 1204992

 1187823616

真相竟然那么残酷,啥也不要想了,还是好好研究搬砖吧。

参考资料: 《精通以太坊》,初学者,如有疏略,还请指教。

如果这篇文章对你有帮助,

就分享给朋友吧!

C. 关于钱包助记词

昨天发生了用户在eostea注册账号后私钥被盗的事件,原因据说是eostea为用户提供了助记词功能,用户可以自己选择助记词,如果用户不输入助记词,就会生成一个默认的私钥。这样的私钥谁都算得出来,用户的账号当然就很容易被控制了。

如果这事属实,说明eostea干的活太不专业了:助记词不该由用户输入。实际上,钱包提供助记词功能是有一套标准的,那就是比特币的BIP39。让用户输入助记词,很容易产生碰撞,就是说不同的账号使用同样的私钥,这是必须避免的。解决的方法是,助记词必须来自一个标准的2048个单词的词库( https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt ),给用户提供的12个助记词(也可以是24个)是系统用强随机函数生成,以保证每个账户取得的助记词都不相同。当用户导入助记词时,钱包要检查用户输入的12个单词是否来自2048词库,不是则拒绝生成私钥。

对于人类来说,记住那一长串私钥太难了,记助记词相对简单些,很多人喜欢用助记词。从 助记词 到 种子 再到 最终的私钥 也是有一套标准的,那就是BIP44(HD钱包)。简单点说,BIP44的关键是私钥的推导路径(derived path),不同币种按照不同的路径生成自己的私钥,BIP44规定比特币的路径是m/44'/0'/0'/0,以太币是m/44'/60'/0'/0,EOS是m/44'/194'/0'/0。只要钱包遵守BIP44,那么相同的助记词在不同的钱包APP里会算出相同的私钥,保证了钱包的兼容性。而且如果用户有多个币种的话,记住一套助记词就可以了,钱包随时随地能为用户生成相应的私钥。

GREATWALLET钱包严格遵循BIP44、BIP39标准为用户生成助记词,记住一套助记词,省去记多个币种私钥的麻烦,非常方便实用。欢迎使用GREATWALLET钱包,访问 http://greatwallet.io  或者  https://greatwallet.io .目前它对手机浏览器支持得还不够好,请使用桌面浏览器。

关于GREATWALLET钱包, 这里 有一篇简单的介绍。

(文中如有错误请同行指正)

D. imtoken钱包私钥导入格式64进16什么意思

私钥=银行卡+银行卡密码。
私钥是一个长度为64位的字符串,一个钱包只能拥有一个私钥并且不能修改。为什么说私钥=银行卡+银行卡密码呢?因为在imToken中直接导入私钥可以生成新的密码,将所有的区块链资产全部转移走。私钥作为最高保密级别,应该妥善保管在物理设备上,例如抄在纸上,备份多份并且存放在安全的地方,万万不可将私钥在联网设备上进行传输,避免被黑客截取。

助记词=私钥。
助记词又是什么东西呢?助记词既然等于私钥,那么其应该是私钥的另外一种表现形式,并且具有私钥同等的功能。在imToken中创建钱包,会出来一个助记词,助记词的个数一般为12、15、18、21个单词构成。这些词都取自一个固定词库,其生成顺序也是按照一定的算法得到,且助记词不能修改。助记词的主要作用是帮助用户记忆繁琐的私钥。同样助记词也要妥善保管好,切勿在联网设备中传输,任何人得到了你的助记词都可以轻松的转移你的区块链资产。

keystore+密码=私钥。
keyStore文件是以太坊钱包存储私钥的一种文件格式(JSON格式)。它使用用户自定义密码对私钥进行加密,在一定程度上keystore=加密后的私钥,拿到keystore和密码后照样可以转移走所有的区块链资产。keystore密码是唯一不可修改的,那么钱包密码修改之后,keystore也会相应修改。一定要记住加密keystore的密码,一旦忘记密码,就相当于遗失了该钱包所有的区块链资产。

————————————————
版权声明:本文为CSDN博主“懒区块”的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lanqukuai/article/details/81035995

E. 【概念】私钥、助记词和keystore到底是什么关系

使用了很久的钱包,用得有点诚惶诚恐,钱包除了用于转账外,都不怎么敢动它,怕误操作搞不好就空了,所以大部分都在交易所,不敢提。这也间接印证了李笑来老师的一句话:

在申请钱包时,当然看过不少资料,老老实实地记下了私钥、助记词,备份了keystore,还放在两个U盘里备份。但对私钥、助记词和keystore是一知半解的,也不知道他们到底什么关系。如果不是要了解EOS映射,我可能一直不会动钱包,也不会去了解它们。

下面就一个个来好好学习一下这些概念。

私钥是由64位十六进制的字符组成,每个私钥是随机生成的,随机生成这样的字符串有2的256次方种可能,这个数字已经超过了宇宙中原子的个数,用“暴力破解”的方式逐一遍历可能的私钥,幻想能碰到一个有效的且有币的私钥,可以说是不可能,就算是量子计算机也没用。

一个钱包只有一个私钥且不能修改。

在导入钱包中,输入私钥并设置一个密码(不用输入原密码),就能进入钱包并拥有这个钱包的掌控权,就可以把钱包中的代币转移走。

由于私钥64位,长得太难看,没有可读性,而私钥的备份在电脑上复制起来容易,手抄下来就比较麻烦,但私钥保存在联网的电脑上不安全,有被其他人看到的风险,于是有了助记词工具。

助记词是明文私钥的另一种表现形式,最早是由BIP39提案提出,其目的是为了帮助用户记忆复杂的私钥 (64位的哈希值)。助记词一般由12、15、18、21个单词构成,这些单词都取自一个固定词库, 其生成顺序也是按照一定算法而来,所以用户没必要担心随便输入12个单词就会生成一个地址。助记词是未经加密的私钥, 没有任何安全性可言,任何人得到了你的助记词,可以不费吹灰之力的夺走你的资产。所以在用户在备份助记词之后,一定要注意三点:

助记词一般会在你创建新钱包的时候出现一次,后面就再也不会出现了,所以创建新钱包时一定要把助记词抄下来,想办法备份。最好不要用屏幕截图或保存在电脑里,因为只要泄露,获取了你的助记词就等于获取了私钥,你的钱包就成了别人的钱包。

简而言之:助记词等于私钥,绝对不能泄露。

keystore常见于以太坊钱包,是你独有的、用于签署交易的以太坊私钥的加密文件。keystore是一串Json格式的字符串,可以用任何以太坊钱包打开它。keystore必须配合你的钱包密码来使用,备份了keystore同时别忘了备份钱包的密码。

用户可以使用备份的助记词,重新导入imToken之类的钱包工具,用新的密码生成一个新的Keystore,可以用这种方法来修改钱包密码。

助记词=密钥=keystore+密码 !保管好私钥或者助记词不被泄露,或是保存好keystore+记住密码,你才真正拥有了虚拟资产。

再来一个比较形象的比喻。

概念清楚之后,瞬间感觉轻松多了。再也不用担心因为不明白而担心操作失误的问题。最重要的是将私钥、助记词和keystore备份好,尽量离线备份多份,这样才能保证账号的安全。

1、 科普 | 什么是以太坊私钥储存(Keystore)文件?
2、 如何妥善备份你的以太坊钱包?
3、 币圈名词:地址、密码、私钥、助记词,你真的分清楚了吗
4、 “地址、密码、私钥、助记词、Keystore ”那些事

阅读全文

与以太助记词算法相关的资料

热点内容
安卓安智部落冲突密码怎么改 浏览:646
http协议单片机 浏览:71
pdfdocument 浏览:556
gcc编译vi文件 浏览:63
安卓连airpods怎么找耳机 浏览:927
加密货币转账教程 浏览:229
程序员小灰hashmap 浏览:838
国语pdf版 浏览:184
少儿编程作品美丽的小房子 浏览:974
服务器卡在网页上怎么办 浏览:54
用python自制编译器 浏览:951
android分享新浪微博客户端 浏览:26
系统中服务器在哪里下载地址 浏览:1001
新a4安卓手机怎么投屏 浏览:173
pdftoemf 浏览:886
java接口可以实现接口吗 浏览:59
vb编程10个随机函数 浏览:22
程序员个人简介100 浏览:772
土木工程师算法工程师 浏览:92
javaexcel导入oracle 浏览:880