揭秘被赞誉为“神技”的区块链

发表时间: 2021-09-13 13:12

图片来源@视觉中国

文丨青年投资家俱乐部,编译丨渣渣辉

区块链技术正在改变世界。”

过去十年,你是否与我一样,在各种科技新闻与科技公司的发展战略中反复听到这句话?很多时候听到关于区块链相关新闻,要么是关于加密货币的,要么是介绍其产品采用了区块链技术可以防伪、可溯源等等,那么区块链究竟是什么似乎始终都是一个谜。

近期,海外知名科技媒体The Verge对一位区块链专家(不愿透露姓名)进行独家专访,试图了解并揭开从加密货币到 NFT 一切背后的技术——区块链的神秘面纱,以下为专访内容(有所删减与编辑):

01、问题一:我听过1000 个试图解释区块链的说法,你能再帮我解释一下什么是区块链吗?

你可以把区块链想象成一个充满了喜欢跟踪事物的成员的痴迷俱乐部。俱乐部有大量复杂的规则,以确保每个成员都写下关于每天发生的事情的完全相同的记录集(无论是观鸟、啤酒品尝或鲜花销售),并且一旦数据被记录并被接受,将会有越来越多的记录添加到它上面,使它变得更加难以更改,而外人可以过来查看他们的所有记录。

区块链的核心是让你与互联网上的陌生人就数据达成一致。公共区块链提供了一个放置信息的地方,任何人都可以添加,没有人可以更改,并且不受任何个人或实体的控制,将责任分散给网络上的每个人。

这些属性通常用非常技术性的语言来描述,例如“分布式账本”、“点对点”和“加密散列”,但这些是这些词描述的基本属性。我们将在稍后讨论如何完成所有这些工作的技术方面,但可能有一些基础概念我们应该首先了解。

其一,区块(Blocks)。区块是将数据存储在区块链上的基本单位,它由制作区块链的人来决定他们存储什么样的数据。如果我愿意,我可以创建一个区块链,其中每个区块都存储了《了不起的盖茨比》的整个文本,但这样会显得我很愚蠢。

这部分是基本区块链背后的代码

然而,对于普通的加密货币,区块包含网络上发生的有效交易的记录。我给你发了一个MitchellCoin?把它放在一个区块中。你送了我 10 个 MitchellCoin 作为回报,这也在区块中。对于加密货币,您可以将区块想象为一盒收据。

其二,链(Chain)。假设我刚刚创建了一个新的区块链,但第一个区块在那里很孤独,然后第二个街区会出现并说:“我面前的街区是第一个街区。”下一个区块也会说:“我之前的区块是第二个区块”。依此类推,便创建一个区块链,区块链系统是一个能够处理全球数百万人使用的复杂系统,在这里关于孤立区块、区块时间、分叉等技术详情就不展开说了。

加密货币是使用区块链技术构建的,它们是迄今为止该技术最著名的用途。此时,您可能听说过至少三种加密货币:比特币、以太坊和狗狗币。这三个都运行在自己的、独立的区块链上,而且这些区块链的来源还有很多。但区块链技术不仅限于金融目的。从技术上讲,任何人都可以制作一个区块链来跟踪任何事情,所以真的可以有无限的区块链。

人们经常谈论区块链,说它将彻底改变一切,并且它可能成为下一个互联网,但我觉得这些说法可能有点夸大其词。

02、问题二:区块链是如何运作的?

关于加密货币在能源使用的讨论有很多方面,需要几篇文章来涵盖(尽管我的一位同事确实对争议进行了深入的探讨),但可以肯定地说,区块链在环保方面的确存在很大负面隐患。

部分原因是一种称为“工作证明”的系统,许多区块链(尤其是加密货币)出于安全和信任目的而采用该系统。如果区块链使用工作量证明来验证区块,那么它需要大量的计算能力来完成交易。由于计算机需要能量来运行,交易最终会白白浪费大量能量。

值得注意的是,它不一定是这样:区块链本身并不需要消耗大量能源,而且还有工作量证明的替代方案。我们稍后会解释为什么会这样。但是,无论如何,目前人们熟悉的大多数区块链技术应用程序,如比特币和以太坊,都使用工作量证明。

要理解为什么工作量证明模型需要计算机如此努力地工作,我们首先必须了解区块链技术的其他部分是如何运作的。

区块链一开始是一个完全空的列表,根本没有任何信息。然后,创建者将创建一个称为创世块的东西,它只是链中的第一个块。与其他所有块不同,它不指向任何东西。随着时间的推移,人们可以将信息添加到该列表中——但是,这些信息的样子取决于区块链的用途:如果它是一个加密货币区块链,它将是一堆交易。如果它是一个用于跟踪lettuce的区块链,它可能看起来有点不同。

如果您必须想象区块链的实际外观,请想象将一堆收据订购到盒子中,这些收据都绑在一起。每隔一段时间,就会添加一个新盒子,其中包含自上一个盒子添加到链中以来收集的收据。

在这个例子中,收据是交易,盒子是区块。在交易发生时对其进行管理,然后再将其发送到区块链,是一个计算机网络,通常称为节点,这些计算机运行一种特殊的软件,用于相互通信。

当用户进行任何类型的交易或更改时,他们都会向整个网络发送消息,节点正在监听这些消息。让我们使用一个虚构的加密货币,完全随机地命名为 MitchellCoin。如果我想向某人发送 5 个 MitchellCoin,我会将其广播出去。

当节点看到消息时,他们会对其进行一些检查,他们会检查以确保它是由我进行数字签名的消息没有被篡改,以确认冒充者没有花我的钱。实际签名的制作过程是一个相当复杂的过程,但最终结果是一条可验证由特定人发送的消息,几乎不可能伪造(与真实签名不同)。这可以防止不道德的人错误地声称其他人向他们发送了 MitchellCoin。节点还将检查以确保交易有效(例如,通过检查我实际上有五个 MitchellCoins 可以花费,或者向区块链添加一批生菜的人是否被授权这样做),但交易不会立即完成,他们必须等待下一个区块被添加到链中,这个时间段可能因区块链而异。在一个区块被创建并成为区块链的一部分之后,其中包含的所有交易也将成为区块链的一部分,竞争创建该区块的过程称为“挖矿”。

区块的开采方式取决于区块链运行的模型,我们将在稍后介绍。在挖矿节点创建一个区块后,它将向全世界广播它。其他节点将检查以确保它是一个有效的块,然后将其添加到自己的分类帐中。可以同时创建多个区块,但网络最终会在一个区块之上构建比另一个区块更多的区块,从而使该区块成为官方链的一部分。

03、问题三:区块链是如何防止被篡改的?

区块链有一些功能可以防止篡改——散列法(Hashing)或哈希法。

自 1950 年代和 60 年代以来,散列是一种加密技术,对各种计算都必不可少,区块链使用它来防止篡改。在区块链中,散列基本上充当唯一标签,防止某人更改块中的数据,甚至交换假块。

散列可让你从任何数据中创建一串字符,你将一堆数据放入(整个区块)中,然后得到一个更小、唯一的数据。为了确认没有被篡改,每个块都存储了它之前的块的哈希值。这样,如果哈希存储的两个位置之间存在差异,您就会知道出了什么问题。

哈希有几个重要的属性:

1、给定相同的数据,它们将始终相同。

2、如果数据的任何部分发生变化,即使是最轻微的变化,它们也会完全改变。

3、很容易再次检查给定的散列是否来自给定的数据,但很难判断仅从散列中给出了什么数据。

举一个简单的例子。假设当我们通过哈希算法运行“区块链”这个词时,我们得到了“ef7797”(实际上,哈希要长得多)。如果我们运行“区块链”,只有一个字母不同,我们会得到“8e809e”。

如果我们想确保我们正在查看最初经过哈希处理的相同数据,只要我们使用相同的程序来创建我们的哈希值就很容易了,通过散列程序运行“区块链”,无论是谁在做总是会产生“8e809e”。但是反过来需要很长时间:如果我想知道有人为了得到“9ed142”而在散列程序中放入了什么,我只需要猜测,直到找到产生那个的特定单词哈希。

链中的每个区块都包含前一个区块的哈希值,这正是哈希算法在给定区块数据时所吐出的内容。如果有关该块的任何内容发生更改(例如,其中的交易,甚至整个块本身),则该块的哈希值都会更改,从而破坏链,包含前一个区块的哈希值的下一个区块会说“我已改变,有事!”

所有这些加起来构成了一个系统,在该系统中,任何查看提交给链的新块的人都可以知道在任何时候都没有任何更改。如果有,则更改后每个块的哈希值必须与当时的分类账不同。

04、问题四:如何检查这些哈希值是否匹配?

确切的答案取决于你说的是什么区块链,但每一个区块链都有一个叫做 "共识算法 "的东西。基本上,每个区块链决定它经典真理均基于投入工作最多的链。在基于工作证明的区块链中,这意味着拥有最多区块的链:因为每个区块都需要工作来挖掘,最长的链将是投入工作最多的,因此将是官方链。(不过,也有一些其他的方法,我们将在后面谈到)。

这将是非常痛苦的(对于你的计算机而言)。所以首先你要做的是改变发生这种情况的区块。然后,您必须重新计算该区块的哈希值,以及之后的每个区块……而且您不仅必须在一台计算机上执行此操作(这已经够难了,原因我们将在稍后介绍)。

这就是你可以让这些东西公开存在的方式,但仍然可以合理地确定没有人在篡改记录。攻击可以而且确实会发生,但是当需要如此多的计算能力来完成攻击时,很难不被人注意到。

05、问题五:区块链是如何被制造与挖掘的?

一个区块如何被制造或“挖掘”取决于区块链本身。最受欢迎的系统之一被称为“工作量证明”。

工作量证明系统……很复杂,但我们已经涵盖了理解它们所需的大部分内容。基本上,区块链对于它希望区块的哈希看起来像什么有一定的规则。例如,假设 MitchellCoin 区块链要求散列的前五个字符都是字母 a(这样它就会像我一样不断尖叫)。

当一个挖矿节点想要创建一个区块时,它将获取区块中的所有数据,加上一个称为随机数的特殊数字,并通过哈希算法运行它。如果哈希开始时不是“aaaaa”,它会将随机数增加 1,然后重新开始。所以,你的你的计算机只是猜测数字直到它达到它想要的散列。

而且哈希值很大——我只使用了几个字符作为例子,但一般来说,哈希值有 60 多个字符长。平均而言,您的计算机必须进行大量猜测才能找到符合条件的猜测。但是,同样,虽然我们需要很长时间才能找出合适的哈希值,但几乎不需要任何时间来检查以确保我们的数据确实按照我们所说的进行了哈希处理。所以当您创建或挖掘区块时,你所做的每个猜测都需要时间和电力。

好消息是,虽然工作量证明可能很受欢迎,但它并不是唯一的做事方式。还有权益证明系统,在这种系统中,人们不是解决难题,而是将加密货币作为抵押品,以便有机会成为下一个开采区块的人,并被要求验证其他人开采的区块。如果他们验证恶意区块,他们将损失部分或全部资金,具体取决于区块链的规则。权益证明区块链需要更少的能量,因为挖掘一个区块不需要进行数百万次猜测,那些持有权益的人是随机或通过算法选择来创建一个区块的,而且他们不需要专门的、超强大的硬件来做到这一点。

一段时间以来,人们一直在谈论转向权益证明,尤其是在以太坊区块链上,但升级仍处于非常早期的阶段。不过值得注意的是,区块链不一定必须使用工作量证明或权益证明——还有其他替代共识算法,不公开或用于货币的区块链可以以完全不同的方式创建区块这样效率更高。

06、问题六:区块链的价值体现在何处?除了加密货币区块链还有其他应用吗?

区块链提供了一种以合理的确定性验证您正在查看的数据未被更改的方法。但它并不能帮助您确定输入数据时的数据是否真实。有私有企业区块链,其中每个用户都是已知的并具有特定权限,但公共区块链是完全不同的野兽。

例如,假设我想出售太空岩石并声称使用区块链技术证明其真实性。即使我想出了一种方法来提供存在于区块链上的真实性证书,并且无可争议地与我发送给你的物理岩石相关联,如果“太空岩石”实际上只是一颗鹅卵石,那么区块链也不会为你提供任何帮助我是从我家后院来的。

虽然加密货币显然得到了所有的炒作和报道,但在许多不同领域对区块链进行了大量实验。沃尔玛使用区块链跟踪从农场到商店的农产品(并在疾病爆发时提供简单的问责制);有在区块链上创建和销售网址或域名的实验;在大流行开始时有人谈论使用区块链跟踪供应和 COVID-19 免疫力。然而,这些系统中的任何一个是否真正流行起来并变得必不可少,还有待观察。

07、问题七:如何看待火热的NFT?区块链会改变投票/货币/库存系统/新闻吗?

以太坊区块链上存在许多 NFT,它具有允许它们使用的特定功能。这确实意味着你可以在单个区块链上同时执行多项操作,但这仅取决于数据的设置方式,并不是区块链本身取得了进步。

有许多炒作区块链的投机者喜欢说技术是一切的未来,而且它将和互联网一样大。然而,就像任何告诉你他们深入投资的东西有多好的人一样,你也许应该用0.001 Saltcoin(代币)来看待他们所说的话(都是不值钱的废话)。

如果一个空间会在某种程度上从去中心化中受益,或者如果每个人都需要分享一个已知的真实记录,那么是的,区块链有可能成为未来的一项技术。但如果不是,那么使用该技术比起普通的数据库就没有太多的好处。IBM的一位研究员告诉我,当它为企业创建区块链时,区块链实际上是一个更大的IT系统的一小部分,该系统还涉及数据库和其他遗留程序等东西。换句话说,大多数时候,公司并不只是扔掉他们的旧系统而转向区块链,他们是以一种有意义的方式整合它们。

至于投票,目前阿拉斯加提出的一项法案希望将该州的投票系统转移到区块链上,而其他一些地方已经尝试了这个想法。就我而言,在投票系统使用区块链进行电子投票的问题上,我倾向于YouTuber教育博主Tom Scott的观点,即使区块链使投票完全值得信赖(这不一定是事实),你也必须向公众证明为什么它是值得信赖的。

原文:《Blockchain, explained》。