当前位置:首页 » 比特币问答 » 比特币私钥计算地址

比特币私钥计算地址

发布时间: 2025-01-23 07:45:08

⑴ 4.比特币的密钥、地址和钱包-精通比特币笔记

比特币的所有权是通过密钥、比特币地址和数字签名共同确定的。密钥由用户保存,或利用钱包软件生成及管理。比特币的交易必须附带有效签名才会被记录在区块中,因此掌握密钥即拥有对应账户中的比特币。密钥分为公钥和私钥,公钥相当于银行账号,私钥则相当于银行卡密码。通常,用户不直接使用密钥,而是由钱包软件管理。比特币地址通常由公钥计算得来,也可以由比特币脚本生成。
比特币私钥是数字形式,由比特币系统随机生成,然后将私钥作为输入,使用椭圆曲线算法生成对应的公钥,再将公钥作为输入,使用单向加密哈希函数生成地址。例如,通过公钥K得到地址A的计算方式为:其中SHA256和PIPEMD160被称为双哈希或HASH160,Base58Check是带有验证功能的Base58编码。公钥有两种格式:压缩格式和非压缩格式。公钥是椭圆曲线上的一个点,由一对坐标(x, y)表示,加上前缀,公钥可以表示为:前缀 x y。
密钥可以采用不同的编码格式,得到的编码后结果虽然不同,但密钥本身没有任何变化。公钥也有很多种格式,最重要的是公钥被分为压缩格式和非压缩格式。密钥的压缩格式可以节省一定的存储空间。椭圆曲线实际上是一个方程,而公钥是椭圆曲线上的一个点,那么公钥即为方程的一个解。如果公钥中只保留x,那么可以通过解方程得到y。压缩格式的公钥格式有两个前缀是因为对y²开方,会得到正负两个解。所以压缩格式的公钥可以表示为:前缀x。
比特币钱包的主要功能是保管比特币私钥。比特币钱包有很多种,比如非确定性钱包和确定性钱包。非确定性钱包会生成多个私钥,每个私钥仅使用一次。确定性钱包拥有一个公共种子,可以生成所有私钥。助记码词汇是一种备份钱包的方式,单词的顺序就是钱包的备份。BIP0038提出了一个加密标准,使用口令加密私钥并编码,保持密钥在任何可能被暴露情况下的安全性。
HD钱包是另一种重要的钱包,提供了随机钥匙的两个主要优势。第一,树状结构可以表达额外的组织含义。第二,它可以允许使用者建立公共密钥序列而不需要访问相对应的私钥。BIP0038加密方案适用于纸钱包等离线存储方式。P2SH函数用于多重签名地址脚本,需要多个签名才能消费资金。

⑵ 如何生成一个比特币地址(含代码实现)

生成比特币地址的流程和代码实现如下:

首先,生成一个256位的数作为私钥。

然后,使用ECDSA-secp256k1算法计算公钥,并在开头加上0x04成为非压缩公钥。

如果需要,将非压缩公钥转为压缩公钥,通常从完整公钥中取出x坐标,根据y坐标最后一个字节是偶数或奇数,在x坐标开头添加0x02或0x03。

计算公钥的SHA-256哈希值。

接着,计算上述哈希值的RIPEMD-160哈希值。

在哈希值结果中加入地址版本号,例如比特币主网版本号"0x00"。

计算上一步结果的SHA-256哈希值。

再次计算上一步结果的SHA-256哈希值。

取上一步结果的前4个字节(8位十六进制数),D61967F6,将其加在第五步结果的后面,作为校验,这就是比特币地址的16进制形态。

最后,将上一步结果用base58编码,得到的是最常见的比特币地址形态。

下面附上代码实现示例:

使用Python生成随机私钥并转换成地址:

指定私钥并转换成地址:

代码实现中,Python因其简洁易用,使得生成比特币地址的过程更为高效。对Python感兴趣的知友不妨一试,快速上手,完成任务。

⑶ 比特币的私钥怎么生成的

私钥是密文持有人设置的随机的数字。
私钥的生成是随机的数字,通过抛硬币将正面向上的计为0,反面向上计为1,连续抛256次,就随机得到一个256位的二进制数字。生成了私钥,就可以通过加密函数来生成一个地址。私钥是一个64个字符长的代码,包括字母a到f和数字1到9的任何混合。

⑷ 管好你的“钱包”

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

⑸ 比特币的地址、公钥、私钥,你都了解了吗

了解比特币,就不可避免地要掌握什么是比特币的地址、公钥、私钥,下面我们一个一个来解释。

地址,就好比是银行账(卡)号,在创建数字钱包后就会自动生成,简单来说,就是创建钱包的时候,先产生一对私钥和公钥,然后公钥通过一套算法生成地址,这个地址实质上是一串字符,比如。

像银行账(卡)号可以用来收款一样,比特币地址也可以用来接收比特币。

这个比特币地址不单单给你转币的人知道,连整个比特币网络的人都能查看,可以说,全球所有用户的地址都可以被任何人知道。为什么这样说呢?因为比特币本质就是一个大型的公开账本,所有交易对所有人都是可见的。而交易记录中包括了交易流水单号、发币人的发币地址、收币人地址、发币人的找零地址。

私钥,可以看作是银行密码,是一串很长的由钱包生成的随机数,比如, LBB9ZXMCJ。私钥是唯一能够证明你拥有的比特币是属于你的,也只有用私钥才能转账、交易和使用数字钱包里的比特币。

我们都知道了,银行密码绝对不能泄露给别人,私钥也一样,打死也不要告诉他人,否则你的比特币很容易就被转走。银行的钱被盗了,因为有国家监管和第三方信用,还有可能被追回,但比特币是去中心化的,没有第三方,自己的币只能自己负责看管,丢了,或被他人转走了,就永远拿不回来了。所以千万千万不要把私钥告诉他人,不要把私钥保存在手机或者电脑上,不要通过网络传输你的私钥,那怎么办?记住了,要用笔写在纸上,写两到三份分别放在不同的地方,保管好。

公钥,顾名思义,是可以公开的,也是像地址和私钥一样,是一串长长的字符。公钥由私钥通过椭圆曲线加密算法生成,通过私钥可以算出唯一一个公钥,但公钥不能逆向推导出私钥。

那到底比特币地址、公钥、私钥在交易中起什么作用的呢?

首先,钱包通过加密算法把私钥加密成字符串(也叫作签名),然后把这个字符串,和公钥一起写到交易信息里,再发给矿工。矿工收到信息后,就会将签名、公钥写入一个验证函数,如果得出的结果为“true”,那么这个交易会被确认为真实有效,就能被验证通过。而结果为“false”,则说明这笔交易存在问题,不能被验证通过。

通过以上浅显的文字,希望能帮到你对比特币的地址、公钥和私钥有一个初步的了解吧!感谢你的阅读!

⑹ 聊聊钱包、私匙、公匙和地址

自从比特币诞生伊始,与此相关的私钥、公钥、地址等名词概念就不断出现在大众眼前,那么这四个概念之间是什么样的关系呢?今天就给大家简单聊一些相关的专业名词和背后的逻辑。

1 这些名词的关系是什么样的?

如果用一句话说明这几个名词的关系,那就是: 钱包生成私钥 → 私钥生成公钥 → 公钥生成公钥哈希 → 公钥哈希生成地址 → 地址用来接受比特币 ,简单吧,能听懂吧。

2 这几个名词究竟是什么东西?

还是一句话概括, 除了钱包是软件以外,剩下的四个都是长度不一的字符串 ,比如私钥是52位的字符串,地址是34位的字符串。

3 这四个字符串分别从哪里来的?

私钥 由钱包软件随机生成,随后用密码算法生成公钥和地址,如果用等式表示的话,可写成如下形式:

公钥=算法1(私钥)

公钥哈希=算法2(公钥)

地址=算法3(公钥哈希)

所以, 地址 =算法3(算法2(算法1(私钥)))

其中,算法1,算法2,算法3都是公开的算法。

4 这几个字符串哪个必须保密,哪个可以公开?

私钥绝对不能公开 ,因为有了它本质上就取得了对应比特币的所有权。

地址可以公开 ,因为它是用来接受比特币的, 公钥和公钥哈希也可以公开 ,不过一般情况下你看不到。

5 为什么地址和公钥可以公开?

因为 即使被别人知道了地址和公钥,对方也推算不出你的私钥,也就掌握不了你的比特币 。

为什么推算不出?

举个例子。电影《模仿游戏》中,英军即使在得到了engima密码机(算法)后仍然无法破解德军的密码,原因就是德军每次发信息都会用一个新的口令(私钥)作为起始点。在不知道口令的前提下,进行反向暴力破解大概需要几千万年,不过最后因为刻板的德国人每次都用同一个口令作为起点,而这个口令还是自然语言,导致密码被破解。

所以,每次交易的时候才会要求生成一个新的私钥,然后得到一个新的地址,这样你的交易安全性就有了很大的保障。

6 做自己开心的事

从上面的描述我们可以推出,私钥的本质是一个复杂数学问题的解,当有人向公开地址发送比特币时,其实是在向全网所有比特币客户端发出了一道数学题,而这道题目的正确解,就是你的私钥。因为那道题是用你的私钥生成的呀,所以只有你能在第一时间回答出答案,于是比特币就归你了,因此 私钥千万不能告诉别人。

如何找到私钥并妥善保管?

在bitcoin-qt软件中,进入windows debug或者调试窗口,在命令行下输入 getaddressbyaccount 命令可以查看所有已经生成的钱包地址。选取其中一个地址,然后用 mpprivkey  “地址”命令就能看到私钥了(54位字符串)。

下图是用getaddressbyaccount “”命令查看地址列表,用mpprivkey查看私钥的截图,注意第一张图中由于钱包是加密的,所以直接打mpprivkey命令是看不到私钥的。

输入钱包密码后才能用mpprivkey命令看到私钥。

刚已经说了私钥非常的重要,它是真正决定比特币归谁的证明。私钥在bitcoin-qt客户端里,实际上是存在于一个叫wallet.dat的文件里的,而且刚安装的bitcoin-qt客户端是不设密码的。万一电脑落入不法分子手中或被黑客攻击,导致私钥丢失,就狠尴尬了,所以一定要设置密码,且密码一定要遵守随机复杂大小写字符数字都有的规则。建议用专门的密码生成软件生成,关于密码软件,找机会专门说一下。

特别注意,千万千万千万记住了,一定不要把密码给忘了!因为你 忘了密码就打不开钱包 wallet.dat 文件了,也就找不到私钥了 ,然后,就没有然后了。

我就发生过刚开始倒腾钱包把密码搞错了,然后打不开钱包的尴尬,最后只好怒删wallet.dat文件,让系统再自己生成一个,这时候的感觉大约相当于把一笔钱埋在了宇宙某颗星球上,然后把坐标图搞丢了,因为比特世界只认私钥不认身份证,你掉了就是掉了,再也找不回来了。

不过正因为比特币的所有权是依靠私钥确认的,也就有个最狠的保存办法,老猫也提过,那就是,找到私钥后记在纸上,然后把纸锁在保险柜里,或者干脆记在脑子里,不过54位的字符串谁特么能记住?然后把电脑上的客户端连同钱包文件一起删除。

好了,关于钱包客户端,大概就说这些吧,相关知识我也是刚开始了解,随着了解信息的增加,可能会有更新的认识,到时候会再写出来。

千万注意,千万注意,千万注意不要搞丢了私钥。

⑺ ​入门科普:比特币的私钥、公钥和地址是什么

上一篇,我们讲到了币圈要注意防范传销、洗钱等一类的骗局,保护好自己的资产。这一篇,我要告诉大家,进行比特币交易时,都会用到的私钥、公钥与地址,如果你还不了解它们的重要性,随便交易,很容易弄丢自己的资产。那什么是私钥、公钥与地址?三者之间有着什么样的关系呢?

01

私钥

1.导出:

创建钱包后,输入密码可以导出私钥,私钥由很长的字符串组成,且是随机生成的, 一个地址只有一个私钥。

2.用途:

用于控制交易时的签名,拥有私钥才能控制账户的资金,相当于银行账户的交易密码,用来解密公钥加密的信息。

3.注意事项:

私钥是用来证明这笔交易的发起人确实是比特币的所有者。所以 私钥一定不能曝光,私钥一旦泄露,你的比特币将会有被盗的风险。 用户必须保管好私钥,防止泄露或丢失。

02

公钥

1.导出:

公钥是由私钥通过算法生成的,使用了椭圆曲线加密, 通过私钥可以计算出唯一的公钥。

2.用途:

公钥是用来验证交易的签名,一个私钥签名的数据,只有对应的公钥才能对其进行验证,公钥相当于银行账户,公开后无风险。

03

地址

1.导出:

地址由公钥生成的,使用了哈希运算。创建钱包后会生成一个以“0x” 开头的 42 位字符串,这个字符串就是钱包地址,一个钱包对应一个钱包地址, 地址唯一且不能修改,也就是说一个钱包中所有代币的转账收款地址都是一样的。

2.用途:

由于公钥太长,在交易中不方便使用,所以就有了地址,地址是由公钥生成的,地址相当于银行卡号,用来发送和接收比特币。

3.注意事项:

平台上不同代币的转账收款地址一般都不同,因此,转币到交易平台前一定要确认好地址。

总结

私钥 → 公钥 → 钱包地址 (不可逆)

私钥用来签名交易,公钥用来验证私钥签名的交易,地址用来收款。

公钥、私钥以及地址都在比特币交易中起到了不同的作用,所以才能顺利的完成一笔数字货币的交易。 所以用户必须好好保存,防止泄露重要信息。

⑻ 【区块链】比特币私钥、公钥、签名

在 了解区块链的基础名词概念 提到地址由字符和数字组成,但没有说明怎样产生的。银行卡号由银行核心系统生成,那比特币地址是通过什么生成的呢?看下图:

对于刚接触比特币的小白来说,看到这张图就蒙圈了,究竟什么是私钥、公钥,为什么生成个地址要这么麻烦吗?

现在请大家记住这句话: 私钥通过椭圆曲线相乘生成公钥,使用公钥不能导推出私钥;公钥通过哈希函数生成比特币地址,地址也无法导推出公钥

通过这么复杂算法才算出地址,那私钥和公钥只是为了生成地址吗?不是的,他们还有其他用途,我们先了解下私钥和公钥。

现在已经讲解地址、挖矿、工作量证明、算力、区块、区块链等等的概念,不知大家还有印象吗?如果忘记请温习这些概念,因为后续很多地方都会用到这些概念。明天讲解下区块链有哪些特点。

参考书籍:《精通比特币》
区块链知识专题:

比特币记账方式(区块链知识2)
了解块链的基础名词概念(区块链知识1)

⑼ 【2019-07-12】比特币的钱包地址验证

第一步,随机选取一个32字节的数,大小介于1~0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间,作为私钥



第二步,使用椭圆曲线加密算法(ECDSA-SECP256k1)计算私钥所对应的非压缩公钥(共65字节,1字节0x04,32字节为x坐标,32字节为y坐标)。



第三步,计算公钥的SHA-256哈希值



第四步,计算上一步哈希值的RIPEMD-160哈希值



第五步,在上一步结果之间加入地址版本号(如比特币主网版本号"0x00")

00

第六步,计算上一步结果的SHA-256哈希值



第七步,再次计算上一步结果的SHA-256哈希值



第八步,取上一步结果的前4个字节(8位十六进制数)D61967F6,把这4个字节加在第五步结果的后面,作为校验(这就是比特币地址的16进制形态)

00D61967F6

第九步,用base58表示法变换一下地址(这就是最常见的比特币地址形态)



如果给你个地址你只要:

base58->二进制-> 这时是第8步,
如果我们把后面4个字节拿掉,
就是第5步的结果,你只要重复以上步骤到第8步
取前4个和地址后4位比较就可以得到答案了

热点内容
比特币私钥计算地址 发布:2025-01-23 07:45:08 浏览:211
比特币确认要多久到账 发布:2025-01-23 07:28:26 浏览:252
被诈骗ETH立案文书 发布:2025-01-23 07:21:36 浏览:802
2018年用什么样显卡挖矿最好6 发布:2025-01-23 07:16:04 浏览:663
钱包push比特币 发布:2025-01-23 07:02:41 浏览:945
usdt在哪里充值 发布:2025-01-23 06:59:53 浏览:228
各个数字货币白皮书 发布:2025-01-23 06:54:46 浏览:286
区块链社区建设的书 发布:2025-01-23 06:52:49 浏览:651
eth全网算力和收益的关系 发布:2025-01-23 06:49:36 浏览:949
2021地狱款公羊trx价格 发布:2025-01-23 06:32:03 浏览:166