区块链如何在7个步骤中工作-清晰简单

区块链如何在7个步骤中工作-清晰简单

2020年是去中心金融Defi爆发的一年。沉寂之后,比特币突然从5000美元左右涨到近2万美元,区块链重新进入人们的视野。

2013年10月至2020年10月Coinmarketcap.com比特币价格走势图

区块到底是什么

首先;区块链是一个存储数据数字概念。这些数据是以块为单位的,所以想象一下数字数据块。这些块被链接在一起,这使得它们的数据是不可变的。当一个数据块链接到其他数据块时,它的数据永远不会改变。任何想再次看到它的人都可以公开使用它,就像它曾经被添加到区块链中一样。这非常具有革命性,因为它使我们能够记录几乎所有我们能想到的东西(例如:产权、身份货币余额医疗记录),并且没有人会篡改这些记录。如果我现在买一套房子,并在区块链上添加照片,那么我将永远能够证明我当时拥有这些权利。信息一旦出现在区块链上,任何人都无法更改(嗯,一种方法,但这是高级材料,所以建议你以后再看,虽然你可以在这里找到)。因此,区块链是一种保持数据不变的方法。听起来不错,但当然最大的问题是:它是如何工作的?

第一阶——交易数据

好吧,我们先来举个例子:比特币区块链。比特币区块链是现存最古老的区块链。比特币链上的每个区块包含大约1 MB的数据。在编写本文时,它大约有525,000个数据块,这意味着在这个区块链上总共存储了大约525,000 MB。关于比特币交易,比特币区块链上的数据根本不存在于交易数据中。这是历史上所有比特币交易的良好记录,一直追溯到第一次比特币交易。在本文中,我们将假设区块链存储交易数据,就像比特币区块链一样。

第二阶——(通过哈希运算)链接区块

想象一堆事务数据块(图1)。

三个块,都包含一些事务数据。不是很特别。你可以拿它和一些独立的Word文档做比较,这些文档只描述发生了哪些交易,这些交易是如何影响一些余额的。然后,文档1将按时间顺序描述发生在1 MB以下的第一个事务,之后,下一个事务将被描述到文档2中的另一个MB,以此类推。这些文档是数据块。这些块现在被链接(也称为链接)在一起。因此,每个块都有一个唯一的(数字)签名,该签名只对应于该块中的数据字符串。如果块中的任何内容发生变化,即使只是一个数字,块也会得到一个新的签名。它是如何工作的?这是通过哈希实现的,稍后将在步骤3中详细解释。

假设块1注册了两个事务,即事务1和事务2。想象一下,这些事务总共占1 MB(实际上这将是更多的事务)。现在,数据块将获得这个特定数据字符串的签名。假设签名是“X32”。看起来是这样的:

请记住,对数据块1中的数据进行一次数字更改将会导致它获得一个完全不同的签名!块1中的数据现在已经通过将块1的签名添加到块2中的数据块2的签名而被链接。现在它部分基于块1的块2的签名,因为它包含的数据的字符串在块2中,如下所示:

将签名块相互链接,使它们成为一个块链。让我们想象在这个区块链上再加一块积木。第三街区。这看起来像:

现在,假设块1中的数据是否已被更改。假设达米安和乔治之间的交易发生了变化。现在据说达米安给乔治寄了500个比特币,而不是100个比特币。现在,块1中的数据字符串不同了,这意味着该块也获得了一个新的签名。对应于这个新数据集的签名不再是X32。现在假设改成“W10”。现在的情况是这样的:

签名W10不再匹配先前添加到块2的签名。现在认为块1和块2不再相互链接。这向该区块链的其他用户表明,块1中的一些数据已经改变,并且由于区块链应该是不可变的,所以他们通过移回到区块链的先前记录来拒绝这种改变,在该记录中,其所有块仍然链接在一起(该记录达米安向乔治发送了100 BTC)。不被检测到的唯一方法是所有块保持链接在一起。这意味着块1的新签名必须替换块2的数据中的旧签名,以便不被发现改变。但是,如果块2的数据发生变化,也会导致块2具有不同的签名。假设现在block 2的签名是“PP4”而不是9BZ。现在,块2和块3不再连在一起了!

区块链的街区对任何人都是公开的。因此,如果不应该在区块链上检测到更改,则所有块都需要正确链接(否则,人们可以说某些块不能正确链接)。这意味着在改变一个块需要一个新的签名之后,它伴随着链的末端。觉得几乎不可能。要了解原因,您需要知道如何创建签名。

第三阶——生成签名(哈希值)

因此,我们再来想象一个瓷砖;街区1。块1只记录一笔交易。托马斯给大卫寄了100个比特币。现在这个特殊的数据串需要被签名。在区块链中,这个签名是由加密散列函数创建的。加密哈希函数是一个非常复杂的公式,它接受任何输入字符串并将其转换为唯一的64位输出字符串。例如,您可以单词“Jinglebells”插入到这个哈希函数中(哈希算法还有其他变体,但我们将在这个示例中使用这个算法),您将看到这个特定数据字符串的输出如下:

761 a 7 DD 9 cafe 34 c 7 cde6c 1270 e 17 f 773025 a 61 e 511 a 56 f 700d 415 f 0d 3 e 199868

例如,如果输入数字发生变化(包括空格、改变大写字母或添加句点),输出将完全不同。如果你这个词加个句号,然后设置为“Jinglebells”。相反,您将看到这个特定数据字符串的输出是:

b9b 324 e2f 987 CDE 8819 c 051327966 DD 4071 ed 72d 998 e 0019981040958 FEC 291 b

如果您现在再次删除循环,您将获得与之前相同的输出:

761 a 7 DD 9 cafe 34 c 7 cde6c 1270 e 17 f 773025 a 61 e 511 a 56 f 700d 415 f 0d 3 e 199868

加密哈希函数总是为相同的输入提供相同的输出,但总是为不同的输入提供不同的输出。比特币区块链使用这种加密哈希函数为区块提供签名。在这种情况下,加密哈希函数的输入是块中的数据,输出是与之相关的签名。让我们再来看看第1块。托马斯给大卫寄了100个比特币。

现在,假设这个块中的数据字符串如下:

托马斯区1 -100大卫100

如果将此数据字符串插入哈希算法,输出(签名)将是:

Bab 5924 fc 47 BBA 57 f 4615230 ddbc 5675 a 81 ab 29 e 2e 0 ff 85d 0 c 0 ad 1c 1 ACA 05 BFF

现在,这个签名已经被添加到块2的数据中。假设大卫现在转了100个比特币给吉米。区块链现在看起来像这样:

现在,块2的数据串如下:

大卫2 -100吉米100

Bab 5924 fc 47 BBA 57 f 4615230 ddbc 5675 a 81 ab 29 e 2e 0 ff 85d 0 c 0 ad 1c 1 ACA 05 BFF

如果将此数据字符串插入哈希算法,输出(签名)将是:

25d 8 be 2650 d7bc 095d 3712 b 14136608 e 096 f 060 e 32 CEC 7322d 22e 82e a 526 a3 e 5

所以,这是block 2的签名。哈希函数用于为每个唯一的块创建数字签名。哈希函数有很多种,但比特币区块链使用的哈希函数是SHA-256哈希算法。然而,一个签名如何防止有人在改变它之后简单地为每个块插入一个新的签名(如果所有块都被正确地链接,改变将不会被检测到,人们将无法辨别出有改变)?答案是区块链只接受符合特定要求的散列(签名)。

第四阶——什么是合格的签名?由谁来签署区块?

签名不一定合格。例如,只有当区块链的数字签名以连续的零开始时,区块链才接受块。

比如说;只有其签名以至少十个连续零开始的块才有资格被添加到区块链。然而,如第3章所述,每个数据字符串都绑定了一个唯一的散列。如果一个块的签名(hash)不是以十个零开头会怎样?

好的,为了找到符合要求的签名块,你需要反复改变块的数据串,直到特定的数据串导致以十个零开头的签名。因为事务数据和元数据(块号、时间戳等。)需要保持原样时,将向每个无用块添加少量特定的数据片段。除非重复更改以找到合格的签名,否则这段数据称为块的现时。

随机数是完全随机的数字串(请注意:图中也有其他数字,但随机数只能是数字)。总结一下刚才解释的,现在包含了一个块。1)交易数据,2)先前块的签名,以及3)随机数。反复改变随机数并对块的数据进行哈希运算以找到合格签名的过程称为挖掘。这是矿工的工作。矿工以计算能力形式消耗电力,通过不断改变块组成(即时)和散列它,直到他们找到一个合格的签名(输出)。他们的计算能力越强,就能越快地散列不同的块,就越有可能找到合格的签名。这是一种试错法。你可以这样描述:

注意:Nonce必须是一个数字。

区块链网络上的任何用户都可以通过下载并启动该特定区块链的相应采矿软件来参与该过程。当用户这样做时,他们会简单地发挥他们的计算能力,试图解决一个块的随机数。这是最近添加到比特币区块链的交易区块的一个例子,区块521,477:

来自blockchain.com(区块链浏览器

可以看到,这个块的散列(签名)和前一个块的散列都是从零开始的。找到这样的哈希值并不容易。这需要很大的计算能力和时间,或者很大的运气。是的,有时候会发生矿工非常幸运,在几分钟内找到一个计算能力很小的匹配签名。最近一个非常罕见的例子发生在523,034街区。一个算力不大的小矿工也能很快找到一个合格的签名,而其他所有矿工的算力却高达7万亿次。相比之下,强力球一等奖的中奖几率是2.92亿分之一,也就是说和这个矿工相比,要比其他网络比赛的中奖几率容易2.4万倍。谈零。无论如何,重要的是这一章了解到,很难找到一个合格的签名。

第五阶——区块链的不可变性是如何是实现的?

如之前在步骤3中所述,更改块将会取消其与后续块的链接。为了使更改后的数据块被网络的其余部分接受,需要将其再次链接到后续数据块。明白是怎么回事了吗?如前所述,这要求其后的每个块都必须有一个新的签名。而且签名需要符合要求!为所有这些块获取新的签名将非常昂贵和耗时,但似乎不可能不这样做。无论如何,这仍然被认为是不可能的,这就是为什么:

例如,一个腐败的矿工已经改变了一个交易块,现在他正试图为随后的交易块计算新的签名,以便网络的其余部分可以接受他的改变。对他来说,问题是网络的其余部分也在为新的块计算新的签名。受损矿工还必须为这些区块计算新的签名,因为它们将被添加到链的末端。毕竟他需要保留所有的区块链接,包括不断添加的新链接。除非矿工的计算能力超过网络其余部分的总和,否则他永远也赶不上网络其余部分的搜索签名。

数百万用户正在比特币区块链上挖矿,因此可以假设网络上单个不良行为者或实体的计算能力永远不会超过网络其余部分的总和,这意味着网络永远不会接受对比特币区块链的任何改变。

区块链,让区块链不可改变。数据一旦添加到区块链,就无法更改。

是有一个例外。如果坏人比网络中的其他人拥有更强的计算能力呢?理论上这是可能的。这被称为51%攻击,这在过去的区块链发生过。然而,事实上,比特币区块链51%攻击的执行成本远高于其回报。这不仅需要大量的硬件、冷却设备和存储空间来提供计算能力,还存在被起诉的风险。更重要的是,它会极大地破坏相应区块链本身的生态系统,从而带来比特币的潜在回报。价值急剧下降。试图攻击51%实际上是试图独自对抗区块链上的所有其他用户。这也是为什么参与挖掘过程的用户越多,区块链就越安全的原因。

第六阶——如何治理区块链?由谁决定规则?

比特币区块链遵循民主治理模式,因此它根据其大多数用户所说的事实更新了其交易记录(并因此更新了其比特币余额)。区块链协议通过始终跟踪拥有最长区块链的记录来自动执行此操作,因为它假设链由多数代表。毕竟,创建最长版本的区块链需要最大的计算能力。这也是大多数网络自动拒绝已更改数据块的方式。大多数网络会自动拒绝已更改的块,因为它不再链接到最长的链。

在比特币区块链上,所有的交易历史和钱包余额都是公开的(blockchain.info)。任何人都可以查看第一笔交易(2009年1月3日)之前的所有钱包或交易。虽然任何人都可以公开查询钱包余额,但是这些钱包的主人仍然不得而知。

第七阶——这些对密码学货币有何意义?第七阶——这些对密码学货币有何意义?

加密货币本质上是比特币的变种。大多数加密货币都是根据自己的区块链协议构建的,遵循与比特币不同的规则。比特币应该被归类为货币,也就是说,它明显具有货币的功能。门罗币也是一种具有相同功能的加密货币,但其区块链协议也增加了一些增强隐私的规则(使追踪交易更加困难)。

但是,用区块链发行的资产可以有许多不同的用途,这是由发行人决定的。以这种方式发行的资产一般被称为“代币”。这些代币可以赋予其所有者一定的权利,比如博彩许可证、社交媒体渠道、水电等等。所有这些资产交易都记录在不同的区块链上,并可以通过Binan等交易所进行在线交易。

事实上,token是一种新型的互联网货币,可能会影响到一些行业,其中之一就是股市。将来,公司股份财产权可能会以代币的形式存放在区块链。区块链并不局限于用代币的形式来表示物理价值。它还可以安全地记录数据,如病历、身份、历史记录、税务记录等。这就是区块链科技的伟大之处,更不用说区块链的另一个重要特征:去中心化。

版权声明:区块链到底是什么 发表于 2022-06-10 8:48:46。
转载请注明:区块链如何在7个步骤中工作-清晰简单 | 零零洞洞

暂无评论

暂无评论...