statoshi推特账号发出签名,警告btc的SegWit存在漏洞

1,943 阅读2分钟

昨晚,也就是BCH算力战开始后的第二天,推特账号“中本聪”突然发布了一则新推特(之前这个账号只发送中本聪的语录),内容是比特币高度为9的区块中的coinbase交易,改交易的output指向地址12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S,这个地址普遍被认为是中本聪使用过的地址,其最后一笔转出是在2009年。

之后“中本聪”又发布了一段哈希和签名:

h(m) = d0f756e2d96f49b32579bd9365fde07674629dcab236fd9af8c01085a0cf9201
r = 99cc0d1f4ed3f1e6d18c130df22fece489b4ab016c33ed53db1ce45880bf4e99
s = 6633f2e0b12c0e192e73ecf20dd0131a30fa31e54314b2e7e4b57a344f76f2a8

可以猜到这个签名可能是使用上述地址的私钥来完成的。我们需要地址12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S的公钥来验证签名。公钥可以从它的任意一笔转出交易里获得:

Qx = 11db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5c
Qy = b2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3

我们使用ECDSA签名验证工具,在选择secp256k1曲线的情况下,也就是比特币使用的曲线,验证成功。

但在m值未公布的情况下,仍然不能确定“中本聪”拥有该地址的私钥。因为,如Pieter Wuille所说,ECDSA的完整验证流程包括对消息原文m进行哈希。m未知是不安全的,任何人在已知公钥的前提下,都可以构建出满足条件的h(m)和r,s值:

等到m的值被公布,我们才可以确定整个签名是有效的。而“中本聪”表示,要等到2019年12月才会公布:

他也透露,文件内容是关于SegWit的问题:

我不想被公开,但是SegWit存在问题。如果不被修复,一切都将消失,我也因此失败。只有一种方法能让比特币活下来,这对我来说很重要。

重要到可能足以让我公开身份。

结论就是,明年年底,中本聪的身份也许就会被揭晓。