Bitcoin 地址原理(2)私钥、公钥、地址基本概念
1. 總過程
2. 私鑰
私鑰就是一個隨機選出的數字,256位.
eg. 8F72F6B29E6E225A36B68DFE333C7CE5E55D83249D3D2CD6332671FA445C4DD3
-
介于(1 ~ 0xFFFFFFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之間?)
-
私鑰在錢包里也是Base58編碼的形式保存
3. 公鑰
橢圓曲線上面的一個點
. 從私鑰和基點G計算得到而來: K = k * G (k是私鑰,K是公鑰)
. 其反向運算“尋找離散對數”"已知公鑰K, G來求出私鑰k"是非常困難
公鑰通常表示為前綴04緊接著兩個256bit的數字(520bit)
前綴04開頭:04 x y
eg.
04F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB
x=F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A
y=07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB
3.1 壓縮格式化公鑰
- 520bit太占空間。
- 由于一個公鑰是一個橢圓曲線上的點(x,y),而通過橢圓曲線方程可以由x得到y,所以就存x。eg. y2 mod p = (x3 + 7) mod
- 一個x,對應的y有正和負,因此加個前綴來區分。
在素數p階的有限域上使用二進制算術計算橢圓曲線的時候,y坐標的奇偶對應橢圓曲線y值的正負。
- 偶數:02作為前綴
- 奇數:03作為前綴
“04F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB
x=F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A
y=07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB”
=>
03F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A
(66個16進制數)
3.2 錢包導入格式(Wallet ImportFormat)
為了區分新舊版本是否支持公鑰壓縮,私鑰的后面附加一個字節的后綴01(表明是新版本—支持公鑰壓縮)
4. 比特幣地址
由公鑰生成的比特幣地址以數字“1”開頭。
eg. 1QCXRuoxWo5Bya9NxHaVBArBQYhatHJrU7
總結
以上是生活随笔為你收集整理的Bitcoin 地址原理(2)私钥、公钥、地址基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: Bitcoin 地址原理(1)Base5