{"content":{"title":"Filecoin IPC粗略解读","body":"IPC是Filecoin的consensus lab研究的一种区块链扩容解决方案。号称可以无限扩容，无限套娃式的增加子网，rootnet -> L2 -> L3->L4等一套下去。每个parent-net和child-net之间只要部署一个IGA和ISA的智能合约就可以了。这个IGA和ISA其实就是IPC协议的实现，现在是用solidity语言写的，可以直接部署在EVM上就可以了。\r\n\r\nL2如何依赖L1的安全性呐？也很简单，和所有的L2方案差不多，就是每隔一段长度，Replayer把L2的checkpoint放到parent L1即可。这里的checkpoint也很简单，虽然IPC说是state，其实就是最新 block的hash而已。如何验证blockhash是否正确呐，IPC的方案也很简单，就是传hash的时候，要把validatorset的签名也一起发过来，验证validator的签名即可，这里其实有一个假设，那就是subnet的共识机制是基于签名的方案，如果是类似于BTC pow的方案，就无法找到这类的签名了。\r\n\r\n所有的L2方案绕不开的一点就是：原始交易数据如何存储的问题？也就是需要解决如果L2集体辞职的情况下，L2上面的交易从哪里获取。这一点看IPC文档上面没有给出解释。\r\n\r\n同时，IPC也说自己提供无需bridge的cross-net transaction能力。既然是跨链，那就绕不开以下几个核心问题：\r\n1. 如何解决路由问题。即，跨多个子网的跨链交易如何广播到目标子网的路径选择问题。\r\n2. 如何解决账户问题。即，用户需要在多个子网中都有一个账户吗？账户是统一密钥还是可以不同类型的密钥？账户如何在多个子网进行生成？\r\n3. gas费用谁来付款的问题。\r\n4. 结果一致性的问题。即，如果一个网络中执行失败了，已经执行过的网络，如何回滚的问题。\r\n5. 还有如何感知子网交易是否执行成功的问题？\r\n6. 目标子网执行成功后，如果有返回值的话，返回值方向传回的问题？\r\n7. 现在大部分采用replayer的方式进行传播跨链交易，这里就需要解决replayer的激励问题。\r\n\r\n如上7个问题，是所有跨链交易都无法回避的难题，IPC现在只解决了交易路由问题，剩下的难题，还需要进一步研究和设计。\r\n\r\n根据web2中的分布式一致性的研究很容易知道，如果底层不充分考虑redo和rollback的问题的话，就需要对业务逻辑代码进行侵入式的改造，增加redo和rollback类的方法，并且引入2PC（两阶段）类的协议来解决一致性问题。这对业务设计是不友好的，增加业务复杂度。\r\n\r\n同时，因为gas的问题，让跨链交易，比起web2中分布式一致性问题更加难以解决。\r\n\r\n所以，当然的解决方案，基本上都是放弃一致性的一些特性，比如：假设gas费足够的情况下，交易一定可以在目标网络和源网络中执行成功，gas不足失败的时候，由上层用户增加负责等等方式，来减少协议层面的复杂度。嗯🤔，这类的解决方案，很现实，也很无奈。\r\n\r\n当下的跨链，基本上也都是token类的transfer，基本上也不怎么牵涉到跨服务调用。因为跨网络的服务调用，更加困难，因为其异常情况更加多样。\r\n\r\n当然咯，这样也导致了一个情况的发生，那就是，多个链的其实是无法互动的，或是说，多链间只能把相互的token进行lock->mint类的transfer，还无法像同一个EVM智能合约间的可组合性一样，实现链间智能合约的可组合性。\r\n\r\n\r\n总而言之，跨链的路还长着呐。。。。。"},"author":{"user":"https://learnblockchain.cn/people/808","address":null},"history":null,"timestamp":1700533759,"version":1}