深度解读CyberMiles黑科技:Lity语言和虚拟机CVM 1万倍速率提升

栏目: 服务器 · 发布时间: 6年前

内容简介:以太坊的出现,在比特币网络结构基础上开发了以太坊虚拟机EVM,使用语言solidity即可完成“图灵完备”的编程,在这样“颇为理想”的理解下,2018年1月开始,以以太坊为基础出现的公链项目数量激增,公链的项目方用以太坊解决了“发币”问题。颇为迅速的,兴起的一系列公链项目开始着手解决吞吐量和落地应用问题,众多项目方逐渐意识到了以太坊EVM和solidity的限制,使用以太坊难以顺利形成“工程化应用能力”,时至此时,区块链结构上的改进已无法跳出以太坊生态的束缚,改进的突破点落在了虚拟机和编程语言上。Cybe

以太坊的出现,在比特币网络结构基础上开发了以太坊虚拟机EVM,使用语言solidity即可完成“图灵完备”的编程,在这样“颇为理想”的理解下,2018年1月开始,以以太坊为基础出现的公链项目数量激增,公链的项目方用以太坊解决了“发币”问题。

颇为迅速的,兴起的一系列公链项目开始着手解决吞吐量和落地应用问题,众多项目方逐渐意识到了以太坊EVM和solidity的限制,使用以太坊难以顺利形成“工程化应用能力”,时至此时,区块链结构上的改进已无法跳出以太坊生态的束缚,改进的突破点落在了虚拟机和编程语言上。

CyberMiles创始人卢亮博士对金色财经说到,“以太坊上,为什么很多应用场景跑不起来?其实不是简单的TPS性能问题,TPS的解决方案很多,而是因为gas费、安全性、小数运算、没有闹钟的智能合约等问题造成的。”

电商公链CyberMiles一直对标以太坊,从公链项目开始运作之初,便从工程化应用的角度出发设计整个公链。这一次,CyberMiles开发了语言Lity以及虚拟机CVM。又一次像修补代码一样,找到bug,然后“fix”。

Lity和CVM的诞生

每一个公链都是以开源社区的形态运作的,建立新的语言和虚拟机就如同建立新的开发者体系,大部分项目不会选择去开发新语言和虚拟机,CyberMile创始人卢亮博士对此做出了解释。

“现在应该说80%甚至于90%的公链用的都是EVM,把以太坊的抓过来直接用,这样做的同时也把EVM的缺点带过来了,这就是问题所在。”

“如果要去认真解决这个问题,必须要从根本上解决。可以这样理解,公链包括底层的链式网络,上层的解释器、开发语言,如果解释器的语言用了以太坊的solidity,底层网络去做改进时,只能改进TPS和共识,即使可以改进部分安全能力,但本质上的拓展性就改不了,例如,做一个复杂的智能合约等等,而这些正是大规模应用的必备。”卢博士补充到。

据金色财经了解到,VM开发的周期非常长,成熟团队仍旧需要6个月到12个月,很多项目不愿意投入精力开发,更多是限于团队能力和开发精力上,建立在CyberMiles成熟的开发能力上,也耗时大半年的时间。

不过对于CyberMiles来说,开发Lity语言和CVM是从项目设计初期就已决定的,CyberMiles首席科学家Michael Yuan博士曾对媒体说明过Lity的涵义。

“CyberMiles是以太坊生态中的一员,一直在以太坊基础上做出了非常多的工程化优化,替代以太坊的90%是不可能的,但我们可以把以太坊不能做到10%做到极度优化。物质有四态,还有一个被相对论证明不存在的状态叫做“以太”,Solidity 是固态、Gas 是气态、Plasma 是等离子态,Lity是液态,CyberMiles 要做的事,就是补全以太坊生态。”

Solidity和EVM的限制

CyberMiles所做到的“10%的优化”,直指以太坊EVM和语言solidity的各种症结。目前,以太坊网络上有1700多个DApps,所有的DApp都依靠智能合约来完成一系列重要任务,但solidity和EVM上智能合约出现的开发难题尤为集中。

1. 智能合约的高额手续费

首先,在DApp的体验开发过程中,必定要使用各种复杂的智能合约。但智能合约运行的手续费是以智能合约的复杂性和执行合约时网络的拥堵程度而定,通过收取高昂的gas费,以太坊才可以执行缓慢又复杂的合约。

例如,V神曾提到用以太坊的智能合约去验证比特币交易的想法,完成这样一个合约执行,大约花费3.7亿 Gas,估算约500美元,而在CyberMiles通过CVM实现则,执行上上只要几毫秒,手续费几毫分美金,与以太坊的差额略显惊人。

2. 安全性堪忧

其次,智能合约代码的安全性堪忧,临近的一次事件是,在Parity的智能合约中发现了一个bug,该bug直接导致了50万个ETH的损失。又例如,Beauty Chain(BEC)的安全漏洞事件,仅因在BEC的ERC20 智能合约中添加了一个名为“batchTransfer()”的执行动作,即可以让token能一次性转移给多方(即批量操作)。在编译器阶段实则可以通过代码审核来找到这些风险。

除了代码编写,EVM的整数溢出也是一个严重的问题,因此,溢出攻击颇为常见,多个ERC20 代币合约曾因溢出攻击导致了高等级的安全警报。

3. 智能合约执行时间过短

除以上两点外,EVM中其智能合约还无法执行长时间等待的命令,卢亮博士向金色财经记者解释到。

“以太坊是没有时间概念的,不能执行未来的事件。在比特币网络只有wait(即在代码设定命令中的标签),就是等待多长时间,极为简单,只有时间性。”

卢博士继续补充到“以太坊目前的状况,我们不能进行未来的执行。因没有对触发条件的设置和多层合约可执行,例如有交互性的合约执行。现在的执行都是单向的,当需要有交互需要到这个时间点,等待某一个事件发生后再去分出ABC三个情况才可以决定执行是完全无法操作的。”

据此,solidity作为以太坊的官方语言自然成为了开发者吐槽的对象,近期,V神也为以太坊新更新了新的语言Vyper,其是否可以改进漏洞,帮助众公链项目沿用EVM即可完成落地应用呢?

CyberMiles首席科学家袁博士给出了解释。

“Vyper是一种新的语言,但它在虚拟机的层面上没有实质性的改变,如果 Solidity 像 JavaScript 的话, Vyper 就像 Python(编程更简易,包含范围更广泛)。对于开发人员来说,Python会舒服得多,所以,开发者使用 Vyper 就可以少犯错误,Solidity 存在的是大量持续性错误,Vyper优化了很多。但Vyper 还是基于 EVM的语言,算法计算中没有小数,像整数溢出则依旧存在,会影响与各行业应用的结合。”

因此,Lity的出现是对以太坊从本质问题上的限制做出了突破,如果调整代码是优化以太坊的行为,那直接改变语言和虚拟机就是从思维源头上改变。

Lity和CVM,攻克以太坊开发难题

Lity和CVM的配合将把solidity和EVM的不足点一一补齐。金色财经记者向CyberMiles创始人卢亮详细了解了Lity以及EVM在能力上的提升。

1. 兼容性

首先,Lity做到了无限兼容solidity,支持solidity代码的全部实现,未来或将同样支持以太坊更新的Vyber语言,EVM系开发者可直接将原开发内容迁移到Lity的开源生态中,卢亮也表示希望更多的公链可以尝试Lity的语言和虚拟机CVM,可以从以太坊的限制圈中走出来,实现更大规模的应用落地。

金色财经记者还向卢博士了解了具体的兼容方式,从虚拟机的层面来讲,Lity语言跟solidity是完全不一样的,语言中使用的两功能标签也不同,但在CVM中solidity代码可以运行,具体操作上是将两种语言中执行相应功能的代码一对一确认,然后在CVM中加入对solidity代码命令的解析。因此,Lity既是solidity的超集,又是拥有更多的独特代码的新语言。Lity还支持OTA添加语言结构,可以在具体应用行业中加入相应的新语言功能与函数来帮助应用开发。

2. 高性能及拓展性

其次,在兼容solidity外,Lity拥有极高的性能表现。例如在CVM支持小数,提高语言表达能力。“0.195乘某个值,在EVM里面是一定要变成整数型,就扩大十万倍多少万倍去做计算。”卢亮解释到。

提高性能的方式还包括使用以太坊原生接口LibENI,通过库+以太坊原生接口(libENI),CyberMiles上的智能合约可以比传统以太坊智能合约运行速度大幅度加快(数万倍加速)并且手续费也更低。

据金色财经记者理解,这一设计是运用了更多链外的处理能力。libENI 函数由 CyberMiles 虚拟机调用,但由区块链节点当做本机代码执行。即通过虚拟机增加了区块链节点的处理能力,且不需要花费过高的GAS费。

卢亮补充解释到,通过原生接口开发功能,来优化相关的需求,可通过投票来将功能直接放到虚拟机里。“例如一个AI公链项目,AI需要去有GPU做一些模拟分析,这就很耗计算能力,在CyberMiles平台上可以不需要AI链,把AI的这部分的能够实现的函数和代码直接的动态的加载到虚拟机上,其实这一部分不属于CVM的原始代码,但可以通过加开服务器来调用执行,可以实现了链+AI的功能。”

3. 多触发的智能合约

第三点的优化也是一次直接改变问题的创新,以太坊缺少计时器功能的缺陷尤为明显。Lity 提供了一个名为 schedule 的新语言关键词,允许智能合约未来执行计时器任务。配合CVM的设置,将完善许多现实商业合同所需要的功能,例如信托,遗嘱,分期付款,保险,股票期权和投资回报等。在CyberMiles的电商领域,这一点的优化可以让区块链更早的开发出电商网站以及更中增值服务。

4. 稳定的安全性

最后,相比于其他开发性的优化,安全性是项目方及用户最重视的,Lity和CVM在安全性的优化也是最多的。

CyberMiles 分类提取了常见的以太坊 Solidity 智能合约安全问题,并在Lity语言编辑器和 CVM 虚拟机中利用ERC checker 对这些安全问题进行自动检查,例如,Lity 编译器可以检查 ERC 20 和 ERC 721 合约代码中的合规性和已知错误以及在 ERC 20 合约中为 ERC 223 标准提供支持,以防止 Token 被意外转到不受支持的合约地址而丢失。

CVM中,Lity 还会自动防止整数溢出等常见问题和将合约所有者设置为无的问题。

卢亮博士还对重要的“动态加载”做了具体解释。

“我们在安全检查的边界上面做了大量的改进,CVM嵌入了ENI动态加载库,当发现问题的时候,我们可以动态的把这些bug fix到我们的CVM上,已知的问题直接加载在库中,而未知的问题使用动态的fix同步,保证可以在服务器动态的、不停机的情况下把问题解决掉,这样话安全性可以更加稳定。”

卢亮博士提到的动态加载随时fix bug是建立在其DPOS的共识上,因在CyberMiles中只需要将19个节点的CVM快速同步fix即可保证全部的标准统一。这也是CyberMiles解决安全问题的重要优势。

拥有虚拟机和语言的公链才是“好公链”

Lity 和 CVM 虚拟机的出现,极大地丰富了 CyberMiles 区块链及其生态系统,并且也将增强 DApp 的功能和特征,为区块链应用带来更多可能。也为CyberMiles补足以太坊生态中的不足提供了可能性。从项目发展的角度来讲,CyberMiles在竞争视野上,已拔得头筹。

区块链行业发展到现在,整个行业都在着手落地应用,但对于限制因素的理解不同,每个项目的方向也不同,对比通过各类方式解决扩容、吞吐量的的技术来讲,显然通过建立更优化的语言和虚拟机更有利于落地。

在CyberMiles创立之初,整个团队就认为工程化应用是整个CyberMiles产品应该指向的方向,对于工程化应用,Lity和CVM的出现是最接近的方法。以太坊也在为工程化不断进步,Plasma、Casper等解决方案以及语言Vyper的出现都帮助以太坊生态,那CyberMiles原则上为什么还要开发Lity 和 CVM?

其首席科学家袁博士曾对媒体表明原由。

“在我们的设想中,世界将由许多区块链构成,而每个链都将针对特定类型的应用进行优化。CyberMiles 区块链是为服务于电子商务和金融应用而进行优化的。由于 CyberMiles 区块链与以太坊完全相互兼容,以太坊能干的事情我们也能干,但我们干的事情以太坊可能干不了。CyberMiles 会在以太坊的基础上,做以太坊核心团队不愿做的事,以及让世界计算机(即以太坊)梦想丑陋但更实用的事。”

以太坊之所以在目前的体量中迂回难以发展,是在区块链理解上的约束限制,以太坊追求的是图灵完备,是世界计算机,这样的固守是对于落地应用的巨大阻碍,区块链需要在不断应用后才可以让大众了解应用,才能完成区块链对生产关系的改变、对生产价值的再分配。

就像区块链想要带领互联网社会进步的过程中,需要通过不断的改变结构,最终实现,在协议本身价值上高于应用产品本身价值,即“胖协议”,面对生活的各行各业,需要用各种协议来完成各类应用,才得以发展到最终的阶段。分析而来,整个过程是虚拟机和公链密切配合的结果。而这,也正是CyberMiles的世界观。

CyberMiles创始人卢亮博士曾这样评价到,“没有自己语言和虚拟机的公链是过时的,虚拟机和CyberMiles 完美结合会让‘胖协议”(Fatprotocols)’成为现实。”

相对应的,Lity和CVM将和开发者一起拥抱区块链,实现“现实”。

“Hello,world”。(code by Lity)


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JSP 2.0技术手册

JSP 2.0技术手册

杜远君、林康司、林上杰 / 湖北教育出版社,电子工业出版社 / 2004-5-1 / 59.0

本书图文并茂,以丰富的实例为引导,全面介绍了主流的Java Web开发技术——JSP 2.0,重点介绍Java在展示层的两项重要技术:Java Servlet与JavaServer Pages。它们是最重要的Java核心技术。对这两项技术的深入了解,将有助于您未来对于JavaServer Faces(JSF)技术以及Java Web Services技术的学习。 本书分为三大部分,前......一起来看看 《JSP 2.0技术手册》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换