ZooBC 维基
ZooBC 基础

ZooBC Foundation

ZooBC Foundation 是 ZooBC 背后的组织。它在每条链上持有节点注册表的 11 个创世席位,并发布公开的命令行工具。它对交易或余额没有任何特殊权力:协议给每把密钥分配一项职责,而有些事情任何密钥都做不到。

创世席位

每条链启动时都有 11 个写入其创世区块的已注册节点,即由 ZooBC Foundation 持有的创世席位。其他所有运营者都通过队列(队列)加入节点注册表。没有人挑选新加入者;它们按协议设定的节奏一次准入一个。在 mainnet 上,第一个新加入者在创世后 7 天准入,此后每个周期准入一个,周期为 600 天除以计入席位数,并保持在 7 到 90 天之间:在计入 11 个席位时约为 54.5 天(准入节奏)。在这一计数中,创世席位最多按 11 个计算。

一旦获得准入,每个活跃席位被抽中出块的机会都相同。创世席位遵循与其他席位相同的规则,并且和每个新节点一样,从 20% 的参与分数起步。

每条链启动时都有 11 个由 ZooBC Foundation 持有的创世席位;其他节点在队列中等待,穿过一道闸门,每个周期准入一个,进入更多的席位。每个活跃席位出块的机会都相同。
每条链启动时都有 11 个由 ZooBC Foundation 持有的创世席位;其他节点在队列中等待,穿过一道闸门,每个周期准入一个,进入更多的席位。每个活跃席位出块的机会都相同。

工具

ZooBC Foundation 在 github.com/zoobc/tools 以 MIT 许可证发布公开的命令行工具,共十种语言:C++、TypeScript、JavaScript、Python、Go、Rust、Kotlin、Swift、PHP 和 Perl。它们只通过节点的公共 API 与节点通信,任何应用都可以这样做(命令行工具)。

密钥及其职责

ZooBC 给每把密钥分配一项职责:

密钥它做什么
发布机构按文件的哈希注册软件发布版本,并可以撤销它们
国库一个普通账户:它花费自己持有的资金
做市商一个普通账户
页面机构链上没有任何规则读取它
席位所有者注册、更新、更换密钥和移除自己的节点,并收取节点的奖金
节点密钥产出区块,并签署回执、见证和投票

从 0.5.8 版本起,四把角色密钥(发布机构、页面机构、国库和做市商)在全部三条链上都使用四个不同的地址,各自保存在独立的设备上。创世构建器会检查它们互不相同。四者之中,只有发布机构在链上拥有权力,它在创世时最多可以持有 1,000 ZBC 用于支付手续费。席位对它形成制衡:三分之二的席位可以否决一个发布版本,而三分之二的席位将其投票保持一周,就可以替换发布机构(发布版本与更新)。

席位所有者和节点密钥的说明见 节点的密钥。

四把密钥,各司其职:发布机构注册或撤销发布版本的哈希,国库花费自己的余额,席位所有者注册、更改或移除其节点,节点密钥产出区块并签署回执;没有管理员密钥。
四把密钥,各司其职:发布机构注册或撤销发布版本的哈希,国库花费自己的余额,席位所有者注册、更改或移除其节点,节点密钥产出区块并签署回执;没有管理员密钥。

任何密钥都做不到的事

  • 共识中没有管理员密钥。 规则、参数或余额只会通过每个节点都验证的交易,或通过席位在限定范围内的价格投票(价格投票)而改变;绝不会通过一条签名消息改变。
  • 创世是固定的。 它的账户、席位、参数和规则高度都是链的身份的一部分。
  • 规则激活既不能投票决定,也不能签名决定。 如果节点二进制文件与为其所在链记录的规则高度不一致,它会拒绝运行。
  • 国库不能铸币。 新 ZBC 只来自 coinbase 发行计划(供应量与发行)。
  • 发布版本的注册只是建议性的。 它只引导那些选择了自动更新的节点,而这些节点会对照链检查哈希。运行其运营者自选二进制文件的节点不受影响。
  • 没有人批准交易。 每个节点都按同样的规则验证每一笔交易和每一个区块,因此 ZooBC Foundation 无法批准、撤销或阻止一笔付款。

这些保证之所以成立,靠的是每个节点运行的代码,而不是任何人的承诺。新 ZBC 也不由任何人挖出或出售:它按固定的计划发行,并通过抽奖按分数的比例支付给已注册节点(coinbase 抽奖)。

另见