相信昨晚很多人都被突如其来的区块链刷屏了。
10月24日下午,中共中央政治局就区块链科技发展现状和趋势进行了第十八次集体学习。中共中央总书记习近平强调,区块链技术集成应用在新技术创新和产业转型中具有重要作用。要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入,重点攻克一批关键核心技术,加快区块链科技和产业创新发展。
微信官方账号:人民日报习近平:把区块链作为核心技术自主创新的重要突破口
有些读者可能会有疑问,什么是“区块链”?为什么这么受重视?今天,边肖将带你了解一下。
引言首先,区块链是电子数据的一种存储方式。数据以块的形式存在。假设有许多存储数字化数据的块。这些块都是链接在一起的,这赋予了它们的内部数据不变性。当一个数据块被链接到这个链时,它的内部数据就不能再被改变。一旦块被添加到链中,其中的数据对任何人都是公开可见的。这项技术具有非凡的创新意义,可以用来记录几乎所有我们能想到的数据(例如,产权、身份、余额、病历等。),而且没有被篡改的风险。假设我买了一套房子,并将产权证上传到了区块链,我可以证明我在那一刻享有了这套房子的所有权。换句话说,区块链是一种存储数据并确保数据不被篡改的方法。这听起来不错,但随之而来的问题是:我们是如何实现这项技术的?
(校对注:就吹毛求疵而言,这一段并非无懈可击,但你可以暂时记住。)
一阶——交易数据好了,让我们以比特币区块链为例。比特币区块链是现存最古老的区块链。在比特币区块链上,每个区块的大小约为1 MB。截止到截稿时,该链中已经累积了525,000个块,链中存储的数据总量约为525,000 MB。(校对注:其实离525,000 MB还远着呢,因为早期很多块都没有填满1MB。)
比特币区块链只存储比特币的交易数据。它就像一个巨大的交易记录库,可以追溯到第一笔比特币交易。在本文中,我们假设有一个存储交易数据的区块链,就像比特币区块链一样。
二阶——(通过hash操作)链接块假设有三个块存储事务数据(如图1)。
这三个区块都有一些交易数据。没什么特别的。就像三个独立的word文档,描述了交易的内容和余额的变化。文档1将从第一笔交易开始按时间顺序记录,直到数据量达到1 MB,后续交易将记录在文档2中,直到数据量达到1 MB,以此类推。这些文档是数据块。它们一个接一个地连接在一起。为此,每个块将根据其内部数据串生成一个特殊的(数字)签名。如果这个块中的数据有任何变化,即使只有一个数字发生变化,这个块的签名也会发生变化。这是如何实现的?详细内容请阅读步骤3中的哈希运算部分。
(校对注:如上所述,实际情况中并不是所有的块都接近块大小的上限。实际的数据大小取决于将块打包到链上的矿工在块中记录了多少事务,他们不会等到有1MB的事务数据才开始工作。实际情况见下文)
假设在块1中记录了两个事务,即事务1和事务2。这两个事务的总数据量达到了1 MB(其实一个块中的事务更多)。将根据该块中的数据串生成签名。假设这个签名是“X32”。如下图所示:
记住,即使存储在块1中的数据改变了一个数字,它也会得到一个完全不同的签名!只要将块1的签名添加到块2,块1的数据就可以与块2相关联。块1的签名也包含在块2的数据串中,所以这个签名和块2中的其他数据一样,成为块2的签名的数据基础。如下图所示:
正是这些签名将这些块连接在一起,形成了区块链。现在添加Block 3,整个链条如下图所示:
现在,假设块1中的数据已被更改。例如,达米安和乔治之间的交易被更改了。达米安寄给乔治500个比特币,而不是100个。由于块1中的数据串已经改变,其签名也相应地改变。更改数据后,block 1的签名不再是“X32”,而是“W10”,如下图所示:
-请访问区块链,了解更多关于区块链的信息-
结果,块1的新签名“W10”与添加到块2的数据串的旧签名“X32”冲突。块1和块2之间的链接断开。该链中的其他用户将知道块1中的数据已被更改。为了保持区块链的不变性,其他用户会拒绝同步变更后的交易信息,仍然保持原来的交易记录(即达米安给乔治发100个BTC),整个链条保持不变。这意味着为了无痕迹地篡改交易,必须用新签名替换块2的数据串中的块1的旧签名。然而,一旦块2中的数据串改变,块2的签名也将改变。假设块2的签名从“9BZ”变为“PP4”。然后2块和3块的联系就断了!
每个人都可以看到区块链的街区。因此,如果篡改者真的想篡改交易而不露出任何痕迹,就必须保证所有被篡改的块仍然是连通的(否则,人们很容易发现哪个块没有与其他块连通,进而判断该块被更改过)。换句话说,为了改变一个块,必须为所有后续块计算新的签名。可以认为这几乎是不可能的,但是要理解为什么,请看下文。
第三个订单——生成一个签名(哈希值)。然后,我们以区块1为例,再画一个示意图。假设block 1中只记录了一笔交易,即托马斯向大卫发送了100个BTC。需要从该数据串中生成签名。在区块链上,该签名由加密哈希函数生成。加密哈希函数是一个极其复杂的数学公式:将任意数据串作为输入值代入公式,即可得到唯一的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
对于同一个密码哈希函数,相同的输入一定会得到相同的输出,不同的输入一定会得到不同的输出。比特币区块链使用哈希函数为区块生成签名。将块中的数据作为输入,输出是块的签名。让我们来看看只有一个交易的Block 1的示意图(Thomas向David发送100个BTC)。
假设块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 BTC,这笔交易打包到区块2。然后如下图所示:
块2的数据串如下:
block 2 David-100 Jimi 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哈希算法。
但是,(以上措施显然是不够的)如果有人想篡改一个块中的数据,ta可以在篡改后生成一个新的签名,插到下一个块中,然后逐块生成新的签名。这些修改过的块还是形成了一个链,别人看不出来数据被修改过。如何防止这种情况?
答案是,只有满足特定要求的哈希值(签名)才会被块链接。这是第四阶段介绍的采矿。
什么是合格的签名?谁将签署该区块?并非所有签名都符合要求。《区块链议定书》将预先确定一些要求。比如在比特币区块链上,只能上传数字签名连续零对应的区块。例如,只有当数字签名以至少10个连续的零开始时,相应的块才能被结束。
然而,根据第三部分,对应于每个数据串的散列值是唯一的。如果数据块的签名(哈希值)以少于10个零开头会怎样?为了获得合格的块签名,需要反复改变输入数据串,直到可以产生以10个连续零开始的签名。但是,因为事务数据和元数据(块号、时间戳等。)需要保持不变(否则,意义会变),在每个块中加入特定长度的可以改变的数据。当你想在链上添加一个块的时候,人们可以不断地改变这个数据块,直到找到一个合格的签名,然后确定这个数据块的具体值。该数据是块的随机数。Nonce不是预先确定的数据,而是根据实际需要找到的一系列完全随机的数字(注:图中所示的其他数据可以由任意字符组成,nonce只能由数字组成)。
综上所述,块包含:1)交易数据;2)前一个块的签名;3)现时.这种反复更改nonce、散列块数据并找到合格签名的过程称为挖掘,这就是矿工所做的事情。矿工投入大量电能,转化为计算能力,不断代入nonce进行哈希运算,直到找到合格的签名(输出)。挖掘者的计算能力越强,哈希运算的速度就越快,首先找到合格签名的可能性就越高。这是一个试错的过程,如下图所示:
-注意:nonce必须是一个数字(详情请阅读r/BlockchainSchool上的解释)-
区块链网络上的任何用户都可以通过下载和启动采矿软件来参与采矿。实际上,这是利用他们的硬件计算能力来计算块的nonce。以比特币区块链上的# 521477区块为例:
-来自区块链浏览器blockchain.com-
可以看出,这个块的哈希值(签名)和前一个块的哈希值都以相同数量的零开始。找到这样的哈希值并不容易,需要大量的计算和时间,或者运气爆棚。是的,有时候一个幸运的矿工可以在几分钟内计算出一个合格的签名,而且几乎不需要计算能力。523034号地块是一个极其罕见的例子。一个没什么计算能力的小矿工很快就找到了合格的签名,而其他矿工的计算能力加起来是他的7万亿倍。相比之下,强力球彩票中一等奖的概率是2.92亿分之一,这个幸运儿挖矿的概率是2.4万分之一。
不要小看这些零。这一节的重点是很难找到合格的签名。
五阶——区块链的不变性是如何实现的?如第三阶段所述,更改一个块会导致其签名发生变化,这将与后续块的记录不匹配,从而断开与后续块的链接。为了使网络中的其他参与者接受这个改变的块,有必要将其与后面的块重新链接。换句话说,一个块的签名变了,后面所有块的签名都要变,这样别人才能感觉到这是一个一致的链。
你还记得什么吗?
如第四节所述,签名必须符合要求!尽管改变所有块的签名似乎是可行的,但这需要大量的成本和时间,因此由于以下原因,这被认为是不可能的:
假设一个矿工恶意篡改了一个块中的交易,然后根据哈希运算为这个块及其后面的所有块生成一个新的签名,使得网络中的其他参与者可以接受被篡改的交易。问题是网络中的其他矿工也在不断地为原始链上的新块计算签名。随着新块上线,邪恶矿工不得不重新计算这些块的签名。他必须确保所有块都链接在一起,包括不断添加到链中的新块。除非这个矿工的计算能力比全网其他人都强,否则永远赶不上其他矿工。
(校对注:这段话的实际意思是,只要矿工们在他们所见过的最长的区块链上挖掘,所有的计算能力都会随着时间的推移自然地汇聚到一条主链上,攻击者只有通过创建一条比当前主链更长的链,才能成功地改变大家公认的交易记录。这种总是以最长的链作为主链(有效链)的原则就是所谓的“最长链规则”,是中本聪共识机制的一部分。此外,并非所有区块链都采纳了中本聪共识。)
今天,数百万用户正在比特币区块链中挖掘,因此可以推断,一个恶意参与者或实体的计算能力不可能超过整个网络的剩余计算能力。这意味着网络中的其他参与者不可能接受对区块链的任何修改,从而实现区块链的不变性。数据一旦添加到区块链中,就无法修改。
只有一个例外,那就是恶意参与者的计算能力真的超过了全网其他人计算能力的总和。理论上,在这种情况下,有可能篡改区块链(即改变大家公认的历史记录)。这被称为51%攻击(我写了另一篇文章来解释这种情况),许多区块链在过去遭受过这种攻击。
(校对注:到目前为止,遭受51%攻击的著名区块链有bitGold、Verge和以太坊经典。)
事实上,对比特币区块链发起51%攻击的收益远小于高昂的攻击成本。为了获得足够的计算能力,不仅要承担硬件、散热设备、存储空间的成本,还要承担被千人指责的风险。更重要的是,它会对被攻击的区块链的生态系统造成极大的破坏,攻击的收益也会大幅贬值。51%的攻击实际上是针对区块链上的其他用户。这也是为什么参与挖掘的用户越多,整个链条的安全性就越高。
恭喜你,你又进入了第一关!到目前为止,您应该已经理解了(大)区块链被认为是不可变的原因。但现在有一个非常重要的问题:如何防止矿工在区块链中添加伪造的交易数据?从技术上讲,这是不可能的。区块链交易的详细解释可以在这篇文章中找到。
(校对注:只有私钥的拥有者才能在相应的地址消费资金,但是矿工不知道你的私钥,别人只能通过你的公开公钥来验证一个交易是否是你发起的。所以伪造交易不可行)
六阶——如何管理区块链?谁决定规则?区块链协议自动以最长链上的交易记录为标准,将这个链视为代表绝大多数参与者的链。构建最长的链条需要消耗全网的大部分计算能力。被篡改的块是从最长的链上断开的,所以会被全网大部分节点自动拒绝。
在比特币区块链上,所有交易历史和钱包余额都是公开可见的(blockchain.info)。任何人都可以查看任何钱包的余额或从第一笔交易(2009年1月3日)开始的所有交易记录。虽然任何人都可以查询钱包余额,但这些钱包的主人大多不为人知。举个例子,一个钱包里有69000个比特币,在我写这篇文章的时候大约值5亿美元。这个钱包在2015年4月使用过一次,之后就再也没有交易过。
(校对注:其实这部分并没有回答“谁来决定规则”的问题,只是大致说明了“按照现有的规则,这项技术是可以实现的”。公共链治理是一个复杂的问题,超出了本文的范围。)
七阶——对加密货币意味着什么?加密货币本质上是比特币的变种。大多数加密货币都是根据自己的区块链协议构建的,遵循与比特币不同的规则。比特币应该归为货币,也就是说,它明显具有货币的功能。门罗币也是一种具有相同功能的加密货币,但其区块链协议也增加了一些增强隐私的规则(使追踪交易更加困难)。
然而,区块链发行的资产可以被赋予许多不同的用途,这是由发行人决定的。如此发行的资产通常被称为“代币”。这些代币可以赋予其所有者一定的权利,如社交媒体渠道、水电等。所有这些资产交易都在不同的区块链进行记录,并可以通过Coin 'an等交易所进行在线交易。
代币其实是一种新型的互联网货币,可能会影响到一些行业,典型的例子就是股市。将来,公司股份等财产权可能会以代币的形式存放在区块链。区块链不局限于以代币的形式表示物理价值,还可以安全记录病历、身份、历史记录、税务记录等数据。
原文链接:https://blog . good audience . com/区块链-适合初学者-区块链是什么-519DB8C6677A。
作者:Jimi S。
翻译校对:敏敏阿健
来源:以太坊爱好
编辑:Be