一文对比以太坊 & Celestia的模块化堆栈‌设计

Defi之道 view 16854 2022-7-13 17:20
share to
Scan QR code with WeChat

注:在 Delphi 最新一期题为《以太坊 & Celestia: 设计模块化堆栈》的播客中,主持人 Jon Charbonneau 采访了 Celestia 联合创始人 John Adler 以及 以太坊基金会研究员 Dankrad Feist,对模块化区块链堆栈的设计进行了深入的技术探讨,本期对话的重点是 Celestia 和以太坊之间的细微差别和设计考虑,包括欺诈证明与 KZG 承诺、验证器集、Celestiums 的重要性等话题。

以下内容由 DeFi 之道 编译整理:

一文对比以太坊 & Celestia的模块化堆栈‌设计

Jon Charbonneau:大家好,欢迎来到 Delphi Podcast 非常特别的一集播客,我的名字是 Jon Charbonneau,我是 Delphi 的一名研究助理,今天很高兴能够邀请来两位很棒的嘉宾,我们将讨论以太坊、Celestia 以及一切关于模块化的东西。

友情提醒,我们今天讨论的一些内容将会非常深入,我们终于找到了两位最棒的家伙来教我们,我们有来自以太坊的 Dankrad Feist 以及来自 Celestia 的 John Adler,请在我们开始之前做一个简短的介绍。

Dankrad Feist:谢谢你们邀请我,我叫 Dankrad,我是以太坊基金会的一名研究员。自 2019 年初以来,我一直在研究以太坊,我一直在研究分片、证明托管、权益证明(PoS)等不同的主题,以及以太坊未来升级所需的各种事情。

John Adler:我叫 John,我是 Celestia Labs 的联合创始人之一,我目前担任首席研究官一职,我从事协议、研究和规范工作,在过去几年当中,我一直在参与以太坊和其他链(例如 Celestia 和 Cosmos)上的 layer 2 以及通用区块链可扩展性研究。

问题一:数据可用性(DA)和结算层

Jon Charbonneau:太棒了,谢谢你们。所以回到正题,John,关于第一个问题,你可以在 Dankrad 之前先回答,然后我们会看看事情会如何发展。作为一个背景,以太坊和 Celestia 是最近的两大热门,它们都在构建安全的基础层,以承载扩容的 Rollup 层。

而 Rollup 需要的其中一些东西是发布大量数据的地方,为它们提供数据可用性保证。需要注意的是,除了提供通用的执行环境之外,以太坊还提供了数据可用性和结算环境,而 Celestia 只选择提供数据可用性以及对排序的共识。

然后,看看一些不同的技术栈可能看起来像什么,如果你看看今天的标准以太坊 rollup,它们可以依赖于我描述的这两个角色的基础层,但请注意,我描述的接下来的几个选项在以太坊上也是可能的,你甚至可以做一些类似 enshrined rollup 的事。

接下来是递归 rollup,所以基本上是把结算部分从基础层中抽出来,你可以把它放在 L2 结算 rollup 上,然后 L3 可以放在上面,你也可以有主权 rollup,在那里没有使用单独的结算层。rollup 可以在客户端结算证明。

所以从 John 开始,你能更详细地分解一下这些数据可用性和结算的东西吗,为什么它们如此重要?在不同技术栈的背景下,我们应该如何思考这些事情,以及各种好处和权衡,并设计这些不同的技术栈?

John Adler:当然。因此,从根本上说,数据可用性(DA)是验证某些数据是否已向世界发布的能力。它很重要的原因是,如果你不知道数据已在全球范围内发布,那么你最终可能会陷入数据被扣留的情况。如果数据被扣留,那么无论是在欺诈证明的情况下,还是在没有 ZK 或有效性证明的系统的情况下,你最终都可能会遇到这样一种情况:有人可以在链上包含无效交易,而没有人能够真正证明这发生了。如果你使用的是具有有效性证明的系统,那么有人可以将链的状态推高到一个没有人真正知道它是什么的状态(当然,除了推高它的人之外),因此有效地使链对其他人无用。因此,数据可用性是一个非常重要的特性。那为什么现在 DA 没有被当成一个问题呢?回到过去,比特币和以太坊,当我在两、三年前开始使用它们时,没有人在真正谈论数据可用性(DA),我想我是在分片的背景下谈到了这一点,当时还没有产生什么共识,比特币爱好者当中更没有人谈这个。为什么会这样,经典的区块链安全模型依赖于每个人都运行一个全节点。如果每个人都运行一个全节点,那么全节点所做的一件事就是完全下载每个区块,因此它隐含地验证该区块背后的数据是否可用。当然,这根本不是一个可扩展的模型,因为这意味着,如果你想让尽可能多的人参与进来,你现在将你的系统限制为某人可以提供的计算能力范围,从根本上讲,你无法大幅增加区块链的 TPS。因此,这就是信任最小化的轻客户端概念的用武之地,而分片在最初被提出时,本质上是信任最小化的轻客户端。对于每个其他分片,你都有一个信任最小化的轻客户端,信任最小化的轻客户端具有的一个属性是,你不需要完全下载区块,而是只下载区块头,然后你就可以对区块的实际状态转换进行欺诈或有效性证明。但现在,突然之间你没有完全下载区块,并且有效性证明或欺诈证明无法告诉你数据是否已经发布。这是因为数据扣留不是唯一可归因的错误。如果有人扣留了数据,那么要么是他们扣留了数据,然后有人发出了警告,要么警告扣留数据的人是在撒谎,但第三方无法真正知道这两种情况当中,哪一种是真实的。所以你最终会遇到这样一种情况,现在有了这种新的现代区块链安全模型,在任何地方都有信任最小化的轻客户端(不仅在分片环境中,而且在这个模块化环境中),我们需要一个数据可用性解决方案,大概我们将在播客中进一步讨论这一点,讨论实现这一点的各种方法。但这就是为什么数据可用性(DA)如此重要的原因,因为我们正在从每个人都运行一个全节点的概念转移到一个新世界,在这个新世界中,99% 的用户可以运行一个信任最小化的轻客户端,并且在做非常少的工作的同时,拥有非常、非常强大的安全保证。你剩下的问题是关于结算,这个问题有点棘手,有些人对它的定义略有不同。我想我会把它定义为一个验证证明的地方,所以这可以是有效性证明,或者是你的信任最小化轻客户端的欺诈证明,我猜全节点也是。有很多地方可以进行结算,在一个普通的区块链中,比如像以太坊这样的经典区块链,区块链本身在本质上就是它自己的结算层,运行全节点的用户可以通过验证以太坊区块的有效性来验证它们。他们只是执行区块,本质上是他们自己的结算层。因此,普通区块链的结算层是 layer 0,即社交层。每个人都运行一个全节点,并且他们可以验证这些区块是否有效。但在 rollup 的情况下,区块链虚拟机(EVM)可以充当结算层并验证 rollup 有效或无效的证明,因此,在这种情况下,结算层将是以太坊本身,而执行发生在 rollup 自己的环境当中。

Dankrad Feist:这显然是对数据可用性(DA)为什么很重要的一个很好的介绍,所以我认为自己对此没有什么可评论的。我认为过去人们提出的,关于以太坊与 Celestia 目前正在构建的东西之间的其中一种差异是集成结算层,这显然是出于历史的原因,因为以太坊已经拥有了它,所以没有理由,也真的没有办法去摆脱它。但我也想强调一下,为什么我认为拥有它可能是一个很重要的优势,而我看到的第一大优势基本上是减少了碎片化。基本上,我认为各种不同系统之间需要维护 N 平方数量的桥,这会是一个噩梦般的世界,相比之下,连接到以太坊的默认结算层,只需要 N 座跨链桥,我认为这是一个主要优势。我想另一个问题需要让 John 来回答,我会感兴趣的。因此,如果在数据可用性层中没有集成智能合约系统,我会担心的一个问题是,它基本上意味着你无法真正将数据可用性层的原生资产连接到 rollup 中。所以我认为这是一个严重的限制,因为在我看来,区块空间就像我们在去中心化空间中拥有的第一个真正有价值的商品,并且无法使用由它保护的资产,例如在 DeFi 中借用它,以创建稳定币和各种其他建设,基本上,将其用作抵押品,是没有将结算层集成到协议中的一个严重短板。

John Adler:是的,因此,为了给不熟悉的读者提供一些额外的背景,Dankrad 提出了一个非常好的观点,即今天以太坊中的 rollup 工作方式是,你可以通过信任最小化的双向桥将资产从以太坊移动到 rollup,因为 rollup 隐含地完全验证了以太坊,并且以太坊上的 rollup 合约将有效地成为 rollup 的信任和最小化的轻客户端。所以现在你在双方之间都实现了信任最小化,可以实现双向的 rollup 跨链桥。而 Celestia 不支持这一点,因为 Celestia 链本身没有智能合约执行,所以你可以在 Celestia 和 rollup 之间建立的是一个信任最小化的单向跨链桥,你没有办法返回,这是模型的限制。在这种情况下,它具有某些优势,因为在基础层没有结算意味着基础层与实际工作无关。但它确实带来了一些额外的挑战,例如你无法实现一个信任最小化的跨链桥。我真的不明白这一点,这更像是一种观点,因为事实证明,区块链中的大多数东西都是观点,而不是技术方面的东西。这个观点是,例如,WBTC 在以太坊中被大量使用,最近在 Avalanche 上为 WBTC 开通了一座跨链桥,然后在一天之内, Avalanche 上的 WBTC 数量就超过了比特币整个生命周期中的 liquid 网络。很多人会使用的并不是信任最小化的桥梁,例如 WBTC,今天,即使在以太坊的 rollup 当中,很多人也会使用需要信任的协议来移动他们的资产。因此,我不认为你必须要有一个信任最小化的桥梁来移动原生资产,因为你总是可以拥有类似代币化资产的东西。你可以有锚定该资产的稳定币,并且可以有受信任的跨链桥,例如一种封装的 Celestia 代币,不仅可以用于 Celestia 上的 rollup,还可能用于其他区块链,例如以太坊、Cosmos 生态的 Osmosis,或者是 Cosmos Hub 等等。

Dankrad Feist:我完全同意这些东西将被建造出来,当然,我们会有这些跨链桥。但总的来说,我是不赞成多重签名方案的,例如,你提到的所有比特币桥都在实践中,我认为这是一个非常严重的限制,从长远来看是不可持续的。因此,我看到了构建这些数据可用性层的一大优势,我们可以从中摆脱出来,并构建更好的跨链桥。所以在我看来,至少现在,我不知道,也许在未来,Celestia 会改变它的设计,而把它扔掉是很不幸的。

John Adler:是的,但就像我提到的那样,我希望出现与 Celestia 代币价值锚定的稳定币来填补这一空白,它不会是一座桥梁或封装资产,它本质上只是一个稳定币,就像 DAI 一样。

Dankrad Feist:是的,但这并不能解决抵押问题,基本上稳定币必须用其他东西抵押一样。所以你绝对可以这样做,但会有不利的一面,这意味着你限制使用你的原生资产作为抵押品。

John Adler:这就是权衡之处。

问题 2:基础资产的价值捕获和经济安全性

Jon Charbonneau:这个问题与此有些相关,因此,你希望能够轻松使用原生资产的原因之一,就是你要将其作为抵押品,拥有有用的资产有助于为该资产提供经济安全性,并且拥有经济安全性的一部分可能是在一个基础层中拥有一切。

因此,在以太坊的例子当中,你将拥有数据可用性、结算以及通用执行,所有这些费用都归于一项资产。我很想了解你们两位的想法,即拥有一个已经建立并能够建立所有经济安全的基础资产的重要性,而不是将其分解成不同的组成部分?

Dankrad Feist:我个人不会说将其用作抵押品会给资产带来经济安全,这不会使资产有价值。它需要通过其他方式获得安全性,基本上是其他产生收益的方式。所以我现在只看到了其中两个,即结算层和数据可用性层。我认为在短期内,我们可能会看到结算层仍会产生更多的价值。我们已经在以太坊上看到了这一点,过去以太坊收取了大量费用,其他结算层也收取了一些费用。但从长远来看,我相信最有价值的资产将只是数据可用性,区块空间将成为去中心化经济中最有价值的资产。这就是为什么我会说,我们可以使用这项资产作为抵押品是非常重要的。

John Adler:我可能不会直接回答这个问题,但我可以讨论一些与此相关的想法,比如 dYdX 将不再寻求成为一个 ZK-rollup,而是部署成一个主权 Cosmos zone,Twitter 等社交媒体上对此话题有了很多的讨论。每个使用以太坊、结算层或数据层的人,本质上都是在向服务提供商支付一些租金。从房东的角度来看,他们希望每个人都使用这些房子并向他们支付租金。而从租客的角度来看,显然他们想自己成为房东,这样他们也可以收取租金。因此,dYdX 可以向以太坊或其他链支付租金,也可以成为自己的主权区块链,让其用户为 dydx 的代币支付租金,并为此累积价值。我们在其他几个项目当中也看到过这种情况,我认为 Compound 是其中一个想要建立自己的区块链的项目,他们最终回到了以太坊,但仅仅因为他们碰巧不成功,并不一定意味着所有未来的项目都会不成功,他们的失败可能是由于技术原因。但事实仍然是,人们不想向房东支付租金,他们想自己成为房东,他们希望自己的代币可以增值。所以我预计你会遇到这种奇怪的情况,因为你希望自己的基础层能尽可能多地增值,你希望它尽可能多地收取租金,因此该特定代币会产生价值。但在此基础上构建的应用和协议不想支付所有租金,他们希望支付尽可能少的租金,而且他们可能希望自己收取租金,他们希望用户来支付租金,并把价值赋予给他们的代币。因此,你希望基础层尽可能地积累价值,尽可能地安全。另一方面,应用却不想这么做,因为应用是自私的,在某种程度上它们应该是自私的,所以你被困在这块石头和一个坚硬的地方之间。在这个阶段,这条线上的最终结果并不一定是很清楚的,如果有的话,可能会在线上的不同点有多种解决方案。例如,以太坊的规模非常大,它希望把在以太坊之上运行的所有东西的所有价值都累积到 ETH 上。而 Celestia 是以 MEV 的形式累积的价值,以受约束的数据层的形式。区块空间的价值不会累积给 Celestia 代币,Celestia 代币的唯一收益是数据层上的空间,数据层上的受限空间。看起来它似乎没有那么多的价值捕获,然而,这也意味着不会有应用会选择离开,因为 Celestia 不会试图提取太多的租金。所以就会有这种奇怪的情况,我不确定这两种方法当中哪一种更好,甚至不确定这两种方法中的任何一种在长期内是否会成为赢家,但要注意的是这里存在一个规模梯度,即基础协议提取的租金达到多少时,会将上面建立的协议推开?

Dankrad Feist:我会稍微反驳一下“以太坊会尽可能多地收取租金”的说法,我认为这不是我们设计协议的方式,我认为这不是目标,我们的目标是制定一个可持续的协议。正如我所说,我相信我们正在创造的最有价值的资产是区块空间,我指的是未来的数据可用性空间。为什么我认为像 dYdX 这样的决定不可能长期持续下去,是因为他们现在必须用自己的代币全额支付自己的安全费用。在一个可扩展的世界中,如果你所支付的是一个可扩展的区块链,那么支付的费用会便宜很多。

John Adler:所以这就是为什么要反击,也就是说安全不需要结算。它不需要像以太坊那样的神圣结算层,安全性只能通过数据可用性和排序来实现。在这种情况下,如果 dYdX 不是它自己的 Cosmos zone,它必须为自己的安全完全支付,而是单独从 Celestia 之类的地方购买安全,这实际上是他们为了获得一定数量的安全性而必须支付的最低成本,因为他们也不支付结算费用,他们只为数据可用性和排序付费。

Dankrad Feist:这是完全合理的,但我也认为以太坊可以提供完全相同的功能,他们也可以选择只为数据可用性付费,而不使用结算层。我认为这不是最理想的解决方案,但我认为他们可以做到。

问题 3:关于 L2 结算和递归 L3 rollup 策略

Jon Charbonneau:很棒的想法,在我继续之前,我对这个话题还有一个问题。Dankrad,你提出的其中一个观点是,拥有一个结算层的价值,所以我们就不会有平方数量的跨链桥。

另一个我们在这里没有谈论太多的技术栈是,你可以选择将这些东西放在它们之间,也就是有一个结算 rollup。然后,你还可以拥有一个更受限制的环境,因此它仅针对向其发布证明、代币转移等进行优化和限制,这有助于最大限度地降低成本。例如,现在当我将我的证明发布到这个东西上,或者我通过这个东西结算时,我正在发送代币。我不是在与以太坊这种非常昂贵的通用执行环境竞争,其中所有的鲸鱼都在进行交易,所以这样做对我来说真的很昂贵。

我很想听听你们的想法,这是否也是一个有吸引力的策略,这些权衡是否值得再次拆散一堆东西?

John Adler:对于不熟悉你正在谈论的内容的听众提供一些背景,可能会更好一些,也就是说,如果今天在以太坊上有一个 rollup,它使用以太坊进行结算,你基本上可以将以太坊用作一个通信通道,以信任最小化的方式移动任意消息和资金。从一个 rollup 移动到另一个 rollup,基本上可以通过以太坊。你也可以直接进行 rollup 与 rollup 的通信,但你始终有使用结算层的选择。现在,如果你在一个纯数据层(例如 Celestia data)上有一个 rollup,那么你不能使用 Celestia 来结算任何东西,因为 Celestia 不执行智能合约。你不能通过 Celestia 转移资金,你可以在 rollup 与 rollup 之间转移。但是没有人会阻止你在 Celestia 之上建立一个 rollup,我们都是成年人,你始终可以在你的 rollup 之上再建立一个 rollup,这样就是 layer 3 的概念。你可以把一个 rollup 建立在另一个 rollup 之上。在这种情况下,你可以拥有一个基本上用作结算层的 rollup。这个 rollup 本身不会执行很多操作,它只需少量的操作,就足以验证证明、欺诈证明或有效性证明并传递代币。这是一个非常受限的执行环境。然后,你可以在此之上构建你的实际执行 rollup。这实际上就是今天在以太坊上拥有的东西,然后在它下面有一个声明层。但从根本上讲,该模型中仍然存在所有连接到单个结算层的 rollup 树。这允许你使用这个结算层作为 rollup 之间的通信机制来避免跨链桥碎片化,因为现在你不需要一堆跨链桥来进行连接。可能具有不同的安全保证,你可以只使用单一结算层进行通信或连接,因此你可以消除这种潜在的平方复杂性问题。希望这能为读者提供足够的背景知识,现在,你的问题是……等等,你的问题是直接问 Dankrad 的吗,还是我继续回答?

Jon Charbonneau:不,你可以继续回答。基本上你认为这些权衡是否值得?这会是一件我们经常看到的吸引人的事情吗?或者你认为更多类似主权 rollup 的东西,是你希望在 Celestia 上更常见的终局游戏?该权衡的频谱适用于哪些地方?

John Adler:是的,这在一定程度上也适用于以太坊,因为你有像 Starkware 这样的项目,例如,在少数几个实验室中,他们已经证明了他们正在构建的项目,也适合在它们之上构建这三个东西。即使在今天的以太坊上,你也可以在另一个 rollup 上构建一个 rollup。这并不是仅适用于纯数据可用性链,你也可以在结算层上的 rollup 之上建立 rollup,也可以选择在数据层上建立 rollup。因此,无论我是否期望其中一种比另一种要更普遍,我都不会说我期望任何事情,除了期待意外。这个世界充满了惊喜,我真的无法预测哪个会被更多地使用。我唯一期望的是,人们将试验直接位于数据层之上的两种主权 rollup,并基本上强制执行他们自己的结算方案,就像今天存在的 Cosmos zone 一样,这两种解决方案都是共享安全的。我还希望人们尝试结算 rollup,在 Celestia,我们正在构建一个称为 subnode 的节点方案,这是一种人们可以使用的开发者概念验证的东西。这本质上是一个非常受限的 EVM,它允许人们复制当前任何 EVM 链上存在的 rollup,他们可以只做部署到子节点的工作,然后就能运行了。我希望人们都尝试下这两种方法,因为两种方法都有各自的权衡,不能说一种要比另一种更好。

Dankrad Feist:我想,总的来说,这里的说法我是同意的。我想知道的一件事是,不必在你的结算层上进行竞争的优势这个说法,因为我觉得任何能够处理所有 rollup 的足够通用的结算层,也可以简单地用于实现通用智能合约。那么,谁来阻止任何人这么做,并开始与结算层的 rollup 竞争呢?我认为从长远来看,这会发生。

John Adler:这是有可能的。我只是想说出一些我脑海中的想法,并不是说这些都是完美的,而只是可能的。例如,你可以拥有一个将合约列入白名单的结算层,因此要部署新合约,你必须通过一些白名单。这将基本上由结算层本身的社区共识来控制。这将允许同意必须使用此通用结算层的 rollup 集基本上具有这种保证,即结算层将为他们工作,并且不受部署任意智能合约的人的影响。如果还有其他人想加入,他们基本上会问在场的一群人:“嘿,我可以加入吗?”然后他们会被纳入,或者被拒。显然,这个想法并不完美,因为你引入了一些许可权限的概念,但同时,谁说一组 rollup 不能在它们之间组织一些东西?我们谁能告诉他们,他们之间不能有一个许可的结算层,对吗?如果他们愿意,他们是可以这样做的。还有其他的选择,你可以更改特定指令的 gas 成本,使不验证欺诈证明或简单代币转移的任何操作都非常非常昂贵。在改变资源定价的过程中,你可以做很多聪明的事情来严重阻碍那些不是这样的事。所以这里有一些替代方案,但要再次强调一下,这并不是一个具体的提议,它就是我脑海中的一点想法,有一些选择。

问题 4: Celestia 的欺诈证明 VS 以太坊的 KZG 承诺方案

Jon Charbonneau:说得通,所以继续讨论我们遇到的另一个问题。正如我们所讨论的,这些基础层需要提供数据可用性的保证。在非常高的 level 上,我们可以做的是使用纠删码扩展初始数据,然后客户端对原始数据和奇偶校验数据进行数据可用性采样,以检查其可用性。

但我们还需要知道第二件事,那就是原始数据是否被正确扩展。因为在这种情况下,不适当扩展的数据并不能真正帮助我们。这里有两种选择,你们采取的方法略有不同。其中 Celestia 的设计使用的是欺诈证明,而以太坊的设计将使用 KZG 承诺

这似乎是一个非常微妙的具体不同点,但它确实对这里的一些更广泛的设计选择产生了有意义的影响。所以 Dankrad,我们将从你开始,你能给我们解释一下吗?

Dankrad Feist:是的,所以快速总结一下,某些东西可用的数据的工作方式,是你拥有原始数据,你要做的是将它编码成纠删码,这基本上是具有冗余属性的数据的更长版本,具有数据的任何部分或特定部分,例如该纠删码数据的 50% 可用于重建完整数据。这是数据可用性采样所必需的,因为你只想为每个区块下载少量恒定数量的样本,否则它无法扩展。如果你必须下载每个区块 90% 的样本,那么你节省不了多少。我们希望每个区块有几十个样本。由于纠删码,我们知道这已经足够了,因为使用少量样本,你就可以确保所有样本的 50% 可用。现在 John 提到的问题是下一个问题:“但是现在我们如何确保这个纠删码是正确的?”本质上,有两种不同的方法,Mustafa 和 Vitalik 以及另一个人在 2018 年的论文中首次提出了一种方法,即引入欺诈证明机制。

这个想法是这样的……好吧,简单的欺诈证明是行不通的,因为如果你只需要发送所有数据来证明存在欺诈,那么你必须重新保存任何东西。你可能有一般情况下的节省,但你没有最坏情况下的节省。因此,我们需要一种可扩展的防欺诈机制。这个提议的方法是将数据编码为二维对象,这样每一行每一列都可以单独作为欺诈证明,因此欺诈证明只是数据大小的√n,所以我们在这方面也可以实现很大的节省。我们发现这种方法的最大缺点是,我们希望让验证器在每个区块上对正确的链进行投票。但是如果你在等待一个证明,你怎么投票呢?如果你还不知道编码是否正确,你将如何投票?你可以等待足够长的时间,以确保欺诈批准已经到达,但你通常希望真正确保等待至少几分钟或最好是几个小时,以等待欺诈证明,这样你就不会投票给错误的链。这是该方法的一个巨大缺点,即会引入巨大的延迟。而另一种方法是,你只需要有效数据不只是采样,而是下载所有数据。据我了解,这就是 Celestia 正在采用的方法,这是我们今年不喜欢的方案。我们想要的是去中心化的有效数据集,你可以在家中轻松运行有效数据。因此,使用防欺诈方法,我们基本上陷入了困境,它对我们想做的事情不太有效。因此,我们需要的是纠删码的有效性证明。我们需要一个类似于所有者证明的证明,该证明可以立即向你显示编码已正确完成,你无需等待任何欺诈证明。最简单的方式是获取纠删码的一个 Merkle 根,然后简单地为其构造一个完整的有效性证明,但目前这并不实用。这将需要进行大量计算,也许大型数据中心可以在几秒钟内完成,但绝对不能在普通计算机或通过 GPU 来计算完成。但我们大约在两年前发现,使用 KZG 承诺,这是一种多项式承诺,你实际上可以相对快速地计算这些证明,对于相对不太大的机器来说,计算这些证明是可行的,并且很容易验证所有这些证明。这是我们在以太坊所采取的方法,以实现这种非常去中心化的价值数据集,你仍然可以在家中验证我们只是使用这个 KZG 编码数据,或者我们使用 KZG 承诺提交数据。这意味着你无需等待任何需要知道数据已正确编码的欺诈证明。

John Adler:关于欺诈证明和有效性证明,Dankrad 做了很好的解释。这里有一些权衡取舍,在某些情况下,欺诈证明可能会引入更高的延迟,但要便宜得多,而有效性证明会更加昂贵,因此必须使用各种运营商来确保这些昂贵的东西不需要有人为此付费,但在某些情况下具有较低的延迟。我并不是百分之百相信使用有效性证明是万全之策,我通常看到有效性证明被提议用于很多事情,不仅仅是你的数据,纠删码的有效性。一般来说,它们存在着各种限制,比如计算开销非常大等等。在数据可用性的特定环境中,我不相信的一件事是它们可以完全消除等待的需要,因为在数据可用性采样过程中需要完成的一步,不仅仅是采样,还有区块的重构。这就是为什么目前的以太坊纠删码提案使用了一个 two-dimensional square 的原因。因为在最坏的情况下,你不想让运行验证器的全节点用户重建整个区块,我的意思是,你又回到了开始的地方,你希望他们重建单行或单列。欺诈证明使用一个 two-dimensional square 的原因是,欺诈证明可以是单行或列,但实际上同样适用于区块的重建。去年,我们提出了部分节点的概念,而这些节点实际上并不存在于其他区块链上。很多区块链可能将轻节点作为全节点。Celestia 有一个部分节点的概念,它正是这样做的。他们可以下载所有区块的子集,也可以下载一个区块内的子集,而不是完全下载一个区块,这是因为行和列的纠删码是独立于所有行和列计算的。数据可用性采样过程的最后一步是,你仍然需要一个步骤,其中节点(全节点)尝试重建区块,以确保它可以由网络重建。因为如果每个人都有一堆样本,但没有人能够真正重建整个区块,那么数据实际上无法用于网络。

这总是需要同步通信,因为你总是需要一些节点能够从一组其他节点收集样本,重建它,为任何未分发到网络但可通过纠删码恢复的共享样本填写任何证明或纠删码,然后最终使其可用于网络的其余部分。这总是需要同步通信,但它的方式很微妙,分析起来并不明显。我不相信使用有效性证明,就意味着你可以忽略同步通信假设,然后说:“是的,我们可以在采样 10 个样本后立即签署一个区块,但我不确定网络是否真的可以重建它。”我想我们会发现的,我相信会有对此问题的严格分析,所以我很期待。我也很高兴以太坊团队选择使用一个 two-dimensional square 来避免这种情况,验证器节点必须下载整个区块来重建它。我知道,其他一些致力于数据可用性领域的项目并没有去这样做,所以至少以太坊在这方面做得很好。

Dankrad Feist:不幸的是,它实际上是值得的,而且看起来很棒。我不明白你在这里的担忧,因为你说一旦你完成了你的样本,你不知道你是否可以投票,因为你不知道网络是否会重建。但是,假设你的样本确保网络可以重建它,至少如果有足够的验证者可以看到这一点。

John Adler:网络可以在同步通信假设下对其进行重构,这与欺诈证明的假设相同。所以这取决于你的假设是什么。比方说你假设它是几个小时,那么在最坏的情况下,你可能会发现几个小时后你实际上无法重建区块,因为无论出于何种原因,通信延迟都高于一个小时。

Dankrad Feist:我的意思是,首先,这是一个非常不同的假设。欺诈证明的问题是,如果你每六分钟投票一次,例如,这已经是非常慢的出块时间,你必须确保欺诈证明将在六分钟内构建。而在这里,没有这样的限制。在你投票后,如果说重建需要一个小时,我认为这么长的时间是非常不合理的。但无论如何,我认为这是一种非常不同的约束类型。

John Adler:如果可以插话的话,基本上是这样的,是否存在这样的情况:假设密码学假设没有被破坏,有效性证明很好,那里没有错误,是否存在有效性证明有效的情况,人们对其进行投票,但后来的区块无法被某人重建?我运行一个全节点,但实际上无法重建这个区块?

Dankrad Feist:我认为那不可能发生。

John Adler:例如,如果通信延迟太高,则可能无法在某个范围内重建区块,如果通信延迟太高,则可能根本无法重建这个区块。

Dankrad Feist:是的,我认为这是一个任意的……对于任何同步假设,不同之处在于,假设我们确实做了一个一小时的同步假设,我认为一个小时是一个相当合理的假设,那么在欺诈证明的世界中,问题是你只能给一个区块投票。如果你不想要超级节点,每小时只能投票一个区块。与重建相比,我可以继续构建区块链,然后重建可能需要一个小时,但它会完成并且很好,因为我知道它会完成。因此,在一个非常松散的同步假设下,我仍然得到了重建,但我不能为投票做同样的证明。

John Adler:也许是这样,但我绝对希望看到对这个特定案例的更具结论性的分析。

问题 5:Tendermint vs Gasper:验证器集的重要性

Jon Charbonneau:很棒,继续我们的下一个问题,正如我们之前提到的,这场 KZG 与欺诈证明辩论引出的一个观点,它与以太坊和 Celestia 所使用的共识机制有关。

因此,作为背景介绍,Celestia 使用的是久经考验的 Tenderment 共识算法,人们从中看到的潜在缺点之一是,与 Gasper 等其他东西相比,Tenderment 的验证器集相对有限,Gasper 是以太坊从头开始构建的共识算法,他们一直在信标链上进行测试,在完全实现合并后,这确实允许更大的验证器集。

那么问题就变成了,当你们查看这些不同的共识机制时,你能够允许数十万不同的验证器积极参与共识机制有多重要?特别是,少数大玩家是否有可能都会主导多数质押权益?无论如何,社区共识是否不能保证审查阻力,在验证者进行审查的情况下,我们可以将它们分叉出来?

虽然这听起来像是一件好事,但实际上拥有数十万验证器真的很重要吗?我会把这个问题交给 Dankrad,你先来回答。

Dankrad Feist:谢谢,我觉得是的,我相信支持大量验证器很重要,很明显,我们可以看到存在某些质押中心化的力量,我们正在关注这一点,协议最终可以为此做的事情是有限的。但我相信的是,正如你所提到的,如果审查发生了,我们可以进行分叉,这是非常重要的。所以我认为这是正确的,这可能被解释为一个无关紧要的论点,就像 100 个 验证器就足够了,因为我们可以继续淘汰审查者,然后我们最终得到一个我们满意的验证器集。我看到的一个问题,或者更确切地说是两个问题是,如果你完全取消了在家运行验证器的能力,那么你就没有某种回退机制。以太坊可以非常可信地声称能够完全使用家庭节点运行,它不需要数据中心或类似的任何支持。这意味着,例如,某些监管目标不可用。我要说的第二件事是,这也是避免富豪统治的一种方式。因此,基本上,更中心化的验证者甚至不可能被迫做任何事情,例如,对某些应该审查的交易有一定的看法。这可能会产生与审查相同的效果,如果你没有任何能力以更加去中心化的方式运行网络,这也可能难以补救。

Jon Charbonneau:John, 你想谈谈你的想法吗?

John Adler:当然。从哲学上讲,Celestia 和以太坊之间的相似之处,要多于不同之处。因此,尤其是当你将其与传统金融生态系统进行比较时,两者的差异非常微妙。Celestia 的设计目的不是最大化共识参与节点的数量,它专门优化以最大限度地减少最坏情况下需要承担的原子成本(atomic cost),从而为网络提供安全保障,并追究区块生产者的责任。因此,解释下这意味着什么,这意味着人们可能需要采取某些行动来让验证者承担责任。例如,如果验证者产生了一个无效的区块,那么,你可能有一个欺诈证明,证明该区块是无效的,而这个欺诈证明,可能包含多个步骤,其中一些必须原子地完成,它必须是全有或全无。如果他们没有完成所有步骤,那么他们的工作基本上毫无价值。我们想采取这些原子性的行动,采取人们必须做的最昂贵的行动,然后将成本降到最低。这是一个不同的优化目标,与某些其他系统相比,它最终看起来确实与 Eth2 更相似,但它是一个微妙不同的优化目标。这样做的原因是…实际上我在《No Execution》播客的第 0 集中与 Anatoly 详细讨论了这个问题,你可以在 Celestia 播客网站上看到它。验证者是否行为不端并不重要,因为你总是可以追究他们的责任。如果用户运行的节点能够为网络提供安全性,请注意我在这里没有说全节点,因为我们生活的世界不仅仅是每个人都在运行全节点模型。我们存在的世界里,人们可以建立欺诈证明,人们可以进行数据可用性采样,他们可以重建纠删码 square 的单个行或列。这些操作都是原子操作,我们希望将成本降到最低,这样人们就不必运行全节点来保证网络的安全。他们可以运行部分节点,他们可以运行比常规轻节点任务更多一点的轻节点,只要你有足够的这些节点,你应该这样做,因为它们以原子方式运行非常便宜,并且你已经最小化了最坏情况下的成本,那么区块生产者是否恶意并不重要,如果他们试图审查,如果他们试图在区块中创建,他们就会被抓到。他们将通过社区共识承担责任,他们质押的权益会被燃烧掉。有趣的是,我的这个定位与 Solana 的定位本质上是截然相反的。因此,有趣的是,在这个阶段,有人说“这不是一个好的优化目标”或“这不是最好的优化目标”,那他们可能更符合 Solana 的愿景,而不是我们在 Celestia 的愿景。现在,为什么这很重要?为什么不需要大量的验证器?这是因为,只要你能让他们负责任,即使只有一个验证器,那么你就可以罚没他们。重要的不是验证器的数量,而是验证器所拥有的可以罚没的权益。你想最大化这个数字,你想让他们尝试攻击系统的成本达到最高,这样你就可以惩罚他们。当你惩罚他们时,这会带来非常真实的经济惩罚。如果你不能最大化这个成本,那么无论验证器的数量如何,攻击系统都是很便宜的。现在,为了具体说明家庭验证器的问题,我认为这有点言过其实,因为在 ETH 价格高峰时,一个验证器的质押成本就有 10 万美元,你不仅需要资金,我认为你还需要将其锁定几周才能进入队列,甚至可能需要几个月的时间才能进入成为验证器的队列。你需要 10 万美元,在进入队列中等待成为一个 Eth2 验证器,只有到那时你才能真正开始成为一个验证器,并且你有所有关于提款的不确定性。这是一个非常大的机会成本,10 万美元的 ETH,加上机会成本,我认为如果你有那么多钱,你可以负担 2000 美元来运行一个全节点,并且可以负担得起千兆互联网连接,每个月 100 美元,对吗?事实证明,这就是你真正需要的全球吞吐量,就价值 2,000 美元的全节点以及千兆互联网连接的数据可用性而言,你可以轻松获得比特币如今 1000 倍的效果。这真的是所有的问题,我们在这里要求的不是万亿数量级的吞吐量,对吧?我们谈论的是保守的数字,你实际上可以在家里运行它,特别是当你将它与成为验证器的成本进行比较时,仅仅是质押成为一个验证器的成本。

Dankrad Feist:我认为我们完全同意第一部分,即能够非常便宜地验证它。我认为我们之间没有太大的差异,我们希望对此进行优化。我认为我们之间不同的地方在于,验证器集重不重要。所以我们认为这仍然很重要,这是因为实施审查要困难得多。这就是变得困难的地方,因为你不能自动罚没验证器的审查交易行为。我们需要更高的抵抗力,因为社会罚没首先必须是罕见的事件,其次,它实际上需要有一个退路。如果你的社交罚没意味着你必须罚没所有的验证器,那么它就不起作用了,因为那时你没有链可以运行。所以你需要一种方法,让你总能找到一些验证器的子集,以保持不变,而不进行审查。我认为对于包括非机构化的家庭验证器的验证器集来说,这种可能性更大。对于你提到的千兆互联网连接,我非常不同意。在很多地方,你很难做到这一点,我认为千兆互联网连接将不足以运行一个下载完整数据区块的超级全节点,至少对于我们在以太坊计划的数据规模而言是这样的。

John Adler:这是令人惊讶的,最初建议的 Eth2 带宽不是大约每秒 1 兆比特吗?那么它会到 10 兆比特吗?

Dankrad Feist:是的,但是区块是以突发方式发送的,除非你发现你想开始流式传输它们,否则你就不能把它作为一个连续的流。每 12 秒一次,你需要能够从多个对等节点接收它,并在该时间跨度内将其发送到多个对等节点。因此,我认为使用千兆互联网连接对于一个超级全节点而言是不现实的。并且,我想我在伦敦以这个价格是买不到的,所以我怀疑以每月 100 美元的价格就能实现的说法。

问题6: 关于 Celestiums 的想法

Jon Charbonneau:很合理。我们将继续讨论我这里的最后一个问题,这是关于 Celestiums 的问题。Celestiums 代表了以太坊和 Celestia 潜在合作的一种好方法。作为背景,L2 可以从更广泛的不同安全假设中进行选择,而 Celestiums 就是这样的一个潜在选择,你可以依赖以太坊进行结算,然后你可以依赖 Celestia 获得数据可用性。

因此,我把这个问题交给 John,你来谈谈这些将如何工作,以及为什么这可能是一个有吸引力的选择。

John Adler:当然。因此,我可能应该从描述 rollup 和 Validium 的现状开始,或者只是描述链下数据的可用性。所以今天在以太坊上 rollup 的工作方式是区块链的方式,它将所有数据发布到以太坊,这样你就可以拥有一个信任最小化的客户端。不幸的是,智能合约无法执行数据可用性采样,因为它需要网络连接和本地随机性。话虽如此,我确实在 Eth research 论坛上写了一个提案,它确实使智能合约能够为更多链执行数据可用性采样,但这还处于研究阶段。这是一种可能性,可以说,但经典的智能合约无法做到这一点。所以你只剩下,好吧,你只需要将所有数据发布到以太坊,只是成本是线性的。这不是完全理想的方案,这并不意味着它是最坏的解决方案,或者并不意味着它不是最好的解决方案,而是它不是理想的,对吧?我们不想一直发布所有的数据,因为它的成本是线性的,而以太坊区块空间现在相对是昂贵的。在实施 danksharding 之后,它可能会便宜很多,或者说它应该有更多的容量。这并不一定意味着它会更便宜,这要取决于供求关系。但无论如何,它现在相当昂贵,这就是为什么各种项目都在使用链下数据可用性机制的原因。大家知道的最突出的例子就是 Validiums,所以它们看起来就像 ZK-rollup,但是把数据放在了链外。我相信 zkSync 和 StarkWare 可能会提供它们,但不要引用我的话,或者会提供一些变体方案,本质上是利用了数据可用性委员会(DAC)的概念,所以这是一组签名者,他们负责让数据可用。这显然比什么都不做要好,但这是我们能得到的最好的结果吗?这就是 Celestiums 的用武之地。Celestiums 本质上利用了一种我们称之为 Quantum Gravity Bridge 的技术,它是从 Celestia 到以太坊的单向消息桥,它基本上证明了整个 Celestium 验证器集的权益。所以它本质上就像一座权益证明(PoS)桥,它证明一些数据已经发布到 Celestia,因此它本质上是数据可用性委员会或其他方案的替代品。所以 Celestium 是一个数据可用性服务,就像数据可用性委员会一样,那与普通数据可用性委员会相比,Celestium 有哪些优势呢?如果委员会撒谎,是没有处罚的。我猜他们就是失去了声誉,但看看传统的金融生态系统,这种声誉到底值多少钱?尤其是当你真的没有很多选择的时候。用户无法验证数据可用性委员会目前是否诚实,他们过去是否诚实,这意味着当他们加入时,他们真正想要的只是他们所听到的声誉。没有其他证据表明委员会的行为是诚实的。那我们能在这方面改进吗?因此,在这些领域,Celestiums 可以比普通数据可用性委员会做得更好,实际上几乎没有任何缺点。由于数据可用的证明是由 Celestia 验证器集的权益支持的,如果证明不正确,则意味着至少三分之二的 Celestia 验证器集撒谎,这意味着它们可以通过社会共识被罚没,这意味着他们可能会损失巨额资金。因此,如果你不退出这个数据可用性委员会,证明无效将受到非常直接、非常严厉的经济处罚。其次,由于 Celestium 可以利用的 Quantum Gravity Bridge 从根本上证明的数据是 celestia 区块的 razor-coded 样本,用户实际上可以在这些区块上本地执行数据可用性采样,并自己验证 Quantum Gravity Bridge 在其历史上有没有被破坏。他们可以通过简单地对历史区块执行数据可用性采样来验证 Quantum Gravity Bridge 从未中继过无效关联。他们还可以在当前区块进入本地时对其执行数据可用性采样,这样至少他们知道发生了损坏。如果发生损坏,他们至少知道,因为对于数据可用性委员会来说,他们可能会被损坏,而用户可能一年都不会知道。如果没有人告诉他们,而且有一群幕后人员在处理这些事情,他们就永远不可能知道。而有了 Quantum Gravity Bridge,他们可以立即知道,甚至可以在数据中继到以太坊之前就知道,在某些情况下,它将是一个损坏的数据中继。因此,在这种情况下,它可以为你提供更好的安全保证,无论是具体惩罚的形式,还是能够检测腐蚀何时发生的形式。然后你退出数据可用性委员会,不利因素实际上是不存在的。我想你可以说你将数据发布到区块链上,所以它会稍微贵一点。根据数据可用性委员会希望为其提供服务的成本,这可能会更加便宜。还有一点是延迟,我猜,它要略高于数据可用性委员会,但是你可以很快地在 Celestia 链上得到软确认,并且很快从 Celestia 链上的验证者那里得到软确认,因此延迟并不是大问题。所以缺点基本上不存在,优点是关于安全性和可审计性。简而言之,这就是 Celestiums,它将为以太坊上的 rollup 提供一个额外的选项,为它们提供非常可扩展的数据可用性。这只是众多选择中的一个。正如我之前所说,目前有多个选项,使用以太坊本身,使用数据可用性委员会,使用 Celestium,等待 DankSharding 的实施,并编写尽可能多的选项。但这只是以太坊上的 rollup 可选择的众多选择之一。并且我认为,只有当我们假设 Celestia 上有一个充满活力的生态系统和社区时,这种额外的保证才能真正起作用。

Jon Charbonneau:我认为这个假设会成立,但我是有倾向性的。

John Adler:我只是说这是一个额外的假设,是的,但希望是的。

Jon Charbonneau:很棒,我很乐意听你们整天谈论这类事,你们解决了像我这样的人提出的很多问题。我们试图了解这些设计之间的细微差别,以及其中的考虑因素,尤其是正如 John 之前提到的,它们之间的相似之处多于不同之处,尤其是当你从其他链和精神上看它们前进的方向时。

一旦我们结束,我一定会重新播放一遍录音。我想我们的很多观众都会这样做。但为了结束,我会把它交给你们。如果你们有任何最后的想法,无论是想说什么,John,你先来。

John Adler:当然,如果你想关注我们的进展,你可以在 celestia.org 上关注我们。你也可以关注我 @jadler0,所有 Celestia 的开发都在 GitHub 上公开进行,所以任何人都可以关注,任何人都可以贡献。到目前为止,我们已经有了很多外部贡献者。

我们目前有一个测试网,它是第一个持久的、可公开访问的测试网,我相信它会执行数据可用性采样。然后,我们基本上正在努力实现这个网络,使其与所有其他组件(例如 Quantum Gravity Bridge 和 subnode 子节点)一起变得有意义。所以,如果有人想要贡献,那就是你可以做到的地方。

Dankrad Feist:谢谢,感谢你邀请我来这一期播客,这很棒,是的,我认为这绝对是一个非常令人兴奋的话题,我鼓励每个人尝试更多地了解数据可用性,因为它绝对是扩展区块链最重要的事情之一。

同样在以太坊,我们仍然需要开发东西,我们仍然需要你们的帮助,仍有一些有趣的挑战需要解决,例如它的点对点网络,它是如何工作的,如果你对此感兴趣,请与我们交谈。

Jon Charbonneau:再次感谢两位,谢谢大家的加入。

btcfans公众号

Scan QR code with WeChat

Link
Disclaimer:

Previous: 迪士尼推出“2022 加速器计划”,拥抱 Web3 领域 Next: 比特币最大主义是加密欺诈文化的对立面

Related