使用 Python:創建我選擇的私鑰,然後生成公鑰和地址
我正在尋找一個簡單易用的 Python 比特幣庫。
我想要做的是驗證我可以輸入我想要的十六進制私鑰,並以壓縮格式獲得預期的公鑰,以及 1Btc… 地址。
我查看了 github 上的 cryptotools,它看起來很有前途,而且易於使用,但它不接受不是 2 倍數的十六進制值。我知道這聽起來很奇怪,但我希望能夠輸入一個十六進制像 c12 這樣的值並讓它按預期工作(除非我必須輸入 0c12 並且這將起作用,丟棄前導零)。我希望當我輸入 0cfa721d 時,這將被解釋為大端。
bitcoinlib 看起來很有希望,但我覺得它令人困惑,我已經嘗試了幾個小時,但不確定如何得到我想要的。
- 以十六進制輸入私鑰
- 以 hash160 格式取回 pub key,壓縮
- 獲取 1Btc… 地址。
我想知道這是否是一個嚴格的數學關係。例如,私鑰是否可以有任意數量或無限數量的 pub 密鑰?有沒有辦法確保我從私鑰中獲得我想要的公鑰?我想用生成的公鑰和與已知私鑰和地址相對應的 BTC 地址來測試已知的私鑰,所以我可以嘗試找出誰從私鑰的選擇中生成了這些地址,我可以嘗試複製並做同樣的事情我。
感謝您提供任何幫助或建議。
對於這種非常簡化的情況,您可以查看<https://github.com/circulosmeos/bitcoin-in-tiny-pieces>
它對每個操作進行了編碼以便於理解,隔離在不同的文件中,但它們很容易加入或直接從命令行使用:例如:
$ echo 0x01 | ./bitcoin-public-from-private.py | ./bitcoin-address-from-public-key.py
對於這個問題:
例如,私鑰是否可以有任意數量或無限數量的 pub 密鑰?
原則上,從私鑰只能派生一個公鑰:但這可以在三個不同的比特幣地址中編碼。通常只使用這些格式中的一種或兩種。
這是最簡單的情況,不考慮稍後在比特幣中引入的更複雜的情況(如HD 密鑰等)……