在Elixir中验证Ravencoin钱包的区块链消息签名
Ravencoin钱包Python签名与Elixir验证不匹配问题
我用Python实现了一个Ravencoin(比特币分叉币)钱包,包含公钥、地址派生和签名功能,但在Elixir服务器侧进行签名验证时始终失败。
我已参考过以下资源但未解决问题:
- Elixir论坛关于
crypto.verify用法的讨论 - ex_crypto库相关内容
- Web3x.Wallet的
verify_message文档 - Elixir生成比特币地址的教程
- Curvy库文档
Python侧运行示例
>>> import wallet >>> w = wallet.Wallet() >>> w.generate() >>> w Wallet( publicKey: 034e328758d422ce5c3a17c15528df1216ef0eaf845147876eea82d139755129a0 privateKey: L16mQdokXV8hVxGc8su2z9xNkavWPdGGM92B6nt2bMj8yhjTCF8Z words: inherit daring dish like invite vehicle spy depth average cross industry cat want warm deliver foster approve buddy hand often sword arch dress photo address: RMK1yBucDCJXjppB7bkZ4dMoZqr3ZKgztN scripthash: 8c6a2e84bee5cbbffdb0d1188f6f8fbfd422cafcfdaecb5f6251e32d0a4accc5 balance: None stats: None banner: None) >>> w.sign("message") b'IFdGdzqI9fJJDbTASGbamHFQ7hlIT07jLALhYRhMrRY3QvKJuL2q8ojtwKsubj0EVtWJtlM8MbgmpvIaKwpjc04=' >>> w.verify("message", w.sign("message")) True
Elixir侧验证尝试
iex(2)> :crypto.verify(:ecdsa, :sha256, "message", "IFdGdzqI9fJJDbTASGbamHFQ7hlIT07jLALhYRhMrRY3QvKJuL2q8ojtwKsubj0EVtWJtlM8MbgmpvIaKwpjc04=", ["034e328758d422ce5c3a17c15528df1216ef0eaf845147876eea82d139755129a0", :secp256k1]) false
尝试用地址替代公钥验证:
iex(3)> :crypto.verify(:ecdsa, :sha256, "message", "IFdGdzqI9fJJDbTASGbamHFQ7hlIT07jLALhYRhMrRY3QvKJuL2q8ojtwKsubj0EVtWJtlM8MbgmpvIaKwpjc04=", ["RMK1yBucDCJXjppB7bkZ4dMoZqr3ZKgztN", :secp256k1]) false
我怀疑问题出在字符串与字节数据的格式转换,或者verify函数的参数设置上,请问能直接看出问题所在吗?
内容的提问来源于stack exchange,提问作者MetaStack
相关产品推荐
相关产品推荐

