首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链的“归去来”

"

区块链,似曾相似,为此请准备好邂逅下一个BAT,或因此成为BAT。

风口技术是行业发展的技术红利,时间窗口,上一次是2000年互联网风口,成就了BAT。

"

重新审视区块链

随着我们已经走入2018年,关于区块链的讨论层出不绝。甚至在主流媒体也越来越多地提及这个词汇,单在互联网金融领域就有一大票自称是服务提供商和爱好者的人,他们断言区块链将会对众多应用产生革命性影响。区块链不仅仅应该是市场的一个时髦词汇,我们必须回答一些问题。区块链是什么?它又不是什么?它可能会是什么?我们能否借助它,建立一种全新的和持久的系统?简而言之,什么是区块链的精髓呢?也许到了重新检视中本聪白皮书的时候。

由于这个名词被越来越多的人使用,我们必须明确它的定义,帮助人们更好地理解它,但是这更像一个口头禅,而不是更深层次的理解。

互联网空间内各种意见争的不可开交,但是很令人失望,我们无法找到一个统一的意见。所以让我们重新看一下中本聪的白皮书。

中本聪的白皮书

几乎所有关于区块链的讨论都缘起于中本聪的白皮书,但是正是这个基础导致了我们产生了混乱。不管应该叫“区块链”,还是“区块 链”,这本书中提到“区块”67次,“链”27次,但是“区块链”或“区块 链”的次数是零。先把这放在一边,我们看看这本书把我们引导了哪儿。

这本白皮书很短,只有9页纸。第一次提及“区块”和“链”是指第2页下方,第3章节,那里讨论了时间戳服务器的原理。在这之前,作者在书中描述了与比特币相关联的一系列设计目标,例如两方在不需要信任和第三方的条件下,实现交易。

论述设计目标非常重要。它为之后介绍实现这些目标的应用做了铺垫。这种应用的特点为一层叠加在另一处之上,我们仅仅需要了解每一个新分层的作用是什么。

在我们寻求解答区块链本质的时候,我们必须仔细查看事物的属性,而不是这些事物第一次应用的特点。

交易

白皮书的第1章节是整本书的介绍,与第2章节相同,那里没有任何有价值的东西。第2章为数字货币做了铺垫,但是作者描述到,在一个交易链中,“币”被分配给新的所有者。在这里“币”只是关联交易历史的一个比喻。

有意思的是,第2章节同样描述了一个中心化的系统并不需要完成上述操作。

区块与链

在第3章节中,我们看到了设计模式的精髓,我们可以将其视为区块链基础的最好的描述。 作者设计了一种可增编的数据块,每一块都有一个哈希加密代号,该代号与其内容相关。此外,每一块可以与其之前的数据块的加密哈希值合并,这样保证了整个链条的建设。

公布的区块哈希值,可作为区块数据和其前一块区块哈希值存在的证据,在网上为众人公开。如果改变前一区块或者整个区块内的其他数据,系统将会生成一个不同的区块签名,该签名将无法与之前公众见证的哈希值相符。

这些特点是整个设计的基础,如果没有它们,我们将不可能建造出任何有趣的东西。另外有趣的是这里没有提及的一些东西。这里没有提及“币”, 没有提及点对点网络,没有提及挖矿,等等。相反,作者认为以广泛的方式公布这些哈希值就已经足够了,他给出了两个例子,在报纸上或在用户网上公布。

但我们发现一些特点,引导我们推测隐含的意思:除非外部的观察者,获得链条中区块的数据后,独立的进行计算,得出相同的哈希值,那么这种哈希值得公布才有意义。外部的观察者不需要去信任区块链的创作者,他们仅仅需要自己对比历史哈希值即可。

重新计算哈希值要求一种特殊算法,而区块正是基于这种算法而生成的。如果没有这种算法,外部观察者是不可能重新计算哈希值的。

使点对点成为可能

在下一章节,第4章节,白皮书论述了工作证明。第一行字非常有趣:“想要在点对点(P2P)基础上布置一个分布式的时间戳服务器,我们必须使用一种与Adam Back Hashcash相似的工作证明系统。建立区块链不需要工作证明,工作证明只是为了确保时间戳服务器的布置。

随后的加密货币设计证明还有其他的方法可以使用(例如:权益证明,或者两者的混合),但是如果我们觉得客户-服务器模式已经符合要求,上述几种方法就没有任何必要了。

我并不是说工作证明在区块链设计中没有其他的用处,但是似乎对我们的问题不是很重要。

网络和之外的其它内容

第5章节描述了比特币网络的应用特征。这里并没有明确,或者要求扩展区块链的概念。此外之后的6,7,8,9,10,11或12章节(最后一章节)也没有对区块链提出任何新的想法。

回答我们的问题

如果中本聪的白皮书是区块链设计的源头,他给我们留下了一个单薄的定义,也许这是最启迪人的方面。作者对特殊设计选择和它们的目的解释的很明确,我们似乎可以得出:区块链的各种论述可能仅仅是一个应用,而不是一个结构的问题。

以下是一些具体的问题!

区块链必须要“币”的参与吗?

为P2P网络提供安全的参与者,应怎样提供激励以确保他们诚实,是否在系统中引入“币”,白皮书中对此有一番精彩的讨论,但是很明显,讨论是在P2P网络的框架内。书中认为“币”的概念是不必要的可信任的“巨款”。

可信任的巨款非加密货币所愿,但是如果我们想要建造一个加密链接的区块链,我们似乎不需要“币”。这是一个关于信任的问题,我们待会回来讨论。

区块链必须包含只能合约吗?

【想看更多请移步“天下财经眼(ID:finance-eye )”微信公众号】

从白皮书的角度,这不太可能。白皮书中未出现“合约”一词。

区块链上可以运作智能合约吗?当然,区块链还可以运作其他的很多内容。

区块链必须是可编程的吗?

同样,这个问题的答案似乎是不。 白皮书中既没有出现“程序” 也没有出现 “脚本”。

区块链的确对可解释性有要求,区块链必须能被一个或数个独立观察者所解读,所以区块链是建立在一个或多个定义明确的数据结构。本数据区块结构必须包括前一个区块哈希值,而且区块的加密哈希必须遵循一种特殊的方式,但是上述原则中没有任何一条要求数据结构含有可运行编码概念。

区块链能够包含某些形式的程序编码吗?这是一个执行的问题,答案为是。比特币包括一种有限度的脚本语言,而其他系统,例如随后的以太坊,尝试着去支持更复杂的程序模式。

【想看更多请移步“天下财经眼(ID:finance-eye )”微信公众号】

如果能设计区块链从而支持这些概念,那么这种设计非常有雄心。但是区块链似乎需要更可程序化,而不是其他关联数据列表结构。

区块链是数据库吗?

另外一个答案是否定的问题。如前文,“数据库”这个词没有在白皮书中出现。

区块链的核心是一种特殊类型的数据结构。链条内的区块包含数据,但是我们不能将其看做数据库;区块链最多是代表特殊数据应用的一种交易记录

同样,不存在对区块链语义上的质询,也没有对关联列表的质疑。一种特殊的应用也许会允许质疑,但是应用不能定义事物本身。

作为一个比较点,TCP信息包的IP信息包中包含这种要求,我们定义它们是一连串IETF(互联网工程任务组)RFC (置评请求)中的数据结构。上述两个文件描述了信息包的形态和传输信息包时,信息包的行为。信息包接收方,可在没有任何他们与信息发起者之间网络参与的情况下,自己确定信息包是否有效。

任何路由器、防火墙都可以接收这些信息包,然后稍后进行分析,这些仪器或提供信息表的数据质询,但是尽管IP信息包有上述特性,我们并不把它当做数据库,RFC中也没有任何内容可让我们推导到它是数据库的结论。应用特性和自我属性是完全不同的两码事。

区块链不需要人与人之间的信任?

这里的答案依然是否定的,但这个问题太宽泛了。借助区块链,与以往传统系统相比,我们的确需要的信任更少,但是区块链的任何应用的执行仍然需要某种程度的信任。

接收方必须信任,数据区块的传送过程中没有被任何中间方改变破坏。 建立比特币内的区块链P2P分布网络和其他网络,其目的是降低人与人之间的信任要求,但是即使是这种模型,依然有某些潜在失败点,举例如下:

· 我们信任区块链软件,相信它在运行中不受破坏,而传输的是非伪造的数据。

· 我们信任运行区块链软件的运行系统,它在运行中不受破坏,而传输的是非伪造的数据;

· 我们信任为系统提供网络的中央处理机,相信它不受破坏,而传输的是非伪造的数据。

“我们相信编码”是一个有趣的口号,但是恶毒软件,间谍软件等已有超过30年历史,我们依然需要对这种战略持有可疑态度。

区块链设计不能加大伪造的难度,但是可疑大大降低偶然失误的可能性。我们可以“信任加证明”(在界限之内),这已经是对盲目信任的巨大改进。更为重要的是,这些消减信任的特点不是P2P网络设计的特征,但它们是区块编码的本质。

区块链不需要许可或需要少量许可?

区块链只是数据结构,所以实际上这个问题无意义。谁具有在数据结构上阅读或编写的能力完全是不同的问题。

我们先放下这个微妙的区别,但是作为问题,似乎有意义。考虑比特币的例子,谁在编写区块链?

答案是那些矿工(或更明确些,区块创造者,例如矿池操作者,而不是那些制作哈希区块的人),他们在编写新的区块。网络上的处理工提供备选交易,以便编入区块,但是他们不保证区块中包含这些交易。在比特币中,我们将其称为“未经允许”,因为没有任何人需要明确的许可就可以成为区块创造者。

【想看更多请移步“天下财经眼(ID:finance-eye )”微信公众号】

如果我们考虑区块链设计的其他潜在应用,其中有一伙明确的参与者,他们希望能够编写区块数据。但在很多情况下,甚至只有一个参与者。

这种对区块链潜在用途的批评,让区块链比数据库好不到哪里去,但是传统的数据库中,必须有盲目信任的一席之地,但是区块链的内在状态一般不为人所知。甚至是区块链最简单的用途可以至少为系统提供一种验证方法,为了完成验证,必须确保历史能够被验证。但这只是多种可能的开始!

区块链是网络货币吗(或者是其他事物的网络吗?)

从实际上来说,不会,或者至少它自身不会。

当我们看到“不是数据库”的表述时,我们同时也触及了为什么这个论断不对。从表面上看,论据比较吸引人。有一种看法是,我们可以在区块链之上建立很多技术,如此,一个网络叠加就是一个层

这种建议里有很多问题,但最明显的是区块链仅仅是一个数据结构。利用区块链,我们可以在互联网顺利地传递信息,但是区块链并不能生成其内在和外在的任何事物。

将区块链与区块链的传送区分开来, 的确为区块链给出更多希望,即区块链可以帮助创造更有效的互联网金融应用。一个清晰的区分同样让设计系统上每个分层的试验变为可能,这个也是当年确保互联网成功的关键特点之一。

利用互联网,网络堆叠的各层可以实现替换或更改,确保最好的设计胜出。与此相似,以标准为基础的方法,确保不同的应用能协同工作,而不丧失货币化的商业优势。

区块链的例子,我们已经发现已经存在对外部观察者的必要支持,这需要某种程度上的协同。

最后的几点想法

我们已经研究了区块链可能是什么,或不是什么,区块链能实现什么,可能大家已经发现了一些线索。我们可以将支持比特币的技术用来做很多事情,比特币的遗产不能仅仅是它自己—它已经为我们展示出了一个更基础的性质。

什么构成区块链的讨论不会就此结束,但是我们必须推进讨论,我们必须遏制它变成另外一个市场时髦语的冲动。

要实现上述目标,我们不仅需要明确的定义,还需要合理的使用。我们应避免混合很多不同想法,我们需要那些可行的和可以达到的技术。如果我们失败,“区块链”这个名词将没有任何意义,必须被取代。这将为一个错误的结果。

如果我们成功,那么区块链的想法将不是故事的结尾。区块链将会是一个分层,之后会有更好的,更有用的系统建立在它之上。

区块链有什么弊端?

我们经常说区块链有多好,其实任何一个技术再怎么完美,也是有弊端的和不如意的,那么这个区块链技术到底现阶段有什么弊端呢?下面天下财经眼小编就来分析下这个技术,看看还需要去怎么去弥补这个缺陷!

将区块链技术的运作机制简单剖析,我们可以看出,区块链技术的运作机制分别为每次交易必须有效、系统必须对数字资产等归属达成共识、交易历史不可篡改。可以说这三个运作机制是区块链技术的核心了,但这三个机制有两个机制处于不稳定的状态,这让区块链技术面临着极大的挑战。

首先是“每次交易必须有效”这个机制,根据这个条件,通过区块链进行的每一次交易都需要符合事先约定的规则。那么问题便来了,我们在交易时所遵守的规则到底是什么?按照区块链技术来看,交易过程的规则乃是代码,但是区块链开源的特性让这些代码之间会出现不一致的现象。

由于缺乏统一的技术规范,那么就容易导致通过代码指定的规则会产生不可预料的问题,按照当今工业标准,每一百行代码允许存在一个bug,可以想象,若交易规则出现任意一个小BUG,都有可能产生无法挽回的损失。而在这一点比特币给出了良好的示范,早在 2010 年 8 月,发生了一起比特币历史上的大事:一名黑客利用整数溢出的漏洞凭空创造出了 1840 亿个比特币。这便是代码技术不统一产生的负面影响。

【想看更多请移步“天下财经眼(ID:finance-eye )”微信公众号】

其次,则是系统必须对数字资产等归属达成共识的机制,这便是区块链技术的共识机制了。共识机制的特性是需要在交易发生时,所有的节点都需认同,这样才可以完成一笔交易,但共识机制有一个较大的弊端,就是容易失效。因为当区块链技术进行大范围的应用后,必然会产生高频交易的现象,在同一个时间点可能会发生很多起交易,那么在交易的过程中,可能会因为一些误导的因素导致出现共识失效的问题。

其实区块链最大的优势就是去中心,但是恰恰这也是它的弊端,因为什么人都可以去做,所以有的时候就没有统一的标准,也没有统一的规范,所以会产生很多不好影响,比如说阿猫阿狗发行的数字货币就是这样了!

往期精彩回顾瞬间爆红的冰皮月饼—何为冰皮…………COCO新品测评:你长胖不是奶茶的锅!COCO新品测评:你长胖不是奶茶的锅!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180716A0PA3B00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券