本文整理自波卡官方文档 Polkadot Wiki,主要是对于波卡验证人和平行链相关问题的一些回答。本文由波卡第一中文社区 PolkaWorld 翻译。
网络安全性与验证人的数量相关吗?和平行链的数量呢?
网络安全性与连接到 Polkadot 中继链的平行链的数量无关,但是与验证人的数量相关。因为验证人的数量越多,网络的去中心化特性就越强,也就越难被攻击。
然而,网络安全性的最大经济信号是绑定中和正在 Staking 的 DOT 数量。 诚实验证人和提名人质押的 DOT 数量越多,攻击者得到验证人插槽的最小 DOT 量越高。
平行链需要有自己的安全性吗?在什么情况下平行链需要自己的安全性?
大多数平行链不需要担心它们自己的安全性,因为所有的状态转换都将由 Polkadot 中继链验证人集保护。然而,在某些情况下(被认为是实验性的),平行链可能需要它们自己的安全性。通常,这些情况将围绕着中继链验证人缺少数据可用性。
一个例子是,如果状态转换函数是某种简洁的或零知识证明,则平行链将负责保持其数据的可用性,因为中继链不会有数据可用行。
此外,对于有自己共识的链,比如在 Blink Network 上实现快速支付的链,在平行链区块有效之前,可能需要参与者之间达成一个拜占庭协议。这个协议是必要的,因为与快速共识相关联的数据对中继链验证人来说是未知的。
什么可以阻止国库被理事会的多数票控制?
理事会的多数成员可以决定一项国库支出提案的结果。在一种敌对的心态下,我们可能会考虑理事会可能会在某一时刻耍流氓,试图窃取所有国库资金的可能性。因为有一种可能性是,国库资金变得越来越庞大,以至于出现了巨大的经济诱惑。
首先,由于每次支出期间都要遭受损失,国库面临通货紧缩的压力。一方面,由于每个支出周期都有部分代币的销毁,所有国库具有通缩压力。
“销毁计划” 的目的是在每次销毁期间,鼓励人们全部花掉国库的资金,因此,理想情况下,国库不会积累大量财富。然而,国库的销毁可能很小,Kusama 网络目前的销毁比例是 0.2%。
然而,关于 Kusama 网络的情况是,理事会成员主要由社区的知名成员组成。记住,理事会是由代币持有者投票组成的,所以他们必须进行一些竞选活动,或者通过自己的口碑来赢得选票。如果有发生攻击的情况,理事会成员会失去社区信誉。此外,通常理事会成员的外部动机是链的正确运行。这种外部动机要么是因为他们经营依赖于链的业务,要么是因为他们持有代币,有保持稳定代币价值的直接经济收益。
具体地说,有一些链上方法可以抵抗这种攻击。
第一,理事会的多数可能不是代币的多数。这意味着,如果他们试图发动攻击,代币多数派可能会投票替换理事会,甚至逆转国库的支出。他们可以通过一项普通的公投来实现这一目标。
其次,国库的支出存在时间上的延迟。它们只在每个支出时段内生效。这意味着将会有一些时间来观察这个攻击的发生。然后,时间延迟也允许链参与者有时间响应。应对措施可能采取治理措施的形式,或者在最极端的情况下,清算其所持股份并转向少数持有者。不过出现这种情况的可能性非常低。
什么是平行链共识?
“平行链共识” 的特殊之处在于它将跟随 Polkadot 中继链。平行链不能使用其他给它们自己提供最终性的共识算法。只有独立共识的链(可以通过平行链桥接到中继链)才能控制它们自己的共识。平行链可以控制区块的编写方式以及由谁编写。
平行链插槽将如何分配?
平行链插槽将通过拍卖获得,请参阅平行链插槽文章。此外,一些平行链插槽将被留出来运行 parathread,以每个区块为基础进行竞标,从而被打包到中继链。
当验证人的数量低于某个阈值时,对链来说会发生什么?
每个平行链的验证人的最小安全比为 5:1。使用足够大的验证人集,它们分布的随机性以及可用性和有效性将确保每个平行链的安全性处于同等水平。然而,如果云提供商出现大的故障,或者出现另一个网络连接故障,那么可以预期到每个链上的验证人数量将会下降。
这要看有多少验证人脱机,结果是不同的。
如果有几个验证人脱机,那么验证人组集太小而无法验证块的平行链将跳过这些块。它们的出块速度会减慢到 6 秒的任何倍数,直到情况得到解决,平行链验证人组的数量才会恢复到最佳数量。
如果 30% 到 50% 的验证人脱机,那么可用性将受到影响,因为我们需要设置三分之二的验证人来支持平行链候选。换句话说,在问题解决之前,所有的平行链都会停止。中继链的最终性也将停止,但中继链上的低价值交易应该足够安全去执行,尽管存在常见的分叉。一旦验证人集合中再次出现所需的验证人数量,平行链将恢复出块。
假设收集人是中继链和它们正在运行的平行链的全节点,它们将能够在中断发生时识别出中断,并且可以停止生产候选块。同样的,他们也可以很容易地判断什么时候重新开始生产块是安全的,可能是基于最终性的延迟、验证人集的大小,或者其他一些在 Cumulus 内部尚未决定的因素。
Parathread 如何操作?
一部分中继链上的平行链插槽将被设计为平行线程。换句话说,一些平行链插槽不会连接平行链,而是被用作一个空间,进行一个块一个块平行线程拍卖,赢家可以将他们的块包含到中继链中。
收集人将提供在 DOT 中指定的出价,以包含一个平行线程区块候选者。中继链出块者可以从这些出价中进行选择,以包括一个 Parathread 块。显而易见的激励是他们接受出价最高的区块候选人,这将给他们带来最大的利润。来自 parathread 出价的代币可能会被拆分为 80 和 20,这意味着 80% 的资金将进入 Polkadot 国库,而 20% 的资金将分配给出块者。这也同样适用于交易费用的划分,并且像 Polkadot 中的许多其他参数一样,可以通过链上治理进行更改。
Parathread 经济
对 collator 收集人的奖励有两种来源:
假设 parathread 有自己的本地代币系统,它用本地代币给收集人支付交易费用。如果 parthread 没有本地代币,或者它的本地代币没有价值(例如,它只用于治理),那么它可以使用 DOT 来激励 collator。
Parathread 协议补贴。Parathread 可以创造新的代币,以提供给 collator 额外的奖励。可能,为 parathread 制造的本地代币数量是时间的函数,中继链中包含的 parathread 块之间经过的时间越长,parathread 愿意资助的代币就越多,以便被考虑被包含。这种铸造过程的具体实施可以通过本地的平行线程通货膨胀或通过一个像国库这样的资金储备。
可以使用本地的平行线程的代币支付 Collator。但是,中继链仅与 Polkadot 通用货币(DOT)进行交易。收集人必须提交用 DOT 出价的区块候选人。
平行链插槽交换
持有平行链插槽的平行链可以与平行线程交换这个插槽,这样平行线程就“升级”为一个完整的平行链,而平行链成为一个平行线程。如果不交换,链也可以不再是链,继续作为线程存在。插槽如果未被占用,将在下一个拍卖期间拍卖。
这为租期到了但是还没有足够理由续签的平行链提供了一个很好的退出方式,它们可以在中继链上保持注册,只在需要时生成新块。
Parathreads 帮助缓解了平行链插槽的急剧停止,它允许仍在做一些有用事情的平行链来生产区块,即使租用平行链插槽在经济上不再可行。
为什么 Polkadot 只有 1000 个验证人,而其他项目有数十万个?
Polkadot 的目标是拥有 1000 个验证人,这是一个短期内可以实现的目标,并且在真实环境中具有良好的性能。此外,Polkadot 中的验证人并不是唯一的质押者,如果我们考虑到 Polkadot 中可能存在的质押数量,那么这个数字可以扩展到数十万。
由于验证人执行重要的共识工作,维护包括所有分片在内的链的安全性,启动的时候,数量会比较少。经过之后的改进,比如实施最终性的签名聚合,验证人的数量可以合理地扩大。然而,将验证人增加到 1000 以上仍然是 Polkadot 后续迭代的目标。
值得一提的是,1000 个验证人比具有类似 Polkadot 经济安全性级别的类似 PoS 链的验证人数量还要多。最接近的竞争者有大约 150 个验证人,而 Polkadot 已经安全运行了 297 个验证人。
此外,其他项目有不同的 validator 定义,它更接近于远程签名密钥,而不需要验证节点的完整操作。在 Polkadot 上,每个验证人都运行它们自己的验证节点,并执行对中继链的完整验证、对最终性投票、在它们决定的插槽中生成块,并验证平行链状态转换。其他项目可能会将验证人和 “验证节点” 视为两个单独的实体。
最后,普通个人可以通过提名验证人来间接参与块生产过程。这样,没有运行节点的个人仍然可以分享质押的奖励。
中继链的出块时间是多少?
Kusama 和 Polkadot 网络目前的运行速度都是每 6 秒一个区块。
这在未来可能会改变。在优化后,它可能会低至 2 到 3 秒,或者可能会增加来处理真实环境中的平行链网络的容量。