[转]简单科普私钥、地址、助记词、Keystore的区别

本文转自: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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/freeliver54/p/10214514.html

时间: 2024-10-09 08:44:13

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

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

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

BIP39助记词生成简单流程

其实,bip39之前有过一些了解,但是都没有过深入的探索,最近具体学习下,顺便记录下: 1.首先,随机生成一个长度为32倍数的128-256位的二进制类型,我们把它称之为熵: 2.对这个生成的熵做sha256计算,取结果的前8位:(这里说明下,虽然取了8位,但是不一定全部用上,具体使用的位数计算:n = 熵的位数/32) 3.用熵与上一步中前n位进行拼接(熵放前),获得一个大整型(我们一般称这n位为校验位): 这里也说明下,之前我看到网上有人说是将熵以32位分割,然后每段末尾插入1个校验位,于是

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

以太坊系统学习教程: https://www.netkiller.cn/blockchain/bip39.html BIP:39 层:应用层 标题:使用助记词生成确定性钱包秘钥 作者:Marek Palatinus [email protected] Pavol Rusnak [email protected] Aaron Voisine [email protected] Sean Bowe [email protected] 状态:已经被提议 类型:标准化跟踪 创建日期:2013-09-10

助记词是什么,有什么用?

玩加密货币的朋友相信对助记词都不陌生,我们在使用钱包之前,会让你备份12个单词,在备份期间不允许截图操作,并且不断强调这12个单词非常重要,最好用物理方式备份,备份时身边不要有任何人. 对于普通用户来说,如果只是一味的向他们强调助记词重要性的结论,而不告诉背后的原因的话,是很难调动起人的底层动力的,很可能过几天就忘了助记词的重要性(小编已经看过不少在群里呼唤自己因为助记词丢失而导致破产的杯具). 助记词的英文是Mnemonic,在大部分人的印象中,助记词=私钥,是导入钱包的工具,其实准确的说,助

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

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 背景知识 Bytom 使用的 密钥类型为基于 ed25519 的 chainkd.XPub 代码见 bytom/crypto/ed25519/chainkd 文档见 https://chain.com/docs/1.2/protocol/specifications/chainkd` 预备 代码修改 首先适

如何开发一款以太坊(安卓)钱包系列1 - 通过助记词创建账号

上周我开源了一款钱包,反映很好,一周时间不到已经快到100 Star.接下来我会几篇系列文章把开发以太坊钱包的核心要点写出来,也算是对代码的一个解读. 写在前面 钱包是使用Android安卓平台编写,使用的是原生代码Java 语言编写, 是基于Java 1.8 版本,也使用了Java 1.8 中一些较新的语言特性,如 Lambda表达式等:另外还较多使用了ReactiveX/RxAndroid响应式编程用法. 在本系列文章中,重点是介绍以太坊钱包账号.交易等逻辑,有时可能会假定读者已经了解And

php实现以太坊助记词

以太坊助记词PHP开发包用来为PHP以太坊应用增加助记词和层级确定密钥支持能力.下载地址:以太坊助记词php开发包 . 1.开发包概述 以太坊助记词PHP开发包主要包括以下特性: 生成符合BIP39标准的助记词 将BIP39助记词转换为符合BIP32标准的层级确定密钥 支持BIP44多币种层级确定性钱包规范 兼容imtoken.metamask等常见钱包的助记词与密钥/地址转换 以太坊助记词PHP开发包运行在Php 7.1+环境下,当前版本1.0.0,主要代码文件清单如下: <table cla

《C++运算符优先结合助记词》

===================================== (新手上路一原创,共20 +1句) 作用类名全: 点箭标调构: 后增减运明转: 前增减非位反,正负解尺址换,新删数组无异常: 成员指针解引用: 乘除模: 加和减: 左移右移: 小于大于: 等于不等: 位与: 位异: 位或: 逻与: 逻或: 条件: 赋值: 复赋值: 抛出异常: 逗. (注:)一三赋值复赋值,抛出异常右.

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

简单科普下hosts文件原理与制作 hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址.hosts文件通常用于补充或取代网络中DNS的功能.和DNS不同的是,计算机的用户可以直接对hosts文件进行控制. 为了方便用户记忆,我们将IP变成一个个的域名来输入到浏览器进行访问.而这使得访问网站时要先将其域名解析成 IP .DNS (Domain Name Server) 的作用就是进行 IP 解析,把域名对应到 IP.在 Great FireWa