本文转自:https://www.jianshu.com/p/d0a4a44685d3

很多人保管不好自己的虚拟财产,发生丢币的情况,很多都是因为不清楚私钥的概念。

私钥(Private Key)

比特币的私钥是由64位十六进制的字符组成,长得像这样,比如:5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss。

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

目前已存在的比特币私钥仅仅只有几百万个,在理想的随机生成方式下(用密码学安全的随机数生成器),如果说你所生成的私钥恰好跟别人的私钥一样,这种概率也是几乎为0。

私钥的本质就是个随机数。只不过这个数字是固定长度的,且是16进制的表现形式。

地址

大家都知道,公钥跟私钥是成对的,公钥由私钥计算而来,地址则通过公钥进一步计算而来。要注意:地址不是公钥,不要混淆概念。总之,有了私钥,就可以推导出它的公钥以及地址,地址一般长这样:1GczaiHaFpmucRHRe88RXCAVZ6gTZAoS57(这是我的比特币地址,打赏可以转我比特币试试:)),一般长34位,由私钥可以根据算法推导出地址,但有地址不能逆推出私钥,这是比特币所使用的密码学的根基逻辑。

所以,地址可以随便公开,而私钥则万万不能公开。

助记词(Mnemonic Phrase)

由于私钥64位,长得太难看,没有可读性,而私钥的备份在电脑上复制起来容易,手抄下来就比较麻烦,但私钥保存在联网的电脑上毕竟不安全,有被其他人看到的风险,于是有了助记词工具,利用某种算法可以将64位私钥转换成十多个常见的英文单词,这些单词都来源于一个固定词库,根据一定算法得来。私钥与助记词之间的转换是互通的,助记词只是你的私钥的另一种外貌体现

助记词一般会在你创建新钱包的时候出现一次,后面就再也不会出现了,所以创建新钱包时最好把助记词抄下来、甚至放到保险柜里,自己想办法备份。如果是屏幕截图或保存在电脑里,只要设备联网都有被第三只眼看见的风险。别人获取了你的助记词等于获取了私钥所对应的一切财富。

简而言之:助记词就等于私钥,私钥就是钱,都千万不能见光。

脑钱包

看到这里,那脑钱包就很容易理解了,脑钱包的意思就是说你自己先想好一串你独有的英文单词,这串英文单词就可以作为你的私钥。通过一定的计算机算法即可将这串英文字符转化成64位的私钥和地址。

这是以一个脑钱包工具可以参考:http://idgui.com/N/

这样你就只需要记住你特有的英文句子,这样就可以用脑子记住私钥,让你的虚拟财富存在你的脑子里,没有实物存在,除了严刑逼供,任何人都获取不了。

当然,这样做也有一定的风险,抛开失忆不说,人是情感动物,无法做到电脑般冷冰冰的随机,写出的单词句子总是有规律可循的,如果仅仅是一句名人名言,或者是书里的某个句子,很容易就被计算机破解了。总的来说,私钥的生成方式主要来自随机,越不随机越容易被破解。

钱包

上面说的脑钱包仅是一种非常特殊的钱包,虚拟概念不存在,连软件都不是,通常的钱包软件服务商,主要就三个功能:

  • 随机数生成器,用来生成你的私钥及地址。
  • 私钥管理器,你可以给钱包配上密码,只有你能”打开“钱包,看到私钥。
  • 接入比特币网络,接受、发送比特币。

只要你拥有私钥,选择任何钱包服务商都可以把你连接到比特币网络,看到你的私钥,查到自己的余额。

Keystore

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

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

总结:

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

作者:苏江同学
链接:https://www.jianshu.com/p/d0a4a44685d3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

[转]简单科普私钥、地址、助记词、Keystore的区别的更多相关文章

  1. [币严BIZZAN区块链]Java生成ETH钱包助记词、私钥、地址

    本文主要介绍在Java工程中如何生成ETH钱包的助记词.私钥.地址. 一.在之前创建的spring boot 项目中的 pom.xml文件中加入需要的依赖 <dependency> < ...

  2. 1.16. BIP39协议:使用助记词生成确定性钱包

    以太坊系统学习教程: https://www.netkiller.cn/blockchain/bip39.html 1.16. BIP39协议:使用助记词生成确定性钱包 BIP:39 层:应用层 标题 ...

  3. 非对称加密, 助记词, PIN, WIF

    一钱包 1.1非对称加密, 助记词, PIN, WIF, 地址 1.1.1 非对称加密算法 非对称加密算法, 加密与解密使用不同的KEY, 我们分别称为私钥与公钥,其中可以通过私钥生成公钥 在比特币中 ...

  4. [转]HD钱包的助记词与密钥生成原理

    本文转自:https://blog.csdn.net/opassf/article/details/79978047 区块链相关的话题持续发酵之时,应该不少人知道加密货币钱包,钱包是普通用户与加密货币 ...

  5. Bytomd 助记词恢复密钥体验指南

    比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 背景知识 ...

  6. 以太坊 生成助记词和infuru插件

    https://iancoleman.io/bip39/ https://infura.io google faucet : https://faucet.rinkeby.io/ 登录google账号 ...

  7. [三] java虚拟机 JVM字节码 指令集 bytecode 操作码 指令分类用法 助记符

    说明,本文的目的在于从宏观逻辑上介绍清楚绝大多数的字节码指令的含义以及分类 只要认真阅读本文必然能够对字节码指令集有所了解 如果需要了解清楚每一个指令的具体详尽用法,请参阅虚拟机规范 指令简介 计算机 ...

  8. 简单科普下hosts文件原理与制作

    简单科普下hosts文件原理与制作 hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址.hosts文件通常用于补充或取代网络中DNS的功能.和DN ...

  9. 004-JVM指令集(指令码、助记符、功能描述)

    一.JVM指令助记符 1)操作数栈 变量到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_ 操作数栈到变量:i ...

随机推荐

  1. 初识大数据(三. Hadoop与MPP数据仓库)

    MPP代表大规模并行处理,这是网格计算中所有单独节点参与协调计算的方法. 是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果. MPP DBMS是 ...

  2. Forward团队-爬虫豆瓣top250项目-最终程序

    托管平台地址:https://github.com/xyhcq/top250 小组名称:Forward团队 小组成员合照: 程序运行方法: 在python中打开程序并运行:或者直接执行程序即可运行 程 ...

  3. C语言常识

    struct tree{ struct tree *left; struct tree *right; }; typedef struct tree newtree; int main(int arg ...

  4. 本学期Windows编程微型技术博客上线!

    将两篇报告生成超链接模式方便阅读,以下为链接: https://files.cnblogs.com/files/Kitty-/Windows编程微型技术报告一.pdf https://files.cn ...

  5. SQL Server 存储过程的运用

    概述 最近因为业务的需求写了一段时间存储过程,发现之前写的存储过程存在一些不严谨的地方,特别是TRY...CATCH中嵌套事务的写法:虽然之前写的并没有错,但是还是埋藏着很大的隐患在里面.希望这篇文章 ...

  6. mysql 取名会涉及到关键字 的问题

    如 comment 如下图错误

  7. 暴走Python之运算符与条件语句

    本文原创作者:LoneliNess,本文属i春秋原创奖励计划,未经许可禁止转载   本文来源:i春秋学院   i春秋(ichunqiu.com)网络安全平台能提供专业的网络安全技术.网络渗透技术.网络 ...

  8. Javascript高级编程学习笔记(40)—— DOM(6)CDATASection、DocumentType

    CDATASection类型 CDATASection类型是只针对XML文档的类型 因为浏览器无法解析 在浏览器中创建CDATASection的函数也无法正常使用 该类型有以下属性 nodeType: ...

  9. eclipse使用和快捷键

    一.快捷键 - ctrl + shift + o 导包 - ctrl + shift + t 快速查找某个类 - 先按ctrl + 2 ,再点L, 创建变量并命名 - ctrl + o , 在当前类中 ...

  10. Python开发端口扫描器

    首先是最常用的端口扫描器: 虽说有nmap等强大的工具,不过如果由于条件限制无法安装Nmap呢? 我这个脚本写的比较简单,默认扫描1-65535全部的端口 实际的话,可以根据需要自己修改脚本来实现定制 ...