
(源自pixabay.com)
李笑来老师的Press.one把我拉入区块链的世界,因为这个原因(众筹用EOS),我从进入区块链的时候,就注意到了EOS。开始去尝试了解EOS、理解EOS。从最开始读云币对EOS的介绍,到阅读EOS的白皮书,最近一段时间,还运行了一个本地测试节点。
前段时间,我写了几篇对白皮书的理解,如果感兴趣,可以点链接阅读:
尽管白皮书看了很多遍,EOS相关的文章也看了不少。但有一个疑问一直没能获得解答:EOS上运行多条公链,甚至我看到在电报群里有人说以太坊可以运行在EOS上。但如何实现?how?完全没有头绪。
EOS真的可以运行多条公链吗?什么样的结构才能实现这样的功能呢?还是这其实是一个误会呢,根本就不可能实现的呢?
我们看现有的区块链,都是一条公链,没听说那种链上或者公设上运行了多条链的。基本上所有的区块链都可以执行脚本命令,即使最早的比特币,即使不是图灵完备的,也可以执行少量的命令,实现功能有限的智能合约(闪电网络)。无论是比特币链上的智能合约还是以太坊上的智能合约,或是EOS上的智能合约都是通过消息驱动脚本执行。也就是由用户发送一条消息到智能合约地址,调起智能合约脚本,执行智能合约的特定功能。
智能合约与公链有什么区别吗?智能合约运行在公链上,公链是更加底层的程序,而智能合约是在公链上的应用,是区块链的扩展。不同的公链会提供不同特性的接口,比如说做交易所的公链和做内容的公链提供的接口会有所有区别。
回到本文主题,如果EOS可以运行多条链,那么带宽、内存……怎么分配呢?就像是一个windows系统如何执行另一个操作系统呢?
说到这里你或许已经想到了,在一个系统里运行另一个系统,不就是日常说的虚拟机嘛。我现在使用的电脑运行windows 10,但是有些软件不能运行在windows 10的环境,需要运行在linux,那我只好开个虚拟机运行linux,然后就可以在虚拟机运行软件了。
虚拟机是一个很好的概念,各个虚拟机可以运行自己独有的软件(智能合约),虚拟机之间可以相互通信、而不会互相影响。结合虚拟机这个概念,之前的问题就很容易理解了。
所谓的“多条公链并行”可以理解为在EOS公链上运行的虚拟链,这些虚拟链可以共享EOS的账户、权限管理等。又可以添加自己的特性,供开发者开发出“有特色“的智能合约,这些合约就像是运行在独立的公链上的一样。
在EOS开发虚拟链和单独开发一条公链相比,虚拟链有很多优势:
- 共享账户、权限管理等基础设施,不需要重复造轮子,开发难度、成本下降。
- 在开始的阶段就获得在EOS社区的支持。
- 即使虚拟链失败了,手上的资源(EOS token)并不会归零,降低风险。
………………
说到这里,可以基本明确EOS公链只有一条,而基于EOS开发的公链其实是虚拟链,这就可以理解为什么说Ethereum可以运行在EOS上了。
然而,虚拟链要如何实现呢?在目前EOS公布的开发文档里只有关于智能合约的开发文档,而虚拟链的开发文档并不存在。
那么就有两种可能,第一种是,要开发虚拟链的组织需要基于EOS.IO软件进行修改、添加独有的特性。第二种是,其实所谓的“虚拟链”就是一堆智能合约的集合(图灵完备的指令集,理论上可以实现任何功能),所谓在虚拟链上的智能合约,其实是调用了“虚拟链”暴露的智能合约的接口。到底会是那一种,这需要时间来证明。
以上是我个人对“多条链运行在EOS上”的见解。
顺带说一下关于EOS公链的发布,Block.One明确表示不会发布公链,EOS公链将由第三方发布,由社区认定那一条链是EOS公链。那么到明年EOS.IO开发完成的时候,可能会有几条基于EOS.IO的公链(与上面说的虚拟链不一样,是一条实实在在的公链)。如果出现这样的局面,只要是基于EOS众筹合约快照的公链,我们可以获得这些条链上的Token。就类似于现在的IFO,只要在分叉区块前拥有比特币,那么你就可以获得分叉币。
当出现多条公链,竞争就会出现。就像ETH、ETC、但最终只会有一条链被称为EOS,别的链是要改名字,EOS GOLD、EOS CASH……
这就是BM说的市场竞争的含义吧。这也是对谁会运行EOS公链,我的投资会不会打水漂了?的补充,当时的理解还不够深入。
关注不迷路
(如果你注册了steemit账户,请关注我)

(如果文章对你有用,请关注我的公众号)