比特币的私钥、公钥和地址——严选矿场大百科

链想家
媒体专栏
热度: 7342
在比特币中,经常出现三个词:私钥,公钥和地址。他们是什么意思呢?他们之间又有什么样的关系呢?搞清楚他们之间的关系和区别,是了解比特币的基础。

数字签名在比特币中,经常出现三个词:私钥,公钥和地址。他们是什么意思呢?他们之间又有什么样的关系呢?搞清楚他们之间的关系和区别,是了解比特币的基础。


私钥


 一般我们看到的私钥是下面这样的一段字符串:

5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss


支持比特币协议的应用都可以正确把这段字符串转换成比特币的私钥,再转换出公钥,再得到一个地址,如果该地址上面有对应的比特币,就可以使用这个私钥花费上面的比特币。


数字签名


我们所说的比特币私钥的是密码学上面安全的,并不是说不可能出现重复的私钥,而是说不可能通过遍历的方式找到某一个特定的私钥,或者通过其它的方式找,而不通过私钥就能花费地址上面的比特币,私钥的安全性是由数学上保证的。


私钥的总数量很大,但是私钥的生成是依赖随机数的,真正的随机是很难做到的,大部分私钥的生成都是依赖于伪随机算法(PRNG)。


伪随机是用函数生成随机数。它并不真正是随机的。只是一个比较近似真随机的随机数。


数字签名


私钥生成的随机性就很重要的,密码学上安全的随机是指:

随机是不可预测的,随机的结果是不可遍历的,如果不是安全的随机数生成器,生成的私钥就有可能被别人碰撞到。不依赖随机生成的私钥就会大大的降低其生成的概率空间。


公钥和地址的生成都依赖私钥,所以我们只需要保存私钥即可,有了私钥就能生成公钥和地址,就能够花费对应地址上面的比特币。


我们看到的私钥除了以5开头的以外,还有以L和K开头的私钥,为什么会出现这样的情况呢?5,L,K又代表什么呢?这就要说到公钥了。


公钥

比特币的根基是椭圆曲线数字签名算法。椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟。椭圆曲线加密法(ECC)是一种公私钥加密技术。


ECC以椭圆曲线理论为基础,利用椭圆曲线等式的性质来产生密钥,而不是采用传统的方法利用大质数的积来产生,其特点是:密钥长度小,安全性能高,整个数字签名耗时小。


数字签名


DSA(DigitalSignature Standard)数字签名技术:在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名,接受者收到消息后使用发送者的公钥来验证签名的真实性。


这里明确了私钥用来签名,而公钥用来验证签名。


私钥和公钥是成对出现的,一个私钥签名的数据,只有对应的公钥才能对其进行验证,而地址也是从公钥生成的,这样就可以验证花费的交易是不是属于这个地址了。


为什么会出现5开头或者L,K开头的私钥?


出现这种情况是因为公钥的不同格式而产生了不同的私钥格式,早期的比特币开发者没有使用压缩的公钥(椭圆曲线是对称的,知道了一半的信息就可以推导出来另外一半的信息了),因此只需要保存一般的公钥信息即可。压缩的公钥只有33个byte,而未压缩的公钥有65个byte。


压缩的公钥对比特币的意义很大,比特币是去中心化的p2p加密货币,每个节点都会拥有完整的交易记录,除了coinbase(挖矿得到的比特币)以外,每个交易都需要发送公钥,支持压缩格式的公钥,每个交易的数据就可以减少32个字节,这对整个比特币网络是非常有意义的,整个比特币网络的数据在传输和保存中都可以提高不少效率。


数字签名


而对私钥进行Base58编码的时候,老版本未压缩公钥的私钥是33位byte数组,第一位存放私钥的Version信息,当前值为128,生成的Base58都是以5开头。


老版本未压缩私钥=Base58(version+32位随机数)

支持压缩公钥的私钥是34位,同样是第一位是version信息,它的值也是128,而多出来的一位是最后一个byte是用来存放是否压缩信息的信息,1就表示是支持压缩格式的公钥。经过Base58处理之后正好是L或者K开头。


新版本私钥格式=Base58(version+32位随机数+是否支持压缩)


数字签名


例子中的私钥不仅仅包含了32个byte数组的信息,还是私钥version的信息以及其公钥是否压缩的信息(通过位数和值来判断)


公钥是否压缩除了对私钥的显示有影响以外,还会对地址有影响。


地址

公钥太长了,所以就有更短一些的地址的概念,另一方面没有发送过交易的地址,并不想暴露自己的公钥,而地址是通过摘要算法生成的,不会暴露公钥的真实内容。


地址是由公钥产生的,地址长度为25byte,经过base58处理,地址末尾添加了4个字节的校验位。


数字签名


我们看到的地址一般都是Base58编码处理的,地址的生成比较复杂,公钥到地址生成的过程是,先对公钥做一次SHA256(哈希算法)。


sha-256-hash= SHA-256(public key)

再经过了hash160处理,hash160:RIPEMD(PACE integrity Primitives Evaluation Message Digest)是一种原始完整性校验消息摘要,160标准对应20字节:

hash160=hash160(sha-256-hash)


数字签名


对结果进行hash160处理可以得到一个20个byte的数组,在这个20位的byte数组前面再加上一个byte,这个byte就是地址的Version信息,地址的Version当前值为0,Version信息在比特币的test网络上会使用不同的值,比特币地址完成的表示就是:

address=Base58(version+hash160(SHA-256(public key))+checksum)


对于私钥,公钥和地址来说,公钥作为私钥到地址的中间桥梁,他在交易的验证是最关键的。

1.12


政策法规

外媒:目前白俄罗斯等9个国家不对加密货币征税

Decrypt今日整理出9个不对加密货币征税的国家,分别是白俄罗斯、德国、马来西亚、马耳他、葡萄牙、斯洛文尼亚、新加坡、瑞士、百慕大,他们实施了更为友好的立法,并允许投资者购买,出售或持有数字资产而无需缴税。并称这些国家正在逆势发展,渴望看到这种新兴资产类别的发展并鼓励创新。


数字金融


报告:韩国商业银行正竞相推出加密资产托管业务

据Cryptocurrency News 1月12日消息,根据Newsis一份最新报告,韩国商业银行现正在竞相推出比特币和其他加密资产托管业务。而有业内消息人士称,当韩国立法要求该国所有虚拟资产服务提供商实施反洗钱协议时,加密资产管理市场有望进一步扩大,因为这可能会使银行在处理加密交易时拥有更大的优势,导致银行之间的加密业务竞争激烈。截至目前,韩国三大商业银行NongHyup银行、Kookmin银行和新韩银行已宣布进军加密货币托管市场。对此,高丽大学区块链研究所所长In Ho表示,如果银行接管加密货币托管业务,在遭遇黑客攻击的情况下,用户可能将得到补偿。银行将能够通过这种方式发挥自己的优势。此外,银行也越来越热衷于向加密货币专业投资者提供服务。





应用动态

深交所与6家股交中心深化区块链合作

1月11日,深圳证券交易所(以下简称:深交所)下属子公司深圳证券通信有限公司(以下简称:深证通)与广西北部湾、福建海峡、湖南、江西、齐鲁、山西等6家股权交易中心,在深交所共同举行区块链合作签约仪式,并围绕“区域性股权市场金融科技创新应用”进行座谈交流,就股交中心信息化建设规划、区块链技术应用思路等问题开展深入探讨,进一步推进落实证监会关于开展区域股权市场区块链建设试点工作。深交所、深证通及6家股交中心负责人出席相关活动。



关于 · 我们


数字签名严选算力中心

矿业是链想家的主营业务之一,我们向全球客户提供算力中心运维、矿池服务、数字货币投资咨询、行业金融服务咨询等一站式综合服务,致力于成为区块链产业解决方案提供商,打造标准化、规模化、合规化的,安全稳定的算力中心。


数字签名

更多精彩阅读


数字签名链想家正式成立一周年!2.0时代全新来袭

链想家区块链入门课程——什么是比特币?

链想家主营业务之一——严选算力中心

链接生态,赋新未来——链想家参加首届国际区块链产业博览会

数字签名

声明:本文为入驻“火星号”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。 未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:作为区块链信息平台,本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与火星财经官方立场无关。鉴于中国尚未出台数字资产相关政策及法规,请中国大陆用户谨慎进行数字货币投资。
语音技术由科大讯飞提供

评论0