假想一下,我们基于以太坊搞了个商城,想用比特币支付,以太坊的智能合约需要知道我们用了比特币支付,但每个商家可能要花费大量的Gas,是不是不太划算?理论上,以太坊可以做这件事,因为它有个图灵完备的虚拟机,但实际上它做不了,因为太贵(且慢)。而且以太坊并不想做一个为电商优化,或者说是为跨链优化的虚拟机,它希望找一个通用的解决方案,但目前这个方案并不明晰。
此外,没有闹钟功能(时间戳不可信),做不了分期付款等缺陷让以太坊在涉及到具体的应用场景的时候,显得有点力不从心。
以太坊这样想做世界计算机的公链解决不了电商领域的问题,CyberMiles看到了这一点,开始寻求改进。
第一代区块链(比特币)是没有虚拟机的,到了第二代区块链(以太坊),大家开始考虑,把钱从A打到B的过程为什么不能写成一段代码?执行这个代码就需要有虚拟机。虚拟机是以太坊的一个重大革命,这么一来,交易不仅是可以打钱,还可以是执行代码。
其实虚拟机只有一层,底层语言可能是我们熟知的C++或者是Go写的,虚拟机自己的语言可以是以太坊的Solidity、新发布的Vyper。还可以是Lity——这是CyberMiles开发的语言,源自以太坊的Solidity。
对CyberMiles稍微有点了解的人会把它定义成“电商版以太坊”。CyberMiles基于以太坊做了条公链,现在又有了自己的虚拟机CVM和编程语言Lity。
为什么要做件事?技术到底能带来哪些改变?如何能够落地?带着这些问题,CyberMiles首席科学家&联合创始人Michael Yuan 博士接受了雷锋网(公众号:雷锋网)采访。
袁博士在介绍测试链Travis
“我们推进的事情比较多,因为我们想搭自己的商城,想做证券化,做数据市场。”数据市场这块,第一件事就是加密、解密,在线上交易数据的话必须得交易整个哈希,得入库,或者交易私钥和公钥,而不是数据本身,这时加密是必须的。以太坊上的交易在这边验证其实就是一个加密的算法,耗费的GAS很多。我们做过这事,发现走不通,才要研究自己的虚拟机。“其实我们做这些都是为了电商进行优化。”
虚拟机能做些什么呢?先是执行代码,并非任意代码都能执行,也要防攻击,所以虚拟机里也要做Gas,得知道计算量和存储量有多大,要通过交易费用来保证虚拟机的安全。 所以区块链上的虚拟机和传统的Java和Python虚拟机的需求虽然不一样,但是作用是差不多的,就是执行代码。
传统的虚拟机会因为硬件不同,造成输出的结果不同,以太虚拟机的特点是没有歧义,输出结果是一致的,但它做了这种改变的一个后果就是牺牲了性能。虚拟机的优化过程非常复杂,同时需要大量的资金。Java的虚拟机可以容忍不同的虚拟机执行出来的结果有少量的差别,但是在区块链这边是行不通的,区块链所有的容错必须一致。目前,区块链的主流虚拟机有三个流派,一个是从以太的EVM改的;一个是从Web Assembly改的,比如EOS;还有一个是改的Lua的虚拟机。CyberMiles认为没有理由重新写一个虚拟机,于是选择了对以太坊的虚拟机EVM进行修改。
那么CyberMiles的虚拟机的CVM和以太坊的EVM有什么区别呢?主要体现在五个方面。一是可以动态扩展,可以在运行的过程中加点东西;二是安全方面,虚拟机会查有没有整数被溢出;三是定时任务方面,CVM有闹钟的功能,可以自己启动智能合约。体现在电商行业,看货物的送达时间,或者设个分期付款提醒就可以靠有时钟的智能合约来完成;四是可以实现小数运算,而不只是整数;五是规则引擎,手写程序的错误率很高,虚拟机增加了规则引擎,参数不会被改变,可以降低错误率。
而编程语言Lity的出现,最直接的改变体现在性能优化方面。现在的以太坊的情况有点像当年的Java,速度慢,很多事做不了。后来虚拟机上开了个口,C++的东西就进来了。“我们相当于在Solidity上开了个口,把Lity给放了进来。”袁博士说。以太坊的新语言Vyper比Solidity好得多,但仍然不能完全解决Solidity的问题。“所以说我们要算加密解密,就通过这个口装到操作系统的层面之上” 。Lity现在支持Solidity,以后也可能会支持Vyper。
Lity在扩展性方面也进行了优化。袁博士同雷锋网表示,“编程语言的扩展性强不强,并不是由语言和性能决定的,而是由治理机制决定的”。Lity模块化的方法可以把这个关键词的功能直接加到虚拟机里来,现在的以太坊实行PoW机制,只能通过核心开发者去改变,目前来看是做不到这一点的。
虚拟机CVM和编程语言Lity是什么关系呢?简单来说,DApp是用Lity写的,在CVM运行,但是改虚拟机需要一个叫LibENI函数,相当于对Lity的扩展。如果虚拟机是用C++写的,就等于把C++封装成一个模块架上去,对虚拟机本身进行了改造。对于开发者来说,如果要往虚拟机里面加功能,也要用到Lity。
为什么说这在以太坊上实现不了呢?因为这相当于在不更新软件的前提下,更新软件的核心成分,而以太坊的PoW机制需要全网的共识,这是非常难的。
CyberMiles的DPoS共识机制提供了实现的可能性,通过超级节点达到共识。袁博士向雷锋网表示,以太坊的核心开发者对下一步的计划起着决定性作用,这其实也是一种中心化。CyberMiles的想法是,核心开发者之外的人也可以在虚拟机里增加功能,他们需要说服超级节点来支持,只要超级节点都同意,这个功能就可以在链上实现。
具体怎么操作呢?CyberMiles提供了一个方法,用封装好的工具感知用户的痛点,在CVM里面进行加工。举个例子,虚拟机之前可以 做RSA算法的加密,现在做DES算法的加密的话就是另外一个功能,它可以被打包,让超级节点来同意,同意了之后就去做加密。
再来谈谈LibENI的内部机制。LibENI出模块的时候,需要出好几个系统,可能是Ubuntu、Linux或者是Windows。但好在超级节点是可控的,超级节点用这些操作系统就可以达到要求。相当于开出了一条路,通过LibENI来实现。
以太坊没有可以添加的函数,CyberMiles添加了LibENI函数,这是对编程语言本身的一个改变。
函数相当于一个调用底层C++语言的接口,但不是所有功能都能用函数,虚拟机里面有规则,还有其他结构,我们只解决用函数能解决的问题。什么是函数呢?很多时候函数就是输入和输出的东西,比如说输入一个私钥和一个文本,就出来一个加密的文本。
为什么函数会跟电商场景密切相关呢?这里说的电商市场是广义的,不光是卖货,搜索的时候也能用到函数。具体来说,主要是加密、解密。比如我们有一个数据市场,它的一个基本需求就是要把数据拿来加密,这就是一个函数。我们输入数据和密钥,加密后输出密文。
据悉,CyberMiles也开发了自己的“矿机”CMT Cube,那么矿机是如何部署的呢?袁博士介绍道,虚拟机是部署在超级节点上面的,可以调动超级节点下面的矿机。是因为DPoS的机制能使CyberMiles的矿机反对DDoS、Sybil等网络恶意攻击。在这里,矿机既能挖矿,也能投票,但它不是节点,是硬件钱包。
Blocktonic 是 CyberMiles 孵化的一个应用,是一个DAO(去中心化的电商组织)。目前与合作的C2C电商5miles 是一个有 1200 万美国用户的电商应用,CyberMiles最终目标是把 5miles 也变成一个 DAO。
“Blocktonic是我们自己在链上做的一个电商平台,平台上卖的是我们自己的矿机和其他一些产品,我们也在试验各种各样的区块链的方法进行改建,比如进行ETH的返现。我们努力的方向就是把这个东西变成一个自治组织,也就是智能合约里面的自治,我觉得这是很大的实验。”
作为面向电商场景的自治组织,CyberMiles是怎么理解拓展性问题的呢?袁博士认为,拓展性和垂直领域的实践并不冲突。虽然CyberMiles的链使用跟CVM里面加的功能全是跟电商有关的。但是可以用LibENI 跟CVM造另外一条行业公链出来。CyberMiles提供了这样的技术,也鼓励开发者根据自己的需求去扩展CVM,这超过了CyberMiles 的范围,因为CyberMiles想运营的是一个电商的公链和生态,但是团队希望开发的软件更通用。“我们非常希望大家来抄我们的代码,我觉得这就是我们成功的标志”。
从部署方式来看,CVM虚拟机的部署方式跟以太坊的EVM没有什么区别。至于很多公链都会涉及到分片的问题,CyberMiles认为自己也是做分片,只不过是逻辑层面的。袁博士表示,
“从逻辑层面来看,我们作为电商第一公链已经分片了,因为电商公链跟其他公链,比如说打车公链是两个量级的。从计算层面来讲,以太坊是计算分片,因为它是通用计算机。”
袁博士承认,Lity现在并不完美。台湾的开发团队之前做的是AI芯片,北京团队对区块链了解得更多一些,团队之间需要磨合和沟通。
“我觉得这是个发展的过程,技术上还有很多问题需要解决。我们肯定会有不完美的地方,但我觉得方向是对的。”
DAO的完善需要一个过程 。作为开源运动的拥护者,袁博士在JBoss和红帽软件的工作经历让他尝到了甜头,投身区块链创业也有这方面的考虑。CyberMiles的开发者社区主要做两件事,一个是DApp,这个其他公链都在做。二是对CVM进行贡献,这里不需要核心开发者来决定有什么功能,开发者如果非常需要一个功能,可以自己去开发,让超级节点投票,这其实是一个不断更新、修改的过程。“我们不一定能达到完全的去中心化,但至少可以让这个过程变得更民主,让大家参与进来。”
建好生态也并非一件容易的事。
“首先是先把链搞好,然后是智能合约,要先搞清楚什么东西智能合约能管。我们自己开发了blocktonic,各种电商成分都有,这里面哪些模块可以拿出来给其他人用?这就需要去决定,然后需要产品化。”
DApp的大规模落地仍需要时间的验证,CyberMiles承诺的 “商品便宜40%”这个甜头能不能让消费者尽快尝到,希望这个问题回答起来不会太困难。
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/84391.html