
本文共 1402 字,大约阅读时间需要 4 分钟。
比特币协议规则
比特币协议的规则是精确定义了比特币系统的核心运行机制。
比特币协议规则主要包含以下几类:
不可变规则被编码到比特币节点客户端中,必须严格遵循才能实现比特币规范在软件中的执行。这些规则定义了交易和区块必须遵循的格式和约束。对这些规则的改变需要引入硬分叉,可能导致区块链复制的情形出现。因为,在这种情形下,矿池试图执行改变了比特币本身性质的规则,可能会产生新的区块链,这种区块链无法被视为比特币,而是新的区块链系统。
这些规则包括:
-
交易的输入总额必须大于等于输出总额。
-
对每 210000个区块,交易费用的奖励会减半,从起始区块开始为每个区块 500000000 母本。
-
网络会自动调整交易难度,以确保平均addon时间接近 10 分钟。
-
只有基于已有区块形成的区块才是有效的。
-
区块数据库的运行必须基于时间戮的服务器验证交易输出链。
-
交易数据格式必须遵循特定的规范,包括字段大小和编码方案。
-
区块结构和区块头信息必须满足特定规范,包括字段大小和编码方式。
-
脚本语言的规则和规范,包括可用的操作码以及它们的执行结果。
以往对协议规则的强制性改变已多次导致比特币区块链复制,例如引入了 BTC 和 BCH 这两种不同的区块链。根据比特币 SV 的设计理念,已经更改过的规则应当尽量恢复原有的规则,并将其固定化,只允许在网络安全方面作出必要的更改,例如在哈希函数被告知不安全时,进行平稳过渡。
- 可变规则
-
推送数据的最大内存限制规则。
-
区块大小的最大限制规则。
-
结算交易脚本的规则,例如禁止在脚本签名中使用除推送数据以外的其他操作码。
- 本地规则
-
最低交易费规则:节点 只能接受或转发那些支付超过指定最低费用未确认交易的交易。
-
旗挡规则:规定交易输出的最小金额,节点只接受或转发金额超过该值的交易。
-
网络连接规则,例如限制进入或出发的特定 IP 地址。
- 标准政策
可变规则是节点客户端实施的共识规则,但它们并未硬编码到比特币 SV 节点客户端中。只要矿工们达成一致,就可以随时更改这些规则。矿工们若不遵守这些规则,便可能会面临其所矿的区块被网络否决的风险。
这些规则包括:
这些规则的变动需要矿工们达成共识,一般是同时调整多个参数。由于协议规则的可变性,这类变动不再需要硬分叉或预定网络升级,可通过矿工配置工具进行调整。只需各矿工达成一致就可以在指定时间调整这些规则。
值得注意的是,矿工们必须了解网络其他部分正在做什么,否则可能会针对一些被广泛采用的规则面临高延迟或无法找到有效区块的情况。
这些规则是"本地的"定义。它们适用于运行着软件的实例,不能用于验证区块或交易。例如,节点可能会根据本地规则拒绝传播一些未确认交易,如果这些交易支付的交易费低于节点设定的最低限制。
本地规则包括:
标准政策是网络中一个重要部分的本地规则,许多节点都在使用它们。这些政策被定义为通用规范,可帮助不同独立实现的软件在治理交易时保持一致。
使用标准政策的交易面临最低的网络问题。由于一些矿工可能会设定超出这些政策的本地规则,这样的矿工可能会在大规模交易面临传播延迟问题。
从技术规则文档来看,比特币协议的规则设计旨在保护网络的安全性和可扩展性。通信规则定义了交易和区块在网络中传播的方式,这也是技术研发的重点。许多计划试图改进至少used P2P 协议,从而提高网络效率及有助于解锁大规模应用的潜力。
发表评论
最新留言
关于作者
