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

所有了解比特币的钱币爱好者都知道,比特币是一种加密的数字货币,主要是因为比特币有一个密钥来保护自己的比特币不被窃取,比特币密钥分为一个比特币私钥和一个比特币公钥,其中比特币公钥用于加密,可以公开。说到这里。币圈小白要问了,比特币公钥是什么?比特币公钥生成的原理是什么?唐';t别急,接下来小编会为币圈小白们解答。

比特币公钥的定义

公钥是私钥乘以椭圆曲线(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(国家标准和技术研究所)确定的。

刚才P是一个大素数,那么spec256k1选P有多大呢?我们可以看看

p=115792089237316195423570985008687907853269846564056403945758400790834671663

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

。x=5506626302227734366957871889516853432625060345377594175500187360389116729240y=32670510020758816978083085130507043184471273380659243275938904335757337482424

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

python2.7.10(默认2017.15.7:17:16:57)

。[XY001]onDarwin

[AppleLLVM9.0.0(clang-900.0.31)compatiblewithGCC4.2.1].

Formoreinformation,typeHelp,Copyright,QuotaorLicense.

x=550662630222773436695787188951685343262506034537594175500187360389116729240

y=3267051002075881697808308513050704318447127338065924327593890433575333373737482424

p=11579208923731619542357085008687970785326984656405640394575840790834671663[xy

(x**37)%p-y**2%p

0l

以上是我用Python计算的结果,看到的时候符合我的预期。

椭圆曲线运算

上面的椭圆曲线我们已经知道了,看起来很有趣,但是我觉得椭圆曲线的运算更有趣。公钥的算法使用这些基本运算:

加法运算

无穷远点定义

乘法运算

比特币公钥是什么?比特币公钥生成的原理是什么?文档下载: PDF DOC TXT
文章来源: 肖肖
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2384272385@qq.com举报,一经查实,本站将立刻删除。