以太坊上的汽油费越来越贵,随便部署个代币合约,就要上百美刀,随便转移个币给别人,也要好几刀汽油费,因为如此,各个项目对一个稳定的层二应用,是如饥似渴。Polygon已经运行一年有余,期间也遭受不少黑客“测试”,功能上相当稳定,虽然Arbitrum, Optimism这样真正的层二项目相继推出,但是人们对其安全性和稳定性还是怀疑,别的不说,两周前Optimism仓皇推出时候,我在其测试网上练了下,通过它的bridge转移几个以太后,就不见去向,后来它们果然公告说要暂停并推迟上主网。正因为如此,我看到discord上很多项目都说要往Polygon上部署。
针对Ethereum扩容,Polygon 推出两种方案,一种是Mumbai,它其实不是层二解决方案,而是侧链,侧链跟真正的层二不同的是,侧链是利用自身的安全性,所以Mumbai是POS 共识,有质押挖矿的概念,但是它也要经常和主链交互,叫做checkpoint,把自身链上变化告诉以太坊主链,特别是资产转移情况;还有一种是真正的层二解决方案,它是从plasma改进而来,withdraw资产到主链需要7天时间来接受challenge,当然也有别的流动性供应商来加快资产取出过程。 所以目前polygon使用最多的不是层二,而是侧链,市场渴望的是层二,但是来了侧链,而它却运行得很好,这个市场简单而粗暴,不一定认同经典层二解决方案,只要安全,迅速,成本低,who cares?
出于从中心理,或者好奇,我观察Polygon的发展已经很长时间了,我想试试如何把以太坊网上代币往polygon pos链上转移,为了节约开支,这件事情在测试网上进行。polygon在以太坊上的测试网是goerli,这个在metamask安装之后就缺省存在了,在做这个事情之前,需要人工在metamask网络配置里增加一个polygon testnet,或者mumbai testnet。 这个简单,按这个配置一下就行,但是我要提醒下,这个RPC URL不是很稳定,时不时链接不上。
接下来,把之前的随便找一个代币合约在truffle framework下部署在goerli测试网上:
https://goerli.etherscan.io/address/0x43231d8D09F10Ef4c9b1dDb4736D89DeBD2eeD7F
然后要把这个合约修改下,再部署到Mumbai链上。合约修改可以参考polygon官网链接how to map assets,这里头的合约不能照抄的,因为有语法错误等等,编译不过的,最主要的一点,就是要把childChainManagerProxy 设置成"0xb5505a6d998549090530911180f38aC5130101c6"官方指定合约地址,这样,合约所有者不能随便操控资产转移到polygon,只能由polygon的这个childChainManagerProxy 做这件事。
修改之后,把这个合约编译,部署到mumbai 网上:
https://mumbai.polygonscan.com/address/0xe90535809b1E2E0e8c1472f756E0F69De9b56ffe
这些事情做完后,还需要做一个重要事情,需要把两份合约到goerli.etherscan.io和mumbai.polygonscan.com上做verify and publish,就是让ethscan能编译通过你的合约。然后就要到这里去提交一份申请报告,把主网合约地址和子网合约地址填上去,填写自己的email,递交后如果一切正确,3天就可以看到代币了。
我第一次遇到一些问题,就是childChainManagerProxy写得不对,这个能很容易在mumbai scan查到:
为了这个小小的错误,我跟团队support那边互动了一周,他们挺认死理,我修改以后他们也不认可,非要我重新提交申请,重新递交后一天,我发现我的token map成功了。
去这个网站,找polygon bridge:
然后就找到了我的代币TAO:
Deposit 11个TAO去mumbai:
不得不说,这个deposit过程进行得太慢了,大约进行了15分钟,切换到mumbai,钱包里已经多了11个TAO。
它的执行过程应该是:调用我在以太坊goerli上合约的approve和transfer函数,把我在这个网上的TAO转移11个到polygon的合约里,然后调用mumbai上合约里函数deposit,增加11个pmTAO到mumbai里同一个地址里。 如果我withdraw,它就调用mumbai里withdraw,减少代币个数,然后从以太坊goerli网上把同样个数的代币还给我钱包地址里。Deposit发生在以太坊上的过程可以从这里看到,发生在polygon mumbai上的过程可以从这里看到。
随着越来越多的项目要把合约部署到polygon上来,它定会经历黑客们的血雨腥风的洗礼。