Filecoin IPC粗略解读

IPC是Filecoin的consensuslab研究的一种区块链扩容解决方案。号称可以无限扩容,无限套娃式的增加子网,rootnet->L2->L3->L4等一套下去。每个parent-net和child-net之间只要部署一个IGA和ISA的智能合约就可以了。这个IGA和ISA其实就是

IPC是Filecoin的consensus lab研究的一种区块链扩容解决方案。号称可以无限扩容,无限套娃式的增加子网,rootnet -> L2 -> L3->L4等一套下去。每个parent-net和child-net之间只要部署一个IGA和ISA的智能合约就可以了。这个IGA和ISA其实就是IPC协议的实现,现在是用solidity语言写的,可以直接部署在EVM上就可以了。

L2如何依赖L1的安全性呐?也很简单,和所有的L2方案差不多,就是每隔一段长度,Replayer把L2的checkpoint放到parent L1即可。这里的checkpoint也很简单,虽然IPC说是state,其实就是最新 block的hash而已。如何验证blockhash是否正确呐,IPC的方案也很简单,就是传hash的时候,要把validatorset的签名也一起发过来,验证validator的签名即可,这里其实有一个假设,那就是subnet的共识机制是基于签名的方案,如果是类似于BTC pow的方案,就无法找到这类的签名了。

所有的L2方案绕不开的一点就是:原始交易数据如何存储的问题?也就是需要解决如果L2集体辞职的情况下,L2上面的交易从哪里获取。这一点看IPC文档上面没有给出解释。

同时,IPC也说自己提供无需bridge的cross-net transaction能力。既然是跨链,那就绕不开以下几个核心问题:

  1. 如何解决路由问题。即,跨多个子网的跨链交易如何广播到目标子网的路径选择问题。
  2. 如何解决账户问题。即,用户需要在多个子网中都有一个账户吗?账户是统一密钥还是可以不同类型的密钥?账户如何在多个子网进行生成?
  3. gas费用谁来付款的问题。
  4. 结果一致性的问题。即,如果一个网络中执行失败了,已经执行过的网络,如何回滚的问题。
  5. 还有如何感知子网交易是否执行成功的问题?
  6. 目标子网执行成功后,如果有返回值的话,返回值方向传回的问题?
  7. 现在大部分采用replayer的方式进行传播跨链交易,这里就需要解决replayer的激励问题。

如上7个问题,是所有跨链交易都无法回避的难题,IPC现在只解决了交易路由问题,剩下的难题,还需要进一步研究和设计。

根据web2中的分布式一致性的研究很容易知道,如果底层不充分考虑redo和rollback的问题的话,就需要对业务逻辑代码进行侵入式的改造,增加redo和rollback类的方法,并且引入2PC(两阶段)类的协议来解决一致性问题。这对业务设计是不友好的,增加业务复杂度。

同时,因为gas的问题,让跨链交易,比起web2中分布式一致性问题更加难以解决。

所以,当然的解决方案,基本上都是放弃一致性的一些特性,比如:假设gas费足够的情况下,交易一定可以在目标网络和源网络中执行成功,gas不足失败的时候,由上层用户增加负责等等方式,来减少协议层面的复杂度。嗯🤔,这类的解决方案,很现实,也很无奈。

当下的跨链,基本上也都是token类的transfer,基本上也不怎么牵涉到跨服务调用。因为跨网络的服务调用,更加困难,因为其异常情况更加多样。

当然咯,这样也导致了一个情况的发生,那就是,多个链的其实是无法互动的,或是说,多链间只能把相互的token进行lock->mint类的transfer,还无法像同一个EVM智能合约间的可组合性一样,实现链间智能合约的可组合性。

总而言之,跨链的路还长着呐。。。。。

点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
杜满想Elvin
杜满想Elvin
老程序员,区块链架构师