今晨,Cosmos团队表示在CosmosSDK发现严重安全漏洞。PeckShield安全人员分析发现,原本Cosmos抵押之后需要等待21天才能赎回,但合约代码里Validator状态变化时存在一种逻辑缺陷,使得用户可以减少21天固定赎回时间,从而提前赎回抵押的数字资产,进而破坏原本的POS共识可更短周期使用资金进行重复抵押赚取利息。
Cosmos是最新上线的基于Tendermint共识的区块链网络,提出IBC通迅协议,用于解决资产跨链的问题,其核心主链被称为CosmosHub,号称『万链之王』。其上的平台代币为Atom,用户通过验证者投票参与服务治理与维护,同时接收系统激励,史称『Staking模式』,为2019年区块链明星项目之一。
CosmosHub是基于Tendermint,它依靠一组验证者来保护网络,等同于Bitcoin、Ethereum等PoW网络中的矿工角色;
Cosmos生态MEV基础设施提供商Skip Protocol推出Skip API:7月20日消息,Cosmos生态MEV基础设施提供商Skip Protocol推出Skip API,允许在Cosmos中的任何网络之间进行一键跨链代币兑换和转移,通过集成Skip API,任何钱包、前端或DApp都可以非常轻松地在IBC链之间无缝转移流动性。[2023/7/20 11:06:44]
验证者运行一个完整的Cosmos节点,并通过广播包含由其私钥签署的加密投票参与共识,有一定的硬件投入成本;
验证者需要抵押定额的Atom作为保证金,且系统只有股权最高的100个节点会成为验证者;
验证者在区块链中打包交易提交新块并获得系统激励,这是验证者的收入,等同于挖矿收益;
Cosmos生态模块化结算层Dymension获得670万美元种子轮融资:金色财经报道,Cosmos生态模块化结算层Dymension在种子轮融资中筹集了670万美元。Big Brain Holdings和Stratos领投了本轮融资,Matchbox DAO、DraftKings的Shalom Meckenzie等参投。Dymension联合创始人兼首席执行官Yishay Harel表示,该资金是通过SAFT代币获得的。[2023/2/9 11:57:34]
另外,验证者在参与治理方面,他们还必须对网络中的提案进行投票,只有投票通过的提案才能发挥效应,投票权重根据每一位验证者存放的总权益进行加权;
安全稳定的验证者会产生稳定的收益,有问题的节点导致您损失本金,例如验证者节点掉线会损失0.01%本金。
Axelar:即将为Cosmos生态引入跨链Bitcoin,目前正在测试阶段:9月30日,跨链互操作协议Axelar宣布,即将为Cosmos生态引入跨链Bitcoin,目前正在测试阶段。[2021/9/30 17:17:55]
由此可知,运行一个Validator角色的难度不低于开一个PoW矿池,普通用户要想加入Cosmos主网,并获取收益是个门槛比较高的事情。
由于普通用户持币但又不想参与验证,那么其手中的Atom会面临增发而贬值,但是直接参与Cosmos主网有一定的技术难度,因此出现了委托人Delegator角色。委托人是那些不能或不想自己运行验证节点的Atom持有者,普通用户可以将Atom委托给验证人并获得部分收入,例如星火矿池提供的委托服务。
用户一旦赎回委托订单,Cosmos将在赎回操作21天之后将委托抵押的Atom退回给委托人。
公告 | Upbit:因Cosmo网络迁移,暂停存取:Upbit发布公告称,因Cosmo网络迁移,暂停存取。等Cosmo(COSM)网络稳定后将回复存取款。[2019/7/5]
因此这21天为平台固定的锁仓时间,如果出现一种情况,Cosmos系统存在设计缺陷,导致委托人的赎回周期可变,这对平台上的其它用户来说,是不公平的,也破坏了Cosmos区块链的共识机制。
在了解这个漏洞之前,我们先来看下Cosmos网络之上的验证者状态变化图:
其中,一共有三个状态:
bonded
unbonded
unbonding
状态之间的变化关系如下:
验证者默认属于unbonded状态,当发起bondValidator之后,状态变更为bonded,
变更这一状态之后,验证者开始接收系统收益;
而当验证者发起beginUnbondingValidator以退出bonded状态时,其状态变更为unbonding,
同时系统不再给这一验证者发送任何收益,同时这一验证者的委托人可以发起赎回操作;
若委托人没有发起赎回操作,那么处于unbonding状态的验证者可以重新bondValidator回到bonded状态以接收系统收益;
处于unbonding状态的验证者,当用户赎回时间21天到期之后,将进入到unbonded状态,此时委托者接收到之前抵押的Atom及抵押期间的收益。
上面我们了解到验证者在帮助抵押赎回方面的整体流程,表面上没有什么问题,PeckShield安全人员在分析CosmosSDK代码的时候,发现了这一赎回流程中的致命设计缺陷,可导致委托者利用验证者unbonding状态,突破21天锁仓固定期而提前赎回。
我们先看旧版的赎回代码:
其大体流程如下,获取验证者的unbonding完成时间和区块高度;
将待赎回部分代币根据锁仓到期时间和区块高度生成一个锁币赎回记录;
将这一赎回记录保存到队列之中,等待时间到期之后,退还锁币资金给委托人。
细心的用户发现了这里的问题,一图以盖之:
简而言之,系统在计算锁仓到期时间的时候,误用Validator开始unbond状态时间和Delegator赎回发起时间,使得Delegator可以使用这一时间差赠取差异:
Validator正常发起beginUnbondingValidator操作;
Delegator在Validator发起unbond操作之后7天时发起Undelgate赎回操作,理论上赎回时间为21天,但是这里计算的时候使用的是Validator发起unbond操作的时间,
因此,这一个Deletagor『免费』缩减了7天的赎回时间,再经过14天时间就可以收到锁仓的资金。
此时,我们再来看修复之后的代码:
此时,无论Delegator何时发起Undelgate操作,都会确保从操作发起时开始计算21天,而与验证者无关。
Staking作为2019年新潮的区块链方向,获取了一定的瞩目,无论你是Staking的项目方,还是参与Staking的验证者及普通用户,在资产面前,我们都应该保有敬畏之心。
新技术大胆应用的背后,是监管理念的提升。让企业不必为审批程序劳心劳力,可以将更多的精力投入到发展壮大上开办一家企业,手续要办多久?一周?三天?还是一个工作日?最近的一次体验,刷新了笔者的认知.
1900/1/1 0:00:00加密货币支付处理商BitPay的首席商务官认为,比特币的价格会在商业利益和全球加密货币的实际应用案例的推动下继续上涨.
1900/1/1 0:00:00塞力斯就收到了上交所的监管工作函,要求塞力斯说明风险、合作事项以及与主营业务的相关性,主要是因为与蚂蚁区块链合作信息披露不充分导致.
1900/1/1 0:00:00据加密新闻媒体TheBlock报道,主要加密货币交易所Coinbase负责商业、数据和国际业务的副总裁EmilieChoi在采访中称Coinbase正考虑推出保证金交易.
1900/1/1 0:00:00Bitfinex前CSO、Tether联合创始人PhilPotter谈到Bitfinex在初期面临的“挑战”。他指出,Bitfinex早期面临的主要问题是技术.
1900/1/1 0:00:00“如果你增加更多的假设,具体来说,这要求观察者也积极监察共识,而不只是在事后下载输出,那么,你可以将容错率一直提高到99%.
1900/1/1 0:00:00