主页 > 以太坊钱包imtoken安装 > 比特币私钥公钥与钱包地址的关系.doc 7页

比特币私钥公钥与钱包地址的关系.doc 7页

以太坊钱包imtoken安装 2023-02-10 07:32:21

火币网-专业HYPERLINK"/"比特币交易平台:比特币私钥公钥与钱包地址的关系如果想了解HYPERLINK"/"\t"/teach/_blank"比特币的交易部分,需要掌握大量密码学知识:公钥、私钥、散列、对称加密、非对称加密、签名等。 那么普通用户最关心的是哪些东西需要用户小心保管不能对外公开,​​哪些东西可以对外公开呢? 接下来,让我们从钱包地址生成开始。 钱包地址生成 1. 首先使用随机数生成器生成“私钥”。 一般来说,这是一个256bits的字符串。 有了这串字符,就可以对对应“钱包地址”中的比特币进行操作(例如:花掉它),所以一定要妥善保管。 2、“私钥”经过SECP256K1的算法处理,生成“公钥”。 SECP256K1是一种椭圆曲线算法,通过已知的“私钥”,可以计算出对应的“公钥”。 但是,知道某一个“公钥”是无法反算出“私钥”的。 这也是保证比特币安全的算法基础。 3. 和SHA256一样,RIPEMD160也是一种Hash算法。 “公钥哈希”可以从“公钥”中计算出来。 同样,反过来也不可行。 4、在“公钥哈希”的头部连接一个一个字节的地址版本号,然后对其进行两次SHA256运算,将结果的前4个字节作为“公钥哈希”的校验值,连接放在它的尾部。

5、将上一步的结果用BASE58编码,得到“钱包地址”。 比特币钱包地址设置为以数字1开头,例子:1GpxB9kKC3k91jgqbgUDRPiPRNcfuEvjqm “私钥”、“公钥”和“钱包地址”的关系 以上五步中,只有“BASE58编码”有对应的可逆算法(即“BASE58解码”),其他算法都是不可逆的,所以它们之间的关系可以表示为:如图所示,很明显我们可以得到上面整个计算过程中的所有值通过“私钥”。 “公钥哈希”和“钱包地址”可以通过互惠运算进行转换,因此它们是等价的。 使用“私钥”签署交易。 比特币钱包地址之间的转账是通过交易来实现的。 交易数据由转币钱包“私钥”的所有者发起,也就是说只有你掌握了“私钥”,你才能在对应的钱包地址上消费比特币到私钥。 整个交易流程如下图所示: 1. 可以看到,交易数据包括“转账金额”和“转账钱包地址”,但光有这些数据肯定是不够的,因为发起方交易不能证明“转账钱包地址”中的币是自己的。 所以你需要用“私钥”对交易进行签名,以证明你是币的主人。 2. 生成“转出钱包公钥”,过程同生成“钱包地址”中的步骤2。

3、我们必须在原始交易数据上加上所有的“转账签名”和“转账公钥”,才能生成一笔合法的交易,才能广播到比特币网络比特币私钥分享,顺利完成转账。 使用“公钥”来验证签名。 交易数据广播到比特币网络后,比特币网络上的每个节点都会检查交易数据。 其中最重要的部分是签名的验证。 如果验证结果正确,则比特币将成功从“转账钱包地址”转入“转账钱包地址”。 概要内容: 1、如果一个“钱包地址”没有向其他“钱包地址”发送过任何币,那么它的“公钥”就不会被暴露。 2、从私钥到公钥的生成算法(SECP256K1)是不可逆的,所以即使“公钥”暴露,也无法破解对应的“私钥”。 破解难度往往取决于生成算法的特性。 仅以目前的计算机计算能力而言,还远远不能完成。 3.“私钥”用于生成“公钥”和“钱包地址”,也用于签署交易。 因此,拥有某个钱包地址对应的“私钥”,就意味着拥有对该钱包地址上所有比特币的所有操作权限。 4. 备份私钥的方式多种多样。 例如,在QT钱包客户端中,通常通过在钱包文件菜单中选择备份wallet.dat文件,将钱包上的所有私钥保存在一个文件中。

这种方式需要注意的细节是,钱包转账超过100次后,如果发起新的转账,需要重新备份,这是由于QT钱包中的变更机制。 但是如果是SPV轻钱包,往往不会出现这个问题,只需要备份一次私钥即可。 5、为钱包设置的密码和钱包的私钥不是同一个概念。 钱包的密码相当于把你钱包里的所有私钥重新加密一次。 如果没有密码比特币私钥分享,即使拿到了保存私钥的钱包。 dat 文件,也不可能窥探其中包含的许多私钥的长度。 然而,人工设置的密码往往安全性不强。 除非是非常复杂的密码,否则通常可以通过暴力破解。 再次强调,“私钥”是比特币钱包中最基本、最重要的东西,不能随便泄露。 本文只讨论标准的P2PKH交易方式,P2SH不在讨论范围。