時間:2021-12-29|瀏覽:757
在這篇文章中,大家會演試應用這一私鑰來得到公布地址,及其與該私鑰相匹配的以太坊錢夾地址。根據私鑰來得到比特幣錢夾地址的實際步驟有一些繁雜,因而大家會敘述簡單化后的版本號。大家必須應用一個哈希函數去得到公鑰,還要應用另一個函數公式去得到地址。如今,使我們現在開始。公鑰這一部分資源和以前探討比特幣的內容中所指的同樣,因此假如你早已看完了,那麼就可以繞過(除非是你要想備考一下)。最先,大家必須在私鑰上應用 ECDSA,即橢圓曲線數字簽名優化算法。
橢圓曲線是根據 y2 = x3 ax b 公式計算得到的,在其中 a 和 b 可以自定。橢圓曲線大家族有很多著名而且廣泛運用的實例。比特幣應用了 secp256k1 曲線圖,有關橢圓曲線密碼算法,假如你要認識大量,可以參照此文章內容。以太坊應用了一樣的橢圓曲線,secp256k1,因而針對比特幣和以太坊而言,得到公鑰的步驟是一致的。對私鑰作了 ECDSA 計算以后,大家取得了 64 字節數的整數金額,這也是由2個 32 字節數的整數金額串連構成,意味著了橢圓曲線上某一點的 X 值和 Y 值。在 Python 程序流程中,編碼表明如下所示:private_key_bytes = codecs.decode(private_key, ‘hex’)# Get ECDSA public keykey = ecdsa.SigningKey.from_string(private_key_bytes, curve=ecdsa.SECP256k1).verifying_keykey_bytes = key.to_string()key_hex = codecs.encode(key_bytes, ‘hex’)留意:從以上的編碼可以看得出,我應用了 ecdsa 控制模塊并根據伺服電機編解碼了私鑰。那樣寫大量是由于 Python 的關聯,而與優化算法自身不相干,為免誤會。