区块链区块是如何运作的?
区块链是一种账本,用于记录交易。与使用冗长的列表或数据库来记录交易不同,区块链将这些交易放入区块中,并将这些区块链接在一起形成一条链。
虽然所有区块链都采用这种结构,但它们使用不同的方法来达成交易有效性的共识。本节将重点介绍区块链技术,特别是比特币区块,比特币使用工作量证明(PoW)作为共识机制来决定哪些区块有效。
比特币区块链使用哈希技术来存储和验证区块中的数据。哈希是指使用加密算法对每个元素进行加密。加密技术广泛应用于加密货币区块链,因此得名“加密”。
比特币使用 SHA-256 加密,根据特定输入生成十六进制(字母和数字)字符串。改变输入,输出也会改变。
SHA-256 示例
- 输入:Alice 向 Bob 发送 1 个比特币。
- 输出:c248337fa9b6d96c76ec3b7c5584e4190f614dca39d8441e351a7e0a1142a47b
- 输入:Alice 向 Bob 发送 0.1 个比特币。
- 输出:51ce05326bd1da23bd73ccc17bd1f5ca04d377178ee6496e1d2e5ca67fc9e010
在上面的例子中,我们只更改了一个字符,即在交易中添加了一个小数点。结果生成的哈希值完全改变了。在比特币区块链上,Alice 和 Bob 都使用钱包地址作为身份标识来验证交易。这保证了一定的隐私性。在比特币挖矿过程中,每笔交易都会生成一个哈希值。这些交易哈希值会被两两配对并再次哈希,直到生成一个包含所有交易哈希值的哈希值,称为默克尔根或 Tx_Root。
让我们来看一个简单的比特币区块链协议示例以及比特币区块的关键要素。
比特币区块链示例
比特币在整个过程中都使用了哈希算法。让我们用一个简化的图表来探讨一下区块 11 以及它与区块 10 和 12 之间的关系。

在图的底部,您可以看到各个交易。这些交易首先被单独哈希,然后两两配对,最后再次进行哈希运算。最终,所有哈希后的交易对再次进行哈希运算,生成一个称为默克尔根的哈希值。
默克尔根包含区块中所有交易的哈希值。想象一下,成千上万笔交易被压缩成一个字符串。
这是比特币区块 863,507的默克尔根,其中包含超过 5,000 笔交易:
3e8a2e9955fc098da95338502111906a28c94ddef6183ac6e13939f1b3e79d46
让我们来看一下上面所示模块中的基本元素。
- 前一个区块哈希:每个区块都通过在新区块中使用前一个区块的哈希值链接到前一个区块。
- 时间戳:每个比特币区块都包含一个 Unix 时间戳,这使得攻击比特币区块链更加困难。这个时间戳提高了区块链的安全性。
- Tx_Root(默克尔根):默克尔根是区块中所有交易的加密值。
- 随机数:随机数(仅使用一次的数字)是挖矿过程中至关重要的一部分。比特币的工作量证明共识机制会基于所有区块元素以及随机数来求解哈希值。
前一个区块的哈希值将各个区块连接起来,形成一条链。如果任何一个区块中的任何元素发生改变,后续的区块都将失效。攻击比特币区块链需要挖出你想修改的区块以及所有后续区块——而且速度必须快于网络其他部分生成有效区块的速度。这种结构和分布式账本,再加上遍布全球的矿工网络,使得比特币网络极其安全。
区块在交易中扮演什么角色?
区块是交易的容器,同时也是整个区块链网络中的连接点。一个区块的哈希值会成为下一个区块的一部分。
以下列表显示了比特币区块 863,508的前五笔交易,该区块共包含 3,857 笔交易。矿工挖出该区块获得了 3.265 个比特币。

像 Blockchain.com 这样的比特币区块浏览器允许任何人搜索和验证任何公共区块链中任何区块内的交易。
然而,第三方工具仍然需要信任。虽然这些工具很可能准确,但要完全避免数据造假,唯一的方法是运行比特币节点。比特币社区的许多成员都运行着自己的节点,这些节点存储着区块链的副本。即使是像树莓派这样简单的设备也能运行节点,让任何人都能查询区块链并验证任何区块中的交易。
比特币的区块结构允许通过钱包地址或交易 ID 进行搜索。
区块大小如何影响交易速度?
比特币将区块大小限制为 1 MB。这一限制自比特币诞生之初就已存在,它限制了单个区块内可存储的交易数量。然而,1 MB 的限制并非直接影响交易速度,而是更多地影响交易成本。让我们来探究一下其中的原理。
比特币挖矿难度会根据网络哈希率进行调整。目标是平均每十分钟挖出一个新区块。区块大小不会影响网络速度,网络依然能像时钟一样精准地每十分钟挖出一个新区块。然而,区块大小的限制确实会增加区块竞争,进而导致更高的交易费用。
手续费较低的交易可能需要在内存池中等待一段时间,直到竞争减弱,届时才有可能被矿工处理。然而,大多数比特币钱包会根据当前的网络需求报价。用户在看到报价后,可以选择支付当前手续费或等待。
2015年至2017年间,比特币社区就增加比特币区块大小的提案展开了辩论。最终,小区块支持者占了上风,比特币的区块大小保持不变。然而,在2017年,比特币启用了隔离见证(SegWit),该协议通过隔离签名和脚本,允许每个区块包含更多交易。
比特币区块存储在哪里?
比特币区块存储在全球各地的计算机上,这些计算机被称为节点。截至撰写本文时,已有超过 19,000 个比特币节点可访问,估计总数约为 56,000 个节点。每个完整节点存储着区块链的完整副本。修剪后的完整节点会“修剪”较旧的区块以节省磁盘空间。然而,这些修剪后的节点仍然保存着所有当前的交易数据。挖矿节点可以是完整节点,也可以是轻节点,后者仅存档区块头以节省空间。
比特币对区块链用户最具吸引力的特性之一是区块链数据的全球分布,这使其具有去中心化的特点。没有任何单一实体控制数据。相反,如果同时挖出多个区块,节点会自动选择“工作量”最大的区块链分叉。
比特币区块和挖矿
比特币网络添加新区块的方式称为比特币挖矿。由于涉及大量计算,比特币挖矿类似于淘金。具体来说,就是运行计算程序来找到符合条件的哈希值,从而挖出一个新的区块。
矿工从内存池(mempool)中提取交易,内存池是已广播到网络但尚未被打包进区块的交易的等待区域。这些待处理的交易会被进行哈希运算、配对,然后再进行哈希运算,最终得到一个称为默克尔根的加密哈希值。矿工还会对其他信息进行哈希运算,例如前一个区块的哈希值。最后,矿工使用随机数(nonce)来寻找一个符合当前难度级别要求的哈希值,从而创建一个新区块。
区块 865,524
- 随机数: 3,019,093,434
- 哈希值: 0000000000000000000082b23dedcfed7ceeec4bbc87b9fa664c5fda5efc4381
区块 863,525
- 随机数: 1,819,843,672
- 哈希值: 0000000000000000000082b23dedcfed7ceeec4bbc87b9fa664c5fda5efc4381
这两个区块的挖矿难度相同,都要求矿工找到一个前导零数量最少的哈希值。比特币挖矿难度会根据网络算力的变化而变化。难度每2016个区块(大约两周)自动调整一次。
比特币区块奖励是如何产生的?
比特币协议会奖励矿工挖出新区块,并向其发放新的比特币。目前,网络为每个新区块生成 3.125 个比特币。这个奖励金额有时被称为区块补贴,最初在 2009 年为 50 个比特币。每挖出 21 万个区块,协议就会将挖矿奖励减半,这一事件被称为比特币减半,备受关注。
比特币将持续生成新的比特币,直至总供应量达到 2100 万枚,预计这将在 2140 年实现。区块奖励和总供应量由软件控制,除非全球节点运营商网络选择安装使用不同限制的比特币核心软件版本,否则无法更改。如此剧烈地改变比特币会损害矿工和节点运营商的经济利益,因此协议的这一方面不太可能发生改变。
比特币区块奖励消失后会发生什么?
除了区块奖励外,比特币矿工还能获得支付给网络的费用。例如,如果 Alice 想给 Bob 发送一个比特币,她需要支付一笔网络费用才能使用比特币网络。这笔费用激励着矿工继续挖矿。即使最后一个比特币被挖出,费用仍然能为矿工提供收入来源。
例如,目前发送比特币的费用为 0.72 美元,但该费用会根据网络需求和比特币本身的价格而波动。2024 年 4 月,部分比特币交易费用曾短暂飙升至 100 美元以上。
交易手续费不会因交易金额而改变,因此发送 1 聪(比特币的最小单位)和发送 100 个比特币的费用相同。许多人预计比特币价格将继续上涨,即使挖矿区块奖励随着时间推移而减少,挖矿仍然可行。
交易手续费通常约占区块补贴的 4%。然而,由于交易手续费会根据网络需求而变化,因此这个比例会波动。2024 年 4 月,交易手续费飙升,比特币手续费一度超过区块补贴的 300%。
此外,比特币网络会根据哈希率调整挖矿难度。如果由于收益降低导致哈希率下降,挖矿难度也会降低,从而激励矿工回归。挖矿成本随着挖矿难度的降低而降低。
结论
那么,什么是比特币区块?它们在比特币区块链网络中扮演什么角色?比特币区块充当比特币网络上交易的容器,每个区块都链接到前一个区块,形成一条链。
矿工通过解决需要强大计算能力的算法难题来生成新的区块。这个过程被称为工作量证明。比特币网络随后会接受“工作量”最多的链作为有效链。添加到链中的区块充当着不可篡改的交易账本。
常见问题解答
什么是比特币区块?
比特币区块充当比特币网络交易的容器。这些区块与前一个区块和后一个区块链接起来,形成一条不可中断的链。
比特币区块的持续时间是多久?
比特币区块将永久保存。你仍然可以查看2009年挖出的第一批比特币区块。只要有节点运营商存储区块链副本,有矿工添加新区块,比特币网络就会一直运行下去。
挖出一个比特币区块会发生什么?
挖出一个比特币区块会将一个新区块添加到比特币区块链中。这相当于对一笔交易的首次确认。每个新区块的添加都会对之前的区块进行额外的确认。
如何解决比特币区块?
挖出一个比特币区块需要多个信息位,所有这些信息都会使用 SHA-256 算法进行哈希运算。一个名为 nonce 的变量使得这个过程变成一个猜谜游戏,矿工需要生成大量的哈希值才能找到一个符合条件的哈希值来挖出一个新的区块。
当前比特币区块奖励是多少?
目前的比特币区块奖励(也称区块补贴)为 3.125 个比特币。挖出新区块的矿工还会获得区块内交易的网络手续费。
还剩下多少个比特币区块?
比特币区块可以无限期地持续生成。只要有矿工和节点,比特币就会继续运行。截至撰写本文时,已挖出 19,761,015 个比特币。比特币的最大供应量为 2100 万枚,这意味着还有 1,238,985 个比特币尚未被挖出。一旦所有比特币都投入流通,网络费用将继续激励矿工挖出更多区块。
比特币挖矿中的区块是什么?
区块是比特币挖矿的产物。矿工从内存池中收集交易信息,并将这些交易信息包含在他们的哈希值中。哈希值是通过算法猜测得出的一个有效值。区块包含比特币交易信息,每个区块都与前一个和后一个区块链接在一起,形成一条不可中断的链。

