hailonggong 2019-10-31
很多关注区块链的人总会见别人提起VM却不知道是什么东西,正好今天可以涨涨姿势:
我们使用的任何应用都是程序员写的,但程序员是人不是机器,他们不会用最底层的接近机器能识别的语言去写,所以他们写的是对自然语言具有一定友好度的语言,比如java, javascript, python等,而广义的VM就是将这些语言解析并交给系统去执行的一个环境。 EVM就是如此, solidity是一个类似javascript的语言, serpent是类似python的,这两种语言写出来的Dapp都可以被EVM解释并在以太坊中被执行。
目前区块链领域常见的是使用EVM或是LLVM的,而LLVM是比EVM更加通用的底层VM,ios和android的应用开发最底层都是在LLVM之上的。
然而门槛降低了之后,任何水平的程序员都可以写代码了,程序员的代码功力参差不齐,那些手残的程序员写了一些问题代码导致系统崩溃了怎么办呢?
所以主流的VM往往会承载一些诸如安全、隔离性、管理分配系统资源等功能。而区块链行业由于比较新,像EVM和solidity还处于一个极度不完善的状态,绝大多数应用开发者,又并不具备很强的底层知识。 这就是为什么以太坊经常爆出安全漏洞的一个原因。
区块链对稳定性和安全性的要求又很高,合约代码看起来容易写,但写出来真的能用好用也不容易,交易所在接纳即便是ERC20的币种也需要项目方提供代码审计结果。
一个好的VM,是应该屏蔽掉对系统最底层的直接操作,做好适当的抽象和封装,降低技术风险。这是未来DAPP生态发展起来所必须的技术基础,也是行业共识。就好比以前在安卓和ios之前,手机应用开发由于抽象和分层不够好,开发门槛过高,加上技术风险,使得智能手机概念从2003年被提出到2010年左右风靡全球,之间经历了漫长的应用潜伏期。
然而就这么一个行业共识,为什么到现在市场上并没有做的好的VM出现? 那就是因为做这件事没啥商业模式,也不性感,大家都想去做什么去中心化交易,做支付、钱包、公链,没什么团队愿意去磕这么苦的事。
但没有好的VM,公链的DAPP生态发展也受影响和制约啊,这怎么办呢? 绝大多数公链的做法是——等。 等别人做出来了,前人栽树,我们乘凉就可以了,到时候一样迎娶白富美,走上人生的巅峰。
总得有人要做VM, 那为什么不能是我呢?