首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对当下区块链世界的几点看法

公链的开发不是一蹴而就的

什么是公链?

我的定义是公链是一套分布式存储系统。比特币、以太坊等等数字货币背后都有一套公链来作为账本,去记录它们自己货币的使用情况。

这个公链作为分布式存储系统一般要保证以下目标:

数据一旦记录,任何人不可修改

为了实现这个最主要目标,公链一般使用分布式系统,将数据存储于N个硬件之上,这样保证了硬件不属于某一个或某几个人。从而避免硬件持有人直接修改原始数据的问题。

数据记录要正确,要可查找。

数据存储要稳定,不能丢失。

公链的开发实际上就是一个分布式存储文件系统的开发,或者说是分布式数据库的开发。

老的几个公链,比特币、以太坊都有性能过低的问题。如果按照一个现有的存储系统来评判,那它们的设计都过于笨拙,所以性能瓶颈很大。

现在公布出的新公链的开发,都是以提高性能为前提。甚至,对于数据的存储也不再仅限于账本式的数据,而是面向所有的普通文件数据。

这里问题就来了,开发一个分布式存储系统简单吗?

答案肯定是:不简单。

我们现在可以看到的文件系统有:

https://zh.wikipedia.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%88%97%E8%A1%A8

数据库系统有:

https://en.wikipedia.org/wiki/Database

这些都是公链作为存储系统可以参考的代表。

从上面的链接里,我们可以看到一个长长的列表,这个列表里的项目大都开始10-30年以上的时间了。

再说公链:比特币始于2008年,以太坊始于2013年,可以预见,再开发一个新的公链并不容易。

一个公链就相当于一套底层平台。所以,最后能存活下来的公链应该不超过3个。

开发公链的人需要什么?

开发者有很强的编码能力。

没有实现能力,你的理论都是镜花水月。

开发者有远大的目标。

你是做一套公链,是纯底层的东西。没有远大的目标,很容易被别人替代。

开发者有探索精神。

像公链这样的分布式存储系统,整个IT历史上也不太多,成功的更加少之又少。你可参考的资料会非常的少。也许你只能设计一个看起来差不多的系统,然后就是不断的尝试与改进。

一个社区。

既然是分布式系统,那就需要足够多的客户来参与。这些客户可以说是这个系统的零部件。形成一个社区,来吸纳用户参与进来,这是每个公链都要解决的问题。POS也好,POW也罢,这些都是公链设计的重要元素。

比特币毫无疑问已经是一种投资品

比特币以及其他的数字货币由于无法抑制价格的波动,毫无疑问的变成了一种投资品。

对比真实的普通货币:

普通货币在现实世界是有国家在背后做支撑,可以调节货币的兑换价格,总体保持货币价格的稳定。但对于比特币这些数字货币来说,它没有这个机制,所以无法保障它的价格平稳,导致了它无法作为货币去使用。

还记得那个当年花了10000个比特币买了块披萨的朋友吗?如果是真的,那他应不应该非常后悔呢?

同样,现实世界中的货币,例如委内瑞拉的玻利瓦尔大幅贬值,也失去了作为货币的意义。

当然,如果有很大的比特币持有者做庄,并且他要维持价格稳定,可能可以一定程度改变这一现象。

比特币在设计的时候特别加了生成的限制机制,就是每10分钟生成N个比特币,并且随着时间的推移,这个N值会越来越小。这虽然不会让比特币由于过量发行而贬值,但却造成了比特币的数量不足,所以价格上涨也成为一种必然趋势。

比特币设计的时候,还没有考虑货币交易所。但后来,货币交易所的出现将比特币等数字货币完全带入了投资品的行列。

区块链的性能是没有天然优势的

区块链也就是公链,正常是个分布式系统。从技术角度讲,其性能如果与现有数据库系统相比较,它没有太多优势,甚至可以说是没有优势!

互联网发展了30年,整体性能提高了很多倍,现在支撑着至少40亿用户的使用。这中间有硬件的原因,但更多的是架构的进化。我们基本将性能方面的架构设计提高到了很高的等级。

区块链在最开始设计的时候,采用的是最没有效率的架构:把所有的数据都平分到所有的客户端,也就是最分布式的结构。这个分布式的架构接近最终极分布式的形态:没有明显的中间节点,所有的节点都是平等的。这样的结构作为存储系统来说,可以预见:效率最低!

再往后,新的公链设计为了提高效率,肯定要将数据集中化存储。但这样的设计,也超不过现有的数据库系统或者文件系统。只能说是向现有的架构设计靠齐而已。

区块链的作为分布式系统的优势在于利用最多的硬件,就是将剩余的硬件资源利用起来。但这样的设计会有网络传输方面的限制。

如果为了追求更高的TPS(每秒交易次数),新的公链一定会在一定程度上集中数据到几个大的节点上。回归到现有的普通数据库的设计架构上来。

最后科普一下:

分布式系统有优势,在于可以有很大的容量。例如我们的互联网架构,互联网在设计之初,就是一个分布式系统。如DNS系统,可以说是全球使用的一套分布式数据库,它容纳了40亿人的域名查询。但它存储数据的效率并不高,一般都需要花费10分钟以上的时间,才能让存储数据生效。

我们设计架构,一般要考虑三要素:运算,存储,网络。

其实,我们都是从中心化设计开始的,然后慢慢的向分布式架构转移,转移到一定程度,在中心化与分布式之间取得一个平衡点,就是最终的架构。

中心化 ——>> 分布式

中心化设计的优势是:简单,劣势是:性能有上限。

分布式设计的优势是:性能容易扩展,劣势是:设计复杂。

最开始采用中心化设计一般是为了能尽快上线这个应用。

后期如果遇到性能瓶颈,分布式设计一般就要被引入。

整个Internat本身可以说就是一个巨大的分布式与中心化相结合的架构。

我们有N多数据中心,N多骨干网络,N多的客户端。

每个数据中心就相当于一个中心节点,每当我们在某个中心遇到性能的问题时,我们首先会想到的是能否将该问题切割,切割成平均分的小块。

让每个小块独立运行,这就是分布。将原先集中的东西分布下去,从而可以通过添加更多的硬件来获得性能的提升。

举例来说:1个服务器有多强,也不可能应对1千万的用户,那么我们将这1个服务器上的应用想办法切割成分布式,这样我们就可以使用N个服务器来服务这1千万用户。

很简单的道理。 网络也是如此,你的带宽有多高也不可能应对更高的流量需求,那么我们将服务分布式,让多个数据中心来应对,我们就可以解决这个问题。

总之,整个互联网的发展就是这样,集中,然后分布,再集中,再分布。

现在,互联网的架构应对这几十亿的网络用户没有问题,这个是事实证明了的。

所以,对于主流公司来讲,没有技术需求再去开发一个更加分布式的架构,例如区块链系统。

这样做的意义是什么呢?

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180509G1BRKV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券