2021年8月,aelf以极高的代码质量通过了美国知名安全审计机构Trail of Bits(以下简称TOB)的安全审计。TOB是一家专注区块链网络的安全公司,成立于2012年,在区块链、密码学和应用安全审计方面拥有专业且丰富的经验,服务了包括Western Digital、Compound、Aave、Loom、Random X在内的多个区块链行业顶级项目,受到业界广泛关注与认可。
此次审计中,TOB安全技术团队对aelf主网的代码进行了评估,就访问控制、中心化程度、代码结构、抢先交易、标准文档、测试验证六个维度给出了一系列建议。截至目前,aelf技术团队已完成了审计过程中反馈问题的全面修复并提出了通过负载均衡避免相关风险的解决方案,得到了TOB安全审计工程师的认可,通过了TOB安全技术团队Fix Review。
aelf技术团针对TOB审计反馈问题已完成的系统修复详情:
通过成立议会应急组织,必要时移除作恶节点。
让全网所有节点都进行代码检查,确保恶意代码不会被部署上链。
调整经济系统,鼓励选民投票给新节点,并惩罚出块过少的生产节点。
针对生产节点极端分叉的情况下,网络恢复后最长链的选取可能会出现困难的问题,aelf技术团队改为在两轮未产生lib(最近不可回滚区块)的情况下,每个节点都会自动回滚到lib高度,直到网络恢复。
针对个别情况下节点会对交易执行失败的用户返回自身调用栈信息,aelf技术团队改为仅返回错误信息的第一行,不再显示完整调用栈,以避免暴露节点的不必要信息。
对管理对等节点的API接口增加密码验证,保证对等节点不会被恶意增删。
aelf技术团针对TOB认定未完全修复的问题的说明及后续方案详情:
1. 针对“Insufficient smart contract sandboxing”问题说明及解决方案
TOB技术团队提出,由于aelf的智能合约并没有通过虚拟机或其他沙箱技术来执行,就有可能引发因为开发者部署上包含恶意代码的合约,而导致执行相关交易的节点产生资源耗尽、敏感信息泄露等问题。
在aelf设计初期,也曾考虑过使用虚拟机环境执行智能合约,但是经过长期的考量,aelf技术团队认为,相较于使用.net core反射机制执行智能合约代码,虚拟机的执行效率会明显降低,且难以实现交易的并行执行,最终无法完成aelf区块链大幅度提高TPS的愿景。因此aelf技术团队放弃了采用虚拟机的方式执行智能合约;相应地,aelf技术团队把更多的精力投入到了对智能合约代码检查和部署机制的设定上。
开发者如果试图往aelf区块链部署一个智能合约,需要历经下列的步骤(其中大部分都会由节点自动完成):
开发者在使用aelf脚手架项目编写完智能合约后,脚手架项目会在编译时自动对合约代码进行大量的检查,并在关键操作上织入必要的模块,如步骤的计数器等,最终生成patch后的合约;
开发者向aelf零合约发送部署合约的交易,并将patch后的合约代码包含在交易的参数中;
该合约的代码会通过区块链浏览器呈现给当前的生产节点,此时生产节点需要手动同意该合约的部署行为;
超过2/3的生产节点同意该合约部署后,开发者可以再次对零合约发送部署合约的交易;
生产节点针对开发者再次发送的合约部署请求,自动地在本地再次调用aelf的合约代码检查模块,对合约代码和织入模块做确认;
生产节点确认智能合约代码无误后,会依次自动发送最终确认合约部署的交易;
超过2/3的生产节点自动确认通过合约部署后,开发者再次发送部署合约的交易,该合约即可部署成功。
aelf团队认为,在2/3的生产节点未作恶的情况下,以上的步骤足以保证aelf上部署的智能合约代码是可靠和稳定的。在TOB团队提出相关问题后,aelf团队重新考虑了一下合约的部署过程,发现每个合约的部署都过程值得所有aelf全节点加入,于是做了一些修改。
当前,aelf网络所有的节点都会对即将部署的代码进行代码检查,随后把检查通过的合约代码的哈希值(code hash)缓存至本地。如果未来某个区块所部署的合约的哈希值,并不存在于节点之前所缓存的哈希值列表中,就拒绝这个区块。也就是说,哪怕区块生产节点试图通过某种方式将未通过代码自动审查的智能合约部署到aelf区块链上,其他的全节点也会拒绝执行该合约的部署逻辑。只有生产节点生产出不包含未通过代码检查的智能合约部署交易的区块之后,区块链才能够继续运行下去。
在未来,aelf团队会在智能合约执行环境上持续增加研发投入,以在保证现有TPS的基础上,为智能合约的执行创造绝对安全的环境。
2. 针对“Smart contracts that do not collect fees can be used to cause a denial of service”问题说明及解决方案
TOB团队提出,低手续费的交易可能会被利用进行ddos攻击,aelf技术团队没有进行系统修复,原因在于,这是目前所有区块链都会面临的问题,aelf将通过设置负载均衡,把主节点隐藏起来规避潜在风险。
目前,aelf技术团队目前已完成所有问题修复,并正在有序开展测试工作,后续将分别在公开测试网及主网进行版本升级。
链上资产安全关系到每一个用户的利益,安全防线应作为每一个项目首先要巩固的城池堡垒,唯有此才能稳固根基。
早在2020年11月,aelf Enterprise 1.0.0?已通过慢雾科技的安全审计,并于12月作为主网版本正式启动,自上线以来,一直保持平稳运行。2021年8月,aelf主网代码再次了通过美国知名审计公司TOB(Trail of Bits)的安全审计,为即将开启的主网换币以及主网的稳定运行筑起了双重安全防线。
未来,aelf将继续夯实技术实力,打造高效、安全、可靠的区块链底层基础设施,为aelf网络稳定运行及生态发展提供重要安全支撑及保障。
查看更多