在区块链的世界里,有一类特殊的地址被称为“黑洞地址”,它们接收的通证永远无法再被转出,如同宇宙中的黑洞一样“只进不出”。黑洞地址独特的性质使其常常被用于实现“销毁通证”的操作,只需把要销毁的通证转入黑洞地址即可。实际上,黑洞地址就是难以找到对应私钥的账户地址,只要不是采用“私钥→公钥→地址”的顺序生成的地址基本上都可以认为是黑洞地址。如果只是单纯为了销毁通证,大家还是更习惯选用比较简单好记的黑洞,例如以太坊的全零地址0x0000000000000000000000000000000000000000就已经收到了包括8000多个以太在内超过200种通证,总市值接近10亿美元。随着区块链应用的繁荣,特别是随着跨链转账日渐频繁,销毁通证的操作被赋予了更丰富的意义。通常来说,资产跨链就是按照原链上托管的跨链通证总量在目标链上发行映射的通证,并担保映射通证可以1:1地兑换会原链上的通证。以ShuttleFlow为例,典型的跨链操作分为跨出和跨入两个步骤:
跨出流程:用户指定目标链收款地址A,跨链联盟为用户生成原链上跨链合约地址B,用户把通证转给B之后跨链联盟在目标链向地址A发行相应数量的映射通证。
跨入流程:用户指定原链收款地址C,根据跨链联盟的指示用目标链上的黑洞地址D销毁映射通证,再由跨链联盟从原链的托管合约退还等量通证给地址C。在跨入流程中,ShuttleFlow用来销毁映射通证的私有黑洞地址与原链收款地址一一对应。例如当C=ConfluxAddr是一个ConfluxCIP-37标准non-verbose的地址时,Ethereum上对应的黑洞地址即为:D=keccak256(0x1029++keccak256(ConfluxAddr)++keccak256(Relayer))其中Relayer是Conflux上的转发合约地址,可视为一个常数。采用私有黑洞地址的最大好处是使中心化交易平台的用户在提现的同时即可完成跨链操作,无需先提现到个人地址再通过Metamask等钱包发第二笔交易调用token合约里面burn函数销毁映射通证。在以太坊越来越拥堵且昂贵的环境下,通过私有黑洞地址完成销币跨链还可以极大地节约gas使用量,帮助用户降低成本。私有黑洞地址与跨出流程中的跨链合约地址相结合,ShuttleFLow真正实现了“转账即跨链”,用户以普通转账的方式向跨链地址转入通证,即等价于跨链发送到对应的收款地址。整个跨链过程中用户都无需进行复杂的合约交互,完全可以直接从中心化交易平台完成所有跨链操作。使用私有黑洞地址而非token合约的burn函数销币也有一些小小的不便之处,即token合约的totalsupply不会随销币而变化。好在Ehterscan已经支持合约创建者公示所有转入黑洞地址的销币交易,可以在一定程度上缓解totalsupply不准确的问题。总而言之,这点小小的不便,又怎么比得上ShuttleFlow的“转账即跨链”在便利性和节约交易成本方面的“真香”呢?
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。