EOS上可以运行以太坊?steemCreated with Sketch.

in cn •  2 years ago 


(源自pixabay.com)
李笑来老师的Press.one把我拉入区块链的世界,因为这个原因(众筹用EOS),我从进入区块链的时候,就注意到了EOS。开始去尝试了解EOS、理解EOS。从最开始读云币对EOS的介绍,到阅读EOS的白皮书,最近一段时间,还运行了一个本地测试节点。

前段时间,我写了几篇对白皮书的理解,如果感兴趣,可以点链接阅读:

重读EOS白皮书——账户与智能合约

重读EOS白皮书——权限

重读EOS白皮书——性能

尽管白皮书看了很多遍,EOS相关的文章也看了不少。但有一个疑问一直没能获得解答:EOS上运行多条公链,甚至我看到在电报群里有人说以太坊可以运行在EOS上。但如何实现?how?完全没有头绪。

EOS真的可以运行多条公链吗?什么样的结构才能实现这样的功能呢?还是这其实是一个误会呢,根本就不可能实现的呢?

我们看现有的区块链,都是一条公链,没听说那种链上或者公设上运行了多条链的。基本上所有的区块链都可以执行脚本命令,即使最早的比特币,即使不是图灵完备的,也可以执行少量的命令,实现功能有限的智能合约(闪电网络)。无论是比特币链上的智能合约还是以太坊上的智能合约,或是EOS上的智能合约都是通过消息驱动脚本执行。也就是由用户发送一条消息到智能合约地址,调起智能合约脚本,执行智能合约的特定功能。

智能合约与公链有什么区别吗?智能合约运行在公链上,公链是更加底层的程序,而智能合约是在公链上的应用,是区块链的扩展。不同的公链会提供不同特性的接口,比如说做交易所的公链和做内容的公链提供的接口会有所有区别。

回到本文主题,如果EOS可以运行多条链,那么带宽、内存……怎么分配呢?就像是一个windows系统如何执行另一个操作系统呢?

说到这里你或许已经想到了,在一个系统里运行另一个系统,不就是日常说的虚拟机嘛。我现在使用的电脑运行windows 10,但是有些软件不能运行在windows 10的环境,需要运行在linux,那我只好开个虚拟机运行linux,然后就可以在虚拟机运行软件了。

虚拟机是一个很好的概念,各个虚拟机可以运行自己独有的软件(智能合约),虚拟机之间可以相互通信、而不会互相影响。结合虚拟机这个概念,之前的问题就很容易理解了。

所谓的“多条公链并行”可以理解为在EOS公链上运行的虚拟链,这些虚拟链可以共享EOS的账户、权限管理等。又可以添加自己的特性,供开发者开发出“有特色“的智能合约,这些合约就像是运行在独立的公链上的一样。

在EOS开发虚拟链和单独开发一条公链相比,虚拟链有很多优势:

  1. 共享账户、权限管理等基础设施,不需要重复造轮子,开发难度、成本下降。
  2. 在开始的阶段就获得在EOS社区的支持。
  3. 即使虚拟链失败了,手上的资源(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 账户
(如果你注册了steemit账户,请关注我)

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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @zhouyagen! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of posts published

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!