查看原文
其他

Crypto 背后的科学(下):可用性和有效性协议、异步支持等技术怎样赋能波卡 | Alistair Stewart 专访

The Kusamarian PolkaWorld 2024-03-04

加入 PolkaWorld 社区,共建 Web 3.0!


Alistair Mark Stewart 接受了 The Kusamarian 的采访。他是第一个加入 Web3 基金会的研究人员,目前是 Web3 基金会的首席科学家。


在这次采访中,Alistair 将他的一些思考方式做了详细的解读,并且可以非常清楚的了解到 Polkadot 背后这些技术理念的由来。


本篇是本次采访的下半部分,主要包括以下话题:


  • NPoS 提名权益证明的由来

  • Gov1.0 到 OpenGov 的转变过程

  • OpenGov 中巨鲸的权力

  • Availability/Validity 可用性和有效性协议的重要

  • Async Backing 异步支持的真正价值

  • "Nested Relays" 嵌套中继链是未来的可能性


该采访的上半部分内容见:《Crypto 背后的科学(上):最终性、GRANDPA 和 BEEFY | Alistair Stewart 专访》。


Jay:Kusamarian 主持人

Alistair:Web3 基金会首席科学家



Jay:在你看来哪个网络最早以可靠的方式实现了权益证明?


Alistair:就是那些使用了拜占庭协议的网络。就像 Cosmos 以及他们正在做的事情一样,他们的设计从一开始就很好。以太坊设想了一个很好的设计,但需要很长时间才能做出来。但这取决于你的假设。


我们不能直接采用 Cosmos 解决方案,是因为他们的验证人较少,只有 150 个验证人,他们的假设是这些人将拥有不同的权力,每个验证人背后有不同的支持数,这一定程度上是中心化的。事实是,不管是 PoW 还是 PoS,只要集中了太多哈希算力或代币,都可能变得中心化。


但对于像 Polkadot 和以太坊 2.0 这样的分片系统,我们想要的是所有验证人都有相同的权力。我们希望用随机选出的验证人来操作,不希望总是选中同样的一些人。


当所有人都有平等权力时,分片就简单多了。Cosmos 的方法是每个人支持一个验证人,然后加起来就是总质押量。而以太坊的方法是每个节点背后都有固定数量的质押。但这意味着如果某人有很多代币,他们就能运行很多节点,导致了另一种中心化。


在 Cosmos,这个方法适合他们的体系,但也有问题,比如如果有节点不在线怎么办。为了得到收益,你得投给那些有机会被选中的人。如果你投给的人没被选中,你就什么也得不到。所以,人们通常只会投给前 100 名验证人。Polkadot 的方法是,你可以投给很多验证人,这样如果其中任何一个被选中,你都能得到收益。



Jay:Polkadot 里面是,我可以参与质押,然后我可以选择最多 16 个验证人来支持,只要其中一个入选,我都有收益,我理解得对吗?


Alistair:还要考虑过度质押的限制,但原则上是的,你理解的没错。


你选择的其中任何一验证人入选了,你就能得到回报,但该验证人的支持票数越少,你得到的回报就越大。这意味着,如果你投票给一些没有入选,但在别的验证人退出时可能入选的验证人,那么一旦它们成功入选,它们会接近最低支持,由于我们平等地向每个人支付报酬,那么获得支持更多的人,均分到每个支持他的人的收益就越少。


我们在处理这个系统时,尝试让它更加公平,考虑到了不同的情况和安全问题。我们的方法是基于一种叫做 Phragmen 的算法,这个方法帮助确保没有一小部分人控制了太多验证人。



Jay:这个 Phragmen 是在什么背景下提出的?


Alistair:在政治体系中。他提出了某种没有政党的比例代表制,这意味着你可以投票给任何人,其他人也可以这么做。这种方法帮助确保不是只有大党或中央集权才能控制一切。这个理念是为了让每个人的投票都更有意义,即使没有政党体系。


我们和一些研究人员,像 Alfonso 和 Jonas,讨论过这个问题。他们研究了和实际的 Polkadot 数据对比,发现我们的这个选举系统其实运行得很好的,因为它反映了多样化。



Jay:我们现在有提名池,也有 Bifrost 这样的团队在做 Liquid staking(流动性质押)这个方向,你认为这是中心化的表现吗?


Alistair:实际上,中心化总是以不同形式存在。比如,Zug Capital 这样的团队,虽然很多人可能不知道他们具体是谁,但他们运行了很多验证人。



Jay:没有人知道 Zug Capital 是谁吗?


Alistair:他们有个网站,上面有一个经过验证的身份,到底由谁验证的呢?这就不知道了。他们有很多验证人,这种方式确实显示了一种中心化。但这是个民主的系统,人们就是愿意投票给他们。


我们有个复杂的系统,允许人们提名验证人,但当有太多人(比如 25,000 人)提名时,系统就会变得复杂。我们尝试找出解决方案,比如创建提名池,这样就不会因为提名人数增加而变得复杂。在这个池中,你不需要拥有很多 DOT 就可以参与质押,这样大家都可以参与进来,而且不会知道其他人是谁,但你清楚自己能得到的收益。



Jay:那流动性质押呢?


Alistair:流动性质押有些风险。虽然 DeFi 听起来不错,但它有一些隐藏的风险,许多人可能没意识到这些风险。比如,通过流动性质押,你可以在锁定期没结束前就转移你的资产,但这也意味着你可能会接手前一个持有者的风险,因为提名时,是有被 slash 的风险的。


这种方式可能会发生很多事,买家需要小心,如果很多人都遇到问题,比如他们的质押资产被没收,这对每个人都是个风险。我们希望每个人都能分散风险,不集中太多权力在一人手上。


但是,像 Bifrost 这样的系统可能没有这么大的风险,因为它们的设计避免了攻击。总的来说,DeFi 可以提供很高的收益,但也伴随着高风险。所以,虽然质押可以带来稳定的回报,但投资 DeFi 可能需要更多考虑。



Jay:这取决于自己怎么看待风险。


Alistair:可以这么说。DeFi 如果必须(在收益率方面)与质押竞争,那么它会变得非常的昂贵。除非减少整个波卡生态的通货膨胀,我觉得这个路线有待我们进行讨论。



Jay:我感觉大家正在热烈讨论这个。


Alistair:是的,因为每个人的观点都不一样。我个人有保留意见。虽然流动性质押有它的好处,但也有代价。用户需要清楚地了解他们面临什么风险,因为这些风险和直接质押是一样的。



Jay:我们讨论了怎样选出好的验证人,然而我们在 Polkadot 中还有另一个有趣的层,这就是治理层,你在这方面也很活跃。在 Gov1.0 中,你是 Kusama 的治理中的积极投票者,在 Polkadot 上也是吗?


Alistair:Polkadot 上活跃得少一些。我一开始就在 Kusama 的理事会中,但不在 Polkadot 的理事会中。



Jay:你对 Gov 1.0 的理论做出了一些贡献是吗?


Alistair:有一小部分,主要是理事会的主要设计,以及我们想要针对 Quorum Biasing 机制进行设计。也就是,如果投票率低,且该提案不是来自理事会,那么该提案通过的可能性很低,需要更高的支持率才能通过。


PolkaWorld 注:在 Polkadot Gov1 中,"Quorum Biasing"(法定人数偏见)是一种治理机制,旨在调整提案通过所需的支持比例。这个机制有助于防止那些只有少数人参与投票的提案轻易通过,从而确保网络的变更或重要决策得到了广泛的社区支持。


但是所有这些规则都随着 OpenGov 的上线而改变了,在 OpenGov 中这不再是一个问题了。在 OpenGov 中,随着时间的推进,投票通过率会根据相应的曲线变化,所以投票时就必须去考虑这些曲线,并且弄清楚曲线背后的含义。



Jay:那 OpenGov 实际上是否有如预期一样顺利运行?


Alistair:不全是,我觉得仍然有调整的空间。


其中之一是,这个系统会有一点偏向否定提案,因为我们设置了 “确认期” 这个规则。


PolkaWorld 注:在 OpenGov 中,一项提案需要在确认期内保持一定的通过率才能最终通过。新的投票可以改变提案的确认期。如果很多人支持,提案快速通过;如果有反对票,确认期就会延长。


我们设置确认期,是为了防止少数人快速让一个提案通过。例如在没有确认期的情况下,如果一个巨鲸账户投了赞成票,迅速提高了赞成率,就让提案迅速通过。所以我们设置了一个确认期,这样的话,我们就留出时间,让大家来考虑这个提案是否值得通过,如果不值得,则他们可以有时间投反对票。


但有一个问题是,如果某个提案即将失败,我们没有类似的操作。这就意味着,只要有巨鲸在一个提案投票时间快结束的时候,投入巨量的反对票,那这个提案就必然通不过,因为就算有人想投赞成票,时间也不够了。所以我在思考,也许我们也应该有一个类似的 “拒绝期” 这样的设置。



Jay:OpenGov 的结果很有趣。我觉得在网络技术的升级方面,大众的意见会倾向于跟随专家的意见,没有太多的争论。


Alistair:但一旦涉及国库支出,我们就看到出现了非常多的争论。



Jay:你认为代币持有者的消费观是什么?是很会花钱,还是太大手大脚,还是太保守了?


Alistair:他们是摇摆不定的。尤其在 Kusama 上能看出来,最开始大家疯狂花钱,后来大家又说我们应该反对提案,于是就基本停止了花钱。



Jay:没错,甚至不肯给 RPC 提供商付钱。


Alistair:我们之前有一些追溯资金,人家已经做完事儿了,如果我们事后不向他们付款,那么声誉就会受到打击。我们如何挽回声誉,我们将来还怎么能找到 RPC 提供商呢?如果大家做完事能不能拿到钱都是很随机的,会发生什么情况呢?


所以我认为,Kusama 和 Polkadot 上的选民在国库支出上更加保守,而且他们肯定比我们在理事会时代更加保守。


理事会的职责是,你要对公众负责,大多数时候,理事会的其他成员都投赞成票,如果你投反对票,你就必须去告诉大家为什么你投反对票,他们会质疑你。


但是一旦进入了 OpenGov 投票,人们可以通过一个地址,自由地投反对票,没有人质疑你。


有些社区成员在国库上非常保守,我认为这是 Crypto 里比较常见的问题。用户手里拿了这么多的代币,都想要更多回报,却不太愿意冒险去支持新项目。


一些用户觉得,如果投否决票,这个提案不会通过,没有人会去做这件很棒的事情了,但就会有更少的人出售代币。但其实这不重要,因为市场上的买方和卖方是对应的,有人卖掉代币不是什么问题,只要有人愿意去买就行了。


其实另一方面,需求也很重要,我们其实需要在 Kusama 上做更多的实验,但实际上基本已经停止了,有一点可惜。



Jay:在 Polkadot 上有这么一个活跃的巨鲸用户,他叫 Giotto,他在国库花钱方面很慷慨。他有非常多的投票权,他希望能多促进大家做事,希望 Polkadot 不会死掉。但很多人都在抱怨巨鲸的投票,你怎么看?


Alistair:巨鲸的问题,实际上取决于每个巨鲸的个人偏好。有的巨鲸更倾向于支持内容创作,那我们就能得到更多好的内容。


我们也看到了一些新奇的东西,比如 DED meme 这种激励投票,很多人觉得这是个好主意。人们希望巨鲸能带动变化,但问题是总会有更大的玩家出现。我们需要找到方法激励大家积极参与。




Jay:你告诉我你即将发布一些你已经研究了一段时间的新东西,可以先透露一下具体是什么吗?


Alistair:我们已经从事这方面的研究有一段时间了,自 2019 年以来 Parity、平行链团队实际上都在运用,而且我们已经在 Polkadot 和 Kusama 的生产环境中使用它很多年了,我谈论的是 “可用性和有效性协议”,它确实需要一个更好的名称,我们很快会想出一个。它是为了保护平行链,让 Polkadot 比我们正在使用的其他分片系统更具可扩展性。


像 CoreJam (Collect-Refine-Join-Accumulate) 这样的东西我们可以做很多事情,不仅仅是分片系统,而是更广泛的区块链扩展解决方案。我们想出了一些非常好的东西,它现在正在 Polkadot 中使用,但很少人知道。我们用这个新的方法来保护 100 个平行链和 1000 个验证人的安全,甚至 1000 条平行链和 1000 个验证人,或者说 1000 个 Core。


进行分片的传统方式是,在每个分片中都放入验证人,有很多验证人,然后将其随机划分为子集,明确谁去检查某个分片。这样效率很低,因为我们需要在每个分片上保持三分之二的诚实验证人,这意味着每个分片上都需要数百名甚至数千名验证人,你可以看到以太坊走上了这条路,这就是为什么他们的目标是达到一百万个验证人。


但我们认为那不现实,也不是我们的目标。我们必须提高效率。早期的想法是,我们会有 fisherman(钓鱼人)。



Jay:这些角色会去试图找出错误,如果是他们发现的问题,就会得到奖励。


Alistair:是的,如果是一个大家都关注的问题,那么每个人都会检查它,但如果你是小的平行链,就有可能没有人关心它,没有人检查它。


那么如果现在你想发送 XCM 到中继链,或者和其他链互操作。就有一个问题,我们其他平行链现在不能信任这个小链以及链上的资产,那我们就必须用 “储备” 的方法而不是 “传送”,我们必须对我们信任什么非常小心,因为它们可能不安全。


但我们真的希望所有的链都保持安全,所以我们引入了 fisherman 这个角色。fisherman 要付一定的押金,这个金额得设置得合理,不然会有太少的人愿意做 fisherman。


因此,我们设计了一种叫做可用性系统的东西,它有点像是用纠删码来增加数据的冗余。这意味着,不是每个验证人都持有完整的数据块,而是每个人只持有一部分。这样,即使只有三分之一的验证人,也能重新组合出任何一个平行链的数据块。这就确保了只要超过三分之二的验证人是诚实的,我们的数据就是安全的。


现在,我们让随机选出的验证人来检查数据,这个办法是可行的。这样如果有人说某样东西是好的,但实际上不是,我们就可以去核实,如果他们错了,就会受到惩罚。这种方式的好处是,只要数据块没丢,就能保证数据的可用性,因为没人知道下一个检查者会是谁。


这就是可用性,这就是让我们能够让 30 个验证人或 10 个验证人检查一个区块,同时攻击系统仍然非常昂贵的方法。



Jay:所以这对于 Polkadot 来说就非常有效,但你认为这对其他人有用吗?


Alistair:我们已经就这个问题进行了多年的讨论,但我认为现在人们不理解 Polkadot 在技术上的优势,虽然是有人欣赏 Polkadot 在技术上超前理念,但他们不知道其中的一些细节。



Jay:那我们在 Polkadot 上是通过什么来实现扩展的呢?Async baking(异步支持)是其中的一部分解决方案吗?


Alistair:没错。我大概解释一下异步支持


原先的情况是,我们每 6 秒构建一个 parablock,要先看到上一个块的结果,然后发送给 collator(收集人),但收集人必须完成他们的工作,并且必须由验证人检查,所有这一切都必须很短的时间内进行。


然后当我们添加可用性时,要先决定它可用,才能添加。但下一个出块者要等两个区块 (12 秒)的时间。所以结果就是,我们每 12 秒生成一个区块,但它必须在 2 秒内运行,这显然是在浪费时间。


所以,我们希望能更早开始构建区块,特别是对于需要更多时间的复杂操作(如 SNARK)。通过异步支持,我们现在可以保证每 6 秒出一个块,并且可以在确定一个区块是可用的基础上继续构建,这样就不会浪费时间。这让我们的系统更有效率,每个平行链也能处理更多的计算任务。


但我们实际上在想的更多,比如一个叫 CoreJam 的概念,它让不同的区块能在同一时间内互相建立联系,这样平行链或其他系统就可以同时处理多个区块,这让一切变得更灵活。


这个想法是彻底改变 Polkadot 中继链的工作方式,我们想建立一个更通用、更灵活、不需要特别许可的扩展模型。但问题是,我们的验证人数量是有限的,用现有的 GRANDPA 协议可能无法支持一百万人同时连接到以太坊。如果真的有那么多人,我们需要采取不同的方法来扩展,可能需要多个中继链,甚至是分层的中继链。


我们提出了一个新的协议,专注于保持数据的可用和系统的有效运行。这个协议是建立在一种新的基础之上,我们不是把新结构放在现有的中继链下面,而是要建在它上面。




Jay: 这意味着这些新的中继链会成为整个系统的基础,其他链会建立在它们上面?


Alistair:不完全是这样。我们可以想象有多个中继链,它们其实都是同一个大系统的一部分。



Jay: Polkadot 和 Kusama 就是不同的中继链,它们将如何连接呢?


Alistair:如果我们使用 BEEFY 协议,我们可能能把 100 个不同的链连接起来,都接入一个桥枢纽。如果我们能实现这个,为什么不把这 100 个链视为同一个大系统的一部分呢?我们希望这些链能共享安全。如果要这样做的话,需要很多验证人和平行链,虽然现在还用不上这样的设计,但理论上它是可行的。



Jay: 非常感谢你,来到我们的节目中。非常感谢你为 Polkadot 付出的所有努力,如果没有你和你团队的奉献,这一切都不会成为可能,再次感谢 ~


Alistair:谢谢,很高兴接受你们的采访!


原视频:https://www.youtube.com/watch?v=4sp-E_Hxdy4

翻译:PolkaWorld




直播预告


1、波卡 OpenGov 提案分享直播


  • 分享人:PolkaWorld KIKO

  • 时间:2 月 22 日(周四)晚 7 点

  • 平台:微信视频号(点击下方按钮立即预约直播)



2、Polkadot Q1 焦点:Coretime、LRT、DePIN、AI、SnowBridge,您应该如何提前布局?
  • 主持人:PolkaWorld 生态研究负责人 Kristen
  • 嘉宾:
    • Maria @Gear Foundation 
    • Yuki @Moonbeam 
    • LYZ @Acala
  • 时间:2 月 23 日(周五)晚 7 点
  • 平台:微信视频号(点击下方按钮立即预约直播)



  • PolkaWorld Telegram 群:

    https://t.me/+z7BUktDraU1mNWE1

  • PolkaWorld Youtube 频道:

    https://www.youtube.com/c/PolkaWorld

  • PolkaWorld Twitter:

    @polkaworld_org


更多内容


Crypto 背后的科学(上):最终性、GRANDPA 和 BEEFY | Alistair Stewart 专访

波卡周报 | Rococo 上支持异步支持的平行链已经稳定 6 秒出块!Tanssi 宣布开启测试网激励活动!

从平行链到应用链到容器链:Tanssi 在 Polkadot 2.0 中的角色

关注 PolkaWorld

发现 Web 3.0 时代新机遇


点个 “在看” 再走吧!

继续滑动看下一个

Crypto 背后的科学(下):可用性和有效性协议、异步支持等技术怎样赋能波卡 | Alistair Stewart 专访

The Kusamarian PolkaWorld
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存