区块链网站|NFTS BTC教学指南 很容易理解区块链是如何工作的

很容易理解区块链是如何工作的

广告位

一文轻松看懂区块链的工作原理

作者注:本文为非计算机专业朋友的科普文章,尽量避开较为专业的细节。如果你是计算机相关专业,或者对数据结构、算法、密码学有一定的了解,建议直接看文末参考资料里的三篇博文,或者更专业的资料。

区块链:去中心化分布式数据库

众所周知,比特币是一种数字货币。“区块链”是比特币的记账系统。把区块链想象成一本账本,里面记录着世界上所有的比特币交易信息。那么,区块链和传统的银行记账有什么区别呢?

这涉及到区块链的本质:区块链是一个去中心化的分布式数据库。我将逐一解释这三个关键词。

数据库:

所谓“数据库”,就是电脑上的一组表格,可以存储大量的结构化信息(可以和Excel相比,但远比Excel复杂)。比如我们去银行存款,取钱,汇款,这些交易信息都会上传到银行的数据库。

分布式:

这个数据库可以存储在银行的超级计算机上,也可以存储在多台计算机上。比如工行可能在华北、华中、华东、华南等地区都有一个服务器,每个地区的交易信息都发送到这个地区的服务器上,服务器之间通过银行内部网络连接。这就是所谓的“分布式数据库”。

权力下放:

传统的服务器,不管是不是分布式的,都有管理员。也就是说,银行内部有一个“超级用户”,可以查看所有的交易信息,可以随意添加和修改。这就是所谓的“集权”。

区块链是“分散的”。也就是说,区块链的这个数据库没有管理员。每个人都是平等的,都有查看和添加信息的权利。权力下放是区块链的基本特征。

既然每个人都有权利给区块链添加信息,那么这个“账本”岂不是乱七八糟?要理解这一点,我们需要知道什么是“块”,什么是“链”。

什么是“块”和“链”?“块”是区块链的基本组成部分。块是数据块。类比来说,区块相当于账本中的一页,记录了多项交易信息。而把这些分散在互联网各处的“页面”串成一个链条,就可以形成一个完整的“账本”。那么,“街区”是如何串成“区块链”的呢?

区块链分类账的会计原则

哈希值和防篡改性:

除了比特币交易信息,区块还包含了区块本身的一些特征信息。可以比作一页上的“页码”,但这个“页码”更复杂。最重要的“页码”是“哈希值”,这是理解区块链可靠性的关键。

所谓的“哈希值”可以理解为数据的“指纹”。签署合同时,我们有时会按手印。以后可以通过对比我们的指纹和合同上的指纹来证明合同是我们自己签的。同样,我们在网上下载一个软件,有的网站会给出安装包的哈希值(可能叫CRC或者SHA)。下载完安装包后,我们只需要用专门的工具计算出SHA值,然后和官网上给出的SHA值进行对比,就可以知道自己下载的和网站提供的是否100%一致,是否有人篡改了下载过程。

对于不同的数据,计算出的哈希值通常是不同的。如果已知数据A的哈希值为H,要伪造另一个数据B使其哈希值也为H是极其困难的,也就是说哈希值是无法伪造的,起到了“指纹”的作用。

一个块包含两种哈希值:前一个块的哈希值和这个块的哈希值。因为每个块都包含前一个块的哈希值,所以所有块依次连接成一个(逻辑)链。“前一块的哈希值”充当“页码”。——对页面进行排序。

块中包含的内容

街区连接成区块链。

如果某个块上的交易信息被恶意篡改,“该块的哈希值”就会发生变化。由于区块链中的下一个块包含“前一个块的哈希值”,因此有必要修改下一个块,以便使其仍然连接到该块。这又导致下一个块,下一个块,下一个块,下一个块。

如果您篡改了一个块,您必须修改所有后续的块。

由于区块链本身的一些机制(这个机制比较详细,这里就不讨论了),计算一个块的哈希值是极其困难的,修改多个块的哈希值更是难上加难。这样,篡改区块链中的交易信息几乎是不可能的。这确保了区块链的可靠性。

采矿:给区块链写信息的方法

挖矿:将信息写入区块链的方式“挖矿”是计算一个潜在块的哈希值,并使这个块正式加入整个区块链的过程。一个区块加入区块链后,其中包含的交易信息就可以成为现实。由于比特币设计者的一些考虑,挖掘过程需要消耗大量的时间和资源。如前所述,计算块的哈希值极其困难。难度有多大?如果比特币网络中的所有计算机都参与哈希值的计算,平均每十分钟就可以计算出一个哈希值。

从事采矿活动的人被称为“矿工”。互联网上的任何人都可以加入比特币网络,成为矿工。既然采矿需要大量的时间和资源,为什么矿工要志愿?这是因为比特币协议规定,挖掘新区块的矿工将获得比特币奖励。这是矿工挖矿的动力;因为矿工继续挖矿,比特币交易信息才能得到确认,比特币交易才能正常进行。同时,这也是增加比特币总量的唯一途径。与传统货币不同,比特币的总量不能由国家或机构人为增加,只能由挖矿奖励“自然”增加。

如何避免主链分叉?

既然挖矿会有比特币奖励,比特币交易商也会给矿工一些费用作为补偿,矿工之间必然会有很多竞争。如果两个矿工同时挖掘某个区块的下一个区块,那么谁挖了那个区块就有资格加入区块链?如果每个人都可以加入区块链,区块链就被一分为二了,那么如何才能保证区块链的“唯一性”呢?

区块链协议规定,如果一个叉子上有六个新的区块,那么它就成为区块链的“正统”;同时,其他未达到六个区块分叉的将不幸被淘汰,这些区块上的交易信息将不会被识别。这避免了区块链的分叉。由于一个区块挖完之后必须有六个新区块跟在后面,而平均每十分钟才能挖到一个新区块,这样,一个交易至少需要一个小时才能确认(写入区块链)。

矿工:我不知道该不该说喵喵。

总结一下,比特币交易的流程是怎样的?

交易无非是一个信息:“买方-1美元,卖方-1美元。”(这里涉及到一些关于非对称密码的知识,因为不是比特币独有的,所以不讨论。)当你发起比特币交易时,这些交易信息会逐渐从你的设备发送到整个比特币网络。

很多矿工为了奖励挖矿,会收集你的交易信息,想尽办法挖新块。如果一个矿工挖到一个新的区块,他会把你的交易信息写入这个区块。在那之后,他还需要挖出六个新的区块,以确保整个区块链都采用这个区块。此时,您的交易信息可以正式写入区块链并得到确认。那些矿工挖六块失败的结果将被淘汰。

这样,虽然很多矿工都在争着写你的交易信息,但最后只有一个矿工能写成功。这样可以保证你的钱不会在同一笔交易中被扣两次。

一旦一个新块正式加入区块链,这个块将同步到所有矿工的机器,新块只能跟随这个块。挖到这个区块的矿工会得到一些比特币作为奖励,这也是发行新比特币的过程。

总结以上几点:

区块链是比特币交易的可靠且唯一的账本。

区块链是一个分布式数据库,没有中心。它没有管理员,网络中的所有用户都可以平等地将新数据块写入区块链。

根据前一个块的哈希值将块连接成链。

哈希值的计算难度使得分块和区块链无法被篡改,从而保证了分块和区块链的可靠性。

只有在一个街区后面加上六个街区,才能正式加入区块链,使得区块链不分叉,保证了区块链的唯一性。

但与此同时,这也导致比特币交易至少需要一个小时才能确认,并不是即时的。

挖矿奖励是比特币唯一的发行机制,也是矿工挖矿的动力。

参考资料:

055-79000,阮一峰(下同)

《区块链入门教程》

《比特币入门教程》

想看更多这类内容?去APP store搜一下它家,每天都有小欢乐。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/btb/btbjiaoxue/35256.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部