作者L0v35 (是零不是欧)
看板DigiCurrency
标题[闲聊] Parity multi-sig bug又来拉
时间Tue Nov 7 21:40:57 2017
Parity公告:
https://paritytech.io/blog/security-alert.html
继上次parity multi-sig被盗走150kETH後
昨天又有人不小心把multi-sig共用的library合约杀掉
导致所有已修复的parity multi-sig合约不能执行
所有parity multi-sig钱包的余额都不能移动
目前确定有509019ETH ($152M)永久不能被移动了
https://pastebin.com/ayDeJeDS
就看市场如何反应罗
内行跟外行的差别就在这里了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.63.10
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DigiCurrency/M.1510062061.A.990.html
※ 编辑: L0v35 (140.113.63.10), 11/07/2017 21:42:06
1F:推 mithuang: Hard Fork! 11/07 21:42
2F:→ L0v35: 话说gav wood自己的polkadot也损失了300kETH 11/07 21:45
3F:→ L0v35: 0x3bfc20f0b9afcace800d73d2191166ff16540258 11/07 21:46
4F:推 bluefancy: 老天太红一个bug就可以很严重 11/07 21:53
5F:推 yys310: Hard Fork! ETC ETC+ ETH 11/07 21:53
6F:推 Bob9154: 看小神童有没有用 没损失就不分叉惹 11/07 21:55
7F:推 NoNameL: WTF 11/07 21:59
8F:推 wahaha99: 50E耶...就这样喷了? 11/07 22:00
9F:推 ProtectChu56: ...我想砍掉Parity了,虽然ETH全节点钱包他最省空间 11/07 22:11
10F:推 tcn1john: 印钞票的相反- 烧钞票... 11/07 22:13
11F:→ SP500: This means that "currently" no funds can be moved out 11/07 22:28
12F:→ SP500: the multi-sig wallets. 11/07 22:29
13F:→ L0v35: 这些钱包都是hard-code指向library 唯一解决方法就是HF在 11/07 22:37
14F:→ L0v35: 原本的library地址重新放回原本的code 11/07 22:37
15F:推 goldflower: 雷到笑 11/07 22:42
16F:推 CP64: 哇 11/07 22:44
17F:推 g581637: ........ 11/07 22:44
18F:推 yys310: 有哪些用到他家的阿 怕.jpg 11/07 22:46
20F:推 GameDemon: 靠 凸显了去中心化的区块链上 用了"中心化"的library 11/07 22:50
21F:→ GameDemon: 结果根本就不是去中心化了 崩溃XD 11/07 22:50
22F:推 darkdixen: 白帽修好的没事 这次雷到连白帽都傻眼 11/07 23:00
23F:推 yys310: 後来想想这hard fork没用吧?要fork到钱存进去前? 11/07 23:31
24F:→ yys310: (对smart contract不太了解 11/07 23:32
25F:推 amALu: wwww 好环保把钱变不见都不会制造垃圾和废气XD 11/07 23:35
26F:→ hsuallan: 应该是fork到自杀前然後再修改程式码吧 11/07 23:41
27F:推 NoNameL: 我想请问..... 这个手滑误砍有救吗? 11/07 23:49
28F:→ yo841204: Hsu大应该说的没错,不过感觉不太可能HF,如果只因为一 11/07 23:52
29F:→ yo841204: 个钱包又分一次,应该又会有人不爽然後出来支持旧链了 11/07 23:52
30F:推 mithuang: 只要币锁住,不要散发出去hard fork绝对有用~ 11/07 23:59
31F:→ mithuang: 要不要HF是政策考量不是技术考量 11/07 23:59
32F:推 yo841204: 对啊,但怕又分出个ETC2之类的来瓜分资金QQ 11/08 00:03
33F:推 Ayukawayen: DAO fork也没有叉到钱被转走之前吧? 印象中是放了一个 11/08 00:18
34F:→ Ayukawayen: 把钱逆转回去原帐户的协议来回复? 11/08 00:19
35F:→ Ayukawayen: 作废几万个区块和几十万笔交易感觉很恐怖的 11/08 00:21
36F:推 yys310: The DAO那时是本身就有限制不能汇出平台外 所以没有流出 11/08 00:22
37F:推 KousakaReina: 靠,50W ETH??? 11/08 00:22
38F:→ yys310: 但还是被转到其中一个address了 最後还是从被bug取钱前HF 11/08 00:23
39F:推 NoNameL: 这次该不会hf後加一个命令,让删除的合同再复原回来吧? 11/08 00:42
40F:推 yys310: let it go 11/08 00:45
41F:推 goldflower: ETH稀缺性增加 显然是利多(误) 11/08 00:57
42F:推 NoNameL: 我没办法判断这是利多还是利空,楼下怎麽看? 11/08 01:06
43F:推 tcn1john: 利多...船过水无痕 还是看btc 11/08 01:11
44F:推 darkdixen: 可能的HF是把被杀掉的合约放回同样的位置 这样就没事了 11/08 01:41
45F:→ darkdixen: (当然是bug改好後的版本) 11/08 01:42
46F:推 a23962787: 像是转钱转错钱包凭空消失也不会为了你硬分吧?金额在 11/08 03:20
47F:→ a23962787: 大都是你自己疏失衰小 11/08 03:20
48F:→ a23962787: 所以币突然少那麽多 利多(X 11/08 03:20
49F:推 dannyst: 看来是一个叫 develops199的新手 github 帐号被盗 11/08 08:12
50F:推 dans: 数字货币也会变砖块(笔记) 11/08 10:44
51F:推 Ayukawayen: HF增加一个指令: 我删除你之前的删除 XD 11/08 11:53
52F:推 superjeff: 假新手真恶意 11/08 11:57
他是个新手没错, 不是很懂Ethereum上程式执行.
而意图是恶意的没错, 但并不是要毁灭multi-sig合约.
library里kill(address _to)会把钱包余额送给地址_to, 然後合约自尽.
他看来是想用kill()来把所有multi-sig清空,
所以想先把library的ownership检查拿掉.
(txid: 0x47f7cff7a5e671884629c93b368cb18f58a993f4b19c2a53a8662e3f1482f690
library kill()
)
结果没注意其他multi-sig的kill()跟ownership检查一样是delegatecall
(一样呼叫library的程式码)
所以kill()呼叫也没用了
(txid: 0xb63f7a2a1940a11664d58fb6a2d4942e031562b160c98e60fdea900b6402ea79
polkadot multi-sig kill()
)
两个kill()的_to都是0xae7168deb525862f4fee37d987a971b385b96952,也就是他自己.
library kill()的_to不重要,
polkadot mutli-sig kill()的意图就很明显了.
看他记录, 他把余额高的multi-sig都扫过一次了
https://etherscan.io/address/0xae7168deb525862f4fee37d987a971b385b96952
简单说他是个恶意的低能儿; 原本只是想偷钱, 结果不小心把大家的钱都锁住了
※ 编辑: L0v35 (140.113.149.183), 11/08/2017 13:00:12
53F:推 NoNameL: 所以这个人会被追究法律责任吗? 11/08 13:45
54F:推 GameDemon: Code is Law 能说他犯法吗?好像也不能 11/08 16:31
55F:推 thuko8652: 犯什麽法 代码即法律 11/08 17:25
56F:推 NoNameL: 你去HACK政府的网站後,跟检察官这样说说看,看他会不会 11/08 19:41
57F:→ NoNameL: 起诉你。 11/08 19:41
58F:→ NoNameL: 或是你是警察,明明你就有可以查询全台湾的案底资料的权 11/08 19:42
59F:→ NoNameL: 限的帐号,你没正当理由去查查看。 11/08 19:43
60F:→ NoNameL: 法律上的逻辑跟code上的逻辑完全是两回事。 11/08 19:44
61F:推 NoNameL: 举个例子,即使一个网站蠢到直接把客户资料丢到网站上, 11/08 19:53
62F:→ NoNameL: 直接改个uid就能绕过权限判断让人下载。你也不可以去下载 11/08 19:53
63F:→ NoNameL: ,他们资安没做好没错,但只要个资外泄没造成客户权益损 11/08 19:54
64F:→ NoNameL: 害,那麽,那个网站依然是不会受到任何法律处罚的。 11/08 19:55
65F:→ NoNameL: 但是你直接打uid绕过权限,那个在法律上是被视为犯罪。 11/08 19:55
66F:→ NoNameL: 所以最後会变成,一个工程师发现了一个蠢的要死的漏洞, 11/08 19:56
67F:→ NoNameL: 放到论坛或媒体上爆料,但公司直接请法务告下去,那个工 11/08 19:57
68F:→ NoNameL: 程师被检察官起诉,但搞出漏公司一点事情都没有的状况。 11/08 19:57
69F:→ NoNameL: 国外我不知道是怎麽样,但台湾是这样的状况。 11/08 19:58