文/Robin


今天聊聊 Bitcoin 的消息签名。为什么聊这个呢,因为在微博上看到了 Dovey 发起了一个好玩的事情,大概就是 Dovey 发了自己的 Signal 账号,然后给他发 Bitcoin 地址的签名,她把你拉入一个 Signal 群。笔者原以为这是个很简单的事情,结果不料想有好几个用户直接把私钥发给 Dovey 了。Dovey 于是感叹到科普的路任重而道远。

OK,就着这个机会,本来就来聊一聊这个话题吧。

在双钥系统中,签名可以作为身份认证和授权的手段。对签名方,能提供正确的签名,就意味着他一定有私钥。对验证方,验签通过即可保证,消息内容未经篡改,且消息来源可靠。于是消息签名的用途就很明确了,一方面可以验证比特币归属,另一方面可以稳妥的传递信息。

以验证比特币归属为例,A 说自己有 10000 枚比特币,B 无法信服。那 A 就可以和 B 约定好要签名的消息,A 利用自己有 10000 枚比特币的地址,然后和约定好的消息进行签名,把签名后的加密信息发给 B。B 使用 A 的比特币地址的公钥、原始信息、签名加密后的信息,如果都验证成功,那确实证明 10000 枚比特币的地址属于 A。

那问题来了,哪些钱包支持消息签名呢?最常用的是使用 Electrum。Electrum 除了用本地钱包进行消息签名,还可以结合 Ledger 之类的硬件钱包进行消息签名。此外,如果你在使用比特派,也是可以进行消息签名的。不过比特派的消息签名,支持 1 开头的普通地址,和 bc1 开头的隔离验证原生地址,不支持 3 开头的隔离验证兼容地址。具体的路径在比特派钱包,然后全部应用,消息签名,可以进行消息签名或者验证消息签名。当然,更硬核的,你还可以使用 bitcoin-cli,有 signmessageverifymessage 方法。

当然了,进行消息签名,建议尽可能不要把自己的比特币地址公钥暴露了。毕竟让别人知道你有多少比特币,还是不太好的。下次别人再让你消息签名,可别把私钥给别人了。

Don’t Trust. Verify.


我是区块链罗宾,博客 dbarobin.com。如果您想和我交流,我的 Mixin: 26930


本站推广

币安是全球领先的数字货币交易平台,提供比特币、以太坊、BNB 以及 USDT 交易。


本博客开通了 Donate Cafe 打赏,支持 Mixin Messenger、Blockin Wallet、imToken、Blockchain Wallet、Ownbit、Cobo Wallet、bitpie、DropBit、BRD、Pine、Secrypto 等任意钱包扫码转账。


–EOF–

版权声明:自由转载-非商用-非衍生-保持署名(创意共享4.0许可证)