t p 换算 比特币|区块链公链审计过程中遇到的Merkle Tree底层实现问题
区块链公链审计过程中遇到的Merkle Tree底层实现问题?
前言
区块链项目态势汹涌,156在经历了比特币、6991以太坊时代之后,3780大量拥有着不同特点与优势的公链项目如雨后春笋般层出不穷,吸引着人们的眼球。
这些项目既拥有区块链1.0、2.0时代中,数字货币交易、去中心化、支持智能合约的特征,也通过更加巧妙的共识机制、更复杂的技术和金融模型,来解决现有的种种问题,助区块链技术步入我们的生活。
在此期间,区块链安全组也在关注着诸多公链项目,为这些公链项目的发展与上线保驾护航。在此前一项公链审计的项目过程中,我们发现了一个有意思的关于 Merkle Tree 底层实现漏洞。下面将分享发现该漏洞的前期技术积累,以及发现过程。
公链项目审计
回顾2018年,对于区块链安全从业人员而言,大部分人印象颇深的可能都是以太坊的诸多合约漏洞,EOS 公链上层出不穷的合约问题,以及少数公链漏洞信息。使用搜索引擎查找和区块链相关的审计类文章,也大多为智能合约的 checklist、智能合约的审计分析等,针对公链审计类的技术分享并无很多。这里推荐大家一份由编写的国内首发的《区块链安全生存指南》,其中介绍了当下区块链行业环境,以及近年来区块链业内的一些著名事件等。同时分享日前发布的《公链审计checklist》,以供公链项目开发者参考。
审计区块链公链项目,与通常的软件代码审计略有不同。通常的代码审计,我们会考虑语言特性以及该语言的 0day 或 1day 漏洞,结合常见业务场景,分析代码的实现。区块链公链项目,其本身代码量较多,在项目背后,还有严谨的金融货币模型以及共识模型,且无较为实用的审计工具,需要更多以来人工审计,审计的定制化程度高,难度及工作量大。依我理解,我们主要从以下方向入手:
语言特性及其已知漏洞
底层实现【密码学、序列化、大数运算等】
区块链基本元素的实现【区块、交易、链】
区块链行为的逻辑【生成一个区块、交易进入 tx_pool 等】
区块链的其他组件【p2p、rpc、钱包等】
共识算法合理性
金融模型合理性
历史公链漏洞
漏洞发现过程
我们在审计过程中发现的漏洞利用方式,源于该公链项目在实现 Merkle Tree 逻辑时,与常规实现方式有些许不同。在整理之前比特币区块链、以太坊区块链,出现过的漏洞时,发现了可能利用的漏洞点,经过确认发现可以影响不同节点间达成共识,进而造成分叉。
在发现问题后,立刻汇报给公链项目方,公链开发者响应迅速,非常重视此次安全问题,即刻完成了修复。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。