昨晚,波卡生态链项目Moonbeam和Ownbit进行了技术交流,期望未来Ownbit对波卡生态链进行更好地支持。Moonbeam也将竞争成为第一批波卡平行链。借着交流的机会,我对波卡平行链也有了更深的理解,遂成此文。
ETH2.0和波卡平行链是未来的两个重要技术,他们虽分属于两个不同的重量级项目,但在设计上却有惊人的相似。
波卡平行链
在波卡的设计里,有两个重要的概念,一个是波卡平行链,另一个是波卡平行线程。理解这两个概念是理解整个波卡生态的重要环节。
波卡平行链,故名思议,是与波卡主链平行的其他链。要成为平行链,需要占用波卡系统的一个插槽。波卡系统的插槽数量是有限的。波卡设计出了一套插槽拍卖的系统,通过出价拍卖获得一个插槽有限的使用权。
因此每次插槽的占有都是有限时间内,到期后要重新进行插槽竞拍。用于竞拍的DOT将在插槽使用到期后归还,因此使用插槽,只是占用金额,而不花费资金。
Beosin:SheepFarm项目遭受攻击事件简析:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin EagleEye 安全风险监控、预警与阻断平台监测显示,BNB链上的SheepFarm项目遭受漏洞攻击,Beosin分析发现由于SheepFarm合约的register函数可以多次调用,导致攻击者0x2131c67ed7b6aa01b7aa308c71991ef5baedd049多次利用register函数增大自身的gems,再利用upgradeVillage函数在消耗gems的同时累加yield属性,最后调用sellVillage方法把yield转换为money后再提款。本次攻击导致项目损失了约262个BNB,约7.2万美元。Beosin Trace追踪发现被盗金额仍在攻击者账户,将持续关注资金走向。[2022/11/16 13:10:39]
为什么要成为波卡平行链?
Beosin:UVT项目被黑客攻击事件简析,被盗资金已全部转入Tornado Cash:金色财经报道,据Beosin EagleEye 安全预警与监控平台检测显示,UVT项目被黑客攻击,涉及金额为150万美元。攻击交易为0x54121ed538f27ffee2dbb232f9d9be33e39fdaf34adf993e5e019c00f6afd499
经Beosin安全团队分析,发现攻击者首先利用开发者部署的另一个合约的具有Controller权限的0xc81daf6e方法,该方法会调用被攻击合约的0x7e39d2f8方法,因为合约具有Controller权限,所以通过验证直接转走了被攻击合约的所有UVT代币,Beosin安全团队通过Beosin Trace进行追踪,发现被盗资金已全部转入Tornado Cash。[2022/10/27 11:48:46]
成为波卡平行链主要获得两个好处:链本身更加安全,以及拥有和其他平行链的互操作性。
慢雾简析Qubit被盗原因:对白名单代币进行转账操作时未对其是否是0地址再次进行检查:据慢雾区情报,2022 年 01 月 28 日,Qubit 项目的 QBridge 遭受攻击损失约 8000 万美金。慢雾安全团队进行分析后表示,本次攻击的主要原因在于在充值普通代币与 native 代币分开实现的情况下,在对白名单内的代币进行转账操作时未对其是否是 0 地址再次进行检查,导致本该通过 native 充值函数进行充值的操作却能顺利走通普通代币充值逻辑。慢雾安全团队建议在对充值代币进行白名单检查后仍需对充值的是否为 native 代币进行检查。[2022/1/28 9:19:19]
为了更好理解链更加安全这个概念,我们可以把波卡系统想象成可以容纳多条平行链的容器。每个平行链会有自己的共识机制,以及产生区块的方式。容器定时将所有平行链产生的区块收集起来,形成容器层面的区块。该容器在波卡中被称为:中继链。被中继链打包对于平行链而言,称为区块的finalize。
Grim Finance 被黑简析:攻击者通过闪电贷借出 WFTM 与 BTC 代币:据慢雾区情报,2021 年 12 月 19 日,Fantom 链上 Grim Finance 项目遭受攻击。慢雾安全团队进行分析后以简讯的形式分享给大家。
1. 攻击者通过闪电贷借出 WFTM 与 BTC 代币,并在 SpiritSwap 中添加流动性获得 SPIRIT-LP 流动性凭证。
2. 随后攻击者通过 Grim Finance 的 GrimBoostVault 合约中的 depositFor 函数进行流动性抵押操作,而 depositFor 允许用户指定转入的 token 并通过 safeTransferFrom 将用户指定的代币转入 GrimBoostVault 中,depositFor 会根据用户转账前后本合约与策略池预期接收代币(预期接收 want 代币,本次攻击中应为 SPIRIT-LP)的差值为用户铸造抵押凭证。
3. 但由于 depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者在调用 depositFor 函数时传入了由攻击者恶意创建的代币合约地址。当 GrimBoostVault 通过 safeTransferFrom 函数调用恶意合约的 transferFrom 函数时,恶意合约再次重入调用了 depositFor 函数。攻击者进行了多次重入并在最后一次转入真正的 SPIRIT-LP 流动性凭证进行抵押,此操作确保了在重入前后 GrimBoostVault 预期接收代币的差值存在。随后 depositFor 函数根据此差值计算并为攻击者铸造对应的抵押凭证。
4. 由于攻击者对 GrimBoostVault 合约重入了多次,因此 GrimBoostVault 合约为攻击者铸造了远多于预期的抵押凭证。攻击者使用此凭证在 GrimBoostVault 合约中取出了远多于之前抵押的 SPIRIT-LP 流动性凭证。随后攻击者使用此 SPIRIT-LP 流动性凭证移除流动性获得 WFTM 与 BTC 代币并归还闪电贷完成获利。
此次攻击是由于 GrimBoostVault 合约的 depositFor 函数未对用户传入的 token 的合法性进行检查且无防重入锁,导致恶意用户可以传入恶意代币地址对 depositFor 进行重入获得远多于预期的抵押凭证。慢雾安全团队建议:对于用户传入的参数应检查其是否符合预期,对于函数中的外部调用应控制好外部调用带来的重入攻击等风险。[2021/12/19 7:49:04]
波卡中继链对平行连区块的最终确认让平行链更加安全。这样每个平行链可以得益于波卡系统的强大共识,而不用担心本链可能存在各种共识层面的攻击或问题。
波卡平行链和其他平行链的互操作性是另一个优点。波卡在系统层面设计了一套消息传递系统,可以让各平行链之间相互传递消息、执行指令、转移token等等。各平行链根据XCMP定义自己可以接收处理的消息类型,便可以让自己拥有和其他平行链的互操作性。
如果把平行链比喻成操作系统里的进程,那么XCMP可以理解为进程间通信机制IPC(InterProcessCommunication)。
平行链资源是有限的
因为平行链资源有限,大部分链可能无法竞拍到平行链插槽。这时,波卡官方给出的方案是,使用测试网络KUSAMA,或者平行线程。
平行线程和平行链之间的区别仅在于一点:平行链永久占用中继链资源,而平行线程只在需要时占用。平行线程需要中继链对其区块进行确认时,便提出请求,并给予一定的费用。因为同时会有多个平行线程提出确认需求,中继链会按照给予的费用高低进行优先选择。如下图所示:
比起平行链而言,使用平行线程,无需参与插槽竞拍,因此无需大额的启动资金。对于一些不需要频繁确认的应用,使用平行线程更加适合。
ETH2.0
ETH2.0的线路图按照分片技术在前进。分片技术最早出现在数据库技术中。为了让数据库拥有更大的执行查询或插入的能力,将一个数据库拆分成多个数据库,并且部署到多个机器上,让执行能力成倍地提升。
ETH2.0将以太坊网络拆分成多片,将以太坊的执行能力提升相应的倍数。每个分片就是一个子网络。处理ETH2.0共识,以及系统各个子分片之间通信的模块被成为:BeaconChain,这相当于波卡网络里的中继链。ETH2.0分片示意图如下:
可以看出,在大的架构方面,ETH2.0和波卡有着惊人的相似。但在细节和理念层面又有很多的不同。
波卡平行链VSETH2.0
从设计目的而言,波卡平行链主要是为了跨链目的,通过平行链水平扩张,进而解决性能吞吐问题。而ETH2.0的设计完全是为了解决性能吞吐问题。
波卡和ETH2.0都有状态确认的功能。ETH2.0每一个时代finalize一次,一个时代定义为64个区块,所以6-12分钟finalize一次。而波卡网络的finalize时间则更短,一般1分钟以内。
从共识机制而言,ETH2.0和波卡也有明显的区别。ETH2.0采用PoS机制。质押32ETH可以成为验证者。每个分片至少需要256个验证者才能进行finalize操作。以64个分片计算,ETH2.0需验证者16,384名。而波卡采用提名者PoS机制,所需验证者数量远小于ETH2.0,大约每个平行链需10个验证者,以整个系统100个平行链计算,共需1000个验证者。
另外一个不同点在于,波卡是不同系统间互联的框架。而ETH2.0是同一套系统间互联的框架。
波卡更关注其他链,而ETH2.0只是更关注本身,这也反应出它们对未来不同的展望。波卡打造的是多链并存、互联互通的场景。而ETH2.0则打造的强大统一的底层区块链系统,上层繁荣的DApp则通过应用接口彼此互通的场景。
跨链
波卡对于平行链之间,天然具有跨链优势。而ETH2.0不具有跨链能力。但这并不意味这波卡比在跨链方面ETH2.0强大很多。
例如对于跨链比特币网络而言,波卡需要使用比特币桥才能完成跨链。而这点,跟以太坊跨链比特币方案是一致的。因此,对于跨链而言,波卡只是对于未来部署在波卡网络上的平行链之间才具有优势。
结语
目前波卡生态的平行链项目正如火如荼地进行。它们是否会在未来占有非常重要的地位,将是区块链最大的看点之一。
从时间而言,波卡主网的上线时间较迟,错过了以太坊发展的这几年黄金时间。然而,ETH2.0上线又将是2年以后的事情,而波卡平行链项目有望在今年年底或明年初上线波卡主网。这也给波卡留下了更多追赶以太坊的时间。所以未来波卡网络能否像以太坊那样大放异彩,非常值得我们关注!
原文标题:《波卡平行链与ETH2.0》撰文:谈国鹏,Ownbit创始人
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。