社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  区块链

这篇在medium上获得5万点赞的文章,值得区块链小白耐心读一读

区块链大本营 • 8 年前 • 414 次点击  

译者 | 么广忠


不知道你有没有感觉到,如今的区块链,已经在大妈大爷这股强大催化剂的作用下,被出神入化地抬上了绝对的高度:


  1. 收入不平等问题将得到解决

  2. 数据将永久安全

  3. 所有的事情都将变得高效且可信

  4. 甚至可以拯救濒死的婴儿…


What?!


区块链到底是什么鬼?它就这么无所不能?医疗、金融、供应链、音乐版权等等这些领域,都会因为区块链而焕然一新?


现在,就让我们坐下来,好好唠唠,到底区块链能带来啥?

 

一、什么是区块链


为了解释这些令人混淆的问题,我们必须定义什么是区块链。现在有很多公司使用“区块链”来代指某种神奇的设备,这种设备可以保证内部存储的数据永远不出错。当然,这样的设备是不存在的,至少在现实世界中还没被解决。


左上:我们应该关注什么呢?区块链!

右上:区块链将改变所有的一起,每个人都在认真思考这个技术。

左下:可以将区块链技术应用到任何领域。我们不想落后于他人。

右下:那到底什么是区块链呢?也许就是“人工智能”吧~


那么什么是区块链呢?从技术上讲,区块链是一个区块的链表,每个区块存储了一系列的有序的事务。如果你无法理解这句话,那你可以认为区块链其实就是一个拥有一些额外特性的特殊的数据库。


区块链和一个普通数据库的最主要的区别是数据加入数据库的方式。你可以这样理解区块链:


  1. 一致性:区块链这个特殊的数据库保证了数据间的一致性,即没有冲突的数据。

  2. 不变性:数据只可以被加入到数据库中而不能更改。

  3. 私有性:数据本身被锁定到其所有者,其他人无权获知。

  4. 典型性:每个人都认可当前数据库存储的信息。

  5. 去中心化:没有一个中央所有者控制数据库。


其中,去中心化这个特性尤为关键,它意味着,整个系统中没有单一故障点。也就是说,没有任何个人可以拿走你的资产,或者为了一己私欲篡改“历史”。区块链系统中的数据审核过程对用户是完全透明的,用户不需要了解系统是如何审查数据的,用户也不需要确定应该新人系统中的哪一个用户,用户只需要享受区块链为他带来的所有便捷,这种优势正是每个人所需求的。但是这个优势却会带来大量的成本和开销。

 

二、区块链的开销


这种不需要依赖于每个单独节点的无法追踪的数据审核过程是非常有效的,但是却对系统带来了巨大的开销。让我们来进一步了解这些开销具体是什么。


开发过程严格且缓慢


构建一个可满足一致性的系统并不是一件易事。细小的错误可能会导致整个系统的崩溃或者导致一些数据产生不一致。当然,一个崩溃的数据库将不再保证其数据一致性。这样,我们所构建的系统必须在一开始就必须满足数据一致性。在区块链中,你不应该打破一开始涉及的一些“规矩”。如果你破坏了一些规矩,你可能就损失了一致性,这会导致整个区块链崩溃且丧失一切价值。




左:我们需要额外三个程序员。请使用敏捷编程方法。

中:敏捷编程方法的意思可不是用更少的人员做更多的工作啊!

右:请明确的告诉我你要做什么然后再来问我!


你可能会想,为什么你不能通过修复程序中的漏洞或者重启整个数据库来保证数据库可以继续使用呢?这在一个中心化的系统中可能很容易实现,但是在去中心化系统中是非常困难的。你需要系统中每个节点达成共识才能对数据库进行改变。但是你要知道,区块链可是一个不受任何单一实体控制的公共资源(去中心化是圣杯)。


激励结构难以设计


加入正确的激励结构并且保证系统中的每个用户不能滥用和破坏数据库,这是一件值得深思的事情。一个区块链应该保证数据一致性的,但是如果这个区块链中有大量的无用数据,那么这种一致性就没有任何意义了,因为这样谁都可以向区块链中加入数据。同样,如果这个区块链中存储的数据太少了,那么这种一致性同样是没有意义的,因为如此少的数据却用一个庞大的系统来维护显得有些大材小用了。




左:如果没有资金激励,人们将失去创造力!

中:不对!人们会因为很多理由来创造新事物

右:是谁给你钱让你这么说的?!


谁最终生产数据呢?如何使这些激励方式与区块链的目标契合上?为什么节点要保存并更新数据?当我们在面临数据冲突的时候我们应该选择哪一份数据作为真实的呢?这些都是和激励体系有关的问题。这些激励结构应该被设计的非常良好,不仅仅是在区块链开始工作的时候让激励体系发挥作用,还应使得区块链系统在未来科技和公司发展的时候仍然能够适用,否则区块链将变得毫无意义。


维护代价非常高


传统的中心化数据库,保存一个事务的时候,只需要向数据库中写一次数据即可;而在区块链中,保存一个事务的时候,需要向数据库写成千上万次。传统的中心化数据库,检查一个事务的时候,只需要向数据库中核对一次数据即可;而在区块链中,检查一个事务的时候,需要向数据库的数据核对成千上万次。传统的中心化数据库,为了保存事务而传输数据的时候,只需要传输一份作为存储;而在区块链中,为了保存事务而传输数据的时候,需要传输成千上万份数据并存储。


维护区块链的开销是指数级增加的,并且这些开销应该要产生足够大的效用。大多数应用都是通过一致性检查、收据和备份来满足系统所需要的一致性和可靠性,这样可以有效地降低成本。


用户必须拥有主权


公司并不喜欢将维护用户数据的责任揽在自己身上。如果某个用户做了一些“行为不端”的事情,例如他们将区块链中充斥着“垃圾数据”或者通过损失其他用户的利益来是自己获利。如果没办法将这些用户“踢出”区块链,那就会破坏整个社区的环境。因此,激励结构应该要被设计的非常好,因为一个用户如果发现某种“不端行为”是有利可图的,那么他就会继续这种不端行为,从而破坏其他用户权益。


你可能认为在中心化的服务中,拒绝给恶意用户提供服务是非常简单的事情。然而,不像中心化的服务中,区块链系统中拒绝给某个用户提供服务是非常困难的,因为没有任何线索可以指示某个用户是恶意用户并且将他踢出系统。区块链应该是公平公正的并且遵循软件制定的规则提供服务。如果这个规则无法充分地识别这些不端行为,那这个区块链设计的将会非常失败。你不能寄希望于用户不会进行不端行为。你必须努力找出并处理恶意和不端的用户们,尽管需要花费很多时间和精力。


所有更新都是自愿的


系统强制用户更新并不是一个好的选择。区块链中的其他用户没有任何责任需要改变软件提供的服务。如果他们这么做了,那么系统就变成了一个能够很容易、高效、低成本地建立起来的一个中心化系统。但是,区块链的一个关键点是,系统不受任何一个单独实体地控制,这使得区块链很难满足“强制用户更新”的需求,也就是说,区块链不需要用户不停地更新软件,皆大欢喜!




兄弟,扫我这的二维码来更新系统(二维码相对条形码是更高版本)


取而代之,就需要所有的更新是“向下兼容的”,即更低版本的用户仍然能够正常使用系统。如果从测试的角度来看,如果想增加新的特性但是仍然对旧版本兼容是非常困难的事情。软件的每一个版本都增加了许多测试环节并且延长了释放时间。


再次说明,如果这是一个中心化的系统,因为不用服务旧的系统,这将变得十分容易。但是在去中心化的系统中却不能这样,因为你无法强制每个人做系统安排的每一件事情。


复制整个系统非常困难


最终,和传统的中心化系统相比,缩放的难度要很多个数量级。理由很明显,同样的数据在区块链中被存放在成千上万个地方,而中心化系统中只需要存在一个地方。这些数据的传输、验证和存储的过程对于每一份被拷贝的数据都要完成一次,这些时间开销是无法避免的,不像传统的分布式数据库中只需进行一次。

 

三、中心化更加简单


综上所述,你应该能发现,去中心化系统是难以开发、维护起来很昂贵并且很难升级的。相对于区块链,一个中心化数据库则是更加高效、成本低、容易维护和升级的。所以问题来了,为什么大多数人仍然将区块链视为解决这些问题的灵丹妙药呢?这完全是大众的误解。




左:在ICO之后,我们的革命性平台将为区块链带来一个......

中:我听到有人说“区块链”?

右:这是一个很慢的数据库!


首先,许多被区块链宣传而洗脑的企业大多在IT基础设施升级上非常落后。医疗企业提供的软件都被认为是糟糕的。甚至财务清算仍然使用的是70年代的软件。供应链控制软件既难以使用也难以安装。处于风险考虑,这些企业都拒绝更新最新的科技技术。有很多基础设施更新需要花费数亿美元最终还是被放弃。区块链是让这些IT基础设备更新的一种宣传并且吸引他们更多的注意力。


首先,使用区块链技术可以让你看起来走在科技的前沿。无论你喜欢或者不喜欢,区块链都在或多或少地改变世界。很多人可能不是真正地理解区块链是什么,但是他们希望使用区块链来“迎合时尚”使自己变得看起来更充满智慧。就像“云”意味着他们的计算机,“AI”意味着一种更先进地算法,“区块链”意味着更慢且更昂贵地数据库。


再次,人们不希望政府控制企业并且希望有一个新型的公平机制,这种机制与法律框架不同并且比法律更加公众,尽管这种机制是低效且成本昂贵的。对于他们而言,“区块链”是摆脱政府沉重管制地一种手段。


结果就是,很多人在没有完全理解区块链的情况下却将区块链夸大宣传了。更糟糕的是,实际的技术细节和成本被许多风险投资公司和管理人员中抽象出来,从而误导了公众区块链所能做的和不能做的事情。于是这种局面下,每个人都很害怕说“皇帝其实就没有穿衣服”。

 

四、区块链的好处


我们现在已经知道,对于中心化数据库来说,区块链建立起来的成本更加高。所以驱使你使用区块链的唯一的理由应该就是去中心化。也就是说,免除单个实体控制整个系统,也免除了因此而导致的系统崩溃。这自然也意味着,区块链软件和数据库不应该过快的升级或者改变。应该少做更新但是多做对“向下兼容”。




左:我雇佣了一名新的顾问来帮我们使用区块链技术。

中:区块链!区块链!区块链!......

右:就像是技术专家和哲学家的结合体。


大多数企业不喜欢这些。大多数企业需要新的特性和更加自由的更新,这方便于企业的扩大生产和扩张。因为区块链不利于更新和改变,所以其实区块链对大多数公司来说没有太大好处。


但是我们发现一个例外,就是“金钱驱动”。不像类似企业的发展,如果钱是不变的,那真的是太好了。稳定性和不变性对于钱来说是非常有利的特性。这就是为什么当区块链演变成比特币的时候,这是一项非常合适的改进,从而促进了一个更好的领域的发展。


更加清晰的是,大多数公司企图使用区块链技术并不是他们真正需要区块链,而是必要的技术革新对他们而言是重要的。其实用“区块链”作为噱头来过度宣传他们的能力是不诚实的行为。

 

五、总结


区块链现在是一种流行趋势,但是不幸的是,大家似乎对“区块链和比特币的区别”不hi十分明确。如果你提供的是一种中心化的服务,区块链什么也帮不了你,你倒不如去使用更高效的中心化数据库。如果你提供的是一种去中心化的服务,那么如果你不考虑系统中存在的单点错误就是在欺骗自己。区块链中就没有“中央控制者”这个概念。


回到21世纪初,大多数企业高管推动了企业使用JAVA和XML技术。尽管这些只是工具而不是真正的产品,许多管理者坚持使用这些而不管这些是否和技术开发需求匹配。区块链像极了这种情况。把注意力集中在解决的问题上会使得你寻找到更加有效的工具。但如果把注意力集中在工具上,你将陷入困难一事无成。


在某种意义上,当前区块链概念被过誉了。人们想既得到中心化系统中的控制权也去中心化系统中的安全性。这个需求当然是理想的,但是现实世界却无法完成。最终你获得的却是去中心化系统中的昂贵开销和中心化系统中的错误模式。


区块链已经被过度销售,我们只要立刻摆脱对区块链的炒作,而真正思考这一项技术,才能获得长足的发展。



最新热文:



扫码加入区块链大本营读者群,群满加微信 qk15732632926 入群





了解更多区块链技术及应用内容

敬请关注:


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/nvebQCkwkr
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/13974