活动概述
2018年12月12日,150多位与会者参加了为期半天的Empire Hacking特别活动,共同探讨智能合约安全陷阱及防范措施。感谢所有参与者、杰出演讲者以及BuzzFeed提供场地支持。
演讲内容回顾
解剖不安全的智能合约编程语言
Trail of Bits的Evan Sultanik系统介绍了区块链和智能合约,并深入剖析了最流行的智能合约编程语言Solidity(幻灯片)。
核心观点:
- Solidity包含许多不安全特性,即使经验丰富的程序员也容易犯错
- Solidity快速迭代的特性利弊并存,开发者需跟进编译器版本并警惕合约可升级性带来的影响
- 编译器中间表示层的引入尝试仍存在与Solidity相同的设计缺陷
数字资产安全基础评估
Coinbase的Shamiq Islam讨论了数字资产及其生态系统的安全问题,这些对加密货币交易所构成独特挑战。
关键发现:
- 供应链不可信:如何验证资产发行方的节点、智能合约或钱包代码真实性?
- 安全通信渠道不成熟:漏洞报告机制缺失,监控每个资产的Telegram聊天不可扩展
- 智能合约所有者作恶风险:即使代码安全,所有者密钥仍是单点故障
合约升级风险与建议
Trail of Bits的Josselin Feist比较了多种智能合约升级策略(幻灯片)。
实践建议:
- 可升级性便于添加功能和修复漏洞,但会增加复杂性和部署错误风险
- 采用最简单的升级方案:相比数据分离,delegatecall代理模式更脆弱
- 考虑合约迁移方案:虽更复杂,但能从更多场景中恢复
构建企业级主网以太坊客户端
PegaSys的S. Matthew English分享了开发新以太坊客户端的挑战,这些经验同样适用于大型软件工程。
技术洞见:
- 以太坊协议文档不完善,使用非标准计算机科学概念,且持续演进
- 团队沟通、架构设计和渐进式验证是PegaSys成功开发的关键因素
- Pantheon客户端现已实现主网同步并开源
(后续章节按照相同格式继续翻译剩余5个演讲内容…)
技术工具推荐
- Echidna:智能合约属性测试工具,能快速发现违反代码属性的交易序列
- Manticore:符号执行工具,用于深度测试智能合约
下期预告
2月12日将举办下一届Empire Hacking活动,欢迎通过Meetup报名参加。
本文所有技术演讲视频均已公开,建议开发者观看完整内容以获取更深入的技术细节。