围绕区块链的炒作是巨大的。为了让大家听到区块链这辆火车,告诉大家区块链现在将要做什么?
1、解决收入不平等问题;
2、永远保证所有数据的安全;
3、让一切更有效率和信任;
4、拯救垂死的婴儿;
无论如何,区块链到底是什么?
它真的可以做所有这些事情吗?
区块链能为医疗,金融,供应链管理和音乐权利行业带来惊人的东西吗?
并不是比特币意味着你是认可区块链?除了在它背后的技术说什么之外,你如何才能获得比特币?
在本文中,我试图通过分享区块链是什么?它不是什么?来回答这些问题。
什么是区块链?
为了了解其中的一些概念,我们必须定义区块链是什么?列举这里存在很多混乱的概念。
许多公司使用“区块链”这个词是为了展示某种神奇的设备,进而表明他们的所有数据都不会出错。当然,至少在涉及现实世界时,这样的设备不存在。
什么是区块链?从技术上讲,区块链是块的链接列表,块是一组有序的交易。
如果您不理解最后一句话,您可以将区块链视为数据库的子集,并具有一些其他属性的子集。
区分区块链与普通数据库的主要区别在于:有特定的规则关于如何将数据放入数据库。也就是说,它不能与已经存在于数据库中的其他数据(一致)冲突,它只是附加(不可变),数据本身被锁定到所有者(拥有),它是可复制的和可用的。
最后,每个人都同意数据库中的事物的状态(规范)没有中央方(分散)。
这最后一点确实是区块链的“圣杯”。权力下放非常有吸引力,因为它意味着没有单一的失败点。
也就是说,没有任何一个机构能够剥夺您的资产或改变“历史”以满足他们的需求。
这种不可改变的审计方法(您不必信任任何人),这是使用此技术的每个人都在寻找的好处。然而,这种好处需要很高的成本。
区块链的成本
任何一方不受控制的不可变审计跟踪肯定是有用的,但创建这样一个系统需要很多成本。我们来看看一些问题呢?
1、发展更加严格和缓慢;
创建一个可证明的一致系统并不是一个容易的事。
一个小错误可能会破坏整个数据库或导致某些数据库与其他数据库不同。
当然,破坏或分裂的数据库不再具有任何一致性保证。此外,所有这些系统必须从一开始就设计成一致的。
区块链中没有“快速移动并破坏事物”。如果你破坏了东西,就会失去一致性,区块链就会变得破坏且是无价值的。
您可能在想,为什么不能只修复数据库或重新开始并继续前进?
在集中式系统中这很容易做到,但在分散式系统中这非常困难。您需要达成共识,或者系统中所有参与者的同意才能更改数据库。
区块链必须是不受单个实体控制的公共资源(分散,记住吗?),或者整个工作是创建缓慢的集中式数据库的一种非常昂贵的方式。
2、激励结构很难设计;
添加正确的激励结构并确保系统中的所有参与者不会滥用或破坏数据库同时是一个重要的考虑因素。
区块链可能是一致的,但如果它中包含大量无聊,无用的数据,那么它就不是很有用,因为将数据放入其中的成本非常低。
如果几乎没有数据,那么一致的区块链也不会有用,因为将数据放入其中的成本非常高。
什么赋予数据最终性?
您如何确保奖励与网络目标保持一致?
为什么节点会保留或更新数据?
是什么让他们在冲突时选择一个数据而不是另一个?
这些都是需要良好答案的激励性问题,它们不仅需要在开始时保持一致,而且需要在未来随着技术和公司的变化而保持一致,否则区块链就无用了。
同样,你可能想知道为什么你不能“修复”一些破碎的激励。再一次,这在集中式系统中很容易,但在分散的系统中,如果没有达成共识,你就无法改变任何事情。
除非得到所有人的同意,否则没有“修复”任何东西。
3、维护成本很高;
传统的集中式数据库只需要写入一次。区块链需要写入数千次。传统的集中式数据库只需要检查一次数据。
区块链需要数千次检查数据。传统的集中式数据库只需传输一次数据即可存储。区块链需要传输数千次。维护区块链的成本要高出几个数量级,并且成本需要通过效用来证明。
大多数应用程序在寻找早期声明的一些属性(如一致性和可靠性)时,可以使用完整性检查,收据和备份来降低这些成本。
4、用户是主权;
这可能非常好,因为公司不喜欢首先拥有用户数据的责任。但是,如果用户“行为不端”,这可能会很糟糕。
没有办法摒弃那些用无聊的数据向你的区块链发送垃圾邮件的用户,或者找到了一种以某种方式获利的方式,这会给其他用户带来很多不便。
这与上述观点有关,即激励结构必须真正地设计,非常好,因为找出漏洞利用的用户不太可能放弃,特别是如果用户有利润的话。
您可能认为您可以简单地拒绝向恶意用户提供服务,这在集中服务中非常容易。但是,与集中式服务不同,拒绝服务很困难,因为没有任何一个实体有权将任何人踢出去。
区块链必须是公正的,并执行软件定义的规则。如果规则不足以阻止不良行为,那你就不走运了。这里没有法律的“精神”。你只需要处理恶意或行为不端的节点,可能需要很长时间。
5、所有升级都是自愿的;
强制升级不是一种选择。网络上的其他玩家没有义务更改您的软件。
如果他们这样做,这样的系统将更容易,更快,更便宜地构建为集中式系统。区块链的重点在于它不受单个实体的控制,并且强制升级会违反。
相反,所有升级都必须向后兼容。这显然非常困难,特别是如果您想要从测试角度思考时添加新功能甚至更难。每个版本的软件都会为测试矩阵增加很多,并延长发布时间。
同样,如果这是一个集中式系统,那么通过不再为旧系统提供服务,这将非常容易纠正。你不能这样做,但是在分散的系统中你不能强迫任何人做任何事情。
6、缩放真的很难;
最后,比传统的集中式系统更难缩放几个数量级。原因很明显。相同的数据必须存在于数百或数千个地方而不是单个地方。
传输,验证和存储的开销非常大,因为数据库的每个副本都必须支付它们,而不是在传统的集中式数据库中只支付一次这些费用。
当然,您可以通过减少节点数来减轻负担。但那时,为什么你需要一个分散的系统呢?如果主要关注扩展成本,为什么不建立一个集中式数据库呢?
集中化要容易得多的呢?
如果您注意到一个主题,那就是分散的系统很难处理,维护成本高,难以升级并且难以扩展。与区块链相比,集中式数据库更快,更便宜,更易于维护且更易于升级。
那么为什么人们继续使用区块链这个词就好像它是解决所有问题的灵丹妙药呢?
首先,许多通过区块链销售的行业实际上已经过期IT基础设施升级。
其次,区块链是一种看起来像是处于技术前沿的方式。
无论喜欢与否,“区块链”这个词已经具有了自己的生命。很少有人真正理解它是什么,但想要显得时髦,所以使用这些词作为一种听起来更聪明的方式。
就像“云”意味着别人的计算机和“AI”意味着一个经过调整的算法,在这种情况下,“区块链”意味着一个缓慢,昂贵的数据库。
第三,人们真的不喜欢政府对某些行业的控制,并且希望采用与法律框架不同的裁决机制,而法律框架通常既缓慢又昂贵。
对他们而言,“区块链”实际上只是摆脱政府监管的重要手段的一种方式。这超出了区块链的作用。区块链并没有神奇地消除人类冲突。
结果是很多人在没有真正理解能力或成本的情况下大肆宣传承诺。更糟糕的是,实际的技术细节和成本从很多风险投资公司和高管中抽象出来,以掩盖区块链能做什么和不做什么?
那么什么是区块链有益呢?
我们已经确定区块链相对于集中式数据库非常昂贵。所以你应该使用区块链的唯一原因是分散。也就是说,消除单点故障或控制。
这自然意味着软件或数据库不得经常改变,如果有的话。升级或改变规则的升级应该没什么好处,也有很多不足之处。
大多数行业都不是这样的。大多数行业都需要新功能或升级,并可根据需要自由更改和扩展。鉴于区块链难以升级,难以改变且难以扩展,大多数行业对区块链没有多大用处。
我们发现的一个例外是金钱。与大多数工业用例不同,如果不改变,金钱会更好。改变规则的不可变性和困难对金钱是积极的,而不是有害的。这就是为什么在比特币方面,区块链是适合这项工作的工具。
很明显,很多想要使用区块链的公司根本不想要区块链,而是需要对其特定行业进行IT升级。这一切都很好,但使用“区块链”这个词来达到目的是不诚实和超越它的能力。
结论
如今,区块链是一个受欢迎的术语,不幸的是,这种“区块链不是比特币”模式不会死。
如果您是一个*集中式服务 *,区块链不能为您提供任何使用集中式数据库便宜一千倍的便宜。
如果你是一个分散的服务,那么你可能会愚弄自己,而不是考虑系统中存在的单点故障。
我也自己开了一个微信公众号(丁昆朋YKPD),喜欢写作、英语、编程、区块链的朋友可以关注一下,共同成长。这是一篇翻译的文章,原来地址如下:https://medium.com/@jimmysong/why-blockchain-is-hard-60416ea4c5c