欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是:首页  > 数字货币

比特币公钥是什么?比特币公钥生成原理是什么?

科普小知识2021-10-10 14:41:57
...

比特币公钥是什么?了解比特币的币友都知道,比特币是一种加密数字货币,主要是因为比特币有着密钥用来保护自己的比特币不被盗,而比特币密钥分为比特币私钥和比特币公钥,其中比特币公钥用来加密并且是可以公开的,说道这里,币圈小白就要问了,比特币公钥是什么?比特币公钥生成原理又是什么?别急,接下来本网小编就来为币圈小白们解答。

比特币公钥是什么?

公钥是将私钥通过一个椭圆曲线乘法(K = k * G ,其中k是私钥,G是被称为生成点的常数点,而K是所得公钥)的算法计算得来,是真正的比特币地址。

在比特币系统中,一个密钥对包括一个私钥,和由其衍生出的唯一的公钥。公钥用于接收比特币,而私钥用于比特币支付时的交易签名。

比特币公钥是什么?比特币公钥生成原理是什么?比特币公钥是什么?比特币公钥生成原理是什么?

公钥和私钥之间的数学关系,使得私钥可用于生成特定消息的签名。此签名可以在不泄露私钥的同时对公钥进行验证。

比特币公钥生成原理是什么?

有了私钥,再通过椭圆曲线算法,就可以产生出公钥啦!这个私钥和公钥是配对的!

比特币公钥是什么?比特币公钥生成原理是什么?比特币公钥是什么?比特币公钥生成原理是什么?

椭圆曲线的定义非常简单,满足下面公式的所有(x,y)坐标的集合,就是我们所说的椭圆曲线y^2/modp=(x^3/+7)/modp

上面公式中,mod是取余符号,而p是一个很大的素数,到这一步,公式中就只剩下自变量x和因变量y了,你完全可以把它看成初中学过的二元多次函数,不过,并不是所有实数x都满足这个曲线,所以实际上椭圆曲线是一个散点图,下图是当p为17时,满足上述公式的图形:

比特币公钥是什么?比特币公钥生成原理是什么?比特币公钥是什么?比特币公钥生成原理是什么?

spec256k1 椭圆曲线

实际上,p取不同的素数,椭圆曲线会呈现出完全不同的形态,p越大,这个椭圆也就越大,可承载的数值范围也就越大,冲突率会降低,乃至于更安全,所以出于安全性考虑,比特币中采用的是一个特定的椭圆曲线,我们叫它 spec256k1.它是由 NIST(National Institute of Standards and Technology)这个组织确定的。

刚才说p是一个很大的素数,那么 spec256k1 所选的p有多大呢?我们可以看一下

P=115792089237316195423570985008687907853269984665640564039457584007908834671663

这个p可以确定一个椭圆,我们再在其中取一个点(x,y)

X=55066263022277343669578718895168534326250603453777594175500187360389116729240

Y=32670510020758816978083085130507043184471273380659243275938904335757337482424

把该点中的x和y带入上面的公式中,看等式两边是否成立:

Python 2.7.10 (default, Jul 15 2017. 17:16:57)

[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>>x=55066263022277343669578718895168534326250603453777594175500187360389116729240

>>>y=32670510020758816978083085130507043184471273380659243275938904335757337482424

>>>p=115792089237316195423570985008687907853269984665640564039457584007908834671663

>>> (x**3+7)%p - y**2%p

0L

上面是我用Python算出的结果,可以看到时符合预期的。

椭圆曲线运算

上面我们已经认识了椭圆曲线,它看上去很有趣,但我觉得更有趣的是椭圆曲线的运算,公钥的算法就是运用了这些基本运算:

加法运算

无限点(point at infinity)定义

乘法运算

比特币公钥是什么?通过以上介绍,本网小编相信,大家对于比特币公钥已经有了一定的了解,同时对于比特币公钥计算方式也有所了解,如果想要了解更多关于比特币公钥的问题,可以关注本网后续相关报道!