年轻人为什么不要轻易进入区块链开发行业

比特币的诞生开启了以区块链开發技术为核心的行业生态短短十几年,区块链开发行业如小宇宙般快速膨胀从另类的小圈子,到如今被社会广泛参与与讨论从单一嘚加密资产到金融、供应链和物流、公共服务、数字版权等应用的探索。“区块链开发宇宙”大爆炸进行中......

1?简单粗暴型:炒币;

2?简单参與型:为这个产业提供服务比如提供营销服务、运营服务、公司注册服务、招聘服务、培训服务等等;

3?深度参与型:研究自己的行业,了解自己所在行业业务流程然后和区块链开发技术人员合作,在自己的行业接入区块链开发服务

4?引导型:设计基于区块链开发技術的顶层模式。

本文已得到原作者授权翻译

围繞着区块链开发的宣传是铺天盖地的。从这些炒作中我们得知现在的区块链开发可以做到:

1.解决收入不公平的问题

2.使得所有数据永远安铨

3.使得所有事情更加高效且无需信任

可是到底什么是区块链开发啊?它真的能做到上面所有的事情吗区块链开发能给工业界带来有趣的妀变吗,比如医疗服务金融,供应链管理以及音乐版权等等

不拥护比特币就意味着你不是区块链开发专家了?但是你怎能拥护比特币卻对背后的技术说三道四呢

在这篇文章里,我将通过研究到底区块链开发是什么来回答大量的这类问题而更重要的是,区块链开发不昰什么

为了验证这些声明呢,我们需要定义什么是区块链开发在这个范畴里有很多让人困惑的点。很多公司使用区块链开发这个词来表示某种神奇的设备这些设备里数据永远不会出错。这样的设备当然是不存在的,至少现实世界是没有的

那么啥是区块链开发啊?從技术角度来说区块链开发就是连在一起的区块列表,并且区块是一组有序的交易事务如果你不理解最后这一句,你可以把区块链开發认为是数据库的子集且有一些额外的属性。

能把区块链开发和普通的数据库区分开来的主要在于:将数据添加到数据库的规则是特殊嘚也就是说,它不能与其他已存在数据库的数据冲突(一致性);数据是只可增加的(不可篡改性)并且数据本身是锁定到拥有者的(归属性),同时数据也是可复现并可使用的最后,所有人共同对存在数据库中的事物状态达成一致(权威性)而不需要一个中间机构(去中心化的

最后一点(去中心化)才是区块链开发的圣杯。去中心化非常吸引人因为它意味着没有单点故障。换句话说没有哪個权威能够拿走你的资产并且篡改“历史”来达到自己的目的。在这种不可更改的审计追踪之下你无需信任任何人,这是每个摆弄这种技术的人寻找的益处所在可是这种好处呢,有很大的代价

这种不可更改的审计追踪不受任何单个权威控制,当然是很有用的但是创建这样的系统有很多代价。我们来逐个看一看

创建一个可证明为一致性的系统不是简单的任务。一个小小的bug都将污染整个数据库或者导致某些数据库不同于其他数据库当然,受到污染或者分裂的数据库就没有一致保障了而且呢 ,所有这些系统从一开始就要设计成一致嘚在区块链开发世界里面也没有所谓”快速前进,打破陈规“的说辞如果你打破规则,你就失去了一致性那么区块链开发就将受到破坏而毫无价值了。

你可能会想你为啥不能修复这个数据库从头再来呢?这在中心化的系统中是容易的但是在去中心化的系统里就是佷难的。你需要共识或者系统的所有参与者达成共识才能来修改这个数据库。区块链开发必须是公开的资源不在任何单个实体的掌控の下(去中心化,还记得吗),不然所有的努力都变成以非常昂贵的方式创建了一个又慢又中心化的数据库

添加激励机制来保证所有嘚系统参与者不会破坏数据库是一个很大的考量。区块链开发可能是一致的但是如果存一堆毫无价值,无意义的数据所需要的成本是很低的则区块链开发就没什么用了。反之如果存数据很贵导致没有数据了那这个一致性的区块链开发也没有什么用处

什么是数据的最终確定性?你怎么确保奖励与网络的目标一致呢为什么节点保持数据并更新数据呢?当数据有冲突的时候是什么促使他们选择某一些数據而不是其他的呢?这些都是关于激励的问题是需要给出好的答案的。这些大难不仅需要从一开始甚至是将来所有时间点不管技术如哬演进,公司如何变迁都要能够保持一致,否则区块链开发就是无用的了

你可能会想问你为什么不能修复某些失败的激励呢?再次强調这在中心化的系统里是很简单的,但是在去中心化的系统里你不能简单地在没有共识的情况下修改任何东西。除非有来自所有人的囲识否则没有所谓修复的说法

传统的中心化的数据库只需要写一次,区块链开发则需要写数千次传统的中心化的数据库只需要检查数據一次,但区块链开发需要检查数据数千次传统的数据库只需要传输数据一次,而区块链开发则需要传输数千次

维护区块链开发的成夲要高出几个数量级那么这个成本必须证明其有用性。很多应用程序在寻求实现前面提到的几个属性比如说一致性和可靠性,可以用完整性检查收据,备份等实现

这可能真是好的,因为公司不愿意对用户数据负主要责任然而,如果用户“行为不端”这可能就是不恏的。没有办法把那些用无价值的数据填满你的区块链开发的用户踢出去或者把这种通过给其他用户带来很多不便来赢利的人踢出去。這与上面的观察有关:激励机制必须设计得非常好因为如果一个用户发现一个漏洞那他是不太可能放弃的,尤其是有利润的话

你可能會想,你只需要简单的对这些恶意用户拒绝服务即可这在中心化的服务中可能很容易做到。然而不像中心化的服务,在没有单个实体掌握权威可以剔出任何人的系统里拒绝服务很难。区块链开发必须是不偏不倚的并且坚决执行由软件定义的规则。如果规则不足以阻圵恶意行为那就很不幸运了。这里可没有法律精神你只能选择处理这些恶意行为或者面对恶意的人,这可能要很长时间

强制更新不昰一种选择。网络中的其他参与者没有义务更改你的软件如果他们这样做了,那么这样的系统就变得更简单、更快速并且更便宜就像┅个中心化的系统一样。而区块链开发的重点在于它不受单个实体的控制而这与强制更新是相违背的。

相反呢所有的升级必须是向后兼容的。这显然很难尤其是你想添加新特性时,这从测试的视角来看就更难了软件的每个版本添加了大量的测试矩阵内容并且延长了發布时间。

再啰嗦一次如果是中心化的系统,这就很容易来纠正:不再为旧版本的服务器提供服务即可但是在去中心化的区块链开发裏不能这么干,因为你不能强迫任何人做任何事情

最后,扩展性至少要比传统的中心化系统难好几个数量级同样的数据必须冗余存储茬数千个地方,而不是只存在一个地方传输、验证和存储的开销是巨大的,因为数据库的每个副本都必须要付费而不是像在传统的中心囮数据库一样只付费一次即可

当然你可通过减少节点数来减少负载。可以在这一点上你为什么需要一个去中心化的系统呢?为什么不矗接弄个中心化的数据库呢如果扩展性是主要考量的话?

如果你注意到这点你会发现,去中心化的系统很难用维护成本还高,难以升级难以扩展。对比区块链开发中心化的系统就快得多,且便宜得多更容易使用得多,更容易升级得多所以为什么人们还是不停圵使用区块链开发这个词呢,好像这个是解决所有问题的灵丹妙药一样

首先,这些借助区块链开发在推销的行业的IT基础设施是真的老旧医疗服务的软件是真的糟糕。金融结算仍然运行着70年代的软件供应链管理系统不仅难用还难安装。这些行业里大部分的公司拒绝升级系统因为有风险比如有大量的基础设施升级花费了几百亿美元,但是最终还是要回滚到原来的样子区块链开发是一种能够给这些基础設施带来升级并使得它们更加有趣的方式。

第二区块链开发是一种可以使得你看起来像是处在技术前沿的人。不管你喜不喜欢区块链開发这个词都有了自己的生命。很少有人理解它是什么但是乐意使用这些词汇来显得自己很聪明。就像”云“意味着其他人的电脑”AI“意味着训练过的算法,区块链开发在这种上下文下意味着缓慢昂贵的数据库

第三,人们不喜欢某些行业的政府控制并且希望采用与法律框架不同的分配机制,而法律框架通常既缓慢又昂贵对于他们来说,“区块链开发”实际上是一种放弃繁重的国家监管机构的方法这夸大了区块链开发的作用。区块链开发并不能神奇地消除人类冲突

结果是就是许多人在没有真正理解区块链开发的能力或者成本的凊况下,就跟风购买投机更糟糕的是,真正的技术细节和成本被许多风险资本家和高管们故意拿掉了目的就是试图掩盖区块链开发能莋什么和不能做什么。他们的下属害怕说出皇帝是赤身裸体的而这就是我们现在所处的状况。

区块链开发到底有什么好的啊

我们已经說过,相对中心化数据库而言区块链开发非常昂贵。因此你应该使用区块链开发的唯一原因是它的去中心化。也就是说消除单点故障或中心控制。

这自然意味着软件或数据库不应经常更改如果可能的话。因为升级只有一点提升而破坏规则或者改变规则就会有大量嘚负面影响。

大多数的行业并不像这样而是需要新的特征或升级,并且在有必要的情况下有足够的自由度来更改和扩展。考虑到区块鏈开发的难以升级难以改变和难以扩展,大多数行业用不到区块链开发

我们发现有一个例外是钱。和行业中的大多数案例不同钱不變才更好。不变性和规则的难以变动对于钱来说是积极的一面而不是相反的作用。这也是为什么谈到比特币时区块链开发是能做好工莋的正确的工具的原因所在。

很明显许多尝试使用区块链开发的公司并不真的需要区块链开发,而只是想针对特定行业的进行IT基础设施嘚升级这很好,但使用“区块链开发”这个词来实现它是不诚实的也是在夸大它的能力。

区块链开发是这些天来非常流行的一个术语但不幸的是,这种”区块链开发不是比特币“的说法是不会消失的如果你是一个中心化的服务商,区块链开发可能不能给你带来什么中心化数据库的实现要便宜几千倍。而如果你是去中心化的服务你或许可以愚弄你自己,而不用去考虑系统中的单点故障问题但是茬真正去中心化的服务里,并没有这个“你”来提供去中心化的服务

回到2000年早期,很多技术企业的高管推动大家使用Java和XML尽管这两个事粅都是工具,而不是实际的产品很多高管仍然坚持使用,而无论他们的工程师想要实现的东西与它们有多么不搭区块链开发就很像这個。关注这些你要解决的问题要用什么工具自然就是很清楚的。而关注你想用什么工具最终你可能做出一个鲁比高堡机器(用最多步驟完成最简单的动作的机器),这根本不会解决问题

从某种意义上说,当前区块链开发的概念是在尝试去做不可能的事情它们想要去Φ心化系统的安全,以及拥有对中心化的系统一般的控制这种诉求对于两个世界(去中心化 vs. 中心化)都是好的,但是最终结果是对两个卋界都是最差的你可能得到的是使用去中心化系统的成本高昂以及难以使用,却要面临中心化系统的失效模式

区块链开发这个流行词彙被过度使用来贩卖很多无用的东西。我们越快摆脱这种炒作长远看来我们受益越大。

我要回帖

更多关于 区块链开发 的文章

 

随机推荐