前言
区块链项目发展迅猛,经历了比特币、以太坊时代之后,出现了许多具有不同特点和优势的公链项目。这些项目既具备了区块链1.0、2.0时代的特点,如数字货币交易、去中心化和智能合约支持,同时还通过更巧妙的共识机制、更复杂的技术和金融模型来解决现有问题,推动区块链技术融入我们的生活。
在这个过程中,区块链安全组一直关注着各个公链项目,为它们的发展和上线提供安全支持。在最近的一次公链审计项目中,我们发现了一个有意思的关于MerkleTree底层实现的漏洞。下面将分享我们在发现该漏洞之前的技术积累以及发现的过程。
公链项目审计
回顾2018年,对于从事区块链安全的专业人员而言,大部分人印象最深的可能是以太坊的合约漏洞、EOS公链上出现的合约问题以及少数公链的漏洞信息。搜索与区块链审计相关的文章时,大多数是关于智能合约的检查清单和审计分析,很少有针对公链审计的技术分享。在这里,我推荐大家阅读一本国内首发的《区块链安全生存指南》,介绍了当前的区块链行业环境以及近年来发生的一些著名事件。同时,我也分享了最近发布的《公链审计检查清单》,供公链项目开发者参考。
审计区块链公链项目与通常的软件代码审计有所不同。通常的代码审计会考虑语言特性以及该语言的0day或1day漏洞,结合常见业务场景分析代码实现。而区块链公链项目由于代码量较大,背后还有严谨的金融货币模型和共识模型,并且缺乏实用的审计工具,因此需要更多的人工审计,审计的定制化程度高,难度和工作量也较大。依据我的理解,我们主要从以下几个方向入手:
- 语言特性及其已知漏洞 - 底层实现(包括密码学、序列化、大数运算等) - 区块链基本元素的实现(区块、交易、链) - 区块链行为的逻辑(生成区块、交易进入交易池等) - 区块链的其他组件(p2p、rpc、钱包等) - 共识算法的合理性 - 金融模型的合理性 - 历史公链漏洞
漏洞发现过程
我们在审计过程中发现的漏洞利用方式源于该公链项目在实现MerkleTree逻辑时与常规实现方式稍有不同。通过整理比特币区块链和以太坊区块链中出现过的漏洞,我们发现了可能利用的漏洞点,并确认它们可以影响不同节点间的共识,从而导致分叉。
在发现问题后,我们立即向公链项目方报告,而公链的开发者则迅速响应,非常重视这个安全问题,并立即完成了修复。
做公链marketing时,大家将作业开展优化:知名品牌(Branding),数据营销(Digital Marketing),社区经营(Community Operations),顾客关系管理(CRM),媒体公关(PR)...
公链赛道一直不缺少话题,新公链的出现,不仅为去中心化、可扩展性、安全性等方面提供新的解决方案,也为加密社区和投资机构带来新的关注点。近期一批新公链涌现,其中讨论度较高的有以Aptos为代表的Meta背景公链、以Celes...
原文作者:Yilan原文来源:LD Research摘要随着新公链市场热度攀升,特色公链的概念随之浮现,打败以太坊的或许不是以太坊的 Fork,而是更具破局性质,能够帮助 Web3.0 走向成熟形态的好用公链。发展特色公...
自区块链诞生以来,整个行业已经经历了几轮周期轮替。目前拥有最丰富生态、影响力最大的以太坊,由于性能问题和费用问题而饱受诟病,在周期中不断被后起之秀挑战。上一轮周期中,涌现出了一批新的Layer1项目,如Solana、Po...