区块链小白入门:7个步骤入门区块链

2017年是比特币爆发的一年。经过这么多年的潜水,比特币的价格突然从1000美元飙升到近2万美元。有多少人改变了,变成了“货币交易专家密码学”。

赶上好时机真的可以赚很多钱,但醒醒吧,盛宴已经散去了。

-2013年10月至2018年10月比特币价格走势图(来源:Coinmarketcap.com)- 虽然肾上腺素的爆发主要是市场价值的快速上升,但这一波热潮最初是由技术引发的。区块链技术仍有巨大的潜力。现在是业务开发人员、企业家和个人爱好者带着热血上车的时候了。但是,除了热血的涌动,首先要增进对区块链技术的了解。

不幸的是,目前解释区块链技术的文章要么涉及太多复杂的技术术语,要么太肤浅,缺乏深度。这两种类型的文章都不方便读者清楚地理解文章的内容。我该怎么办?我建议你从这篇文章开始。只要10分钟,你就能理解为什么区块链技术如此具有颠覆性。花这些时间是值得的。祝你阅读愉快。

引言

首先,区块链是一种存储电子数据的方法。数据以块的形式出现,想象许多存储数字数据的块。

这些块链接在一起,给其内部数据不可变性。当链接到一个数据块时,其内部数据将无法更改。

一旦一个块被添加到链中,里面的数据对任何人都是公开的。该技术具有非凡的创新意义,可以用来记录几乎所有我们能想到的数据(如产权、身份、余额、病历等)。同时,没有篡改记录的风险。假设我买了一所房子,并把产权证书的照片上传到区块链,我可以证明我当时享有这所房子的所有权。

一旦链接到这个信息,就没有人能改变它(嗯,还是有办法改变的,这里有一个先进的阅读材料,我建议你以后阅读)。

因此,区块链是一种存储数据并确保数据不被篡改的方法。

这听起来不错,但随之而来的问题是:我们是如何实现这种技术的?

第一阶——交易数据

让我们以比特币区块链为例。比特币区块链是现存历史最悠久的区块链。在比特币区块链上,每个区块的大小约为1MB。截至截止日期,该链已累积52.5万块块,链上存储的数据总量约为52.5万MB。(校对注:其实远不如52.5万MB,因为早期很多区块都没有打满1MB。另外,截至今天(2019年4月)

24日,积累了57.3万个区块,总数约250GB。)

比特币的交易数据只存储在比特币区块链上。它就像一个巨大的交易记录库,可以追溯到第一笔比特币交易。在本文中,我们假设有一个区块链存储交易数据,就像比特币区块链一样。

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

想象有三个区块存储交易数据(如图1所示)。

这三个区块都有一些交易数据。没什么特别的。就像三个独立的word文档,描述了交易的内容和余额的变化。文档1将按时间顺序从第一笔交易开始记录,直到数据量达到1MB,然后在文档2中记录,直到数据量达到1MB,等等。这些文档是数据块。它们一个接一个地联系在一起(链接)。因此,每个块将根据其内部数据串生成一个特殊的(数字)签名。如果该块中的数据发生任何变化,即使只有一个数字发生变化,该块的签名也会发生变化。这是如何实现的?欲了解详情,请阅读步骤3中的哈希运算部分。

(校对注:如上所述,实际情况下的块并不接近块大小的上限。实际数据大小取决于包装在链条中的矿工记录了多少交易,他们不会等到1MB交易数据开始。实际情况见下文)

假设两笔交易记录在区块1中,即交易1和交易2。这两笔交易的总数达到1MB(事实上,一个区块中包含的交易数量远不止这些)。根据该区块中的数据串生成签名。假设签名是“X32”。如下图所示:

请记住,即使区块1中存储的数据改变了一个数字,也会得到一个完全不同的签名!只要将区块1的签名添加到区块2中,就可以将区块1的数据与区块2连接起来。区块1的签名也包含在区块2的数据串中,因此与区块2中的其他数据一样,该签名已成为区块2签名的数据基础。如下图所示:

正是这些签名将区块链接在一起,形成了区块链。现在加上区块3,整个链如下图所示:

假设区块1中的数据已经发生了变化。例如,Damian和George之间的交易发生了变化。Damian向George发送了500个比特币,而不是100个比特币。由于区块1中的数据串发生了变化,其签名也发生了相应的变化。更改数据后,区块1的签名不再是“X32”,而是变成了“W10”,如下图所示:

-请访问r/blockchainSchol查看更多关于区块链的科普知识-

这样,区块1的新签名“W10”之前添加到区块2数据串的旧签名“X32”产生冲突。区块1和区块2之间的链接断裂。该链上的其他用户将知道区块1中的数据已经改变。为了保持区块链的不可变性,其他用户将拒绝同步更改交易信息,并保持原始交易记录(即向George发送100BTC)不变,整个链仍然完整。这意味着,要篡改交易,必须用新签名代替区块2数据串中区块1的旧签名。但是,一旦区块2中的数据串发生变化,区块2的签名也会发生变化。假设区块2的签名从“9BZ”变成了“PP4”。然后区块2和区块3之间的链接就断了!

每个人都可以看到区块链上的区块。因此,如果篡改者真的想篡改交易,他们必须确保篡改后的块仍然连接在一起(否则很容易发现哪个块与其他块没有连接,然后判断块已经被更改)。换句话说,更改一个块必须为后续的所有块计算新的签名。这几乎是不可能的,但要理解为什么,请看下面。

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

然后,我们以区块1为例,再画一个示意图。假设区块1只记录一笔交易,即Thomas将100BTC发送到David。签名需要根据这个数据串生成。这个签名是通过密码学哈希函数在区块链上生成的。密码学哈希函数是一个极其复杂的数学公式:以任何数据串作为输入值代入公式,可以获得独特的64位输出值。例如,你可以“Jinglebells”一个词代入这个哈希函数(哈希函数有很多种,这只是其中之一),输出为:

761A7D9CAFE34C7CDE6C1270E17F73025A61E51A56F700D415F3E19986

只要输入中的一个字符发生变化,包括改变大小写或增加空间和标点符号,就会得到完全不同的输出。如果你在这个输入后面加一个句号“Jinglebells.”,获得的输出变成:

B9B324E2F987CDE8819C05132766D4071ED72D98E01980198040958FEC

如果我们删除句号,我们仍然可以得到与以前相同的输入:

761A7D9CAFE34C7CDE6C1270E17F73025A61E51A56F700D415F3E19986

对于相同的密码学哈希函数,相同的输入将获得相同的输出,不同的输入将获得不同的输出。比特币区块链使用哈希函数生成区块签名,输入区块中的数据,输出是区块签名。让我们来看看区块1示意图,它只包含一个交易(Thomas向David发送100BTC)。

假设区块1中的数据串如下:

Block1Thomas-100David+10000

将此数据串输入哈希函数,输出(签名)如下所示:

BAB5924FC47BA57F461523DBC5675AB29E0FF85D0CAD1CAFFF

这个签名将被添加到区块2中。假设David现在已经将100BTC转移到Jimi,这笔交易已经包含在区块2中。如下图所示:

区块2的数据串如下:

Block2David-100Jimi+100BAB5924FC47BA57F4615230DBC5675A8AB29E2E0FF85D0CA1CA

将此数据串输入哈希函数,输出(签名)如下所示:

25DBE2650D7BC095D3712B146608E096F060E32CEC72222E222E22EA526A3E5

这是区块2的签名。每个区块将通过这个密码学习哈希函数生成一个数字签名。哈希函数种类繁多,SHA-256哈希算法用于比特币区块链。

然而,(仅上述措施显然还不够)如果有人想篡改块中的数据,TA可以在篡改后生成新的签名,插入下一个块,然后逐个生成新的签名,这些变化块或形成链,其他人无法区分数据已经改变。如何防止这种情况?

答案是区块链只能接受符合特定要求的哈希值(签名)。这是第四步介绍的采矿。

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

并非所有签名都符合要求。区块链协议将提前确定一些要求。例如,在比特币区块链中,只有连续零开头的数字签名对应的块才能上链。例如,只有当数字签名连续不少于10个零开头时,相应的块才能上链。

然而,从第三节可以看出,每个数据串对应的哈希值是唯一的。如果一个块的签名(哈希值)开头小于10个零呢?为了获得合格的区块签名,需要反复更改输入的数据串,直到连续10个零开始生成签名。然而,由于交易数据和元数据(块号、时间戳等)需要保持原始(否则意义将发生变化),每个块还添加了一个特定长度和可更改的数据。当人们想要将区块添加到链中时,可以不断地更改数据,直到找到合格的签名,然后确定数据的具体值。这个数据是区块的nonce。nonce不是一个预先确定的数据,而是一系列完全随机的数字(注:图中显示的其他数据可以由任何字符组成,nonce只能由数字组成)。

综上所述,区块包括:1)交易数据;2)上一个区块的签名;3)nonce。通过反复更改noncee、哈希运算区块数据,寻找合格签名的过程称为挖矿,即矿工所做的。在找到合格的签名(输出)之前,矿工投入大量电力,转化为计算能力,不断代入nonce进行哈希计算。矿工掌握的计算能力越多,哈希的计算速度就越快,先找到合格签名的可能性就越高。这是一个反复试错的过程,如下图所示:

-注:nonce必须是数字(详情请阅读r/blockchainSchol上的解释)- 区块链网络上的任何用户都可以通过下载和启动挖掘软件来参与挖掘。事实上,这是用他们的硬件计算能力来计算区块的nonce。以Block#521和477为例:

-来自区块链浏览器blockchainin.com-

可以看出,该区块的哈希值(签名)和上一个区块的哈希值以相同数量的零开始。找到这样的哈希值并不容易,需要付出大量的计算能力和时间,或运气。

是的,有时候运气好的矿工几分钟就能算出合格的签名,花的算力也很少。Block#523034就是一个极其罕见的例子。

一个计算能力很小的小矿工很快就找到了合格的签名,而其他矿工的计算能力加起来是他的7万亿倍。相比之下,赢得Powerball彩票头奖的概率是2.92亿分之一,而幸运儿挖矿的概率是中头奖的1/24000。

不要低估这些零。本节的重点是很难找到合格的签名。

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

正如第三阶所述,更改一个块会导致其签名变更,与后续块记录不匹配,从而断开与后面块的链接。为了让网络中的其他参与者接受更改后的块,将其与后面的块重新连接起来。换句话说,一个块的签名已经改变了,所有后面块的签名都应该改变,以便让其他人觉得这是一个一致的链。

你想到什么了吗?

如第四节所述,签名必须符合要求!虽然更改所有块的签名似乎是可行的,但它需要大量的成本和时间,因此被认为是不可能的,原因如下:

假设一名矿工恶意篡改了某个区块中的交易,然后根据哈希计算,该区块与其后面的所有区块一起生成了新的签名,以便网络中的其他参与者能够接受被篡改的交易。问题是,网络中的其他矿工也不断为原链上的新区块计算签名。随着新区块不断上链,作恶的矿工必须重新计算这些区块的签名。他必须确保所有区块链接在一起,包括不断添加到链上的新区块。除非矿工的计算能力超过了整个网络中其他人的计算能力,否则他永远无法赶上其他矿工。

(校对注:本段的实际意义是,只要矿工在他们看到的最长的区块链上挖掘,所有的计算能力都会随着时间的推移自然地聚集在主链上,攻击者只能创建一个比当前主链更长的链,以成功地改变共同认可的交易记录。这种以最长链为主链(有效链)的原则,就是所谓的“最长链规则”,是NakamotoConcensus(中本聪共识机制)的一部分。此外,并非所有区块链都采用了中本聪共识。)

如今,数百万用户在比特币区块链上挖掘,可以推断恶意参与者或实体的计算能力不能超过整个网络的剩余计算能力。这意味着网络中的其他参与者不能接受区块链的任何修改,从而实现区块链的不可变性。一旦数据添加到区块链中,就不能再修改了。

只有一个例外,恶意参与者的计算能力确实超过了整个网络中其他人的计算能力总和。理论上,在这种情况下,有可能篡改区块链(即改变共同认可的历史记录)。这被称为51%攻击(我写了另一篇文章来解释这种情况)。过去,许多区块链都遭受过这种攻击。

(校对注:到目前为止,遭受51%攻击的著名区块链有bitGold、Verge、EthereumClassic。)

事实上,对比特币区块链发动51%攻击的收益远远低于高昂的攻击成本。如果你想获得足够的计算能力,你不仅要承担硬件、冷却设备和存储空间的成本,还要承担成千上万人指出的风险。更重要的是,它将对被攻击区块链的生态系统造成巨大损害,攻击收入将大幅贬值。51%的攻击实际上是对抗区块链上的其他用户。这就是为什么参与采矿的用户越多,整个链的安全性就越高。

恭喜你又进了一步!现在,你应该明白为什么(大型)区块链被认为是不可改变的。但现在还有一个非常重要的问题:如何防止矿工向区块链添加伪造的交易数据?这在技术上是不可能的。有关区块链交易的详细解释,请参阅本文。

(校对注:只有私钥控制器才能在相应的地址上花钱,矿工不知道你的私钥,其他人只能通过你的公钥来验证你是否发起了一笔交易。因此,伪造交易是不可行的)

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

……区块链协议自动以最长链上的交易记录为准,将该链视为代表绝大多数参与者的链。构建最长链需要消耗整个网络的大部分计算能力。被篡改的块与最长链断开链接,因此它将被整个网络的绝大多数节点自动拒绝。

在比特币区块链上,所有的交易历史和钱包余额都是公开的(blockchain.info)。任何人都可以查看任何钱包的余额,或者从(2009年1月3日)第一笔交易的所有交易记录。虽然任何人都可以检查钱包的余额,但这些钱包的所有者大多是未知的。比如一个钱包里有6.9万个比特币,截稿时价值约5亿美元。这个钱包在2015年4月用过一次,之后再也没有交易过。

(校对注:这部分其实没有回答:“谁决定规则”这个问题只能大致解释“该技术可以根据现有规则实现”。公链治理是一个复杂的问题,超出了本文需要解释的范围。)

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

密码货币本质上是比特币的变体。绝大多数加密货币是根据自己的区块链协议建立的,遵循不同于比特币的规则。比特币应该被归类为一种货币,也就是说,它显然具有货币功能。门罗币也是一种具有相同功能的加密货币,但其区块链协议增加了一些规则来增强隐私(增加交易可追溯性的难度)。

然而,区块链发行的资产可以被赋予许多不同的用途,这是由发行人决定的。这样发行的资产通常被称为“代币”。这些代币可以给所有人一些权利,如赌博许可证、社交媒体渠道、水电等。所有这些资产交易都记录在不同的区块链上,并可以通过货币安全等交易所进行在线交易。

代币实际上是一种新型的互联网货币,可能会影响一些行业,其中一个典型的例子就是股市。未来,公司股份等产权很可能以代币的形式存储在区块链中。区块链不仅以代币的形式代表实物价值,还可以安全记录病历、身份、历史记录、纳税记录等数据。这就是区块链技术的伟大之处,更不用说区块链的另一个重要特征:分散化。

以上是区块链小白入门:7步入门区块链的详细内容。有关7步入门区块链的更多信息,请关注脚本之家的其他相关文章!

投资有风险,进入市场必须谨慎,以上内容仅供参考。

相关推荐
数字货币量化交易平台有哪些?
2023-08-26

数字货币量化交易平台有哪些?

数字货币量化交易平台是一种基于算法和自动化交易策略的平台,它能帮助投资者进行数字货币的量化交易,量化交易是一种利用计算机算法进行交易决策和执行的交易策略,这些平...

EMC2是什么币?EMC2/锿币详细介绍
2023-08-24

EMC2是什么币?EMC2/锿币详细介绍

EMC2币的英文全称是Einsteinium,它的中文名是锿币,它是以讴歌公共服务而诞生的代币。Einsteinium这一项目的主要目的就是促进慈善的发展,因为...