跳转到正文
buybitcoinsmart

术语表 /节点与软件

Signet

Signet 是什么?
Signet 是一种测试网络,其区块只有经指定签名者签名后才有效,因此能让十分钟的出块节奏保持稳定,而不是忽快忽慢。

规定于 BIP-325。

Signet 以可预测性换取无需许可的挖矿。Bitcoin Core 在2021年1月发布的0.21.0版本中加入了它,此后公共默认 signet 一直以大约十分钟一个区块的节奏出块。如果您想在与主网相近的条件下试用钱包、闪电网络通道或商户结账流程,应当选择这个网络。

运作方式

Signet 在比特币常规的有效性检查之外,只增加了一项要求:区块必须带有有效签名。

BIP325 由 Karl-Johan Alm 和 Anthony Towns 撰写,定义了 signet 挑战,它就是一段比特币脚本,区块的解答必须满足这段脚本。解答附在币基交易内的区块 segwit 承诺中,因此区块格式没有任何变化,现有软件无需修改即可解析 signet 区块。工作量证明仍然会执行,但难度很低,因为决定区块何时有效的是签名,而不是算力。

由于挑战只是普通脚本,它可以是任何形式,从单个公钥到门限多重签名都可以。公共默认 signet(即只需传入 signet 选项、无需其他配置即可加入的网络)由这两位作者以1/2多重签名运营,监听端口为38333。地址沿用测试网的前缀,因此已经支持 tb1 字符串的钱包通常无需任何改动即可处理 signet。

任何人都可以启动私有 signet。传入自定义挑战脚本会创建一个独立的网络,其消息魔数由该脚本派生,这意味着两个自定义 signet 不会意外地互相通信。这正是 signet 区别于其他所有选项的特点:无需征得任何人许可,也无需购买挖矿硬件,就能得到一个真正的多参与者网络,其中有多台机器和真实的传播延迟。

在哪里会遇到它

新的共识功能在登陆主网之前,会先在 signet 上公开接受检验。

Taproot 在主网于2021年11月的区块709,632处激活之前很久,就已在默认 signet 上运行,这在很大程度上解释了钱包为何能在激活时就推出 taproot 支持,而不是几个月之后。每个进入实现阶段的提案都遵循同样的模式:代码先在人们可以低成本破坏它的地方运行。

自定义 signet 也有各自的用途。Mutinynet 是一个公共 signet,每30秒产生一个区块,目的是让闪电网络开发者不必整天等待确认。其他 signet 则用于演练特定场景,因为掌握签名密钥的人也可以随时有意制造一次区块链重组,并观察钱包如何应对。

对购买比特币的人来说,signet 看不见,却仍然相关。水龙头会免费发放测试币,所以这个网络上的任何东西都没有价值,但您所安装的 Sparrow、Core 或闪电网络节点的版本,几乎可以肯定事先都经过了它的检验。

Signet vs regtest

Signet 是有陌生人参与的共享网络;regtest 是只存在于您自己电脑内部的区块链。在 regtest 上,您用一条命令就能自己挖出区块,一秒钟内就能得到一百次确认。在 signet 上,您和其他人一样要等待签名者,交易通过您无法控制的节点传播,手续费估算的表现也与主网一致。Regtest 回答的是您的代码能否运行;signet 回答的是它能否经受住真实网络的考验。

请勿混淆

常见问题

谁控制 signet,这是否意味着它是中心化的?

默认 signet 由两个人签名,即 Karl-Johan Alm 和 Anthony Towns,采用1/2多重签名。这种中心化是有意为之,因为测试网络需要的是可靠的区块,而不是开放挖矿。任何不认可这一安排的人,都可以用自定义挑战脚本启动自己的 signet。

应当使用 signet 还是 testnet 进行测试?

几乎在所有情况下都应选择 signet。它的区块按稳定的十分钟节奏到达,而 testnet 会出现数以千计的低难度区块突发和深度区块链重组。只有当您要测试的行为正是挖矿混乱本身时,才使用 testnet。

相关术语

节点与软件中的更多术语

阅读本页英文版