ETH钱包助记词、私钥、Keystore创建原理

简介:本文原创,对工作项目中的理解作出总结

助记词

助记词拥有钱包的所有权,可以通过助记词随意转移该钱包下的资产而无需密码。助记词可以生成很多子钱包,目前大部分以太坊钱包做法是默认把助记词生成的第一个地址作为默认地址,实际助记词是可以生成很多地址。

下面是一个助记词工具网站,可以输入助记词查看所有生成的地址。

https://iancoleman.io/bip39/#english

BIP32

定义 Hierarchical Deterministic wallet (简称 “HD Wallet”中文为分层确定性钱包),是一个系统可以从单一个 seed 产生一树状结构储存多组 keypairs(私钥和公钥)。好处是可以方便的备份、转移到其他相容装置(因为都只需要 seed),以及分层的权限控制等。

BIP39

将 seed 用方便记忆和书写的单字表示。业界一般使用 12 、15、18、21个单字组成的单词,,中文称为助记词或助记码。

BIP44

基于 BIP32 的系统,赋予树状结构中的各层特殊的意义。让同一个 seed 可以支援多币种、多帐户等。

可以通过特定的路径解析不同币种钱包,

btc一般是 m/44'/0'/0'/0eth一般是 m/44'/60'/0'/0

附详细资料:

https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki

https://github.com/satoshilabs/slips/blob/master/slip-0044.md

以上是钱包生成几种方法的简单介绍,下面是创建钱包的一些业务流程

Keyshtore

Keystore不是私钥,常见于以太坊钱包,一般你创建以太坊钱包后,会让你备份Keystore, 它是一串代码,你可以自己保存为文本或者json格式,日后都可以用任何以太坊钱包打开它。Keystore的本质是加密后的私钥,Keystore必须配合你的钱包密码来使用,所以说,光备份了Keystore但忘记了钱包密码也是然并卵。

直接使用以太坊钱包,很少会直接看到自己的私钥,而是让你备份Keystore, 配合钱包密码来使用。即使黑客获取了你的Keystore, 还要破解钱包密码也还是有一定难度的,当然钱包密码也别设太简单。

Keystore可以理解为我们日常中的账号,而解密Keystore的密码是账号的密码。

私钥

私钥的生成方式是完全随机的,随机生成这样的字符串就会有16的64次方种可能。私钥

拥有对应地址钱包的所有权,包括可以随意利用私钥进行资产转移。私钥跟助记词的权限实际是一样的,但是私钥只能控制对应的公钥,助记词可以控制对应下的所有地址。

GAS

GAS 是什么?在什么场景下会用到GAS?

Gas 翻译成中文就是“燃气”,是以太坊世界的燃料,它决定了以太坊网络生态系统的正常运行。

一般在执行转账时需要消耗GAS

Gas 用来衡量执行某些动作需要多少“工作量”,这些“工作量”就是为了执行该动作支付给网络的费用额。通俗理解,Gas 是给矿工的佣金,并以 ETH 支付,无论是交易、执行智能合约并启动 DApps,还是支付数据存储费用,都需要用到 Gas。

Gas由两个部分组成: 限制(Gas limit)和价格(Gas Price)。Gas Limit 是用户愿意为执行某个操作或确认交易支付的最大Gas量(最少21,000)。Gas Price 是 Gwei 的数量,用户愿意花费于每个 Gas 单位的价钱。

当进行每笔交易时,发送人设定Gas Limit 和Gas Price,将 Gas Limit*Gas Price ,就得到了ETH交易佣金的成本。

现在,1Gwei≈0.00000002 ETH,所以佣金最少为0.00000002*21000=0.00042ETH,通常情况下,交易设置的Gas limt 为50000-100000个,总费用为 0.001 ETH - 0.002 ETH。

设置 Gas limint 需要考虑的问题:

不同的操作会产生不同的 Gas 成本。Gas 用完时,矿工将停止执行。如果有剩余 Gas,将立即退还给发起交易的人员或智能合约创建者。

但是,如果用户设置的限制值太低,那么ta的交易被认为是无效的,并且会因为“Gas不足”错误而被取消,并且其中用于计算的 Gas 不会退到账户。所以无论交易是否通过,发送者总需要向矿工支付计算费用。

以上是钱包的基本概念,下面是创建钱包的一些业务流程


第一,随机生成128到258位的随机数,我们这里叫做熵;

第二,熵经过一定处理方法,生成助记词;

第三,助记词经过密钥延伸函数PBKDF2,生成种子;

第四,种子经过HMAC-SHA512算法,生成母密钥;

第五,通过CKD(child key derivation)函数,母密钥生成众多子密钥。

第六,利用私钥加密生成Keyshtore

注意:这里有两个坑,助记词中分别可以设置为有密码与无密码,这里提及的密码是把密码传到助记词里,你会发现使用网页钱包https://www.myetherwallet.com/导入助记词输入密码,会生成一些新的地址,并无法查询到你在imtoken上的地址,目前主流钱包的助记词是无密码的,而设置的密码为Keyshtore密码与本地密码。所有助记词在产品设计中有密码与无密码之分,如果发现在其他钱包导入助记词输入密码后找不到原来的地址,请放心,不输入密码即可。


微信交流:JonTimfire

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容