第一次和“亦来云”接触正好是我在极部落社区第二次做区块链项目测评的时候,当时的测评项目正好就是“亦来云”,在那之前我们刚好发布完“本体(Ontology)”项目的测评报告(支点:https://www.zdpvt.com/web/postDetail/5ba10a5daade674dc40b7e0f)。测评亦来云是个非常痛苦的过程,亦来云背后的资金势力非常庞大,不敢马虎,而且项目仓库繁多,需要耐心整理,不过在抽了两个星期的业余时间看项目代码之后,最终还是把亦来云给吃了下来。总的来说,感触还是颇深的,尤其是亦来云那让人记忆犹新的DApp开发框架和它主推的侧链思维。在写这篇博客的时候距离我上次测评亦来云这个项目已经有几个星期的时间了,在这里我还是把自己的看法和见解用博客的形式记录下来,算是给那次测评画上一个圆满的句号。
在我看来,亦来云区块链有三大特点:类比特币的区块链结构、跨语言的DApp开发解决方案和仲裁人式的主侧链资产转移方案。下面我来一一讲解我对于这些特点的看法:
要说为什么要采用类比特币的区块链结构,那是因为亦来云的主链要和比特币的区块链进行联合挖矿,所以得采用相同的区块结构,那自然链的结构也得相同,不过也做了些微的修改,那就是阉割掉了原比特币的交易验证脚本,为了避免延展性攻击。亦来云的主链在和比特币联合挖矿之后,每当比特币挖出一个区块时,其主链上也会形成了一个区块,并且算力和挖出的比特币区块相当,这下亦来云主链的算力保护就相当雄厚了,那为啥亦来云要这么搞呢?听说他们家有矿场,算力不用白不用。再者,就是在亦来云项目里拥有POW共识的侧链也是用的类比特币的区块链结构,从代码上看,这条侧链相比主链还包含SPV轻钱包的交易验证模块和VM智能合约虚拟机,这样侧链具备了交易的自我验证功能,也具备了运行智能合约的功能。亦来云的主链和这条POW侧链均采用UTXO的账户模型,原阉割掉的比特币交易验证脚本也都被替换成了合约代码外加合约参数,亦来云想通过这种方式扩充原有UTXO模型的脚本功能,但至于这样是否真能够避免延展性攻击,我也不太清楚。还有一条侧链是采用DPOS共识的,不过这条侧链还处在开发阶段,不太清楚细节。顺带一提,目前亦来云主链的挖矿奖励只有35%分给矿工,其余的都分给基金会,而侧链的挖矿奖励有70%分给矿工,其余的分给基金会。
听说亦来云以前是做操作系统起家的,并且对于编译器之类的底层功能也玩得特别溜,再看了他们的代码之后,我不得不相信,他们确实玩得很溜。亦来云自研的“CAR跨语言构件技术”确实称得上是他们的黑科技,这种技术类似于谷歌的Protobuf,或者也可以说类似于一个叫ICE的RPC框架,它能让一个模板程序被编译成各种语言的版本,并且自由度很高,你完全能够用这种CAR技术写各种应用程序,然后还能把它们编译成各种语言的代码在各种操作系统上运行。亦来云拿它的CAR技术写了一个能完全隔离运行的嵌入式操作系统,这个操作系统能让亦来云的区块链在一个安全的环境中运行,但这个操作系统貌似有点重,所以亦来云又写了一个更轻的跨平台运行时框架,就相当于一个虚拟机,它整合了轻钱包功能,这个运行时框架就是亦来云的DApp开发框架,所以这个开发框架是完全跨平台和跨语言的。整个亦来云项目最重的部分就是那个操作系统和运行时框架,两个项目都是用C++写的,几乎没用STL,完全就是用C++来写C代码,然后用了些class来提供封装性。这么底层的代码,还没提供项目手册,看得那叫一个崩溃,不过我觉得也有理由相信,在运行效率上他们肯定都是不用担心的。还有一个值得一提的黑科技就是亦来云自研的去中心化通信技术,名叫“Carrier”,它是一个去中心化的RPC框架,还支持NAT内网穿透技术,这项技术也被整合进了亦来云的运行时开发框架中,由此这个运行时开发框架就包含了CAR技术、Carrier技术和SPV轻钱包技术。如此强大的DApp开发框架,看得出来亦来云在DApp开发工具的完善上下足了功夫,也难怪他们能直接在白皮书里直接强调他们的这一特性,不过不太清楚他们的这个DApp是数据上链还是代码上链,按照一般的逻辑是普通功能数据上链、关键功能代码上链,亦来云想打造一个区块链的操作系统,让运行在其上的应用程序所产生的各种数据变得更有价值,所以我觉得数据上链的可能会占更大的比重。
按照亦来云的描述,他们早早地就发现单一区块链的性能是存在上限的,因为一条全球范围的区块链就相当于一台对接全球的机器,一台机器的运算上限在很难突破的情况下,一般是会朝着分布式的方向发展,而区块链中的“分布式”,我觉得在亦来云看来就是由多条区块链组成的“分布式”区块链的模式,即主链加各种侧链的模式:将运算压力分散至各个侧链,主链起协调和保护的作用。亦来云的主链通过和比特币联合挖矿来共享比特币网络中的雄厚算力来为整个亦来云网络提供安全支撑,然后主链和侧链之间的转账也由主链全权决定,侧链就负责运行各种智能合约。资产在主侧链之间的转移,需要通过用户去触发,至于触发后资产如何实现双向转移,亦来云也有自己的一套做法,这套做法在他们的侧链白皮书中有详细的介绍,只不过我当时还没在代码中找到,因为他们根本就还没实现。他们的做法是:主链上会选举出一系列仲裁人组成拜占庭验证网络,然后交易从主链到侧链的过程需要节点在主链上构建一个转账交易并由矿工打包,随后主链的当前轮值仲裁人在该转账交易被多个区块确认后从交易数据中取出储存的侧链地址并在对应的侧链上发起正式的转账交易,此过程由当前轮值仲裁人全权决定,不在仲裁人网络中进行拜占庭共识验证,再者,交易从侧链到主链的过程需要节点在侧链上构建一个提币交易并由侧链矿工打包,随后主链的当前轮值仲裁人在该提币交易被多个区块确认后将该交易在仲裁人网络中进行拜占庭共识验证,在获得超过2/3的仲裁人签名后才被允许在主链上构建正式的转账交易。之前还提到过亦来云还有一条正在研发的采用DPOS共识的侧链,那个侧链上的代理人就直接交由主链的仲裁人去担当了,简单粗暴。
那次测评从可用性、安全性、架构清晰度、挖矿公平性、选举公平性和代码原创程度这几个维度对亦来云项目做了一次整体地分析,相比于传统的区块链项目,亦来云这个项目算得上是剑走偏锋了。从上面三大特点可以看出,亦来云确实是一个很有诚意并且愿意在技术创新上投入精力的区块链项目,本人还是很期待亦来云今后的发展的,希望他越来越好,越来越完善,为国人带来一个真正牛逼的又独具创新的区块链操作系统,干翻EOS。