tBTC团队发布事故报告,详细说明智能合约漏洞
近日,基于以太坊、与比特币1:1锚定的代币tBTC的开发团队发布了一份事故报告,详细说明了导致开发团队在周一启动全系统紧急暂停的智能合约漏洞。
项目背景与运作机制
tBTC是一种ERC-20代币,其供应量与比特币供应量挂钩。用户若希望在以太坊上使用比特币,可以通过tBTC去中心化应用(DApp)将比特币存入系统,并在以太坊钱包中获得相应数量的tBTC代币。用户也可通过该DApp赎回比特币。
tBTC团队对其协议的无许可赎回机制引以为豪,这是类似项目(如WBTC)所不具备的特性。然而,由于赎回代码中存在一个先前未被发现的漏洞,开发人员被迫从UTC时间周一5:45起,暂停所有新存款10天。
漏洞详情与影响
该漏洞涉及"签名者保证金"机制。具体来说,当用户要求系统铸造tBTC代币时,三个随机选择的签名者将共同控制持有用户比特币存款的比特币钱包。之后,如果用户想要退出到比特币链,签名者需要授权交易以赎回比特币,将其发送回用户自己的地址。
要参与tBTC铸造过程,签名者需要存入相当于比特币存款价值1.5倍的ETH保证金。协议的智能合约将持有该保证金,直到用户成功赎回比特币存款。该机制旨在确保签名者不会试图携款逃跑。事实上,如果赎回失败,系统可以在6小时后没收签名者的保证金。
5月18日,一位控制三个签名者的运营商向tBTC团队报告,他们无法完成赎回过程。经过调查,团队确定用于赎回的特定比特币地址存在问题,系统无法证明比特币存款已被发送到正确的地址。因此,签名者的保证金面临被自动没收的风险。
应对措施与后续计划
事故报告指出:"在确认问题并确认无法在合约外修复后,我们决定触发tBTC系统合约中的一次性10天紧急暂停机制。"
紧急暂停机制阻止新存款进入系统。同时,团队关闭了DApp,以确保现有存款不会意外触发赎回漏洞。目前,他们已将99.83%的tBTC供应量收集到他们控制的单一钱包中,并计划使用这些代币赎回未完成存款并退还签名者保证金。团队表示,没有用户资金损失。
未来展望与安全模型
本着去中心化的精神,tBTC的安全模型只允许团队使用其特权密钥启动一次存款暂停。系统计划于5月28日重新上线。但在此之后,如果出现另一个安全问题,开发人员将无法再次暂停系统。
"我们无法阻止人们之后继续使用该系统,这就是为什么传达我们的发现特别重要,"项目负责人在Twitter上表示。