查看原文
其他

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

The Kusamarian PolkaWorld 2024-03-04

加入 PolkaWorld 社区,共建 Web 3.0!


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


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


本次采访主要包括以下话题:


  • Alistair 加入 Web3 的渊源

  • GRANDPA 的解读

  • BEEFY 是一个什么样的协议

  • NPoS 提名权益证明的由来

  • Gov1.0 到 OpenGov 的转变过程

  • OpenGov 中巨鲸的权力

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

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

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


本文为该采访的前半部分,后半部分将在近期发布于 PolkaWorld 公众号,敬请关注。


Jay:Kusamarian 主持人

Alistair:Web3 基金会首席科学家



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


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


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


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



Jay:你和 Gavin Wood 是儿时挚友,这是真的吗?


Alistair:是的,Gavin Wood 是我的挚友,我们一起上的中学,一起到处闲逛,度过了好几年的时光。



Jay:你们当时在做什么,会一起思考计算机的问题吗?


Alistair:没有的,但我们会进行一些经济学的讨论,一些关于代码的讨论,当时的 Gavin 一直对虚拟机和一些其他事情感兴趣,但区块链属于是另外一个领域,是完全不同的东西。



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


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


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



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


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


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



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


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


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


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



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


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


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



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


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


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



Jay:在区块链中,你提出理论,之后就有人把它拿出来验证。


Alistair:没错,这太不可思议了!


PolkaWorld 注 :


GRANDPA (GHOST-based Recursive Ancestor Deriving Prefix Agreement)

BABE (Blind Assignment for Blockchain Extension)

BEEFY(Bridge Efficiency Enabling Finality Yielder)是 GRANDPA 的辅助协议,用于支持波卡网络(中继链)与以太坊等区块链之间的高效桥接。



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 的升级即将到来?


Alistair:很快就会到来,但我们需要让 SNARK 部分做好准备,有很多事情正在发生。



Jay:但现在如果 Snowbridge 与 BEEFY  一起启动,在 3 个月内推出,我们仍然会有 26 分钟的延迟?


Alistair:是的。这些东西已经准备好了,只是等待拿到他们的 BEEFY 启动钥匙,我们正在努力,是的,一旦都准备好了之后,那么也许我们可以部署桥,但这实际上花了比我们预想的更长的时间。



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


Alistair:不是的,实际会使用 GRANDPA。



Jay:好吧,我一直听到一些让人混淆的消息。


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


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


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



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


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


(本文为该采访的前半部分,后半部分将在近期发布于 PolkaWorld 公众号,敬请关注。)


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




直播预告


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


更多内容


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

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

波卡周报 | Fellowship 正在投票 74 号公投!如通过,将启动 Coretime 的销售和销毁机制!

关注 PolkaWorld

发现 Web 3.0 时代新机遇


点个 “在看” 再走吧!

继续滑动看下一个

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

The Kusamarian PolkaWorld
向上滑动看下一个

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

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