简析波卡平行链与以太坊2.0架构设计异同_ETH:ETH2

来源:?谈谈区块链

撰文:谈国鹏,Ownbit创始人

前天晚上,波卡生态链项目Moonbeam和Ownbit进行了技术交流,期望未来Ownbit对波卡生态链进行更好地支持。Moonbeam也将竞争成为第一批波卡平行链。借着交流的机会,我对波卡平行链也有了更深的理解,遂成此文。

ETH2.0和波卡平行链是未来的两个重要技术,他们虽分属于两个不同的重量级项目,但在设计上却有惊人的相似。

波卡平行链

在波卡的设计里,有两个重要的概念,一个是波卡平行链,另一个是波卡平行线程。理解这两个概念是理解整个波卡生态的重要环节。

波卡平行链,故名思议,是与波卡主链平行的其他链。要成为平行链,需要占用波卡系统的一个插槽。波卡系统的插槽数量是有限的。波卡设计出了一套插槽拍卖的系统,通过出价拍卖获得一个插槽有限的使用权。

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]

因此每次插槽的占有都是有限时间内,到期后要重新进行插槽竞拍。用于竞拍的DOT将在插槽使用到期后归还,因此使用插槽,只是占用金额,而不花费资金。

Beosin:ULME代币项目遭受黑客攻击事件简析:金色财经报道,10月25日,据Beosin EagleEye 安全预警与监控平台检测显示,ULME代币项目被黑客攻击,目前造成50646 BUSD损失,黑客首先利用闪电贷借出BUSD,由于用户前面给ULME合约授权,攻击者遍历了对合约进行授权的地址,然后批量转出已授权用户的BUSD到合约中,提高价格ULME价格,然后黑客卖掉之前闪电贷借出的ULME,赚取BUSD,归还闪电贷获利离场。Beosin安全团队建议用户用户取消BUSD对ULME合约的授权并及时转移资金减少损失。[2022/10/25 16:38:21]

为什么要成为波卡平行链?

成为波卡平行链主要获得两个好处:链本身更加安全,以及拥有和其他平行链的互操作性。

为了更好理解链更加安全这个概念,我们可以把波卡系统想象成可以容纳多条平行链的容器。每个平行链会有自己的共识机制,以及产生区块的方式。容器定时将所有平行链产生的区块收集起来,形成容器层面的区块。该容器在波卡中被称为:中继链。被中继链打包对于平行链而言,称为区块的?finalize。

安全公司:Starstream Finance被黑简析:4月8日消息,据Agora DeFi消息,受 Starstream 的 distributor treasury 合约漏洞影响,Agora DeFi 中的价值约 820 万美金的资产被借出。慢雾安全团队进行分析后以简讯的形式分享给大家。

1. 在 Starstream 的 StarstreamTreasury 合约中存在 withdrawTokens 函数,此函数只能由 owner 调用以取出合约中储备的资金。而在 April-07-2022 11:58:24 PM +8UTC 时,StarstreamTreasury 合约的 owner 被转移至新的 DistributorTreasury 合约(0x6f...25)。

2. 新的 DistributorTreasury 合约中存在 execute 函数,而任意用户都可以通过此函数进行外部调用,因此攻击者直接通过此函数调用 StarstreamTreasury 合约中的 withdrawTokens 函数取出合约中储备的 532,571,155.859 个 STARS。

3. 攻击者将 STARS 抵押至 Agora DeFi 中,并借出大量资金。一部分借出的资金被用于拉高市场上 STARS 的价格以便借出更多资金。[2022/4/8 14:12:38]

波卡中继链对平行连区块的最终确认让平行链更加安全。这样每个平行链可以得益于波卡系统的强大共识,而不用担心本链可能存在各种共识层面的攻击或问题。

慢雾:Avalanche链上Zabu Finance被黑简析:据慢雾区情报,9月12日,Avalanche上Zabu Finance项目遭受闪电贷攻击,慢雾安全团队进行分析后以简讯的形式分享给大家参考:

1.攻击者首先创建两个攻击合约,随后通过攻击合约1在Pangolin将WAVAX兑换成SPORE代币,并将获得的SPORE代币抵押至ZABUFarm合约中,为后续获取ZABU代币奖励做准备。

2.攻击者通过攻击合约2从Pangolin闪电贷借出SPORE代币,随后开始不断的使用SPORE代币在ZABUFarm合约中进行`抵押/提现`操作。由于SPORE代币在转账过程中需要收取一定的手续费(SPORE合约收取),而ZABUFarm合约实际接收到的SPORE代币数量是小于攻击者传入的抵押数量的。分析中我们注意到ZABUFarm合约在用户抵押时会直接记录用户传入的抵押数量,而不是记录合约实际收到的代币数量,但ZABUFarm合约在用户提现时允许用户全部提取用户抵押时合约记录的抵押数量。这就导致了攻击者在抵押时ZABUFarm合约实际接收到的SPORE代币数量小于攻击者在提现时ZABUFarm合约转出给攻击者的代币数量。

3.攻击者正是利用了ZABUFarm合约与SPORE代币兼容性问题导致的记账缺陷,从而不断通过`抵押/提现`操作将ZABUFarm合约中的SPORE资金消耗至一个极低的数值。而ZABUFarm合约的抵押奖励正是通过累积的区块奖励除合约中抵押的SPORE代币总量参与计算的,因此当ZABUFarm合约中的SPORE代币总量降低到一个极低的数值时无疑会计算出一个极大的奖励数值。

4.攻击者通过先前已在ZABUFarm中有进行抵押的攻击合约1获取了大量的ZABU代币奖励,随后便对ZABU代币进行了抛售。

此次攻击是由于ZabuFinance的抵押模型与SPORE代币不兼容导致的,此类问题导致的攻击已经发生的多起,慢雾安全团队建议:项目抵押模型在对接通缩型代币时应记录用户在转账前后合约实际的代币变化,而不是依赖于用户传入的抵押代币数量。[2021/9/12 23:19:21]

波卡平行链和其他平行链的互操作性是另一个优点。波卡在系统层面设计了一套消息传递系统,可以让各平行链之间相互传递消息、执行指令、转移token等等。各平行链根据XCMP定义自己可以接收处理的消息类型,便可以让自己拥有和其他平行链的互操作性。

慢雾:BSC项目Value DeFi vSwap 模块被黑简析:据慢雾区情报,币安智能链项目 Value DeFi 的 vSwap 模块被黑,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:

1. 攻击者首先使用 0.05 枚 WBNB 通过 vSwap 合约兑换出 vBSWAP 代币;

2. 攻击者在兑换的同时也进行闪电贷操作,因此 vSwap 合约会将兑换的 vBSWAP 代币与闪电贷借出的 WBNB 转给攻击者;

3. 而在完成整个兑换流程并更新池子中代币数量前,会根据池子的 tokenWeight0 参数是否为 50 来选择不同的算法来检查池子中的代币数量是否符合预期;

4. 由于 vSwap 合约的 tokenWeight0 参数设置为 70,因此将会采用第二种算法对池子中的代币数量进行检查;

5. 而漏洞的关键点就在于采用第二种算法进行检查时,可以通过特殊构造的数据来使检查通过;

6. 第二种算法是通过调用 formula 合约的 ensureConstantValue 函数并传入池子中缓存的代币数量与实时的代币数量进行检查的;

7. 在通过对此算法进行具体分析调试后我们可以发现,在使用 WBNB 兑换最小单位(即 0.000000000000000001) vBSWAP 时,池子中缓存的 WBNB 值与实时的值之间允许有一个巨大的波动范围,在此范围内此算法检查都将通过;

8. 因此攻击者可以转入 WBNB 进行最小单位的 vBSWAP 代币兑换的同时,将池子中的大量 WBNB 代币通过闪电贷的方式借出,由于算法问题,在不归还闪电贷的情况下仍可以通过 vSwap 的检查;

9. 攻击者只需要在所有的 vSwap 池子中,不断的重复此过程,即可将池子中的流动性盗走完成获利。详情见原文链接。[2021/5/8 21:37:37]

如果把平行链比喻成操作系统里的进程,那么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年以后的事情,而波卡平行链项目有望在今年年底或明年初上线波卡主网。这也给波卡留下了更多追赶以太坊的时间。所以未来波卡网络能否像以太坊那样大放异彩,非常值得我们关注!

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:0ms0-1:520ms