主页 > imtokenapp下载安装 > 比特币如何实现去中心化——区块链技术原理介绍

比特币如何实现去中心化——区块链技术原理介绍

imtokenapp下载安装 2023-01-18 15:25:07

比特币最大的特点就是去中心化,而去中心化带来的最大问题就是“共识问题”,更具体的问题是“双花问题(double consumption)”,而这些问题比特币都是要解决的通过区块链技术解决问题,本文将主要围绕这些问题来解释什么是区块链技术。由于区块链本身的复杂性,本文不会先定义区块链,而是会在文末给出百度百科的定义,然后希望读者先通过比特币中区块链技术的介绍在这篇文章中,然后了解该地区。区块链的定义。

所谓去中心化是指货币支付直接点对点进行,不经过中心机构,但仔细想想,这里有一个很大的问题,就是如何保证这笔付款的可靠性。更具体地说,收款人如何确保付款人的付款是有效的,如何相信付款人已经实际支付了交易,从而增加了收款人账户的有效金额?如何在去中心化的前提下避免“双花问题”?这些问题的难点在于支付交易发生在去中心化的前提下,这也是区块链技术不理解的关键。

我们可以先看看在中央机构存在的情况下如何解决这些问题。事实上,当有中央机构时,这些问题就很简单了。中央机构之所以称为中央机构,是因为所有的支付交易都必须首先由中央机构处理。在线支付时代,这个中央机构的本质其实就是中央数据库。所有交易指令发出后,基于中央数据库进行分析处理后发出。因为中央数据库的存在以及我们对这个中央数据库的信任,所以这个交易的有效性是由中央数据库决定的。数据库保证,因此,在一个中心数据库的基础上,不存在共识问题,因为这个中心数据库是共识,所以不存在双花问题,因为每个人的账户余额和交易记录都存储在中心数据库中。中心数据库只有一个(这里指的是内容,不是物理意义上的,因为物理意义上必须有多个数据库作为安全备份,但是所有备份的数据内容是一致的),这样,就有了一笔钱花完之后是不可能再花的,因为只有一个数据库。钱花完后,会相应扣除余额,再次花钱会被系统拒绝。也许读者读到这里会觉得有些奇怪,因为我们的认知停留在传统的支付结构上。想象一下,如果没有这样的中心数据库,但是有很多数据库,而这些数据库的内容不一致,那么支付交易是基于哪个数据库的呢?既然是去中心化的,每个数据库都必须作为交易验证的依据,那么如果数据库不一致,是不是就有双花的可能呢?因为如果数据库不一致,一个人的消费可能会记录在A数据库中,但可能没有记录在B数据库中,那么这个人可能会根据B的验证在交易上再次付款,这样就形成了双花。所以很明显,去中心化带来的最大、最本质的问题就是如何保持这些数据库的一致性,也就是所谓的“共识问题”。

比特币技术原理

在比特币网络中,去中心化的关键是分布式账本。我们可以将这些分布式账本视为分布在不同节点上的数据库,存储比特币网络的交易记录。那么如何保证这些分布式账本的一致性是核心问题。下面,我们将详细介绍比特币网络如何通过其区块链技术实现分布式账本一致性。

比特币网络中的交易完全基于区块链中记录的历史交易。当我们掌握了一个账户的所有历史交易记录后,就可以计算出该账户的余额。比特币就是利用历史交易记录来判断账户余额,从而判断交易是否有效。该区块链将存储在所有具有验证功能的节点中。当您的计算机要发送交易时,该交易将自动广播到比特币网络中的其他节点。当具有验证功能的节点收到此交易时,该交易将被验证,而该验证是基于其节点中存储的区块链的历史交易记录。本次验证将验证交易的数字签名是否与原始交易内容一致,公钥是否与付款人对应,付款人余额是否充足等。当交易验证为有效时,该交易将被打包进入区块。但只有当包含交易的区块被添加到区块链时,交易才会被确认。一般来说,交易确认是支付方认可交易的必要条件,因为零确认交易风险很大。在将块添加到区块链之前,需要进行额外的工作以找到随机数。只有找到随机数,才能成功将区块添加到区块链末尾。这个额外的工作是解决比特币网络共识问题的关键,下面会详细解释。这个过程也称为挖矿。

比特币技术原理

以上是关于比特币网络中一笔交易从被发送到被添加到区块链的过程。在这个过程中,最大的问题是分布式账本。一致性问题,我们之前也提到过,账本的不一致会导致双花,这是一个很大的bug。在比特币中,一致性是通过工作量证明(PoW-Proof of Work)等共识机制实现的。 ,这就是上面提到的“额外工作”。具体来说,矿工打包一个区块后,需要强制完成这样一个找随机数的工作比特币技术原理,然后才能将该区块加入区块链以获得奖励。这个额外工作的作用是为区块链在全网节点中的复制和传播提供足够的时间,因为当上一个区块被添加到区块链时,第一个增长的区块链只有成功添加的区块链。堵塞。在矿工节点上,较长的区块链会在全网复制传播,使全网节点存储的区块链内容保持一致。在这里我们可以找到实现一致性的最关键的地方。是“时间”,那么如何给比特币网络提供时间——在这段时间里,只允许最长的区块链在全网的节点上传播,不进行加块工作。这个额外的工作是为了给区块链传播提供足够的时间,所以比特币系统会将完成这个额外工作的时间控制在每次10分钟左右,而这10分钟是用来传播区块链的。其实就是用来实现全网节点账本的一致性。

现在我们知道为什么比特币需要挖矿了。事实上,这种挖矿是比特币实现去中心化的最重要环节之一。随着越来越多的人加入挖矿,整个网络的算力不断提升。比特币会调整这项额外工作的难度,以保持时间相对稳定在 10 分钟左右。但需要注意的是,10分钟内完成一项工作只是统计意义上的,不是绝对的,也就是说,有可能两个或多个节点在10分钟内成功完成工作,并把各自的区块添加进去到区块链。在这种情况下,比特币网络允许同时添加这两个区块,即比特币网络同时识别这两个区块,那么区块链就有了分叉。 ,如图1所示。

比特币技术原理

(图一,图片来自群比俱乐部)

比特币技术原理

分叉后,分叉中的区块的交易记录均由区块链确认。十分钟后,这样一个分叉的区块链将被复制并传播到每个相应的节点。接下来,不同的矿工可能会根据不同的分叉链进行操作。挖矿,看接下来10分钟新区块添加了哪个分支链,如果接下来10分钟内只有一条分支链添加了新区块,那么比特币网络只会识别最长的分支链,较短的分叉链将被比特币系统抛弃;如果在接下来的十分钟内产生了两个新区块,形成了一个新的分叉,或者两条分叉链同时增长,那么比特币网络也会识别对应的分支,直到产生最长的分支,此时其他短枝被丢弃,依此类推。当其他短分叉被放弃时,这些分叉区块中包含的交易被重新确认为未确认交易,等待被重新添加到比特币网络中的待确认区块中。想想看,如果一笔交易被确认一次,收款人就认可了这笔交易,那么还是有双花的可能。如何理解?比如A现在实际上只有10个比特币,现在A向B支付了10个比特币,支付已经确认。如果 B 看到交易已经被区块链确认,它会识别它。如果交易完成并提供了相应的服务,那么如果该交易被加入到分叉链中,而另一条分叉链中不包含A支付10比特币给B的交易记录,那么A可以向C发送另一笔交易一笔支付 10 个比特币的交易,如果该交易被打包添加到另一个分叉链,因为另一个分叉链不包含支付给 B 的交易记录,所以可以成功打包并添加到另一个分叉链上面,这个方式,相当于两条支链分别包含“A向B支付10比特币”和“A向C支付10比特币”等交易记录。如果交易被区块链的一次确认识别,那么A的10个比特币被花费了两次,作为20个比特币使用,这也形成了双花问题。

但是比特币技术原理,由于最终只会识别一个分支链,所以 B 和 C 之间的所有交易将始终被再次视为未确认交易,但由于账户 A 只有 10 个比特币,因此再次被视为该交易未经确认的交易将不再被区块链识别,因为A的余额已经不足,那么B和C之间肯定会损失10个比特币。当然,10分钟内产生两个新块的概率很小,而这种情况连续发生的概率就更小了。一般情况下,当一笔交易被 6 确认时,即该区块后面跟着另一个区块。 5个区块连接后,可以认为这条链是最长的链,会被区块链永久确认,因为连续6次在两条分叉链上产生新区块的概率几乎为0,此时时间,收款人可以安全地识别付款,这就是为什么人们常说在比特币支付中,一笔付款交易需要经过6个确认,收款人才能完全放心。

比特币技术原理

(图2,图片来自群蜂俱乐部)

最后说一下区块链中交易记录的另一个特点——不可篡改。事实上,这并不是一成不变的。事实上,恶意节点可以篡改区块链上的交易记录,但这种篡改仅限于删除其他人的交易记录或添加自己的交易记录,而不能添加其他人的交易记录。 ,除非有别人的密钥,窃取别人的密钥在区块链中是不考虑的。但是为什么说不能篡改呢?这是因为一旦一个区块的内容被篡改,该区块的哈希值就会发生变化。由于区块之间的连接是通过前后区块的哈希值的一致性验证来实现的,所以这里的细节无需赘述,但你需要知道的是,一旦一个区块被篡改与,块和以下块都将被打破。此时恶意节点上的区块链会变成短链,这是比特币系统无法识别的。当比特币系统检测到一条长链时,这个节点上的短链就没有用了。除非,恶意节点故意将自己孤立起来,使其无法检测到其他节点上的长链,然后恶意节点默默地按照自己的短链继续挖矿,不断增加新的区块,直到自己的链成为比特中最长的链比特币网络,然后让自己的节点不被孤立,从而将自己的长链传播到整个比特币网络,使自己的长链成为比特币网络中唯一被认可的区块链。这个想法很好,但实际上,除非恶意节点控制了全网51%以上的算力,否则恶意节点上链的增长速度很可能会超过比特币网络上的链,并且一个人控制整个网络。 51% 的计算能力发生的概率是多少?随着算力的不断增加,概率会越来越小,但是如果矿工数量减少,算力下降,51%的算力也不是不可能,但是这样做的成本会非常大,而且只是一个概率。这就是所谓的 51% 攻击。

以上基本就是对比特币中区块链技术的描述。现在我们可以在百度百科中给出区块链的定义:区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新应用模式。区块链(Blockchain)是比特币的一个重要概念。它本质上是一个非中间数据库。同时,作为比特币的底层技术,它是使用密码学方法生成的一系列数据块。区块包含比特币网络交易的信息,用于验证其信息的有效性(防伪)并生成下一个区块。希望通过本文的描述,让读者对这个定义有更好的理解和理解。