三大公链开发者纵论 DAPP(上篇) - V2EX

Oct 11, 2018V2EX

今天,dapdap 给大家带来三大公链开发者对目前 DAPP 的理解,这是一篇采访稿,由比特大学联合创始人兼法律顾问张烽主持,主要的对话嘉宾有:李刚,EOS 开发者,人人通证 CTO ;古千峰,以太坊开发者,BTC media 亚太区 CTO,IPFS 原力区创始成员;宋世军,亦来云开发者,亦来云生态应用负责人。

一、什么是 DAPP

在采访上,张烽提出:" DAPP 的概念好象还没有完全取得一致,那么不妨先请各位介绍 DAPP 概念"。

宋世军表示:"对 DAPP 目前是各有各的定义。以太坊最早提出这一概念。我们从字面上说 decentralized APP,脱离中心化服务器的,脱离中心来运行的,就是 DAPP。甚至哪怕有服务器,但这个服务器不受任何中心控制的,就是属于 DAPP。"

张烽认为:" DAPP 就是去除中心化控制,不受任何中心化的控制。"

李刚认为和宋世杰说的是同一个定义,不过得补充下,那就是:"不受中心化控制,还有一个好处稳定性会增加,比如阿里云服务器,阿里云、腾讯出过事,但如果部署在以太坊、EOS,就不会出现宕机概念。

传统服务器,一是提供资源,二是处理逻辑。处理逻辑以太坊智能合约就处理得很好。但去中心,还有一个是资源。现在很多 DAPP 资源还是放在中心化服务器上,因此 DAPP 就是要求资源也是去中心化。"

张烽复议:"不光是运行去中心化,资源去中心化也是很重要的"。

宋世军也提到:"大家都觉得区块链是去中心化,其实对应用来说链就是一个中心,以太坊自己就是一个中心,只是这个中心不能被人控制。"

古千峰:"数据怎么共识,怎么同步,这些都是链上的事情,对于 DAPP 应用开发者,不用太在意,只要选择一条与自己的应用相适应的区块链即可。"

二、关于稳定性

张烽:"前段时间有一个很火的游戏 FORMO3D,非常火。有人比较了一下,他在以太坊上很稳定,但是在 EOS 上不太稳定、容易被攻破,请大家谈谈这是什么原因,如果这个游戏运行在亦来云上又会是如何?"

古千峰:我对 EOS 也稍微了解过一点。我的理解是 EOS 在安全机制上有一个设计缺陷,设计缺陷不是代码层面的缺陷,比如 OWNER 和 ACTIVE 的账户机制,我需要授权 DAPP 使用我的账户,我要把 ACTIVE 的权限交给他。以太坊有一个对应的 APROVAL 方法,但 EOS 上授权以后就很难控制了,这个账户权限问题属于设计缺陷。

还有一个开户问题。EOS 的开户,有点象传销。除了某些钱包服务商提供的免费增值服务外,一般人需要找人帮他开户,那么帮他开户的人可能会把 OWNER 权限拿到手上,等用户账户中有了大量数字资产时,用 Owner 权限控制这个账户。从比特币到以太坊,账户都是随机数产生私钥,并由私钥通过复杂算法得到公钥。EOS 在这方面有很大的不同,也是很多数字货币用户不习惯的地方。

张烽:这个特点在 FOMO3D 游戏上有体现吗?

李刚:刚才古总说的两个问题。一个是账户权限问题是有漏洞,我觉得其实现在还有漏洞,设计上是有问题。最近有一个 RAM 泄漏问题,即当你每次发起一笔交易的时候,你可以有一个附言的内容,这个东西会被别人滥用,因为他不仅有留言,还有一个触发机制,你这个合约会触发另一个合约。

比如你给我汇款,我可能是一个智能合约,那么这个智能合约就会触发回调函数,我的回调函数会操纵你的账号的权限给我。我这回调函数就会操作你的账号,他的 RAM 是要钱的,但是我可能借机往你的数据库插入新的记录。

古千峰:我搞不清楚 BM 设计这个机制的时候他是有意还是无意。

李刚:我们看到以太坊只提供 VM,没有任何其他系统服务,相当于一个 CPU,没有文件服务,没有数据库,你自己写一个地址,按地址去读的,甚至可以用汇编去写,结构非常简单。

EOS 问题在于设计复杂,更象是一个 OS,提供权限管理,以太坊没有权限管理,只有签名。EOS 有账号的概念,更象一个操作系统,同时有数据库,以太坊没有的。

以太坊不能太复杂,要是超过交易时间就会被断了。所以说,数据库也是账号权限管理,而且账号还可以互相转让,结构非常复杂。一旦复杂,出错的概念大大增加,比以太坊设计上大两个数量级。推出也才一年,又有权限管理又有数据库,这么复杂的项目,还要把 IPFS 放进去。

第二种,古总刚才说的开户的费用。EOS 它不是真正的一个分布式,他需要开户是因为没有本质的区别,但是这个公私钥本身。但是这个公私钥本身不代码账号,账号在系统的智能合约里,你可以把你创建的公私钥来管理一个账号,或者由两个公私钥来管理。

我们要求是由两个公钥都签名才能交易,他把这个做在系统里面。或者有两个公私钥来管理。有点象以太坊的多签。

EOS 的公私钥和账号不是一一对应,而以太坊是一一对应。这就导致账号要帮人帮你创建, 不能天然用公钥来做账号。

宋世军:前面说的都很好的。亦来云和这二者不太一样,当然也有很多地方是一样的。亦来云的话,底层链类似比特币结构,智能合约层面上更象以太坊,在 POW 基础上,跑一个 VM,更象以太坊。如果在亦来云上面做一个 FOMO3D 上,更象以太坊版本。

但我们还有第三种方式,有一个 RUNTIME,可以象写一个普通的 PC 程序,它在运行在特定的环境,这个环境不是智能合约,更像是函数编程。靠整个代码,类似所见即所得的运行,我们知道智能合约就是从源码证明所见即所得的运行。

如果在亦来云 Runtime 上实现 FOMO3D 游戏,前面账号和权限的问题就不会有,更多地是看代码层面上有没有 BUG。

张烽:如果代码层面没有 BUG,那么在亦来云上跑还是比较安全。

古千峰:RUNTIME,可以跑两个东西,一是智能合约,还有一个编译成一个代码放在 RUNTIME 里,是两种还是一种?

宋世军:RUNTIME 不能完全等价智能合约,是一种可信代码,因为智能合约更多强调共识。这点涉及我们的一个核心价值观,比特币没有计算就是一个简单脚本,以太坊加了一个智能合约,以太坊把记账和运算绑在一起在节点上,这一万个节点计算能力是串行,以太坊运算能力是串行的。

我们是觉得这个世界很多场景可信要求级别不一样,这就是为什么会有 POS,DPOS,它们把这可信调弱一点,TPS 高一点,这是一种平衡方式。

我们是另一种方式,记录层面上是全网记录,所有节点参加,但是计算层面是少数节点参加。有点象联盟链,比如计算只要有三个人认可,就可以了,RUNTIME 有点象这个。我们有一个运行在节点,也可以运行在普通 PC 上,RUNTIME 可以运行在手机上,可以运行在 PC,用 SPV 和链连结起来。

李刚:运算能力可以无限扩展。

宋世军:链层面是 BTC,智能合约层面是 ETH,再加传统的互联网运行环境。

在这一篇文章中,三位开发者分别给我们带了"什么是 DAPP "," DAPP 的稳定性"与 fomo3D 如果在 eos 生态上运行有什么优劣性,做出 EOS 和 ETH 生态的一些对比。在下一篇文章中我们将带来" DAPP 的可靠性和其处理速度",各位读友请敬请关注噢。

部分现场资料来源于张烽(亦来云董事、比特大学创始人)