区块链被炒作得天花乱坠。快听听这些好消息,区块链现在能:
解决收入不平等问题
永久确保数据的安全性
大幅提高效率并免去信任之需
挽救垂死的婴儿
那区块链究竟是什么呢?它真的能做到这些吗?区块链能给诸如医疗保健、金融、供应链管理和音乐版权等行业带来惊喜吗?
支持比特币不就意味着支持区块链吗?身为比特币吹的你好意思黑区块链技术吗?
在本篇文章中,我会回答上述所有问题,直击区块链的本质,更重要的是,破除过度炒作。
区块链是什么?
为了检验这些说法,我们必须定义区块链,其中存在很多含糊不清之处。很多公司用"区块链"这个词来指代某种神奇的装置,保存在上面的数据永远不会出错。回归现实吧,这种装置当然不存在。
那么区块链是什么呢?从技术宅的角度来说,区块链是一串互相链接的区块,其中每个区块都是一组有序交易。再说得简单点,你可以把区块链想象成数据库中的一个子集,还带有一些附加属性。
区块链与普通数据库的主要区别在于将数据添加至数据库内是要遵循特定规则的。也就是说,新添加的数据不能与已有数据相矛盾(一致性),仅允许添加(不变性),且数据本身属于所有者(可占有性),是可以复制且可用的。最后,所有人必须就数据库中的数据状态达成一致意见(规范性),而不受某一方的集权控制(去中心化)。
最后一点真的是区块链的必杀技。去中心化非常吸引人,因为它意味着不会出现单点故障。也就是说,没有哪个权威机构能卷走你的资产或是为了牟取私利改变"历史记录"。这样一种不可更改且无需信任任何人的记账系统正是每个运用区块链技术的人所寻求的好处。然而,有得必有失。
区块链的成本
不可更改且不受任一方控制的记账系统当然非常有用,但创建这样一个系统成本也很高。那么问题就来了。
开发过程缓慢而艰辛
创建一个可证一致性的系统并非易事。一个小故障可能会破坏整个数据库或导致一些数据库与其他数据库不一致。当然,一个被破坏或被拆分的数据库是无法保证一致性的。另外,所有这类系统必须从一开始就设计成一致的。区块链可没有"快速行动、破除陈规"一说。如果你要破除陈规,就会失去一致性,而且区块链会受到破坏,变得一文不值。
你可能会想,为什么不能修复数据库或重新启动呢?对于中心化系统来说易如反掌,可对于去中心化系统来说就难比登天了。想要改变数据库,需要系统中所有参与者达成共识或一致许可。区块链必须是一种不受单一实体控制的公共资源(去中心化,记得吗?),否则就成了一种中心化数据库,不值得付出这么高的代价。
激励机制很难设计
同样地,还需要重点考虑的是,如何添加适当的激励机制并确保系统中所有参与者无法滥用或破坏数据库。在区块链保持一致的情况下,如果因为数据上链的成本很低,区块链上添加了很多琐碎无用的数据,那这区块链也没太大用处;如果因为数据上链的成本很高,区块链上几乎没有数据,那这区块链也是没用的。
-A:"不给钱,谁创新!" B:"胡说。理由多了去了。" A:"谁收买你这么说的!"-
是什么赋予了数据最终性呢?如何确保报酬与网络目标一致呢?为什么节点会保存或更新数据呢?又是什么使节点在两组数据出现矛盾之时做出选择的呢?这些都是需要好好回答的激励机制问题。随着技术和公司的变迁,这些答案自始至终都要保持一致,否则区块链毫无用处。
此外,你可能想知道为什么受损的激励机制无法"修复"。再强调一遍,这在中心化系统中易如反掌,但在去中心化系统中,任何人都无法在未达成共识的情况下改变任何东西。除非所有人达成一致,否则不能"修复"任何东西。
维护费用高昂
传统的中心化数据库只需写入一次,区块链则需写入成千上万次。传统的中心化数据库只需检查一次数据,区块链则需检查成千上万次。传统的中心化数据库只需传输一次数据用于储存,区块链则需传输成千上万次。
维护区块链的费用要高好几倍,而且会根据功用进行调整。大多数应用都在寻求上文提到的一些属性,如一致性和可靠性,从而大幅降低完整性检查、验收和备份的成本。
用户至高无上
这一点确实会带来裨益,因为公司不喜欢承担将用户数据放在第一位的责任。但是,如果用户"行为不当",它也可能带来危害。如果有用户在区块链上添加无用数据或是找到了损人利己之法,我们没有办法将他们逐出。正如上文所言,激励机制必须设计得非常完善,因为用户是不可能放过漏洞的,尤其是在有利可图的情况下。
你或许想到可以拒绝为不怀好意的用户提供服务,这点在中心化服务中很容易做到。然而,对于去中心化服务来说很难实现,因为没有哪个实体有权逐出任何人。区块链必须不偏不倚地执行软件定下的规则。如果这些规则不足以阻止不良行为,那就算你运气不好。这里没有法律"精神"。你只能与不怀好意或行为不当的参与者进行抗争,这种情形可能会持续很长一段时间。
所有升级均为自愿
强制升级侵犯了用户的选择权。网络中的其它参与者没有义务切换到你的软件上来。如果强制要求升级,那还不如创建一个中心化系统,更容易、更快速,也更便宜。区块链的意义在于不受单一实体控制,而强制升级违背了这一点。
相反,所有升级必须是向后兼容的。这一点显然很难,尤其当你想要添加新功能或是进行测试的情况下。每版软件都在测试矩阵中添加了很多东西,并延长了软件的发布时间。
同样地,如果这是一个中心化系统,纠正起来就非常容易了,只需不再服务于老版系统即可。但是在去中心化系统中你无法这样做,因为你不能强迫任何人去做任何事。
扩容着实很难
最后,去中心化系统的扩容要比传统的中心化系统困难好几倍。原因显而易见。在去中心化系统中,同样的数据得存放在成百上千个地方而非一个地方。发送、核验和储存数据的开销很大,因为数据库的每一个副本都要付费,不像传统的中心化数据库那样只需付费一次即可。
当然,你可以通过减少节点数量来减轻负担。可是这样的话,还需要搞什么去中心化系统呢?如果主要担心的是扩容成本,那为什么不干脆创建一个中心化数据库呢?
中心化容易得多
你是否注意到了,去中心化系统不仅在运行、升级和扩容上难度较大,而且维护费用很高。与区块链相比,中心化数据库速度更快、成本更低,而且更容易维护和升级。为什么人们还将区块链当作解决所有问题的灵丹妙药呢?
第一,很多以区块链为卖点的行业实际上早就应该升级信息技术基础设施了。医疗保健行业的软件是出了名的差劲。财务结算仍在使用开发于 70 年代的软件。供应链管理软件既不好用,安装起来又难。由于有一定风险性,这些行业中的公司大多数都抵制升级。很多基础设施的升级虽然耗费了上亿的资金,却还是以回归原样告终。区块链可以增加这些信息技术基础设施升级的卖点,使它们更具吸引力。
第二,区块链可以给你带来处于技术尖端之感。不管你喜欢不喜欢,"区块链"这个词已经开始了它自己的生命周期。很少有人真正明白它是什么,但为了追赶潮流,人们会用这些词来彰显自己的智慧。就像用"云(Cloud)"指代别人的电脑,用"人工智能(AI)"指代改进后的算法,在这个背景下用"区块链"指代缓慢而昂贵的数据库。
第三,人们真的不喜欢 zf 对某些行业的管控,想要一个不同于缓慢又昂贵的法律体制的裁决机制。对于他们而言,"区块链"真的只是一种摆脱 zf 重要监管机构的方式。这过分吹嘘区块链的作用了。区块链并不能奇迹般地消除人类纷争。
结果,很多人被区块链的炒作蛊惑了,他们实际上并不了解区块链的作用或成本。更糟糕的是,区块链的实际技术细节和成本被很多风险投资者(VC)和高管抽象化了,以至于掩盖了区块链的作用和局限性。这些人好比穿着新装的皇帝,而他们的手下都不敢戳破谎言,这就是我们如今面临的窘境。
区块链有什么优点?
我们已经证实了区块链的成本比中心化数据库更高。因此,你应该使用区块链的理由只有一个,就是为了去中心化,即消除单点故障或控制。
这自然意味着软件或数据库就算无法维持不变,也要避免过于频繁的改变。升级带来的积极效应不大,而破坏或改变规则会带来很多负面影响。
大多数行业并非如此。它们都需要更新功能或升级以及在必要时进行改变和扩展的自由。鉴于区块链很难升级、改变以及扩容,对大多数行业的用处都不大。
我们发现货币是一个例外。不同于大多数行业用例,货币最好保持稳定。不可更改性和难以改变规则是对货币有利而无害。这也是为什么区块链对于比特币而言是合适的工具。
显然,很多想运用区块链的公司并非真的有这个需要,而是它们那个行业的信息技术需要升级了。虽然这样没什么不好的,但是想靠"区块链"来达到升级目的并不诚实,而且有过分吹嘘之嫌。
结论
区块链这个词现在很流行,但不幸的是"爱区块链不爱比特币"这个梗并不会消亡。如果你在运行中心化服务,区块链能给你带来的不会比你用中心实体节省一千倍成本能做的要多。如果你在做去中心化服务,那你很有可能是在自欺欺人,而且没有好好考虑系统中的单点故障问题。毕竟,对于完全去中心化服务来说,根本不会有"你"的存在。
-全文最大的笑点-
早在 2000 年初,科技行业的很多高管都在鼓励使用 Java 和 XML 。虽然这两者只是工具而非实际产品,但很多高管都坚持使用它们,即使它们的效果与工程师所期望的相差甚远。区块链与之非常相像。把注意力集中在你正在解决的问题上,你就会很容易注意到所用的工具。把注意力集中在你想要使用的工具上,你最后只会造出如鸡肋一般的鲁布·戈德堡机械 (Rube Goldberg machines)。(校注:鲁布·戈德堡机械是一种被设计得过度复杂的机械组合,以迂回曲折的方法去完成一些其实是非常简单的工作,例如倒一杯茶,或打一颗蛋等等。设计者必须计算精确,令机械的每个部件都能够准确发挥功用,因为任何一个环节出错,都极有可能令原定的任务不能达成。由于鲁布·戈德堡机械运作繁复而费时,而且以简陋的零件组合而成,所以整个过程往往会给人荒谬、滑稽的感觉。——维基百科)
从某种意义上来说,现有区块链的概念妄图做到不可能之事,既想要去中心化系统的安全性,又想要中心化系统的控制力。它们想要集二者之大成,最终却是集二者之弊病。以去中心化系统的成本和难度得到了失败的中心化系统模式。
在大肆鼓吹之下,区块链的葫芦里卖的却是狗皮膏药。越快摆脱这些炒作,就能越早收获更好的长期效益。
Elisa 按:自从三年前以太坊上线以来,各种区块链项目竞相上线。然而,这些项目的创始人们是否真的考虑清楚了,引入区块链要解决的是项目中的什么问题?是否值得用公链这种成本高昂的解决方案?最重要的是,那些口口声声喊着"去中心化"口号的创始人们,真的舍得让自己的项目"去中心化"吗?正如文中写道:"毕竟,对于完全去中心化服务来说,根本不会有'你'的存在。"
阿剑按:从专业角度来看,文中对区块链的定义和对区块链成本的叙述都是非常有价值的。另外,文中第三幅图("谁收买你这么说的"那一幅)在我看来是最有意思的。因为它很生动地指出了一种情况:有些人因为手上只有锤子,所以看什么都是钉子。
领取专属 10元无门槛券
私享最新 技术干货