比特币源码私钥生成
1. 鎬庝箞鏍峰煎嚭绉侀挜bitcoi
鎬庝箞瀵煎嚭绉侀挜bitcoin
鍦ㄦ瘮鐗瑰竵缃戠粶涓锛屾瘡涓鍦板潃閮藉瑰簲鐫涓涓绉侀挜銆傜侀挜鏄涓涓鐢64涓瀛楃︾粍鎴愮殑闅忔満瀛楃︿覆锛屽畠鍙浠ョ敤浜庣敓鎴愭暟瀛楃惧悕锛屼粠鑰屼娇寰楁瘮鐗瑰竵缃戠粶涓鐨勪氦鏄撳緱浠ュ畬鎴愩
浠ヤ笅鏄瀵煎嚭姣旂壒甯佺侀挜鐨勬ラわ細
鎵撳紑浣犵殑姣旂壒甯侀挶鍖呰蒋浠讹紝閫夋嫨浣犳兂瑕佸煎嚭绉侀挜鐨勬瘮鐗瑰竵鍦板潃銆
鎵惧埌鈥滃煎嚭绉侀挜鈥濇垨鈥滄樉绀虹侀挜鈥濈殑閫夐」銆傚湪澶у氭暟姣旂壒甯侀挶鍖呰蒋浠朵腑锛岃繖涓閫夐」閫氬父鍦ㄢ滆剧疆鈥濇垨鈥滃畨鍏ㄢ濊彍鍗曚笅銆
杈撳叆浣犵殑閽卞寘瀵嗙爜銆備竴浜涢挶鍖呰蒋浠跺彲鑳介渶瑕佷綘杈撳叆瀵嗙爜鎵嶈兘鏄剧ず绉侀挜锛屼互纭淇濆彧鏈夋巿鏉冪敤鎴锋墠鑳界湅鍒扮侀挜銆
鏄剧ず绉侀挜銆傚湪鏌愪簺閽卞寘杞浠朵腑锛屼綘闇瑕佸崟鍑烩滄樉绀虹侀挜鈥濇寜閽鎵嶈兘鐪嬪埌绉侀挜銆傚湪鍏朵粬杞浠朵腑锛岀侀挜鍙鑳戒細鑷鍔ㄦ樉绀哄嚭鏉ャ
澶囦唤绉侀挜銆傜侀挜闈炲父閲嶈侊紝鍥犱负濡傛灉鏈変汉鑾峰緱浜嗕綘鐨勭侀挜锛屼粬浠灏卞彲浠ヨ块棶浣犵殑姣旂壒甯佸苟杩涜屼氦鏄撱傚洜姝わ紝璇峰姟蹇呭囦唤绉侀挜锛屽苟灏嗗叾瀛樻斁鍦ㄥ畨鍏ㄧ殑鍦版柟锛屼緥濡傜荤嚎瀛樺偍璁惧囨垨绾歌川澶囦唤銆
璇锋敞鎰忥紝濡傛灉浣犱笉纭瀹氬備綍瀵煎嚭绉侀挜鎴栦笉鐔熸倝姣旂壒甯侀挶鍖呯殑鎿嶄綔锛屾渶濂戒笉瑕佸皾璇曡嚜琛屾搷浣溿傝繖鍙鑳戒細瀵艰嚧姣旂壒甯佺殑涓㈠け鎴栬鐩椼傚湪杩欑嶆儏鍐典笅锛屾渶濂藉悜涓撲笟浜哄+鎴栫粡楠屼赴瀵岀殑姣旂壒甯佺敤鎴峰绘眰甯鍔┿
2. 管好你的“钱包”
Kiwi(WeChat:Kiwind)
一:什么是私钥?助记词?什么是明文私钥?以及什么是keystore ?
1、私钥: 随机生成的,用来解锁对应(钱包)地址的一串字符。生成一个比特币地址的同时就会有一个私钥被生成,严格来说是, 先生成私钥,然后通过私钥使用加密函数来计算出地址 。作为用户,我们很少会直接看到私钥,一般情况下,私钥是被存储在钱包文件里,由钱包软件进行管理。下面就是一个比特币私钥:
这是对应私钥生成的地址:
2、助记词: 其实是 明文私钥的另一种表现形式 ,因为私钥是一个64位的哈希值,非常复杂。所以通过助记词将其简化。
3、明文私钥:未加密的私钥。这意味着任何人只要拿到你的明文私钥,就可以控制你的钱包资产。 我们时常会听说用户被盗币了,其实就是私钥泄露,币被转走。有时候我们会把地址比作银行卡号,私钥比作银行卡密码。所以说保护好自己的私钥有多重要。
4、keystore : 是 加密过后的私钥 ,需要用用户生成这个文件时设置的密码解开,才能够进行交易操作。如果你备份了keystore 但是忘记了自设密码,那么就尴尬了。所以keystore 的同时,也要记住密码。
二:如何导入钱包?
以imToken为例:
1、官方钱包导入
2、助记词导入
3、私钥导入
注意 :
1、imToken目前无法导出明文私钥,只能导出助记词和Keystore,但是可以导入明文私钥。
2、明文私钥可以去MyEtherWallet,先将Keystore导入,然后导出明文私钥。具体操作步骤如下:
(1)登陆 myetherwallet.com
(2)点击View Wallet Info(查看钱包信息),后选择Keystore File,在右侧的灰色区域上传Keystore文本信息,注意要.txt格式。
(3)上传完成,输入imToken上设置的钱包密码,点击Unlock解锁。
(4)导出明文私钥(切记安全保存)。
3、使用imToken的ETH钱包时,用Keystore导入钱包时,输入的是之前的密码。用助记词和私钥导入钱包时,输入的是新的密码。所以一旦助记词被盗,黑客是可以设置新的密码的!
具体说明请看下这篇来自“乌托邦皮条社”彭皓的文章:
http://mp.weixin.qq.com/s/5uNosRiiqpeTYOVR7i2TrQ
3. 【区块链】比特币私钥、公钥、签名
在 了解区块链的基础名词概念 提到地址由字符和数字组成,但没有说明怎样产生的。银行卡号由银行核心系统生成,那比特币地址是通过什么生成的呢?看下图:
对于刚接触比特币的小白来说,看到这张图就蒙圈了,究竟什么是私钥、公钥,为什么生成个地址要这么麻烦吗?
现在请大家记住这句话: 私钥通过椭圆曲线相乘生成公钥,使用公钥不能导推出私钥;公钥通过哈希函数生成比特币地址,地址也无法导推出公钥 。
通过这么复杂算法才算出地址,那私钥和公钥只是为了生成地址吗?不是的,他们还有其他用途,我们先了解下私钥和公钥。
现在已经讲解地址、挖矿、工作量证明、算力、区块、区块链等等的概念,不知大家还有印象吗?如果忘记请温习这些概念,因为后续很多地方都会用到这些概念。明天讲解下区块链有哪些特点。
参考书籍:《精通比特币》
区块链知识专题:
比特币记账方式(区块链知识2)
了解块链的基础名词概念(区块链知识1)
4. bitcoin私钥是如何产生的
比特币地址和私钥是怎样生成的?比特币使用椭圆曲线算法生成公钥和私钥,选择的是secp256k1曲线。生成的公钥是33字节的大数,私钥是32字节的大数,钱包文件wallet.dat中直接保存了公钥和私钥。我们在接收和发送比特币时用到的比特币地址是公钥经过算法处理后得到的,具体过程是公钥先经过SHA-256算法处理得到32字节的哈希结果,再经过RIPEMED算法处理后得到20字节的摘要结果,再经过字符转换过程得到我们看到的地址。这个字符转换过程与私钥的字符转换过程完成相同,步骤是先把输入的内容(对于公钥就是20字节的摘要结果,对于私钥就是32字节的大数)增加版本号,经过连续两次SHA-256算法,取后一次哈希结果的前4字节作为校验码附在输入内容的后面,然后再经过Base58编码,得到字符串。
5. 比特币地址是怎么产生的
比特币使用椭圆曲线算法生成公钥和私钥,选择的是secp256k1曲线。生成的公钥是33字节的大数,私钥是32字节的大数,钱包文件wallet.dat中直接保存了公钥和私钥。我们在接收和发送比特币时用到的比特币地址是公钥经过算法处理后得到的,具体过程是公钥先经过SHA-256算法处理得到32字节的哈希结果,再经过RIPEMED算法处理后得到20字节的摘要结果,再经过字符转换过程得到我们看到的地址。这个字符转换过程与私钥的字符转换过程完成相同,步骤是先把输入的内容(对于公钥就是20字节的摘要结果,对于私钥就是32字节的大数)增加版本号,经过连续两次SHA-256算法,取后一次哈希结果的前4字节作为校验码附在输入内容的后面,然后再经过Base58编码,得到字符串。乔曼特区块链专业站链乔教育在线是从事区块链相关培训,且获得教育部认证的区块链专业培训工作站。
6. 物理比特币如何得到里面的私匙
比特币的私钥就是随机的256位数字,由0和1组成的二进制数字。这串数字是由可靠的随机数生成器生成。
然后把这些2进制数转换成16进制,再转换成大写字母就获得了现在比特币钱包客户端中导出的私钥格式.
或者对这个256位二进制数再进行哈希256得到的结果也可以用来当作私钥。
7. 入门科普:比特币的私钥、公钥和地址是什么
上一篇,我们讲到了币圈要注意防范传销、洗钱等一类的骗局,保护好自己的资产。这一篇,我要告诉大家,进行比特币交易时,都会用到的私钥、公钥与地址,如果你还不了解它们的重要性,随便交易,很容易弄丢自己的资产。那什么是私钥、公钥与地址?三者之间有着什么样的关系呢?
01
私钥
1.导出:
创建钱包后,输入密码可以导出私钥,私钥由很长的字符串组成,且是随机生成的, 一个地址只有一个私钥。
2.用途:
用于控制交易时的签名,拥有私钥才能控制账户的资金,相当于银行账户的交易密码,用来解密公钥加密的信息。
3.注意事项:
私钥是用来证明这笔交易的发起人确实是比特币的所有者。所以 私钥一定不能曝光,私钥一旦泄露,你的比特币将会有被盗的风险。 用户必须保管好私钥,防止泄露或丢失。
02
公钥
1.导出:
公钥是由私钥通过算法生成的,使用了椭圆曲线加密, 通过私钥可以计算出唯一的公钥。
2.用途:
公钥是用来验证交易的签名,一个私钥签名的数据,只有对应的公钥才能对其进行验证,公钥相当于银行账户,公开后无风险。
03
地址
1.导出:
地址由公钥生成的,使用了哈希运算。创建钱包后会生成一个以“0x” 开头的 42 位字符串,这个字符串就是钱包地址,一个钱包对应一个钱包地址, 地址唯一且不能修改,也就是说一个钱包中所有代币的转账收款地址都是一样的。
2.用途:
由于公钥太长,在交易中不方便使用,所以就有了地址,地址是由公钥生成的,地址相当于银行卡号,用来发送和接收比特币。
3.注意事项:
平台上不同代币的转账收款地址一般都不同,因此,转币到交易平台前一定要确认好地址。
总结
私钥 → 公钥 → 钱包地址 (不可逆)
私钥用来签名交易,公钥用来验证私钥签名的交易,地址用来收款。
公钥、私钥以及地址都在比特币交易中起到了不同的作用,所以才能顺利的完成一笔数字货币的交易。 所以用户必须好好保存,防止泄露重要信息。
8. 每个比特币都有一个不一样的私钥吗
每个人的比特别钱包中有多个比特币地址,每个比特币地址代表一定数量的比特币。而比特币地址是通过一个公钥通过哈希(RPIEMD+SHA)生成的,这个公钥又是由私钥通过椭圆曲线(ECC)生成的。私钥保存在比特币钱包中,不应泄露出去。而公钥在付款交易时,需要和比特币地址一起,通过交易记录公开发布,由区块链系统验证付款交易的有效性。
9. 比特币的密钥是怎么样
比特币的密钥是怎么样
比特币的密钥可以分为私钥和公钥。
私钥是一个256位的随机数,它是由比特币钱包生成的,并且只有钱包的所有者才能知道它。私钥是比特币交易的核心,因为只有持有私钥的人才能对其进行签名,从而授权比特币的转移。
公钥是由私钥通过一种数学算法生成的。具体来说,公钥是通过将椭圆曲线加密的私钥进行解密而生成的。公钥通常用于接收比特币,因为人们可以将其公开共享,而不会泄露私钥。
比特币地址是由公钥通过一种哈希算法生成的。比特币地址是一串长长的数字和字母,可以用来接收比特币。任何人都可以看到比特币地址,但只有持有私钥的人才能授权比特币的转移。
因此,私钥是比特币安全的基石,因为只有私钥持有人才能对比特币进行控制。任何其他人都不能够访问或操纵持有人的比特币,除非私钥持有人授权或泄露了私钥。