首页 > 热点资讯 > 正文

比特币密钥、地址与钱包详解

2024-04-23 22:47 来源:网络

4.1 比特币密钥体系


比特币的所有权通过数字密钥、比特币地址和数字签名确定。密钥并不直接存储在网络中,而是由用户生成并保管在一个文件或简单的数据库,即钱包中。非确定性钱包(随机生成密钥)逐渐被确定性钱包取代,特别是分层确定性钱包(HD钱包),它利用种子生成确定性密钥序列。

4.1.1 数字密钥与比特币地址



私钥是一个随机生成的数字,决定了比特币所有权。私钥可通过椭圆曲线加密运算产生公钥,而公钥用于接收比特币。


比特币地址是由公钥通过两次哈希运算(RIPEMD160(SHA256()))得到,并采用Base58Check编码。通常以数字"1"开头。


私钥可有不同的编码格式,如钱包导入格式(WIF)或压缩格式,而公钥也有非压缩和压缩两种格式。



4.2 比特币钱包


钱包包含了私钥集合,其中最流行的是确定性钱包(种子钱包),可通过单一种子生成无限密钥。备份种子就能恢复全部钱包信息。钱包分为以下几种类型:

4.2.1 非确定性钱包(随机)



这种钱包一次性生成一定数量的随机私钥,并用于创建比特币地址。每个私钥需单独备份,管理不便且隐私较低。



4.2.2 确定性(种子)钱包



种子钱包基于一个随机数(种子),通过确定性算法生成一系列私钥。种子可生成钱包所有密钥,备份只需种子即可。


助记词词汇:将种子转换成便于记忆和书写的英文词组,便于备份和恢复。



4.2.3 分层确定性钱包(BIP0032/BIP0044)



通过种子生成主密钥,主密钥又可生成子密钥,并向下扩展形成层次化的密钥结构。BIP0044 提供了一个多账户结构,用五个预定义层级组织钱包结构。



4.3 密钥格式与地址生成



私钥、公钥和比特币地址之间有固定的关系,通过椭圆曲线加密算法产生。公钥经Base58Check编码生成比特币地址,可使用非压缩或压缩格式。



4.4 示例:使用Python实现密钥与地址生成


举例说明了如何使用Python的ecdsa库和pybitcointools库生成密钥、公钥和比特币地址,并介绍了助记词词汇、扩展密钥(包括正常和硬化衍生)以及BIP0044钱包结构的创建和应用。

通过本文的解析,读者可以了解到比特币密钥的生成、管理和使用,以及钱包的构造和备份方法,从而更好地理解比特币交易的基本原理和安全性保障。

比特币密钥、地址与钱包详解

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系多特删除。(联系邮箱:9145908@qq.com)