密碼學系列 - 橢圓曲線 ECDSA - 私鑰, 公鑰 與 地址

私鑰, 公鑰 與 地址

私鑰:
私鑰本質上是一個隨機數,由32個byte組成的數組,1個byte等於8位二進制,一個二進制只有兩個值0或者1

公鑰:
公鑰是由私鑰通過橢圓曲線加密算法(ECDSA)生成的,一個私鑰經過橢圓曲線變換之後能夠得到公鑰,公鑰是由65個byte組成的數組(未壓縮)

地址:
地址是由公鑰變換得到, 通常包含的信息: 類型, 公鑰映射, 檢驗位, bash58

公鑰的作用:
對於私鑰,公鑰和地址來說,公鑰作爲私鑰到地址的中間橋樑,他在交易的驗證是最關鍵的:

  1. 公鑰生成地址,驗證發送交易的地址是否和該公鑰生成的地址一致
  2. 公鑰驗證私鑰的簽名,用來驗證該交易是否使用了正確的私鑰簽名
  3. 私鑰生成公鑰是成對出現,公鑰可以生成對應的唯一地址,這樣就能確認了該地址發送的交易是否使用了對應的私鑰

私鑰, 公鑰 與 地址

哈希算法 私鑰編碼
(長度不算0x)
從私鑰生成公鑰 從公鑰生成地址
BTC SHA2-SHA256 WIF格式
Base58並壓縮
字符串長度52
ECDSA-secp256k1
未壓縮: 前綴04+x座標+y座標
壓縮: 前綴03+x(如果y是奇數),前綴02+x(如果y是偶數)
Base58+
RipeMD160(SHA256(PubK))
ETH SHA3-Keccack 16進製表示,
字符串長度64
字符串長度40(不算0x) 公鑰前加上0x
EOS SHA2-SHA256 WIF格式,Base58,
字符串長度51
ECDSA-secp256k1|r1 EOS開頭,字符串長度53
未壓縮: 前綴04+x座標+y座標
壓縮: 前綴03+x(如果y是奇數),前綴02+x(如果y是偶數)
1. 根據原始的私鑰生成壓縮版的公鑰
2. 對第1步的結果ripemd160運算
3. 對第2步的結果取前面四位作爲校驗和
4. 將前綴EOS和 第2步和第3步的結果拼接在一起就得到了地址
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章