比特币和以太私钥通常都是一个256位的数字,难道不可能在比特币钱包和电子账户中使用相同的私钥吗?
例如,比特币wiki声明:
在比特币中,私钥通常是一个256位数字(一些较新的钱包可能使用128到512位),这可以用多种方式之一表示。以下是十六进制中的私钥- 256位,十六进制是32个字节,或者是0-9或A范围内的64个字符。E9 87 3D 79 C6 D8 7D C0 FB 6A 57 78 63 33 89 F4 45 32 13 30 3D A6 1F 20 BD 67 FC 23 3A A3 32 62
它(移除空白空间):
e9873d79c6d87dc0fb6a5778633389f4453213303da61f20bd67fc233aa33262使用MyEtherWallet,我为Ethereum生成了相应的公钥:
0x60751Ab56d58781069b1C73064aD580dAde1F469现在我看到不是每个256位数都是比特币的有效的ECDSA私钥.我能用同样的私钥吗?是否有一种从任何256位随机数生成ETH和BTC公钥的方便方法?
这将是将以太和比特币存储在同一个账户上的一种很酷的方式。有可能吗?
发布于 2016-06-25 09:30:10
是的,两种密码硬币都使用相同的椭圆曲线SECP256K1。
也许更好的选择是使用BIP32 32钱包。您有一个不直接用于事务的主键,但它用于派生比可以使用的子键。
你可以为比特币和以太获得不同的密钥。您将始终能够使用主键对两个密钥的事务进行签名。
发布于 2020-03-29 08:55:53
四年后,自我回答了我自己的问题:是的!
我用Secp256k1:github.com/q9f/secp256k1.cr编写了一个实现
在这一过程中,我实现了比特币和Ethereum的密钥管理。相同的键区可用于检索比特币和电子邮件格式的地址:
生成一个压缩的比特币主网络地址:
key = Secp256k1::Keypair.new
btc = Secp256k1::Bitcoin::Account.new key
btc.address
# => "1Q1zbmPZtS2chwxpviqz6qHgoM8UUuviGN"
eth = Secp256k1::Ethereum::Account.new key
eth.address
# => "0x224008a0F3d3cB989c807F568c7f99Bf451328A6"Github存储库包含更多的示例。有趣的好处:通过这种方式,你可以使用比特币钱包-导入格式(WIF)的Ethereum帐户,甚至迷你私钥。
https://ethereum.stackexchange.com/questions/6520
复制相似问题