当前位置: 首页 > 科技观察

他是中本聪?为什么连简单的消息签名都不行?

时间:2023-03-14 16:51:00 科技观察

在比特币系统中,可以对一系列消息进行数字签名,它具有三个作用:证明你拥有某个基金的私钥。这个证据是无可争辩和无可辩驳的。签署的交易未被其他人修改数字签名使用椭圆曲线数字签名算法(ECDSA)。算法非常复杂,普通用户无需掌握算法细节,但只要掌握BitcoinCore钱包软件或类似工具,就可以轻松生成或验证签名。要生成签名,在BitcoinCore软件的“文件”菜单下,点击“消息签名”菜单项,会弹出一个对话框。分别填写比特币地址和消息正文,点击“消息签名”按钮,底部签名区会出现一行文字。这段文字可以证明你拥有比特币地址,并且消息是完整的,没有被修改过。总之,这个证明任何人都可以验证,无法否认。要验证签名,在BitcoinCore软件的“文件”菜单下,点击“验证消息”菜单项,会弹出一个对话框。分别填写比特币地址、消息文本、签名文本,点击“验证消息签名”按钮,会出现验证是否成功的提示。没有安装BitcoinCore软件也没关系,很多网站都提供验证签名的工具。例如:https://blockexplorer.com/messages/verify又比如这个网站:https://bitcotools.com/verify-messages以下网址列出了几十种签名方法:https://bitcointalk.org/index。php?topic=990345.0截图上的文字不完整,我完整的消息签名是:H0UP22YwxdZ0EyetmIoY72w/v1QGQiSk2vAf6jViHlw/DBC+76775pFqxGclbrkny4D40bVWe9nPLgl/MMWQyZs=NBitcoin中便捷的消息签名可以用keymessagesign.2函数来完成,非常MessagegSign)来验证签名使用addr.VerifyMessage(msg,sig)就这么简单,完整源码://用私钥签名消息varmsg="我有这个地址的私钥:17mKugcBDEJbu391Fq41AdwLeGHwJLPRDf";stringpriv="3243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C8";Keyk=newKey(Encoders.Hex.DecodeData(priv),-1,false);//非压缩密钥varsig=k.SignMessage(msg);Line/Result(G2HBH)://+ZmgTNtCnxMbgWf4nbXcTjB//KFvy3am3UWcxdA0TD3MDdpqaZgEoY//PsvbhR+OSZkR9hSp/rrO3nErlzBjY=//验证一个签名varaddr=newBitcoinPubKeyAddress("17mKugcBDEJbu391Fq41AdwLeGHwJLPRDf");Console.WriteLine(addr.VerifyMessage(msg,sig));//验证我以前AsignaturemadewithBitcoinCorevaraddr2=newBitcoinPubKeyAddress("12j75TnvVhEVxk3fiaPSy3w4FVfjsKbKZm");varmsg2="申龙斌的程序人生";varsig2="H0UP22YwxdZ0EyetmIoY72w/v1QGQiSk2vAf6jViHlw/DBC+76775pFqxGclbrkny4D40bVWe9nPLgl/MMWQyZs=";Console.WriteLine(addr2.VerifyMessage(msg2,sig2));CraigStevenWright(CSW)一直声称他是中本聪,为什么不用创世块中的比特币地址(1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa)签名呢?看来青本中本聪是个骗子作者微信公众号(沉龙斌的程序生活)取得联系】点此查看这个作者的更多好文章