知识库详情
知识库

以“词条释义”的形式对比特币区块链技术中经常涉及的术语及基本概念进行专业化的阐释和解读。

创世纪升级
返回上级
BSV区块链编辑 2022-04-14 18:01 293

创世纪升级是BSV(Bitcoin SV)网络上的挖矿客户端的一次重大更新。创世纪升级从区块高度为620538的区块开始生效,该高度的区块时间戳为2020年2月4日世界标准时间01:35:06。

该次升级恢复了过去历次比特币软件升级时修改的诸多比特币协议,还移除了大多数基于共识规则的限制,取而代之的是矿工用可自行配置的设置,这样就赋予了节点运营商更多自主权,让他们可以根据自己的需求来进行设置。

升级回顾:当一笔特殊的交易(点击此处查询该交易)被打包在了高度为620539的区块中时,创世纪升级就此被激活(BSV网络确定已升级)。因为这笔交易使用的脚本在创世纪升级前会被认为违反协议规则,应该被运行BSV节点客户端的网络节点拒绝;而此刻它被纳入了区块并被网络接受,这意味着网络大多数节点已完成创世纪升级。

可以在此处找到有关创世纪升级的更多详细信息,并在此处提供完整的技术变更节细内容。

 

区块共识规则

以下共识规则适用于创世纪激活后网络中生成的区块。

  • 区块体积(或称为区块大小):过去区块的最大体积限制为特定字节数,而现在的共识规则已改为节点可配置区块大小的上限。区块体积指的是区块头与区块中所有包含的交易的字节数总量。矿工们将会对区块体积的上限值达成共识并手动对这个值进行配置
  • 每MB的区块空间中CheckSig操作次数上限:限制每兆字节区块空间中的CheckSig 操作次数的共识规则被移除。

 

交易共识规则

以下共识规则适用于创世纪激活后区块内包含的交易。

  • 交易体积(也称交易大小)上限:交易体积指的是交易的序列化数据字节量。目前交易体积最大为 1GB(1,000,000,000 字节),预计未来将取消此限制。
  • 每笔交易的CheckSig操作次数上限:限制每笔交易中的CheckSig操作次数的共识规则已被移除。
  • nLockTime 和nSequence:创世纪升级激活后,交易的nLockTime 字段和交易输入的nSequence 字段的功能恢复回其原始用途。此处定义的规则仅适用于创世纪激活后确认的交易。

 

脚本语言规则

以下为创世纪升级后脚本语言规则的更改。

比特币脚本是用于锁定和解锁交易输出的编程语言。更多信息请访问:高级比特币脚本。以下定义的规则适用于创世纪激活后创建的交易输出的锁定和解锁脚本。

OP_RETURN功能

OP_RETURN 操作的功能正在恢复。OP_RETURN将导致脚本终止,脚本的有效性由栈顶项的值决定。(前往OP_RETURN页面了解更多。)

数据类型

比特币脚本中的所有数据项都是序列数据。一些操作将涉及的参数解析为数值或布尔值,并要求参数满足关于数据类型的要求。某些操作会在堆栈上生成有效的、格式为数值或布尔值的项。

比特币脚本正式语法

比特币脚本有正式语法的定义。更多信息请访问比特币脚本中使用的操作码页面。

  • 脚本共识规则的有效性:对于一个交易来说,它的每个输入的锁定和解锁脚本必须形如上述定义,即必须在语法上是有效的。
  • 当解锁脚本中只有PUSHDATA操作码的共识规则:在创世纪激活后,像正式语法定义的一样,交易输入中使用的解锁脚本可能只有PUSHDATA 操作码。与本节中描述的其它脚本变更不同的是,对于这种情况,无论花费的 UTXO 的高度是多少,此共识规则都会针对在创世纪激活后在区块中确认或将确认的所有交易输入生效。此规则是上述脚本一致性规则有效性的子集,由于激活条件不同而被单独提出。

共识规则替换

这些共识规则提供的功能现在包含在堆栈内存使用共识规则中。

  • 最大交易体积共识规则也涵盖功能。

共识规则变更

 弃用的脚本

  • P2SH、OP_CHECKLOCKTIMEVERIFY和OP_CHECKSEQUENCEVERIFY:创世纪升级正在剔除了P2SH的功能,并且若输出中存在P2SH脚本模板,交易将被视作无效。操作码恢复为没有任何效果的 NOPs。
  • 禁用的操作共识规则:OP_2MUL、OP_2DIV、OP_VERIF和OP_VERNOTIF。但如果它们已存在于未执行的脚本中,则脚本仍有可能会执行成功。

 

标准本地策略

策略(Policies)是由软件操作员配置的设置。这些设置通常是软件实现所必需的。

策略决定了软件将在 P2P 网络中传播哪些交易,以及选择哪些交易打包在区块中。但是,策略不是比特币规则或共识规则,因此它不用于验证区块的有效性,也不用于验证区块内交易的有效性。

标准本地交易策略

  • 最大的可接受交易体积策略:它用于配置软件在 P2P 网络中传播或打包交易的体积上限。
  • 交易评估超时:它定义了在终止评估和拒绝交易之前允许软件评估交易的最长时间。此设置始终使用1秒作为单位,默认值为1秒。

标准本地脚本语言策略

  • 数值长度:它定义了被有效数值的最大字节长度,默认值为 250,000 字节。
  • 堆栈内存使用量:它定义了可在堆栈上使用的内存量。此策略是根据堆栈和替代堆栈使用的内存总和进行评估的。

标准本地 P2P 网络策略

  • 非标准交易的传播:创世纪激活后,此策略的默认非标准交易将通过P2P网络进行传播。在创世纪激活之前,此策略的默认设置是P2P 网络不传播非标准交易。但是这些交易仍要遵循最大可接受交易体积的策略。
网络
创世纪升级
mAPI(商户用API)
比特币测试网
矿工ID(Miner ID)
点对点协议
中本聪愿景
交易池