你以为“做条高性能公链”就可以颠覆以太坊了?

Roy Li 虚拟机 2018-02-14

最近不光币圈,整个链圈在泡沫吹起来后也不断走火入魔。 我看到的最有趣的现象是那些真正拥有技术的团队一点都不着急,可能和他们融资顺利有关,反而是不知道哪里冒出来的简历包装的无比牛逼但概念全是拼凑甚至逻辑不自洽的团队


Gavin Wood 在以太坊黄皮书里给出了非常明确的定义,虽然有一些内容肮脏地让人匪夷所思,但整体的结构还是很清楚的,看完黄皮书,你大概就知道以太坊不仅具有相当多的革命性创新,还具有可以不断自我强化的技术壁垒。如果你再看了vitalik的紫皮书,你就会明白人家早在你之前在未来的扩展性上有了非常深入的思考。


我下面简要地跟你们普及一下以太坊的技术亮点,至于那些号称要颠覆以太坊的项目是不是能做到,你们自行判断。


无敌的易用性


以太坊的接口设计谈不上优雅但非常简单,协议理解起来也非常容易,虽然从技术的角度上有很多槽点,但这些并不是为了实现DAPP的开发者最关心的。你想要做一条更好的链,你得先实现:好用的VM、一套支持开发的语言、参数序列化和反序列化脚本、存储数据结构模型、leveldb存储接口以及线路协议等等。


由于头部效应,未来会有大量的工具链是基于以太坊的,这就让公链上的颠覆变得更加困难。切换主链带来的重置成本非常高。


强大的EVM


比市面上现有的通用VM轻便的多,简单好用。没有一大堆的外部依赖。且具有临时存储数据并选择用stack或者memory的方式,而stack和memory的大小都不受限制。


我可以预测未来在EVM之上还会有大量的高级语言工具链将引入更多的如类型,抽象等能力扩展应用的边界,但对于EVM起到的作用,它已经够了。


从UTXO到Accounts的实现


这里先说个别的例子,百度当年由于搜索能力特别强,百度的贴吧用的不是论坛模式,而是关键词索引模式,也就是你进入一个论坛,你看到的一系列帖子是一个搜索的结果而非一个版块。 有时候出了问题时一楼不见了,二三楼都在,所以才有了“一楼喂熊”的说法。


UTXO一度在我眼里是比特币的神作,和我们惯性思维相悖,而是从区块链出发通过寻找所有可被用户签名的交易,去构建用户的账户余额体系。同时正因为UTXO队列的存在,比特币用打包和长短链比对很轻松地实现了一个防止双花的技巧。


以太坊用了账户体系,用一个state的概念简化了实现的难度以及节省空间,这个取舍其实是很难判断的,因为每笔交易要额外配置一个nonce防止重放攻击,另外扩展性和隐私保护也有一些槽点。


但不管怎么说,这个体系艰难地跑了很长时间,直到今天。在我看来,它让轻客户端的实现非常的简单,这对开发者是很有意义的。


Trie的设计,对轻客户端友好


以太坊每个区块头的三个指针代表了三个核心的树:状态、交易、收据。


交易树比较简单,收据是一个RLP编码的数据结构,除了索引变得更加简单,logbloom的使用也让轻客户端使用起来非常方便。


区块头的设计和轻客户端是密切相关的。绝大多数节点并不需要完全同步,但要求访问数据的便利性。


区块内的主要数据结构是MPT,这里面稀疏区域用KV节点。在状态和账户的树里,diverge nodes 深度为64,使用sha3(k)作为key,非常难以DOS攻击。


目前整个状态的访问查询可以变得更快,全节点的全同步也可以变得很快,但这不在我们今天讨论的范围内。


未来的机会


因为紫皮书带来了新的方向,我就不再介绍压缩算法或是uncle区块实现等,紫皮书引入了POS机制,更友好的轻客户端同步实现,计分和测了实现, 分片以及跨分片通信等,以太坊不仅在增长,它也有大量的实际业务可以时刻验证自己的设计,获取反馈,光是这一点,其他的通用公有链是不能吐槽几句以太坊扩展性就以为自己可以搞定的。




本站仅按申请收录文章,版权归原作者所有
如若侵权,请联系本站删除
觉得不错,分享给更多人看到

虚拟机 微信二维码

虚拟机 微信二维码

虚拟机 最新文章

交易的价值  2018-09-13

机会在哪里  2018-09-12

谈谈虫洞协议  2018-08-29

Ruff 回购计划  2018-06-14

躺赢  2018-05-15

大人物的失败  2018-05-10

小人物的成功  2018-05-09

别人的世界  2018-04-10

少数人的共识  2018-04-09