内容
- 区块链账本
- 点对点网络节点
- 工作量证明挖矿:比特币的共识机制
- 块的剖析
- 比特币减半
- 比特币分叉
区块链账本
比特币网络维护着一个分布式公共账本,记录了所有比特币的所有权,比特币是网络的原生数字资产代币。新交易被组合到“区块”中,并按顺序添加到网络正在进行的区块链中——因此术语“区块链”。比特币区块链包含自成立以来的每个区块,一直延伸到第一个区块,称为“创世区块(genesis block)”。
在比特币区块链上开采的第一个区块称为创世区块(genesis block),由比特币的创造者中本聪于 2009 年 1 月 3 日开采。中本聪还在创世区块中编码了一条消息,上面写着:“泰晤士报 03/Jan/2009 财政大臣即将对银行进行第二次救助。” 这是对 2007 年至 2009 年全球金融危机的参考。据推测,创建比特币是为了避免对全球银行系统的剥削。
区块链的相同副本托管在世界各地运行比特币软件的计算机上。这些计算机被称为“节点(node)”。
在区块链技术中,节点是连接到区块链网络的计算机,该网络具有维护分布式系统所必需的多种目的。一些节点验证交易,而其他节点观察区块链上的活动。节点网络结构也是维护区块链网络安全的一个关键方面。
这种设计确保没有单个实体控制区块链或管理它的协议。比特币的分布式特性使其具有去中心化性,并且能够抵抗任何政府或中央机构的控制(或关闭)。从理论上讲,所有维护区块链完整副本的节点(称为“完整节点”)都需要销毁才能擦除比特币区块链。这不是一项小任务,因为太空中甚至有完整的节点漂浮在地球上空。
被称为“矿工”的节点用于验证比特币交易和保护区块链分类账。在传统银行系统中,当你从银行账户向另一个银行账户汇款时,银行充当受信任的中介机构,从一个账户中扣除资金并将其添加到另一个账户中。有了比特币,中心化的中介被一个不可信的矿工网络所取代。我们将很快解释这是如何工作的。
被称为“矿工”的节点用于验证比特币交易和保护区块链分类账。在传统银行系统中,当你从银行账户向另一个银行账户汇款时,银行充当受信任的中介机构,从一个账户中扣除资金并将其添加到另一个账户中。有了比特币,中心化的中介被一个不可信的矿工网络所取代。我们将很快解释这是如何工作的。
点对点网络节点
节点是基于区块链的协议的重要组成部分,也是去中心化、安全和透明的基石。比特币网络上有几种类型的节点。当用户连接到比特币网络以发送或接收比特币时,她的计算机充当节点。大多数节点被称为轻节点,它们通常只下载处理和验证新交易所需的较新的区块链数据。这种最小的方法使轻节点快速有效地运行,而无需太多计算或存储资源。
相比之下,完整节点实时包含区块链的完整副本。他们下载自创世区块以来网络上发生过的每一个交易区块——而不仅仅是最近的交易区块。只要完整的区块链存在于至少一个完整节点上,就会有历史上所有比特币和比特币交易的记录。
最后,还有称为矿工的节点,他们将新交易的区块写入区块链,并在此过程中铸造新的比特币。
工作量证明挖矿:比特币的共识机制
矿工们竞相解决一个计算密集型的工作量证明难题。“获胜”的矿工将获得一定数量的比特币(加上网络交易费用),称为“区块奖励”。一个矿工大约每 10 分钟就会赢得一次区块奖励,而不管矿工共同为网络带来多少处理能力。更多的处理能力只会增加矿工获胜的机会;它不会加速竞争。矿工不能加速或以其他方式改变比特币的确定性供应计划。
这个谜题要求矿工通过获取网络中所有新的和未经确认的交易以及来自前一个区块的信息(即它的“区块头”)来创建一个新区块,并使用 SHA-256 算法“散列”它们. 散列是将特定输入(在这种情况下,最近的交易数据和区块头)输入算法以生成特定输出的过程。矿工必须接受此输入并猜测一个称为“随机数”的数字,当将其一起输入 SHA-256 时,将生成满足比特币协议设置的输出阈值的输出。挖掘归结为尽快猜测随机数。如果矿工达到指定的输出阈值,她将向网络上的其他矿工广播她的新块(包括她的随机数),以便他们可以自己散列并验证她的解决方案。如果大多数矿工(51% 或更多)就她的解决方案达成共识,她将被允许将她的新区块添加到区块链并获得区块奖励。然后比赛重新开始。
这是重要的部分:如果任何交易数据被更改了即使是最小的数量(比如“satoshi”,即 0.00000001 BTC),哈希输出也会改变。结果,大多数矿工将无法就任何使用篡改交易数据解决难题的随机数达成共识。这可以防止不诚实的矿工获胜,并鼓励矿工谨慎地使用他们宝贵的计算资源。
比特币挖矿是一种优雅的设计,具有验证交易和铸造新比特币的双重目的。但还有更多……因为采矿需要计算机处理能力(即能源),所以铸造比特币是有实际成本的,这给了它数字稀缺性。这模仿了现实世界的黄金生产,因为它们都需要能源来开采。但与比特币不同的是,黄金开采并不用于验证(和处理)交易。比特币挖矿两者兼而有之,这是一件美妙的事情。
块的剖析
每个比特币块的大小限制为一兆字节的数据。对于“隔离见证”(SegWit)区块,交易数据限制在 1 兆字节,而签名数据(又名见证)被隔离并限制在 3 兆字节。这将块大小保持在 1 兆字节,同时增加事务数据的块空间。
一个块包含以下信息:
块头:
- 版本号
- 前一个区块头的哈希值
- 当前区块中所有交易的默克尔树根的哈希值
- 时间戳
- 当前区块的难度目标(意味着找到目标哈希的难度)
- 随机数
每笔交易的数据:
- 版本号
- 标志(仅适用于 SegWit 交易)
- 交易输入
- 交易输出
- 见证人(仅适用于 SegWit 交易)
- 锁定时间
比特币减半
比特币有一个确定性的供应计划,将比特币的总供应量限制在 2100 万比特币(或 BTC)。如上所述,当矿工赢得区块奖励时,就会铸造新的比特币。区块奖励金额每 210,000 个区块“减半”,大约每四年发生一次。比特币减半时间表如下:
- 2009 年至 2012 年:区块奖励 = 50 BTC
- 2012 年至 2016 年:区块奖励 = 25 BTC
- 2016 年至 2020 年:区块奖励 = 12.5 BTC
- 2020 年至 2024 年:区块奖励 = 6.25 BTC
下一次减半将发生在 2024 年初,届时区块奖励减半至 3.125 BTC。随着区块奖励继续减半,它最终将接近于零,大约在 2140 年。换句话说,在 2140 年之后,将不再有新的比特币被铸造,区块奖励将仅由矿工收取的交易费用组成在网络上发送。
比特币分叉
当现有区块链分裂成两个不同的区块链时,就会发生分叉。当对并非所有节点都采用的协议进行更新时,就会发生这种情况。区块链可以经历两种类型的分叉;一个软分叉,旧节点和新节点能够读取两个区块链(兼容);和硬分叉,旧节点无法读取新区块链,反之亦然(不兼容)。硬分叉导致两个独立的区块链具有不同的原生数字资产代币,这些代币彼此独立且相互分离。
当对比特币协议进行更新时,各个节点必须确定它们是否会升级并接受新的更改。如果网络中的节点组成部分拒绝接受更改,则会导致硬分叉。比特币经历了两种分叉,包括发生在区块 661647 的比特币现金硬分叉,这是比特币和比特币现金之间的最后一个共同区块。比特币现金分叉源于比特币社区围绕区块大小的分歧。比特币现金采用 8 兆字节的块大小来增加交易吞吐量,而比特币保留 1 兆字节的块大小以促进更多的节点参与并确保去中心化。
No comments: