以太坊的Layer2扩展技术是近来的热门方向。
所谓的Layer2扩展技术,简单地理解就是将原本在以太坊主网上执行的交易放到主网之外的系统中执行,只有一些关键的交易才由这些系统最终提交到以太坊进行最终的验证和裁决。这些主网之外的系统通常也称为“链下系统”。
有了Layer2扩展技术以后,以太坊就可以卸下沉重的交易负担,只负责执行业务逻辑中关键的步骤,而把大量高频、琐碎的业务放到Layer2扩展中执行。这相当于提高了以太坊对业务量的处理,提高了以太坊的性能。据理论估测,在Layer2扩展技术的支持下,以太坊整体的TPS能够达到10万TPS甚至更高。由于Layer2扩展最终还是要将关键的步骤放到以太坊上进行验证,因此它的安全性始终挂靠在以太坊上。所以从安全的角度看,Layer2扩展技术又比现有的侧链方案要高。因此Layer2扩展技术近来迎来了爆发。
灵踪安全:Arbitrum昨日因channel 阻塞引发内存泄漏,出现网络故障:9月14日晚,以太坊 Layer2 项目Arbitrum出现网络故障,其交易排序器因为内存泄漏而停止运行。根据灵踪安全漏洞检测系统提示:内存泄漏的位置在源码SequencerBatcher.SendTransaction() 函数中。
此处漏洞是因为channel 阻塞导致大量goroutine 没有及时释放,引发内存泄漏。建议在处理并发时,考虑channel的阻塞情况。当存在高并发条件时,为channel写入数据时,加上select default 处理。[2021/9/15 23:27:04]
在近期大热的Layer2扩展技术方案中Arbitrum就是热门项目之一。截至写稿时为止,它的锁仓量已经达到14亿美元。然而就在其气势一路高涨时,9月14日,Arbitrum却因为内存泄露导致运作暂时停滞。
灵踪安全全程支持MDEX漏洞赏金计划:据灵踪安全官方消息,灵踪安全的深度合作伙伴MDEX,为了生态稳健成长以及在成长的路上持续保障用户的资产安全、交易安全,MDEX于今日正式开启漏洞赏金计划,严重漏洞最高奖励60000USDT。灵踪安全将以安全顾问的身份全程参与该计划,为用户资产、交易安全保驾护航。[2021/6/18 23:47:59]
和公链项目类似,Arbitrum系统也是区块链领域的底层平台,它是用Go语言实现的。其代码文件是packages/arb-rpc-node/batcher/sequencerBatcher.go。
根据灵踪安全的漏洞检测系统显示:出现本次内存泄露问题的代码在SequencerBatcher.SendTransaction()函数中。其具体代码片段如下:
灵踪安全已审计Rpone项目部署在火币Heco链上的合约:据官方消息,灵踪安全近期已审计通过Rpone项目部署在火币Heco链上的合约,所审计的合约包含该项目通证发行、基于AMM算法的去中心化交易所、质押挖矿、交易挖矿、通证锁定、通证回购功能。经灵踪安全审计,涉及这些功能的合约未发现高风险,发现部分中低级别的安全隐患,项目方会通过谨慎操作及未来升级来规避风险。审计报告请点击原文链接查看。[2021/5/1 21:16:21]
灵踪安全已审计YNC-Coin项目通证发行等合约:据官方消息,近期,灵踪安全已审计YNC-Coin项目通证发行、LP质押挖矿和单通证质押挖矿的合约(合约的Github地址见原文链接,提交编号为5d645eb6478c11491c45ca36020714ed818239f1),所审计的合约仅为该项目的通证发行、LP质押挖矿和单通证质押挖矿功能。经灵踪安全审计(细节请参看审计报告),此若干功能的合约暂未发现安全隐患。[2021/4/18 20:32:22]
其中b.txQueue是个带缓存的channel,代码如下:
灵踪安全CEO谭粤飞:大规模并且非常成功的实现AMM模式的是Uniswap:由Lotus总冠名,金色财经、链上ChainUP主办,BTS Labs、Vtrading协办,深圳多家区块链企业联合赞助的金色LIVE在深圳首家区块链酒吧BTC LOUNGE举办。本期话题为《Defi浪潮下——交易所如何破局而生》
会议上,灵踪安全CEO谭粤飞表示,在2020年,最大的变化就是业界有一个非常重大的创新就是自动做市商机制在合约中的成熟使用,实际上自动做市商的做法是在更早的时间就被提出了,但大规模并且非常成功的实现AMM模式的是Uniswap。Uniswap的创始人他最早得到这个灵感是从他的朋友,而他的朋友最早得到这个灵感是从一篇博客里面得到这个灵感。当交易所采用AMM这种方式以后,用户之间的交易就再不需要交易所来进行撮合,用户可以直接和数学公式和智能合约进行交互。这个变革发生以后,用户就不需要依赖于人,或者不需要依赖于中心化系统,这是买方发生了巨大的变化。
另外一个,Uniswap上面还有一个非常重要的特点,在这种AMM支持的作用下,任何一个人,不管他发行什么代币,只要提供交易对流动性到这个合约里,而人人都可以提供流动性,这种情况下相当于卖方的交易的对手也不再是人,也不再是传统的中心化机构,而是智能合约。所以这时候卖方也出现了变化,买方和卖方都出现了变化说明不再依赖于传统的中心化交易所。
正是在这样的模式下,当Uniswap超过Coinbase的时候,它的团队只有十个人,而Coinbase的团队有一千位,这样的效果,这样的价值在传统的中心化交易所里面我们完全看不到,但是在基于AMM的DEX智能合约里面实现了。[2021/3/17 18:53:07]
当系统处理交易时,SendTransaction()函数会将交易打包成Batch进行批处理,而不是一笔一笔地发送。具体处理流程如下:
1.对一笔交易,首先将txQueueItem传入b.txQueue的缓存channel中。
b.txQueue<-txQueueItem{tx:startTx,resultChan:startResultChan}
2.然后从b.txQueue中读取一个交易。
queueItem:=<-b.txQueue
3.判断读取的交易的字节数是否超过最大限制,如果超过最大限制。则将从txQueue中取出的交易又重新压入txQueue中。
4.?这时因为txQueue的缓存大小是10,如果同时有大量的SendTransaction()调用,则当len(txQueue)大于10时就会造成将新交易推入txQueue时阻塞,导致SendTransaction()的goroutinue无法及时释放,最终造成内存泄漏。
对这个问题,可以在SendTransaction()中使用selectdefault处理channel阻塞的情况。这样当系统在处理超过maxTxDataSize限制的状况重新向txQueue压入交易时,使用selectdefault进行处理。
Arbitrum提交的修复代码如下:
实际上这是一个处理高并发状况的问题。这类问题此前在其它的区块链中都出现过,业界对此也有相应的解决方案,因此它并不是一个新问题。理论上只要审计公司在审计过程中细心审查是可以发现这类问题的。
灵踪安全认为Layer2扩展技术当下的火热只是这一趋势的开始,未来更多项目、更大的生态还在孕育和发展中。我们在底层公链技术的积累将让我们用专业的技能和严谨的态度服务好这一前景广阔的生态。?
关于灵踪安全:
灵踪安全科技有限公司是一家专注区块链生态安全的公司。灵踪安全科技主要通过“代码风险检测+逻辑风险检测“的一体化综合方案服务了诸多新兴知名项目。公司成立于2021年01月,团队由一支拥有丰富智能合约编程经验及网络安全经验的团队创建。
团队成员参与发起并提交了以太坊领域的多项标准草案,包括ERC-1646、ERC-2569、ERC-2794,其中ERC-2569被以太坊团队正式收入。
团队参与了多项以太坊项目的发起及构建,包括区块链平台、DAO组织、链上数据存储、去中心化交易所等项目,并参与了多个项目的安全审计工作,在此基础上基于团队丰富的经验构建了完善的漏洞追踪及安全防范系统。
作者:
灵踪安全CEO谭粤飞
美国弗吉尼亚理工大学(VirginiaTech,Blacksburg,VA,USA)工业工程硕士(Master)。曾任美国硅谷半导体公司AIBTInc软件工程师,负责底层控制系统的开发、设备制程的程序实现、算法的设计,并负责与台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学创业学院《区块链概论》课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事?。个人拥有4项区块链相关专利、3本出版著作。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。