概述近期,Polygon生态TVL持续走高。随着TVL的快速放大,Polygon市值也急速攀升,一度进入加密货币总市值的前10,超越了UNI、LINK等老牌明星项目,这也使的社区对Polygon的安全性产生了讨论。Polygon希望成为首个以太坊扩容方案聚合器,同时支持多种Layer2、侧链等扩容方案。目前,Polygon拥有一条基于Plasma框架和PoS共识机制的侧链以及配套的PoSBridge、PlasmaBridge两座桥。在所有侧链和Layer2的系统中,无疑Bridge的安全性是最重要的,因为所有的资产都被托管在一个Layer1的智能合约中,该合约是否保留管理员权限,是否有紧急退出机制一般是衡量一个Layer2系统是否无需信任的重要标志。本文将对并Polygon与Rollup方案的Bridge在安全性等方面进行对比。
PolygonBridge桥是侧链和Layer2等扩容方案的核心组件之一,资产必须通过桥才可以在以太坊主链和子链(侧链或Layer2)之间进行迁移,同时桥的具体实现机制也决定了扩容方案的安全性。Polygon同时支持PoSBridge和PlasmaBridge两种桥机制。PoSBridge流程机制:资产(ERC20/ERC721/ERC1155)的所有者首先必须approvePoS桥上的托管合约,用来转入一定数量token,这个合约部署在以太坊主网上,事实上它会锁定所有存入的token;一旦approve完成,接下来就是存入资产,这会对RootChainManager合约进行函数调用,由于状态同步机制的存在,进而触发Polygon链上的ChildChainManager合约;ChildChainManager内部调用子token合约的存款函数,并铸造相应数量的token资产存入特定用户的Polygon账户,值得注意的事,只有ChildChainManager才可以调用子token合约的存款函数;一旦用户的账户存入了token,他们可以立刻在Polygon网络使用这些token;提取token回以太坊分成了两步,第一步是在Polygon网络销毁这些token,之后是将销毁交易的证明传回以太坊主网;需要花费10-30分钟,销毁交易的证明才会被加入一个checkpoint,并传回以太坊主网,这是由PoS验证者完成的。checkpoint被传回主网后,会调用RootChainManager合约的exit函数,并传入销毁交易的证明;exit函数将验证这个checkpoint中的所有销毁交易,验证通过后触发托管合约;最后托管合约将之前锁定的token释放,并退还到用户的以太坊账户中。PlasmaBridge流程机制:用户在以太坊上的Polygon合约中存入token;一旦以太坊主网确认了存款成功,Polygon网络就会铸造相同数量的token并存入用户的Polygon账户,用户可以立刻使用这些token;用户可以随时提取Polygon上的token到以太坊上,一旦提交请求,需要等待5分钟的checkpoint时间;当这个checkpoint被提交到以太坊主网后,将铸造一个相同价值的退出NFT(ERC721)作为凭证;用户需要等待7天的挑战期,这由Plasma安全机制决定;一旦挑战期完成,可以使用退出NFTclaim你的token资产,完成提款。PoSBridge是官方推荐使用的桥,它具有更快的提款时间,支持更多的以太坊资产标准,而PlasmaBridge提款时需要等待7天的挑战期,但是它在安全级别上会更高。
两者主要对比如下:Bridge安全性对比Bridge安全性的核心其实在于用户是否可以无需信任的存入和提取资产,包括当Layer2节点不可用甚至作恶时,Layer1能否独立的恢复Layer2上的交易数据和用户在Layer1上的资产余额(数据可用性),本节我们将PolygonBridge和RollupBridge进行对比。PolygonPoSBridgePolygonPoSBridge由一组外部验证者来保证安全性。在一般的PoS系统中,一般安全性是由验证者bond的资产和惩罚机制来保证的。此外,该Bridge合约留有了管理员权限,由一个多签钱包通过代理控制,这个多签钱包起初是2/3多重签名,现在则升级为5/8方案。在这8个签名者中,4个是Polygon联合创始人,另外4个则是来自其他PolygonDefi项目的主要成员。通过我们对合约代码的检查,合约的Owner可以随时升级替换合约(没有延迟期),也即意味着Owner具备随时提取合约中所有用户资产的能力,这无疑是一个潜在的安全风险。
所以Polygon通过PosBridge转移至Polygon网络的资产现阶段并不是无需信任的。PolygonPlasmaBridgePolygonPlasmaBridge的退出机制基于Plasmaexitmechanism,由于同样使用了欺诈证明,用户提现时和OptimisticRollup一样都需要等待7天的挑战期。但Plasma方案相比Rollup方案的一个重要不足是数据不可用(dataunavailability),即Plasma的operator只会把交易数据生成一个hash值存储到Layer1上,因此Layer1是不具备可用的数据来验证operator是否作恶以及恢复Layer2上的所有交易的。OptimisticRollupBridge在OptimisticRollup方案中,主要由第三方的sequencer负责Layer2与Layer1之间的交互。当用户在Layer1存入资产时,由Sequencer在用户的Layer2账户中计入相应资产;与此同时,sequencer周期性的将它在二层上收到的交易生成新状态根发布到以太坊上。当用户提现时,只要提供一个基于最新发布的状态根得到的,自身账户拥有足够多资产的默克尔证明,即可完成提现。
为了防止sequencer提交无效的状态转换,OptimisticRollup引入了verifier和挑战期的概念,任何一个sequencer发布的新状态根都不会立刻生效,而是需要经过一个7天的挑战期,在挑战期内,只要verifier发现其中一个状态转换无效时,就可以发布欺诈证明,如果证明成功,就会取消这个状态转换,并且将sequencer的押金奖励给verifier。同时,为了避免sequencer作恶或者离线,sequencer被要求将Layer2所有的交易数据保存到Layer1的calldata中,这样即使这个sequencer消失,一个新的sequencer也可以基于这些数据还原所有的Layer2上发生的交易,并从中断处重新开始工作。zkSyncBridgeRollup方案都会将Layer2上的交易压缩提交到Layer1上的calldata中,这首先确保了Layer2网络数据在Layer1上的数据可用性。同时当zkSync整个系统不可用的时,比如Layer2无法收到用户的签名,Layer2不再将交易数据提交到Layer1时,任何人都可以触发进入紧急退出模式:任何用户都可以在Layer1通过调用requestFullExit,发起提现请求,请求顺序存储,且有超时时间(目前设计为3天);当1中请求序列中的第1个请求过了超时时间还未被zkSync的operator处理时,任何用户都可以通过调用activateExodusMode来激活ExodusMode;在链下可以使用官方提供的的工具通过爬取Layer1上的calldata数据来最终同步到ExodusMode时的zkSync状态,并基于此状态对用户拥有的资产产生zkProof;最后,用户通过调用performExodus,withdrawPendingBalance两个方法来完成最后的提现(需要用到第3步中产生的zkproof和一些数据做为参数)。可见,zkSync设计了非常完善的退出机制,即使Layer2节点彻底不可用,用户仍然可以利用Layer1上的calldata数据提取桥中存储的资产。详情请阅读:三者的主要对比:最后DeGate致力于打造以太坊Layer2上,交易体验最佳的去中心化交易所,团队将深入研究市面上的各种Layer2方案,并综合性能、安全性、用户体验等指标,选择在其中一个或多个方案上部署DeGate产品。