主页 > token.im钱包下载 > 比特币原理介绍

比特币原理介绍

token.im钱包下载 2023-05-27 08:03:42

中本聪发明比特币时解决了什么问题?看比特币白皮书第一句话

本文提出了一种完全通过点对点技术实现的电子现金系统,使在线支付可以由一方直接发起,支付给另一方,无需经过中间环节。任何金融机构。

比特币实际上是一种通过点对点技术实现的电子现金比特币介绍,其发行不依赖于任何金融机构。它是如何做到的?技术手段。

在比特币中可以挖掘到许多技术点,这里有几个: 大规模数据完整性。 PoW(Proof of Work)实现了一个公平、去中心化的网络区块链结构,是数据不变性的基础。 UTXO模型,无账户系统,只保存交易输入输出记录,使用脚本锁定交易输入输出。

前三个是前人研究的成果,不是中本聪的第一个创造,但中本聪能够结合这些理论首先创造出可靠的电子现金。这就是高手和专家的区别。

默克尔树

在比特币网络中,默克尔树用于生成区块中所有交易的数字指纹,并提供了一种检查区块中是否存在交易的有效方法。

“默克尔哈希树”是一种树状数据结构(二叉或多叉),树状结构的所有节点都是哈希值。如下图

默克尔树

Merkle 树是自下而上构建的。叶节点成对分组后,将两个哈希值组合后,生成一个新的哈希值,形成上层树节点,整个过程不断重复,直到只有一个树节点,即所谓的根节点。根节点的hash值是整个交易集的唯一标识,存储在区块头信息中,在PoW过程中使用。

默克尔树广泛用于简单支付验证 (SPV) SPV 节点。与全节点相比,SPV 节点的数据量要小得多。 SPV 节点不存储所有交易也不下载整个块,只下载块头。他们使用默克尔路径来验证区块中是否存在交易,而无需下载区块中的所有交易。

工作证明 (PoW)

工作量证明是指通过高效计算获得的一小部分数据。这个网站anders.com/blockchain/block.html可以展示PoW算法的过程。

图片

如上图,在Data框中随意输入一些数据,点击Mine,网站会开始做hash运算,直到结果满足一定条件,比如这里的前四位为0,这个过程称为挖矿挖矿是一个反复计算区块头的哈希值并不断修改nonce参数直到匹配哈希值的过程。在比特币网络中,本次计算的哈希结果会根据网络当前的算力动态调整,保证每10分钟出块一次。

区块链结构

区块链的基本结构:

图片

区块分为区块头和区块数据。区块头包含当前区块的哈希和前一个区块的哈希。

在anders.com/blockchain这个网站上,可以直观的展示出区块互连的过程。

图片

如上图,初始区块(第一个区块)的Prev为0,后续每个区块的prev为0。Prev为前一个区块的哈希值。

这个Hash是根据当前区块中的交易数据计算出来的。一旦区块中的任何交易发生变化,该区块的哈希值就会发生变化,并且必须重新计算每个后续区块的哈希值,才能使该区块链的数据有效。

图片

上图中,改变第一个区块的内容,输入几个字符,比如“今天”,区块的哈希值发生变化,背景色变为粉红色,表示当前链中的数据是无效的。单击“我的”按钮以重新计算哈希。第一个块的背景色变成绿色,但后面的块还是粉红色,因为第二个prev hash没有指向第一个,需要重新计算。

图片

点击第二个区块的Mine,第二个区块就ok了。

图片

然后继续第三个,以此类推,即更改区块链中任意块的值 数据和后续块必须重新工作以进行工作量证明,这非常消耗 CPU。因为比特币的共识算法是识别网络中最长的链,所以只有当算力达到全网的51%时,才能有100%的把握最终成为网络中最长的链。

需要注意的是,51%攻击可以修改的数据只能是自己地址的交易,不能修改别人地址的交易,即双重支付。每笔比特币交易都被输出地址的私钥锁定,只有私钥可以用来花费这笔交易。这就是我们下面要介绍的UTXO模型。

UTXO 模型

比特币交易的基本单位是未使用的交易输出,简称UTXO。 UTXO是一定数量的比特币货币,不能被所有者分割、锁定或记录在区块链中,并被全网认可为货币单位。

当用户接受比特币时,金额作为 UTXO 记录在区块链中。这有点类似于复制账本,如下图:

图片

一笔交易将包含一个或多个输入以及一个到多个输出。更详细的介绍看这里比特币介绍,输入本书中的代码即可了解UTXO模型。

脚本支付,多重签名,每笔交易输出都有一把锁,只有输出的私钥才能打开。 Buterin 受此启发:在区块链上运行智能合约,然后就是以太坊。

参考:

区块链中文翻译的傻瓜

掌握比特币(第二版)

区块链发展历程