码迷,mamicode.com
首页 > 其他好文 > 详细

关于钱包的一些概念

时间:2018-01-26 12:34:45      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:找回密码   sem   强制   blog   证明   安全   lex   公钥   不可   

钱包

钱包是密钥的管理工具, 他只包含密钥而不是确切的某一个代币。钱包中包含成对的私钥和公钥。用户用私钥来签名交易, 从而证明该用户拥有交易的输出权。而输出的交易信息则存储在区块链中。

用户在使用 imToken 时, 你的 Keystore, 助记词, 明文私钥, 都是钱包, Keystore 是你加了"锁"的钱包, 而助记词和明文私钥是完全暴露在外的钱包, 没有任何安全性可言, 所以在使用助记词和明文私钥时, 一定要注意保密。

钱包地址

地址由公钥 (公钥是私钥通过非对称加密算法生成) 生成, 以 0x 开头的 42 位 16 进制哈希值字符串。例如: 0xc2d5ef1b5e6234c6bcbce87bb05d579c8e9d5720
如果将钱包比作银行卡, 那么钱包地址就是银行卡号。

助记词

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

Keystore

Keystore 文件是以太坊钱包存储私钥的一种文件格式 (JSON)。它使用用户自定义密码加密,以起到一定程度上的保护作用, 而保护的程度取决于用户加密该钱包的密码强度, 如果类似于 123456 这样的密码, 是极为不安全的。 在使用 Keystore 时有两点需要注意: 1. 使用不常用, 并且尽可能复杂的密码加密 Keystore 文件; 2. 一定要记住加密 Keystore 的密码, 一旦忘记密码, 那么你就失去了 Keystore 的使用权, 并且imToken 无法帮你找回密码, 所以一定要妥善保管好 Keystore 以及密码。

下面是 keystore 的样式:
 
{"version":3,"id":"b7467fcb-3c8b-41be-bccf-73d43a08c1b7","address":"540f18196da5a533fa36577a81de55f0a2f4e751","Crypto":{"ciphertext":"78ed11b8b6bf29b00f52b42b8542df0e4a6ac078e626af7edcf885c3b68154a4","cipherparams":{"iv":"4516579601d96695fe30ace985a9066f"},"cipher":"aes-128-ctr","kdf":"scrypt","kdfparams":{"dklen":32,"salt":"6276cfda7d40872352c801db5871e5a3368a8d0994cea39ed936760db78d1cdc","n":1024,"r":8,"p":1},"mac":"d889a5dc609c3f312a41394cc47640676d2612501a6f8c837ed55598158336db"}}

PS: Keystore 的密码是唯一、不可更改的, 如果想更改钱包密码需要使用助记词或明文私钥重新导入钱包, 并使用新密码加密, 生成新的 Keystore。
 

明文私钥

我们常说, 你对钱包中资金的控制取决于相应私钥的所有权和控制权。在区块链交易中, 私钥用于生成支付货币所必须的签名, 以证明资金的所有权。私钥必须始终保持机密, 因为一旦泄露给第三方, 相当于该私钥保护下的资产也拱手相让了。它不同于Keystore, Keystore 是加密过后的私钥文件, 只要密码强度足够强, 即使黑客得到 Keystore, 破解难度也足够大。
 
私钥实际上并不是存储在网络中, 而是由用户生成并存储在一个文件或者简单的数据库中, 称为钱包。存储在用户钱包中的私钥完全独立, 可由用户的钱包软件生成并管理, 无需区块链或者网络连接。用户的钱包地址就是由私钥通过椭圆曲线加密生成公钥, 进而生成以0x开头的42位地址。 私钥的样式为 64 位 16 进制的哈希值字符串, 例如: 56f759ece75f0ab1b783893cbe390288978d4d4ff24dd233245b4285fcc31cf6 
 
PS: 用户可以使用明文私钥导入 imToken , 用新的密码生成一个新的 Keystore (记得要将旧的 Keystore 删除), 用这种方法来修改钱包密码。
 

去中心化

在一个分布有众多节点的系统中,每个节点都具有高度自治的特征。节点之间彼此可以自由连接,形成新的连接单元。任何一个节点都可能成为阶段性的中心,但不具备强制性的中心控制功能, 没有单一方控制数据或信息。节点与节点之间的影响,会通过网络而形成非线性因果关系。这种开放式、扁平化、平等性的系统现象或结构,我们称之为去中心化。区块链上的每一方都可以访问整个数据库及其完整的历史记录。 直接验证其交易合作伙伴的记录,而无需中间人。
 
例如用户在使用 imToken 进行 P2P 交易时, imToken 并不会充当第三方担保的角色, 一切行为都是用户自主发起, 就像私钥、助记词和 Keystore 这些钱包信息, 都是本地保存在用户的手机里, 并没有保存在 imToken 的数据库中, 所以用户要做好安全措施, 一旦丢失, imToken 无法帮你找回资产。
 

关于钱包的一些概念

标签:找回密码   sem   强制   blog   证明   安全   lex   公钥   不可   

原文地址:https://www.cnblogs.com/lukunlun/p/8358791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!