风险提示:理性看待区块链,提高风险意识!
Greg Maxwell:CSW再次伪造中本聪签名
首页 > 币界资讯 > 区块链知识 2018-11-19 11:27:00

在BCH算力战争的第二天,一些密码货币爱好者发现了一条消息,它似乎拥有着比特币第9个区块的“有效签名”,这条消息警告称比特币区块链上的隔离见证(Segwit )协议存在一些问题。此外,Coingeek的所有者Calvin Ayre随后在推特上发文称“中本聪活了!”,Ayre还转发了来自Twitter账号@Satoshi的消息。

p5

真的是来自中本聪本人吗?很快比特币技术大神Greg Maxwell解释称,这其实只是Craig Wright第二次伪造的签名:

“如果有人想要发布一堆神秘的ECDSA签名,使得公众认为这些签名是来自比特币的创造者,以此破坏比特币市场,从人们那里榨取钱财,或以其他方式说服人们听取他的意见,他们要怎样才能实现呢?”

Maxwell自答道:

“不幸的是,鉴于公众对密码学的理解有限,这显然是一件容易造成欺诈的事情。

他们的关键技巧在于,非技术人员倾向于相信那些看起来很麻烦的东西,而技术人员往往认为他们比实际知道的要多得多,所以他们很容易误入杂草堆当中。

在密码系统当中,细节比你想象地要更重要,因此,你所要做的,就是一个制作一个稍有修改的密码系统伪造品。然后很多自认为理解ECDSA工作原理的人,便会急于宣称其结果成立。

你能想到的大多数修改,足以使该方案不安全。

因此,例如几年前,Craig Wright通过简单地从区块链中复制一些预先存在的签名,并在验证它们时发布了一些混淆的指令来证明自己就是中本聪。然而,很快这件事就被揭穿了,但这个方法仍然愚弄了很多人,这些人陷入了困境,想当然地认为事实就是这样的。在这种情况下的“修改”,是诈骗者声称要签名的消息,与实际签名的消息没有任何关系。

最近,他似乎再次尝试了,但这次的“签名”并非来自区块链…导致一些BCH客户端的开发者向RedHat的一名工程师进行了“验证”。但事实证明,这个签名还是伪造的,人们对密码学的理解不够深入,这导致他们再次被骗了。

正如比特币开发者Pieter Wuille所说,“ECDSA签名消息并非是一个哈希,而由‘签名者’所选择的是不安全的。”

p6

这一次,诈骗者发布了‘hash’,r,s元组。ECDSA的哈希部分是算法不可获取的部分。如果验证者本身没有运行哈希,则ECDSA的安全属性不会成立,则伪造会变得微不足道。

[同样的漏洞也被带到了BCH中的原始OP_DSV操作码中,它最初没有对输入数据进行哈希处理,而是将其留给了用户。但我上报了它,并且在部署之前,开发者们似乎已修复了它。]

如果验证者自己不执行哈希,但仅接受签名者给出的值,则给定公钥P,选择随机非零值a和b。计算R=aG+bP。现在, (R.x, R.x/b)是密钥P对“消息哈希” (R.x*a/b)的有效签名。

这不会危及真实ECDSA的安全性,因为你无法找到哈希至所选(R.x * a / b)值的消息。

人们应该警惕那些模糊或过于技术性的“证明”(那些看起来像“安全系统”的东西,但出于某种原因,人们会使用原始数字或代码来验证它)。而精心被设计的加密软件,因做了大量的工作,而可避免让用户被这样的特技给愚弄。这些东西很棘手,如果他们确信自己有效地实施定制的密码系统,任何人都可能会陷入困惑,以至于接受这种虚假证明。一个系统是不安全的,这仅仅是因为,你自己对它还不够了解。

这里有一个示例Sage脚本来生成伪造签名,这些脚本会欺骗那些接受ECDSA“签名”的人,而无需自己哈希消息。它适用于任何EC密钥,包括伪造者之前没有看到过的签名。


F = FiniteField (0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F)
C = EllipticCurve ([F (0), F (7)])
G = C.lift_x(0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798)
N = FiniteField (C.order())
P = P=-C.lift_x(0x11db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5c) # block 9 coinbase payout key.
def forge(c, a=-1):  # Create a forged 'ECDSA'  (hashless) signature
  # set a to something other than -1 to be less obvious
  a = N(a)
  R = c*G + int(a)*P
  s = N(int(R.xy()[0]))/a
  m = N(c)*N(int(R.xy()[0]))/a
  print 'hash1 = %d'%m
  print 'r1 = %d'%(int(R.xy()[0]))
  print 's1 = %d'%s 
for c in range(1,10):
  forge(c)

这段代码,就生成了最近欺骗人们的伪造签名:


hash1 = 25292222169426362969760742810503101183086560848420849767135309758511048414376
r1 = 61518691557461623794232686914770715342344584505217074682876722883231084339701
s1 = 54273397679854571629338298093917192510492979773857829699728440258287077154636

你怎么看?

上一篇: 从零开始学习比特币开发:创建钱包
下一篇: BCHSV区块高度能追上BCHABC的原因分析 原来是它在作祟
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥264,723.74
37,091.22 USDT
+0.1%
ETH以太坊
¥14,416.22
2,019.90 USDT
-0.12%
USDT泰达币
¥7.20
1.01 USDT
0%
BNB币安币
¥1,625.40
227.74 USDT
+0.36%
XRP瑞波币
¥4.32
0.60460 USDT
+0.37%
USDC
¥7.14
1.00 USDT
+0.03%
SOLSolana
¥398.85
55.89 USDT
+1.54%
OKBOK币
¥398.61
55.85 USDT
-1.64%
ADA艾达币
¥2.68
0.37580 USDT
-1.16%
DOGE狗狗币
¥0.55160
0.07730 USDT
-1.52%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.402E-5 USDT
-18.95%
Gala
¥0.18
0.025374 USDT
-4.66%
dYdX
¥22.58
3.1918 USDT
-0.91%
比特股
¥0.05
0.006964 USDT
+4.28%
PancakeSwap
¥15.52
2.1936 USDT
-2.74%
Conflux
¥1.08
0.1524 USDT
-2.87%
Filecoin
¥31.45
4.4454 USDT
-0.69%
FTX Token
¥29.82
4.2155 USDT
+16.96%
Yield Guild Games
¥2.55
0.3608 USDT
-0.52%
Shiba Inu
¥0.00
8.14E-6 USDT
-2.51%
比特币
¥262,381.44
37091.22 USDT
+0.1%
比原链
¥0.07
0.010011 USDT
-4.38%
最新快讯
更多
汇丰、恒生、渣打、富邦华一四家外资银行入围首批“数字人民币”业务试点名单
2023-11-28 19:06:57
摩根大通和Apollo计划建立代币化“企业主网”
2023-11-28 19:03:57
Nansen2公测版本上线,新增链上数据异动、智能搜索等功能
2023-11-28 18:59:52
西班牙公民需在明年3月底前申报其海外平台上加密货币持仓
2023-11-28 18:53:43
Nansen2已公开测试
2023-11-28 18:53:38
dYdX基金会:主网启动以来超过1645万DYDX被质押
2023-11-28 18:52:07
NicCarter等比特币倡导者发文:比特币挖矿是清洁能源和平衡电网的关键工具
2023-11-28 18:47:58
下载币界网APP