摘要
Cosmos SDK 在 2019年 5 月底发现存在严重安全漏洞,该团队随后发布了补丁,并与全球验证人共同进行了升级,从收到漏洞报告到修复主网共用了72小时。
攻击者可利用该漏洞绕过委托金赎回时的锁定时间。
在介绍漏洞细节之前,先介绍一下cosmos的投票机制。
staking:投票机制
Cosmos中持币人可以将自己的货币委托给validator,当validator出块时,持币人获得收益。
当持币人遇到了佣金更低、网络状态更好的validator,不想继续委托原来的validator时。
可以unbond之前的validator。这需要等待21天。21天结束之后,委托的货币会被返还,然后持币人就可以委托其他validator了。
redelegation:一键更换validator
redelegation功能 使持币人不用等待21天的unbonding周期,可以立即更换至其他validators。
唯一的限制是21天时间内,最多更换7次validators。
目前 Cosmostation 钱包已经支持redelegation功能。
漏洞介绍
Cosmos重委托漏洞,使得持币人在赎回委托金时,不必再等待21天的时间。
Cosmos 团队的 Jack Zampolin 分享了一个程序,可以发现那些利用漏洞提前撤回委托的恶意交易。
该漏洞导致7250个Atom代币被提前赎回,当时每个Atom价值6美元。
截止2019年5月31日,使用上述恶意方法解除委托的 Atoms 大约为43,500美元。