62

商品还能比淘宝再便宜40%?CyberMiles想打造电商之DAO

 5 years ago
source link: https://www.leiphone.com/news/201808/BBwK08nP3770XfdP.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

假想一下,我们基于以太坊搞了个商城,想用比特币支付,以太坊的智能合约需要知道我们用了比特币支付,但每个商家可能要花费大量的Gas,是不是不太划算?理论上,以太坊可以做这件事,因为它有个图灵完备的虚拟机,但实际上它做不了,因为太贵(且慢)。而且以太坊并不想做一个为电商优化,或者说是为跨链优化的虚拟机,它希望找一个通用的解决方案,但目前这个方案并不明晰。

此外,没有闹钟功能(时间戳不可信),做不了分期付款等缺陷让以太坊在涉及到具体的应用场景的时候,显得有点力不从心。

以太坊这样想做世界计算机的公链解决不了电商领域的问题,CyberMiles看到了这一点,开始寻求改进。

第一代区块链(比特币)是没有虚拟机的,到了第二代区块链(以太坊),大家开始考虑,把钱从A打到B的过程为什么不能写成一段代码?执行这个代码就需要有虚拟机。 虚拟机是以太坊的一个重大革命,这么一来,交易不仅是可以打钱,还可以是执行代码。

其实虚拟机只有一层,底层语言可能是我们熟知的C++或者是Go写的,虚拟机自己的语言可以是以太坊的Solidity、新发布的Vyper。 还可以是Lity——这是CyberMiles开发的语言,源自以太坊的Solidity。

对CyberMiles稍微有点了解的人会把它定义成“电商版以太坊”。CyberMiles基于以太坊做了条公链,现在又有了自己的虚拟机CVM和编程语言Lity。

为什么要做件事?技术到底能带来哪些改变?如何能够落地?带着这些问题,CyberMiles首席科学家&联合创始人Michael Yuan 博士接受了雷锋网采访。

A3me2qr.jpg!web

袁博士在介绍测试链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%”这个甜头能不能让消费者尽快尝到,希望这个问题回答起来不会太困难。

雷锋网原创文章,未经授权禁止转载。详情见 转载须知

Yzmyau3.jpg!web

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK