关于区块链的讨论不绝于耳。也许你听说过,区块链现在可以:
1. 解决收入不平等
2. 使所有数据永远安全
3. 使一切变得更有效率和更不可信
4. 拯救垂死的婴儿
到底什么是区块链?它真的能做所有这些事情吗?区块链能为医疗、金融、供应链管理和音乐版权等不同行业带来惊人的变化吗?而比特币从业者是不是意味着你是支持区块链的?你怎么能在支持比特币的同时诟病比特币背后的技术呢?
在这篇文章中,我试图通过解答什么是区块链来回答上述疑问。
什么是区块链?
我们来先定义清楚区块链是什么,这里有很多常人理解上容易混淆的地方。许多公司使用“区块链”这个词来指某种神奇的装置,在这个装置之上它们的所有数据永远不会出错。显然,这样的装置在现实世界中是不存在的。
那么什么是区块链?从技术上讲,区块链是数据区块以有序的方式组合起来的链式数据结构。如果您不理解最后一句,您可以将块链看作是附加了一些属性的数据库子集。
区分区块链和普通数据库的要点在于如何将数据放入数据库。也就是说,它不能与数据库中已经存在的其他数据冲突(一致),它仅仅是附加(不可变),并且数据在本身被锁定到所有者(Ownable)后,它是可复制的和可用的。最后,每个人都同意数据库中的数据以协商一致的规范和协议存在(去中心化)。
接下来所说的最后一点,是区块链真正备受推崇的关键:去中心化是非常有吸引力的,因为这意味着它没有单一的失败点。
也就是说,没有任何一个权威机构能够拿走你的资产或改变“历史”以满足他们的需要。这种不可改变的审计跟踪,意味着在这里你不需要相信任何人,这也正式这项技术背后人们不断在追逐的利益。然而,为了这些利益我们付出了巨大的代价。
区块链的成本
任何一方都无法控制这些不可改变的审计跟踪,但是创建这样一个系统需要付出很多代价。让我们来看看其中的一些问题。
发展受限且进程变慢
创建一个明显一致的系统并不是一件容易的事情。一个小错误可能会破坏整个数据库,或者导致某些数据库与其他数据库不同。当然,损坏或拆分的数据库不再具有任何一致性保证。
此外,必须从一开始就设计所有这些制度,使之保持一致。在区块链中没有“快速移动和破坏”,如果你破坏了一些东西,你就会失去一致性,区块链就会变得毫无价值。
你可能在想,为什么不能修复数据库或者重新开始再继续前进呢?这在集中式系统中很容易做到,但在去中心化的系统中非常困难。要更改数据库,需要系统中所有参与者的一致意见或协议。区块链必须是不受单个实体控制的公共资源(去中心化,记得吗?),或者整个工作是创建一个缓慢、集中的数据库的一种非常昂贵的方法。
激励机制很难设计
设计良好的奖励机制保证所有参与者不会滥用或破坏这个数据库同样是一个很重要的事情。如果放入数据的成本很低,区块链可能具备连贯性,但如果它存在大量无用的无用数据,那么它就不是非常有用。如果放入数据的成本很高,那就基本没什么数据在里面,那么它同样不是一个非常有用的数据库。
如何确保奖励与网络目标一致?为什么节点要保存或更新数据?是什么使它们在冲突时选择一条数据而不是另一条数据?这些都是激励性的问题,需要很好的答案,它们不仅需要在开始的时候,而且在未来的任何时刻,随着技术和公司的变化,它们都需要一致,否则区块链就没有用了。
同样,你可能会想,为什么你不能“修复”一些坏的激励。同样,这在集中式系统中很容易,但在去中心化系统中,没有共识就不能改变任何事情。除非大家都同意了,否则就不会有任何“修理”。
维护费用很高
传统的集中式数据库只需写入一次,一个区块链需要被写到数千次;传统的集中式数据库只需要检查一次数据,区块链需要检查数据数千次;传统的集中式数据库只需传输一次数据即可存储,区块链需要传输数千次数据。
维护区块链的成本要高出一个数量级,成本需要通过效用来证明。大多数应用程序寻找一些属性,如一致性和可靠性,可以通过使用完整性检查、收据和备份,以更低的成本获得这些功能。
用户是独立的
这可能真的很好,因为公司不喜欢拥有用户数据的责任。但是,如果用户“行为不当”,这可能是不好的。没有办法驱逐那些用琐碎的数据垃圾处理你的区块链的用户,或者想出一种以某种方式盈利的方法,这会给其他用户带来很大的不便。
这与上述观点有关,即激励结构必须设计得非常、非常好,因为发现漏洞的用户不太可能放弃这一点,特别是如果用户有利润的话。
您可能认为可以简单地拒绝向恶意用户提供服务,这在集中式服务中非常容易。然而,与集中式服务不同,拒绝服务是很困难的,因为没有一个实体有权将任何人逐出。区块链必须公正,并强制执行软件定义的规则。如果规定不足以阻止不良行为,你就倒霉了。这里没有法律的“精神”,你只需处理恶意或行为不端的演员,可能会有很长一段时间。
所有升级都是自愿的
强制升级不是一种选择,网络上的其他玩家没有义务对您的软件进行更改。如果他们这样做了,这样一个系统将更容易、更快和更便宜的建设作为一个集中的系统。区块链的要点是它不受单个实体的控制,这与强制升级相违背。
相反,所有升级都必须兼容以前所有版本。这显然是相当困难的,特别是如果你想添加新的功能,光做测试都让人觉得头疼,每个新版本为了兼容以前的版本都有很多新的东西要测试,这样每次都需要更长时间。
再说一遍,如果这是一个中心化系统就很容易了,你直接把旧版本弃了就好了。在去中心化的系统中就不行,因为你不能强迫任何人做任何事情。
扩容真的很难
最后,扩容比传统的中心化系统要难至少几个数量级。原因很明显。相同的数据必须存在于成百上千个地方,而不是一个地方。传输,验证和存储的开销是巨大的,因为数据库的每个副本都必须花成本,而传统中心化的系统花一次功夫就全搞定了。
当然,你可以通过减少节点数量来减轻负担。但如果这样,为什么你需要一个去中心化的系统呢?如果扩容成本是你的主要问题,那为什么不直接做个中心化的系统?
中心化要容易得多
现在你知道了去中心化的系统很难弄,维护费用昂贵,难以升级并且难以扩展。跟区块链相比,中心化数据库更快,更便宜,更容易维护且更容易升级。那么,为什么人们一直在谈区块链,好像它能解决所有问题?
首先,很多硬扯上区块链的行业其实只是需要一个IT设施的升级罢了。医药行业用的软件出了名的差;财务结算仍在70年代的软件上运行;供应链管理软件又难安装又难用。由于牵扯到风险,大多数这些行业的公司都拒绝升级。无数的基础设施升级费用高达数亿美元,最终还是用回原来的版本。区块链只不过是用更吸引人的方式忽悠他们升级基础设施罢了。
其次,区块链是一种让人看起来站在时代前沿的方式。不管你喜不喜欢,“区块链”这个词已经成为了一种独立的存在。很少有人真正理解它是什么,但是一定要硬扯区块链来显得自己好像很聪明。就像“云”意味着别人的电脑,“AI”意味着特定的算法,而目前的语境下,“区块链”意味着一个又慢又贵的数据库。
第三,人们真的不喜欢正府对某些行业的控制,并且希望有一个不同于现有又慢又贵的法律框架的机制。对他们来说,“区块链”实际上只是摆脱正府严厉监管的一种方式。这真的难为区块链了,区块链不会奇迹般地消除人类的冲突。
这导致的结果是很多人被别人吹的牛忽悠了,而没有意识到区块链真正的能力和成本。更糟糕的是,很多投资人和大佬们也被抽象的概念蒙蔽了,以至于模糊了区块链可以做什么和不可以做什么。在他们之下的每个人都害怕说皇帝没有穿衣服。
那么要区块链何用?
好了,我们已经知道区块链相对于中心化数据库而言非常昂贵。所以你使用区块链的唯一原因是去中心。也就是说,排除单点故障或个体控制。
这意味着软件或数据库不能经常改动,甚至一点都不能改。而且需要升级的好处并不多,但是搞破坏或者改规则有很大坏处。
大多数行业不是这样的。 大多数行业都需要新功能或升级,并根据需求自由更改和按需扩张。 鉴于区块链难以升级,难以改变并难以扩容,区块链对于大多数行业来说并没有什么卵用。
我们发现的一个例外是钱。 与大多数行业的应用场景不同,钱不变是最好的。 不变和难以改变规则对于钱来说有百利而无一害。 这就是为什么比特币对于区块链来说简直是完美的落地应用。
很明显,很多希望使用区块链的公司并不是真的想要区块链,而是想要IT基础设施的升级。 出发点都很好,但是使用“区块链”这个词来达到目的就很虚伪且高估区块链了。
结论
区块链是时下的流行语,不幸的是,这种“区块链不只是比特币”的梗不会消亡。如果你是一个中心化服务,区块链给不了你任何东西,而且中心化的数据库比区块链便宜一万倍。如果你是一个去中心化的服务,那么你可能是在自欺欺人,在真正的去中心化服务中根本没有“你”。
早在2000年代初,科技行业的许多高管就在推动使用Java和XML。尽管这两件事都是工具,而不是实际产品,但许多高管坚持使用这些工具,不管他们的工程师试图实现的目标有多么糟糕。
区块链就是这样的。专注于你正在解决的问题,这些工具将使你自己变得显而易见。专注于你想要使用的工具,你最终会制造出鲁伯·戈德堡机械,这些机械做得并不特别好。
从某种意义上说,目前关于区块链的概念正试图做不可能的事情,他们想要一个去中心化的系统的安全和一个集中的控制。人们的欲望是得到两个世界中最优解,但他们最终得到的却是两个世界中最劣解。通过集中式系统的故障模式,我们可以得知去中心化系统的成本和难度。
区块链作为一个时髦的词被过度使用,我们越快摆脱炒作,从长远来说,生活就会越好。










网友评论