Web3 基金会首席科学家专访:Crypto 背后的科学理念

在这里插入图片描述

Alistair Stewart 接受了 The Kusamarian 的采访。他是第一个加入 Web3 基金会的研究人员,目前是 Web3 基金会的首席科学家。在这次采访中,Alistair 将他的一些思考方式做了详细的解读,并且可以非常清楚地了解到 Polkadot 背后这些技术理念的由来。

本篇专访为 PolkaWorld 翻译,OneBlock+ 为你归纳整合为本篇文章,一览 Alistair Stewart 关于波卡生态发展的最新见解。

📺 观看采访视频:https://www.youtube.com/watch?v=4sp-E_Hxdy4

在这里插入图片描述

主要话题

  • Alistair 加入 Web3 的渊源
  • GRANDPA 的解读
  • BEEFY 是一个什么样的协议
  • NPoS 提名权益证明的由来
  • Gov1.0 到 OpenGov 的转变过程
  • OpenGov 中巨鲸的权力
  • Availability/Validity可用性和有效性协议的重要
  • Async Backing 异步支持的真正价值
  • “Nested Relays” 嵌套中继链的未来可能性

🎙️ Jay:Kusamarian 主持人

👤 Alistair:Web3 基金会首席科学家

Web3 之旅:从疯狂到价值实现

Jay:欢迎来到 Space Monkeys ,首先感谢你的到来。在我看来您已经为这个职位努力奋斗了几十个年头了,甚至可以说在区块链还没有被大众接纳之前,您就已经开始踏上了这个旅程。

Alistair:我在最早上大学的时候有过一次休学的经历,然而没多久我又回到了大学,因为我没有更好的事情可以做。回去之后我选了计算机科学并且拿到了博士学位,发表了一些演讲,这期间一个朋友去了早期的以太坊团队,也是这样的契机让我开始了解和研究什么是区块链。

之后我去了 Devcon 0 并且在那里做出了一些成绩,但是我没有放弃我的日常工作。接下来,大约是在六年前,我开始参与了 Polkadot 的一些工作。当然区块链非常有趣,但那时我还是有一些其他的日常工作。

在某个契机之下,我觉得是时候将对区块链的研究转为我主要的工作内容了,于是在 6 年前,我加入了 Web3 基金会。我成为了第一个研究人员,从那时起我就在 Polkadot 的设计中扮演了主要角色。

Jay:你刚开始的时候了解以太坊、比特币觉得有点疯狂,所以不在你的研究范围内是吗?

Alistair:比特币那时多数被用来做一些疯狂的事情,所有这些自由主义者都对此感兴趣。我那时和很多人一样,还没有考虑到比特币的真正的价值,并且没有意识到这实际上是一个好主意,甚至可以改变世界。

但是话说回来,任何事情起飞之前,你都不能保证,对吧。但当以太坊出现时,它显然比当时做得还不错的所有其他东西要好,所以你知道它会起作用,而且 Polkadot 也是如此,你可以在最开始看到它的价值所在!

Jay:以太坊的什么让你意识到这不是一些疯狂奇怪的事情?

Alistair:不,它仍然是一些疯狂的奇怪的事情,那个时候已经有大量的代币了,有一百万人购买比特币,我们今天仍然可以看到狗狗币和一些其他代币,但当时大部分项目都没有什么创新,直到以太坊出现。

以太坊在区块链上放置了一个虚拟机,并且我们可以通过计算机达成共识,接下来的 Polkadot 是一种自然进化,是区块链叙事自然推进的产物。

Jay:这有点意思,一台计算机可以让我们达成共识?

Alistair:这是以太坊和波卡背后的逻辑之一,以及我们所目及的所有项目都需要的东西,那就是要达成共识,但是我们在什么方面达成共识?我们在计算方面达成了共识!

你可以理解为,我们定义规则,然后我们所有人都做一些事情,我们都就规则结果所发生的事情达成一致,这就是以太坊背后的想法。

但以太坊无法扩展,在 2014 年的时候就有人在谈论如何将以太坊调整成 PoS 权益证明,而现在也顺应了当时的想法,当时也有人谈论如何扩展以太坊,但没有顺利实现。

Jay:你不认为如今在以太坊出现的一些扩展解决方案可以解决问题吗?

Alistair:我认为我们在 Polkadot 上所做的事情会比在以太坊上使用 Rollup 所做的扩展更好,即使以太坊信仰者在看到了好的数据表现会欢呼,但我也不认为这样的扩展方案更优秀。

所以 Polkadot 正在做的事情,也正是我在做的工作,我们试图摆脱这个叙事,我们为 Polkadot 想出了一些东西,我认为只是现在的人还没有真正意识到 Polkadot 的价值所在。

Jay:有点意思。那么当你第一次进入 Web3 基金会时,你正在从事的第一个项目是什么?你是如何顺利融入工作状态的?

在这里插入图片描述

Alistair:我们任何事情都会进行讨论,比如如何做权益证明,如何达成共识。因为早期我是从事研究的唯一一个人,那我自己独立做的第一件事就是 GRANDPA ,我设计了这个理论,然后 Rob 就跟着我一起开始编码,然后我顺利证明了其可行性。

但这实际上与我的学术经历非常不同。在学术界,我发表了一些论文,证明了一切都是可行的,并且我们拥有比其他人更好的东西,但是却根本没人用它。在区块链中是完全不同的体验,大家真的会去做实验。

GRANDPA 和 BEEFY:升级可用性和有效性协议

Jay:可以为我们简述一下什么是 GRANDPA 吗?我最近一直在了解一些关于 BEEFY 的内容,BEEFY 被表述为最终层,有点滞后于 GRANDPA。

Alistair:所以底层我们有最长的链,每个人都应该看看哪条链最长。但问题是,如果我正在运行轻客户端,比如 polkadot.js 或其他什么,我想知道正确的块是什么,我必须查看最长的链,这意味着我需要与很多人交谈,因为如果我只与一个人交谈,或许他给到我的并非最长链,我必须和每个人都确认一遍之后,才知道哪一条是真正的最长链。

而且你还必须稍等一下,也许下一个人之前没有看到这个区块,并且会有一个分叉,甚至是很多分叉,这就是为什么在比特币中我们最终性有时要等一个小时,就是为了确认,并且需要六个确认。以太坊则需要 12 秒,也许以太坊可以做得更好,但我们肯定希望有更快的东西。

GRANDPA 的目的是帮助验证人确认他们已经达成共识的一些事情,即使他们可能自己还没意识到这一点。在这个系统中,虽然每个人都认为他们知道哪个链是最长的(也就是最可信的),但实际上可能还存在其他他们不确定的链。因此,验证人会对他们认为最长的链进行投票。通过这种方式,大家试图达成一致意见。GRANDPA 系统被设计得灵活,以适应不同的情况,目的是确保所有人最终能同意同一个链。GRANDPA 实际上运行得很好,但它的工作方式和最初的预期有所不同。

Jay:你们最早是怎么想的?

Alistar:起初,我们想象的是,在一个拜占庭容错协议(一种确保网络即使在部分节点失败或作恶时也能正常运行的协议)环境下,如果你有很多人(比如 100 个人)一起工作,情况会怎样?以 Cosmos 生态为例,那里的链最初是由 100 个验证人运行的,现在可能增加到了 150 个,但在波卡中我们希望能把验证人扩展到 1000 个。我们担心这样的大规模扩张或许不可行。

因此,我们想要一个不同的协议,一个不需要对每个区块都进行投票,而是每隔几个区块进行一次投票的协议。比如在以太坊中,有一个叫做 Casper FFG 的协议,它每 64 个区块进行一次投票。但我们不希望像 Casper FFG 那样等待这么长时间去投票,所以我们想设计一个更灵活的系统,这个系统会在已经达成一定共识的基础上进行操作。

但后来事实证明,Parity 团队的人也许比其他人更擅长网络,我们能做到让 1000 个验证人在两秒内就某事达成共识,我之前都以为这是不可能的。这意味着也许我们可以每个区块都投票,但我们想通过加密经济学来确保平行链的安全。

在我们最初的想法中,设想了一个叫做 “fisherman” 的角色,但现在这个角色已经被取消了。取而代之的是我们正在讨论的一种新协议,叫做 “可用性和有效性” (a&v) 协议。这个新协议允许在决定了平行链上发生的事件之后,如果发现决定是错误的,可以进行更正。在这种情况下,负责检查的验证人可以介入并指出链中的某个内容是错误的。

Jay:这种更正会在多久之后发生?

Alistair:更正最快可能在一分钟内发生,但具体时间可能不同。在 GRANDPA 协议中,我们不会轻易同意某件事,除非我们确信它不会错。如果没有足够多的人支持某件事,我们会降低决策的速度。不像 Casper FFG 那样在每 32 个区块进行一次确定性投票,GRANDPA 不要求以固定频率产生区块。

我们的目标是只在验证人同意时才达成一致,确保结果是正确的。如果我们采取的方法不是平行链的方式,我们可以在每个区块上达成一致。

Jay:所以实际上是 GRANDPA 出来,说既然所有人都同意了,那我们就决定了什么是最终的事实,就不再更改了。

Alistair:对,但难点在于,当人们面对许多不同的链时,我们如何确保大家都同意同一个事实。我们需要找到一个大家都认同的共同部分。一旦我们达成一致,而且确定大家都同意了,我们就不会再回头改变决定了,这就是基本情况。

那么下面开始讲 BEEFY,它是为了解决在 GRANDPA 中出现的一个问题,那就是人们可能会在不同的链上投票,这些链可能长度不同。即使人们都同意了,他们也可能不是在同一个具体内容上投票,这会使过程变慢。

所以,我们设立了一个所有人都同意的链。可能大家都在同一条链上,但某人可能在链的一个位置(A 块高)投票,其他人在另一个位置(B 块高),还有人在另一个位置(C 块高)。所有这些投票都会被记入某个特定的区块。这意味着 GRANDPA 的最终性不仅仅是对你正在确认的那个区块投票,还包括对后续区块的投票。

Jay:但后面的投票意味着前面的投票处于某种状态。

Alistair:对,但现在当你试图向别人证明这一点时会有问题。所以我必须提供更多证据,比如 Kusama 需要 1000 个签名的长证明。我们当然也希望在 Polkadot 上实现 1000 个验证者,但现在还没做到。

因此,验证会很慢。BEEFY 的设计初衷是,虽然我们通过 GRANDPA 确定了最终性,并且它证明是正确的,但让其他人相信某事已最终确定并不容易。这就是我们现在遇到的问题,并且正在努力解决。

Jay:为什么这不对?是因为没有 BEEFY,以太坊就无法确认 Polkadot 的最终状态吗?这就是问题所在吗?

在这里插入图片描述

Alistair:在 Polkadot 中,GRANDPA 共识协议的操作成本很高,我们用的是不同类型的加密曲线进行签名,每个人都在用 Curve25519,而以太坊可以处理这个以及其他多种椭圆曲线,比如 secp256k1。

但要在以太坊中把所有这些签名放进去并验证它们,工作量非常大,大约每一千个签名就需要一百万的 gas,这简直太多了。因此,我们不得不重新考虑我们的方法,思考如何在不必依赖于是否有1000个验证者的情况下做到这一点。BEEFY 就是为了解决这个问题而提出的另一种复杂的协议。我们在几个选项中选择了基于加密经济的协议,虽然我们知道它不如 SNARK 协议好,我们也在研究 SNARK。

Jay:SNARK 指的是 ZK-SNARK 吗?

Alistair:是的,大家都喜欢讨论加密经济学,但这是一个很复杂的领域。很容易有新人加入这个领域,开始编程,制作出一些在 DeFi 等领域看似创新但实际上很疯狂的东西。但保证这些东西安全非常困难,常常会出现问题。

问题在于所有这些都涉及到激励措施,你需要考虑所有可能的因素,有时候你可能没考虑到的因素会破坏整个系统的激励结构。通常看似有效的解决方案实际上并不起效,这让解决问题变得更加复杂。

所以,对于平行链来说,我们的可用性和有效性协议(a&v)真的可以解决问题。我们的审计员找到了大约 500 种不同的问题,并且我们已经修复了它们。相信我,这套系统是有效的,我们会尽力证明它的有效性,但它确实很复杂。

但如果你真的对高级密码学感兴趣,那条路更加困难,更难以理解。我们用零知识证明(ZK)技术处理了复杂的数学问题,只有少数程序员知道如何编写这种代码。但如果你让一群人来处理这个问题,一年后你可能会成功实现它,并使其模块化,因为你不需要担心那些你从未考虑过的激励问题,或外界因素可能带来的更大的经济影响,这些都是你以前未曾想到的。

Jay:有时候,错误的激励可能会导致严重的问题,对吧。

Alistair:对,Terra (Luna) 的案例就很典型。即使我们使用适合以太坊的密码学技术,比如以太坊的椭圆曲线密钥,我们也不能处理 1000 个签名。我们的简单解决办法是进行随机抽样,好像是一群人在以太坊上通过智能合约随机选出来的那样,给予他们签名权。

但这需要依赖以太坊的随机性机制,这是个复杂的过程,实际上在工作量证明系统中处理这个要比在权益证明系统中容易。我们发现权益证明系统并不总是能很好地处理随机性,这影响到了我们所有人。我们需要等待一段时间,分析需要多少人进行抽样,这通常比预期的要多,导致了大约 26 分钟,即四个 epoch 的延迟,这是从交易开始到交易完成的时间。

这种延迟很糟糕,我们不想等待 26 分钟。我们已经尝试了很多方法。我们引入了 Substrate,我们 Web3 基金会的研究团队使用加密技术,一直在尝试把 BLS 签名集成进 BEEFY,因为如果能做到这一点,我们就可以用 SNARK 来验证签名,这样就能消除延迟。虽然这不会很便宜,但至少可以消除这种延迟,以及当你运行加密经济协议时可能遇到的其他问题。

Jay:所以对 BEEFY 的升级即将到来?但现在如果 Snowbridge 与 BEEFY 一起启动,在 3 个月内推出,我们仍然会有 26 分钟的延迟?

在这里插入图片描述

Alistair:很快就会到来,但我们需要让 SNARK 部分做好准备,有很多事情正在发生。这些东西已经准备好了,只是等待拿到他们的 BEEFY 启动钥匙,我们正在努力。一旦都准备好了之后,那么也许我们可以部署桥,但这实际上花了比我们预想的更长的时间。

Jay:那可以说 Polkadot 和 Kusama 之间的桥也需要 BEEFY 是吗?

Alistair:不是的,实际会使用 GRANDPA。这个桥可以使用 BEEFY,甚至说使用 BEEFY 的话会更有效率,实际上我不知道最后会部署什么,但 BEEFY 桥会更高效,这也是我们将它设计出来的目的。

但 Polkadot 更具有可扩展性,我们可以做出更大的东西,而且我们有合适的加密技术,这是我们选 GRANDPA 的理由。我们把它应用在平行链和桥枢纽上,它能够处理这些工作,比以太坊更便宜、更具扩展性。

所以 Polkadot 和 Kusama 桥使用 GRANDPA 不会有太多的问题,但如果我们出于某种原因要桥接 100 个 Substrate 链,那就更需要 BEEFY。

Jay:那么 Polkadot 和 Kusama 桥会出现延迟吗?

Alistair:绝对不会,我们永远不会为这个桥使用随机抽样,即使最终使用了 BEEFY,也不需要担心延迟问题。

权益证明与流动性质押:让更多人参与并获得收益

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 如果必须(在收益率方面)与质押竞争,那么它会变得非常的昂贵。除非减少整个波卡生态的通货膨胀,我觉得这个路线有待我们进行讨论。因为每个人的观点都不一样。我个人有保留意见。虽然流动性质押有它的好处,但也有代价。用户需要清楚地了解他们面临什么风险,因为这些风险和直接质押是一样的。

OpenGov 治理:以可用性系统保障安全

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

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

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

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

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

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

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

在这里插入图片描述

Alistair:不全是,我觉得仍然有调整的空间。其中之一是,这个系统会有一点偏向否定提案,因为我们设置了 “确认期” 这个规则。

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

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

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

Jay:你认为代币持有者的消费观是什么?

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

我们之前有一些追溯资金,人家已经做完事儿了,如果我们事后不向他们付款,那么声誉就会受到打击。我们如何挽回声誉,我们将来还怎么能找到 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 backing(异步支持)是其中的一部分解决方案吗?

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

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

在这里插入图片描述

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/501292.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode34.在排序数组中查找元素的第一个和最后一个位置

题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 输入…

分享fastapi低级错误

我是创建表的时候把__tablename__ 写成__table__然后一直报这个错误

每日一类:Qt GUI开发的基石《QWidget》

深入探索QWidget:Qt GUI开发的基石 在Qt框架中,QWidget类扮演着构建图形用户界面(GUI)的基础角色。它不仅提供了窗口的基本功能,还允许开发者通过继承和定制来创建各式各样的用户界面元素。本文将详细介绍QWidget的关…

抢单情况下的均衡分配机制

背景: 1、工单有多种类型。 2、客户提交工单。 3、不同客服受理不同类型工单,受理工单类型存在交叉。 4、按照类型维度实现均衡分配。 方案: 1、为每种类型创建一个工单池,使用队列,左进右出;客户提交…

Excel中使用ROW函数自动更新行号或编号

操作步骤: 1、在编号“1”的单元格输入公式“ROW()-1”; 2、在上一步填好公式的单元格基础上下拉填充,即可批量得到编号,如果删掉其中的一行或几行,编号会自动进行更新。

JavaScript-关于事件、事件流(捕获、冒泡)、事件源、常用事件

1.如何注册事件(如何绑定事件) ​ 何为注册事件,就是给元素添加事件,其方式有传统注册事件、方法监听注册事件。 0、1级事件(传统注册事件)不允许多个响应程序 我们在元素内或js内使用on的方式就是传统注册事件,这种形…

机器学习YOLO操作全流程​​编

YOLO介绍 Ultralytics YOLOv8,是最新的著名实时目标检测和图像分割模型。它基于深度学习和计算机视觉的最新进展,提供了无与伦比的速度和精度性能。由于其精简的设计,适用于各种应用,并且可以轻松适配不同的硬件平台,从边缘设备到云端API。 探索 YOLOv8 文档,这是一个全…

k8s部署 多master节点负载均衡以及集群高可用

一、k8s 添加多master节点实验 1、master02节点初始化操作 2、在master01节点基础上,完成master02节点部署 ①从master01节点复制所需要的文件 需要从master01节点复制etcd数据库所需要的ssl证书、kubernetes安装目录(二进制文件、组件与apiserver通信…

基于springboot+vue的党员教育和管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

day05_用户管理minIO角色分配(页面制作,查询用户,添加用户,修改用户,删除用户,用户头像,查询所有角色,保存角色数据)

文章目录 1 用户管理1.1 页面制作1.2 查询用户1.2.1 需求说明1.2.2 后端接口需求分析SysUserSysUserDtoSysUserControllerSysUserServiceSysUserMapperSysUserMapper.xml 1.2.3 前端对接实现思路sysUser.jssysRole.vue 1.3 添加用户1.3.1 需求说明1.3.2 页面制作1.3.3 后端接口…

基于docker实现MySQL主从复制(全网最详细!!!)

一、 通过docker镜像搭建MySQL主从 主服务器:容器名zi-mysql-master,端口3306 从服务器:容器名zi-mysql-slave1,端口3307 从服务器:容器名zi-mysql-slave2,端口3308 二、 关闭防火墙,启动docker…

Executable and Linkable Format(ELF)

File layout ELF文件有两种视图。程序头表(Program Header)显示在运行时使用的段(Segments),而节头表(Section Header)则列出了二进制文件的所有节(Sections)的集合。程…