【问题标题】:How can I sign a message with a Bitcoin private key from terminal如何使用终端的比特币私钥签署消息
【发布时间】:2018-03-13 08:59:03
【问题描述】:

我正在尝试使用比特币私钥签署消息以从 InstaWallet 获得退款。

关于如何从 OS X 上的终端执行此操作的任何提示?

【问题讨论】:

  • 您可能希望将其迁移到 bitcoin.stackexchange.com
  • @stormCloud +1,正要建议!
  • 这是一个很好的通用加密问题。虽然提到了比特币,但我认为下面的答案可能会引导你走向正确的方向。
  • 对于任何对此问题 +1 的人,请在将鼠标悬停在向上箭头上时阅读文本:“此问题显示研究工作;它有用且清晰”。这与 StackOverflow 无关(BitcoinUnix & Linux),并且没有显示任何研究工作。
  • 我添加了一个编辑建议,试图解决问题文本@FakeRainBrigand 中的比特币规范

标签: console terminal digital-signature bitcoin


【解决方案1】:

(第 22、23 页来自An Introduction to Bitcoin, Elliptic Curves and the Mathematics of ECDSA

4.6 ECDSA

2.4.2 中简要介绍了数字签名的工作原理。 比特币使用椭圆曲线的数学作为基础 其数字签名的基础。召回椭圆曲线定义为 T = (p, a, b, G, n, h),比特币使用以下规定的参数 sep256k1。我们还有私钥和公钥对(Kpriv、Kpub 其中 Kpub = Kpriv × G,如 4.5 中所述。如果爱丽丝 (A) 和鲍勃 (B) 想互相发送消息(或交易),这就是 他们将创建并验证数字签名。

4.6.1 签名生成 [7]

要在消息中签名,Alice 会执行以下操作。

  1. 选择一个随机整数 k,1 ≤ k ≤ n − 1。
  2. 计算 kG = (x1, y1) 并将 x1 转换为整数 x1。
  3. 计算 r = x1 (mod n)。如果 r = 0,则转到步骤 1。
  4. 计算 k^-1 (mod n)。其中 k^−1 是乘法逆元,满足 k−1

[...]

点击链接并继续,至第 23 页的步骤 5、6 和 7;或通过 Jorky10 在这里通过 python 回答: How to sign and verify signature with ecdsa in python

【讨论】:

  • 可能想要将 'logging.debug' 转换为 'print',用于终端输出
  • 比特币是否使用 HMAC 摘要作为签名?
  • @Kebman 感谢您的提醒......它没有。我已经更新了 ECDSA 的答案。
猜你喜欢
  • 2020-03-27
  • 1970-01-01
  • 2020-02-13
  • 2014-01-17
  • 2021-12-25
  • 2023-03-13
  • 2015-06-01
  • 2020-03-23
  • 2019-05-13
相关资源
最近更新 更多