You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 14:45:56