比特币的密钥、地址、钱包

简介

⽐特币的所有权是通过数字密钥、⽐特币地址和数字签名来确⽴的。数字密钥实际上并不是存储在⽹络中,⽽是由⽤⼾⽣成
并存储在⼀个⽂件或简单的数据库中,称为钱包。存储在⽤⼾钱包中的数字密钥完全独⽴于⽐特币协议,可由⽤⼾的钱包软
件⽣成并管理,⽽⽆需区块链或⽹络连接。密钥实现了⽐特币的许多有趣特性,包括去中⼼化信任和控制、所有权认证和基
于密码学证明的安全模型。


每笔⽐特币交易都需要⼀个有效的签名才会被存储在区块链。只有有效的数字密钥才能产⽣有效的数字签名,因此拥有⽐特
币的密钥副本就拥有了该帐⼾的⽐特币控制权。密钥是成对出现的,由⼀个私钥和⼀个公钥所组成。公钥就像银⾏的帐号,
⽽私钥就像控制账⼾的PIN码或⽀票的签名。⽐特币的⽤⼾很少会直接看到数字密钥。⼀般情况下,它们被存储在钱包⽂件
内,由⽐特币钱包软件进⾏管理。


在⽐特币交易的⽀付环节,收件⼈的公钥是通过其数字指纹表⽰的,称为⽐特币地址,就像⽀票上的⽀付对象的名字(即“收
款⽅”)。⼀般情况下,⽐特币地址由⼀个公钥⽣成并对应于这个公钥。然⽽,并⾮所有⽐特币地址都是公钥;他们也可以代
表其他⽀付对象。这样⼀来,⽐特币地址把收款⽅抽象起来了,使得交易的⽬的地更灵活,就像⽀票⼀样:这个⽀付⼯具可⽀付到个⼈账⼾、公司账⼾,进⾏账单⽀付或现⾦⽀付。⽐特币地址是⽤⼾经常看到的密钥的唯⼀代表,他们只需要把⽐特币地址告诉其他⼈即可。

公钥加密和加密货币

公钥加密发明于20世纪70年代。它是计算机和信息安全的数学基础。
⾃从公钥加密被发明之后,⼀些合适的数学函数被提出,譬如:素数幂和椭圆曲线乘法。这些数学函数都是不可逆的,就是
说很容易向⼀个⽅向计算,但不可以向相反⽅向倒推。基于这些数学函数的密码学,使得⽣成数字密钥和不可伪造的数字签
名成为可能。⽐特币正是使⽤椭圆曲线乘法作为其公钥加密的基础算法。


在⽐特币系统中,我们⽤公钥加密创建⼀个密钥对,⽤于控制⽐特币的获取。密钥对包括⼀个私钥,和由其衍⽣出的唯⼀的
公钥。公钥⽤于接收⽐特币,⽽私钥⽤于⽐特币⽀付时的交易签名。
公钥和私钥之间的数学关系,使得私钥可⽤于⽣成特定消息的签名。此签名可以在不泄露私钥的同时对公钥进⾏验证。
⽀付⽐特币时,⽐特币的当前所有者需要在交易中提交其公钥和签名(每次交易的签名都不同,但均从同⼀个私钥⽣成)。
⽐特币⽹络中的所有⼈都可以通过所提交的公钥和签名进⾏验证,并确认该交易是否有效,即确认⽀付者在该时刻对所交易
的⽐特币拥有所有权。

⼤多数⽐特币钱包⼯具为了⽅便会将私钥和公钥以密钥对的形式存储在⼀起。然⽽,公钥可以由私钥计算得到,所以
只存储私钥也是可以的。

私钥和公钥

⼀个⽐特币钱包中包含⼀系列的密钥对,每个密钥对包括⼀个私钥和⼀个公钥。私钥(k)是⼀个数字,通常是随机选出的。
有了私钥,我们就可以使⽤椭圆曲线乘法这个单向加密函数产⽣⼀个公钥(K)。有了公钥(K),我们就可以使⽤⼀个单向
加密哈希函数⽣成⽐特币地址(A)。私钥、公钥和⽐特币地址之间的关系如下图所⽰。

私钥

私钥就是⼀个随机选出的数字⽽已。⼀个⽐特币地址中的所有资⾦的控制取决于相应私钥的所有权和控制权。在⽐特币交易
中,私钥⽤于⽣成⽀付⽐特币所必需的签名以证明资⾦的所有权。私钥必须始终保持机密,因为⼀旦被泄露给第三⽅,相当
于该私钥保护之下的⽐特币也拱⼿相让了。私钥还必须进⾏备份,以防意外丢失,因为私钥⼀旦丢失就难以复原,其所保护
的⽐特币也将永远丢失。

发布了427 篇原创文章 · 获赞 263 · 访问量 56万+

猜你喜欢

转载自blog.csdn.net/qq_32146369/article/details/105214756