Hi 游客

更多精彩,请登录!

比特池塘 Just discuss 正文

a16z播客:数据可用性和Danksharding

123458667
50 0 0
Robert:大家好,我 Robert Hackett 又回来了,为 Web3 with a16z 带来新的一集。我最近与我们的一些研究人员就数据可用性采样和 Danksharding 的话题进行了现场聊天——这与区块链的扩展有关,同时也为更高级的区块链网络和用户应用铺平了道路。虽然许多讨论与以太坊特别相关,但我们涉及的一些概念也适用于计算和网络的普遍进步。
这一讨论涉及到一些具体的数学问题,我们在这一集里谈到了(并进行了简要的解释)。
在你听的时候,为了快速了解情况,你会很多次听到“多项式承诺”。这是一种工具,有助于减少验证复杂计算所需的数据量。而“插值”,是你将听到的另一个术语,是一种从有限的数据点中重建数据的方法。
请务必在a16zcrypto.com/das查看本集提到的论文,以获得更深入的解释——也就是 DAS,代表数据可用性采样。一如既往,以下内容不属于投资、商业、法律或税务建议。更多重要信息请见a16z.com/disclosures,包括我们投资清单的链接。
Robert:好的,今天我们要讨论的是数据可用性抽样和 danksharding. 现在,如果你对这些东西不熟悉,不要害怕,因为我和几位专家在这里,他们将为你分析这些东西。我们有斯坦福大学教授、著名密码学家和 a16z 加密研究顾问 Dan Boneh,以及 a16z 加密的研究伙伴 Lera Nikolaenko.
Lera:很高兴参与这期内容。谢谢你,Robert.
Dan:谢谢,Robert. 很高兴来到这里。
Robert:也谢谢你们。那么,如前所述,Dan 和 Lera 最近写了一个很好的帖子,并有一个与改进 protodanksharding 的方法有关的提案,这是今年晚些时候以太坊计划的这次升级。那篇文章中有很多丰富的细节,所以我们会深入挖掘那一点。
但在我们进入所有的细节之前,我想也许我们可以先放大、后退,从更整体的图景开始。让我们从 Dan 开始。Dan 将帮助我们理解今天谈话的主题,数据可用性采样。
也许我们可以,你知道,保持简洁,让更多的人了解,因为你或许能够这样做。
Dan:当然,所以在我们谈论数据可用性采样之前,也许我们可以放大一点。也许让我们先来谈谈这里的总体目标。这是为以太坊扩展所做努力的一部分。
因此,扩展以太坊的方法之一是使用 rollup,而 rollup 实际上需要在链上推送大量的数据。因此,rollup 允许你采取,例如,100 或 1000 个交易,并将它们作为一个单一的交易在以太坊第一层处理。然后所有与这些交易相关的数据基本上都被推送到链上。
因此,有必要在链上实际存储相当多的数据。而问题是如何做到这一点。而这恰恰是 danksharding 发挥作用的地方。因此,这是一个非常美丽、美丽的想法。它来自以太坊基金会,尤其是 Dankrad Feist. 这是一个非常优雅的结构,基本上,Lera 和我想概述一下这个结构是如何工作的,并有可能看一下它可能的一些选项,可以帮助它改进一点。
Lera:是的。Rollup 本质上允许以太坊的执行扩展,但问题是,你如何使数据扩展?而 danksharding/数据可用性抽样基本上为以太坊增加了这个缺失的部分,使其能够实现全面扩展。这篇文章有点相当的技术性。有些方面我们没有探讨,比如网络,这也是很有趣的研究和写作,但我们主要关注 danksharding 的密码学方面。
Dan:实际上我甚至想补充说,如果你对这个领域感兴趣,还有非常漂亮的开放性问题留给研究人员去思考。围绕着编码和多项式承诺有很多美丽的问题。有一些真正相当有趣的问题。如果这些问题能够得到解决,我们最终会得到更有效的系统。
Robert:这是很好的背景补充。稍后我肯定要问你关于那些开放的潜在查询领域的问题。但在这之前,让我们多谈谈这个将释放以太坊区块链空间的建议。因此,区块链基本上是这个巨大的交易记录,从这个系统启动的时候就开始了,到创世区块。开发人员如何考虑释放空间,使其获得更大的吞吐量、可扩展性、更便宜的交易,所有这些听起来不错的东西,将使系统更加可用。你们实际上如何达到这个目的?要获得这些效率的提高需要什么?
Lera:我认为主要的挑战是,你不能只是要求验证者存储更多的数据。这不会让你走得太远。如果你想扩大区块链的规模,将区块的大小增加几个数量级,你必须将你的区块分割,并将其分散到验证器中,以便每个验证器只存储区块的一些片段。这就是纠错和擦除编码的想法,让你能够做到这一点。
因此,基本上是在不给验证者带来太多负担的情况下增加块的大小。我想说这是主要的技术困难。这正是 dankshardin 正在解决的问题。
Robert:你提到了擦除编码,听起来这是这项技术的一个关键部分,使其能够发挥作用。也许你可以提供一些更多的细节。什么是擦除编码?它是如何工作的,以及它在这种情况下是如何应用的?
Lera:当然,绝对的。所以你基本上是把一个有用户数据的区块扩大。你对它进行擦除编码,把一个较小的区块变成一个较大的区块,而这个较大的区块可以容忍其中的一些遗漏。因此,你可以失去该块的某些部分。
在 danksharding 的情况下,你可以失去 25% 的区块,但仍然能够从你拥有的东西中重建这些缺失的部分。因此,当你把这个扩大的区块分散给验证者时——而验证者因为其中一些是杂乱无章的或有问题的而倒下了——你仍然可以从这些验证者那里重建,如果他们倒下了,失去了他们的碎片,那也没关系,其余仍然在线和仍然诚实的验证者可以恢复这些丢失的碎片。这就是为什么擦除编码的特性在这里很有用,只是为了替代杂乱无章或有缺陷的验证器。
Dan:也许我们甚至可以用一个比喻来解释它。这就像,你知道,如果你在看 Netflix 的电影,并且说,你知道,Netflix 的服务器正在向你的电脑发送数据包,而你正在看电影,那么想象一下,10% 的数据包实际上没有通过,你的电脑只能看到 90% 的数据包。
因此,通常你会开始看到各种有损的视频和性能的下降。通过擦除编码,发生的情况是,如果电影使用擦除编码,即使只有 90% 的数据包通过,笔记本电脑也有足够的信息来实际重建整个电影。
有趣的是,擦除编码到处都在使用,比如没有擦除编码,通信网络就无法工作。也许再次,只是另一个例子,当你有一个深空探测器,它正在发送消息回地球。有很多噪音,很多信息要么被丢弃,要么被扰乱,然而在地球上,我们能够恢复信号,得到来自火星的那些清晰的图像。
这实际上也是使用一种稍强的技术来完成的,称为纠错码,我们不仅要丢失数据包,而且还要从数据包被扭曲、被改变价值中恢复。在区块链的背景下,有趣的是,所有的数据都被签名。所以我们实际上并不关心数据损坏,因为签名层会检测到数据损坏。
因此,我们真正关心的是,一个恶意节点能做的唯一事情——试图阻止数据被重建的人——该节点能做的唯一事情是,在某种意义上,删除构成数据的碎片。因此,我们并不关心从数据损坏中恢复的问题,因为那是由签名来处理的。
但是,我们确实很担心数据片断的缺失,结果是,不管是谁试图重建数据,都无法做到这一点。因此,这正是擦除编码的作用,我们知道唯一可能发生的事情就是某块数据丢失。它不可能被乱码。因此,如果我们得到了它,我们就得到了正确的,这是因为签名的关系。但如果它丢失了,我们必须以某种方式恢复。而这正是 Lera 所说的,这就是擦除编码的想法。
你这样做的方式基本上是你把你的原始数据——在以太坊的情况下,你会采取一个区块,你会把它扩大一点。
实际上,你把它扩大了像四倍,以便在区块中获得更多的数据,所以现在数据在块中是多余的,现在你把它分成小块。现在你可以问每一个验证器,“哦,你知道,你不需要存储整个区块——你只需要存储这一小块块的数据”。
如果有足够的验证器做他们的工作并存储这些小碎片——当我们需要重建区块时,他们将这些碎片送回给我们——如果有足够的碎片被送回,那么我们就能够重建整个区块。特别是在 danksharding 中——再次,这是一个美丽的、漂亮的提议——恢复率是 75%. 因此,如果 75% 的验证者作出回应,并且我们能够恢复 75% 的碎片,那么我们就能够重建整个区块。这是一种用于 danksharding 的核心机制。
Robert:这真的很有用。因此,听起来擦除编码是这样一种技术,它使你能够应用一些冗余和备份,这样你就不会失去所有的数据,这样你仍然可以组装它,获得访问它,看到它的存在。
Dan,你提到,做这种数据可用性抽样的原因是为了防止坏人做某些事情,比如把一些数据弄走。我们在这里到底是要防备什么?
Dan:是的,接下来聊这件事很好。因此,事实上,发生的情况是,随着这些解决以太坊上的数据问题的建议,将会有一个新的交易类型被引入。
这被称为“blob-carrying 交易”,它基本上将允许人们做的事情是嵌入 blob. 每个 blob 是 128 千字节。所以你把 blob 嵌入到区块中。因此,通常区块是由交易组成的,对以太坊的状态做各种事情。所以现在,除了我们熟悉和喜爱的常规交易外,每个区块还将有一个或几个携带 blob 的交易,正如我所说的,每个交易将是 128 千字节。
现在的长期计划,实际上也许 Lera 可以谈谈过渡到我们如何到达那里,但长期计划是,在每个区块中可能有相当多的数据携带的 blob,这实际上会使区块相当大,对吗?我的意思是,每个 blob 是 128 千字节。
如果你把这些东西放在一起,你可能最终,实际上,你将最终得到 30 兆字节的区块——要求验证者存储这些巨大的区块是不合理的。今天,这些区块只有 100KB 左右,所以这些将是大得多的区块。因此,我们的想法是基本上把这些大的区块分解成小块。
每个验证器,每个节点实际上都只存储这一小块。而现在的问题是,如果他们说他们存储了这个区块,但事实上他们没有存储,会发生什么?对吗?那我们该怎么做呢?而这正是数据可用性抽样的作用,这是一种非常有效的方法,可以在区块创建时测试,事实上,每个人都收到了他们的碎片,每个人目前都有他们的碎片,而且目前区块可以被重建,尽管它被分解成很多很多的小碎片。这些碎片被储存起来,分布在网络上。
Robert:在 Lera 接下去说之前,我只想确保我明白一些事情。所以你说今天的区块大约是 100 千字节。而我们的想法是,在所有这些升级之后,它们将是 30 兆字节左右。扩大区块大小的部分原因是为了适应这种新的数据类型,这种 blob 数据,其目的与你通常塞进区块的东西不同,后者只是纯粹的交易数据。
而这个 blob 数据确实与帮助这些链下 Layer 2 以更短暂的方式存储一些数据有关。我说的对吗?
Dan:是的,我很高兴你重申了这一点,因为这很重要。所以这些 blob 基本上会被这些 rollup 使用。因此,rollup 必须存储 rollup 的数据。
因此,今天他们所做的是将其存储为所谓的“调用数据”,这有点昂贵,而且不是调用数据的目的。因此,相反,他们将把这些数据存储为区块中的 blob. 有趣的是,这些 blob 实际上不会被 Ethereum 的执行层使用。
它们只是作为块中的 blob 被存储。执行层将只看到这些大的区块的哈希值。他们将不能访问 blob 中的单个字节或元素,这是新的机制。因此,今天,这种存储方式,正如我们所说的,是在调用数据中,而调用数据,对以太坊的执行层都是可用的。
因此,由于这种简化,存储 blob 数据将比【存储】调用数据便宜得多。因此,原则上来说,这样做的目的是为了降低 Layer 2 系统的成本。因为今天他们必须付出相当大的代价来把所有的数据存储为呼叫数据。在未来,一旦部署了 danksharding,甚至一旦部署了 protodanksharding,成本就会低很多。
因此,L2 系统将变得便宜得多,而且更容易使用。
Robert:这听起来很棒。我喜欢我们正在进行关于密码学和非常技术性的软件的复杂对话,而我们却一直在使用“blob”这个词。这让我想起了 80 年代的科幻电影 Attack of the Blob. 但是,Lera,是的,也许你现在可以谈谈这个趋势,以及我们如何从现在的位置到未来扩大区块大小的愿景。
Lera:是的,当然。在我深入讨论这个问题之前,只想对 Dan 所说的补充两点意见,我想说的是,重要的是 blob 要过期,验证者不给任何保证,他们会永远存储这些 blob. 现在,过期的时间大致设定为 30 到 60 天,这也是以太坊基金会正在考虑的问题。
因此,在这段时间之后,在此期间,你将有机会下载所有这些 blob 并将其存储在本地。你知道,网络将放弃它们,但对这些 blob 的承诺将持续存在。如果你需要,所以如果你有 blob 本身,你总是可以用调用数据将它们重新提供给执行层。
因此,只要你存储了 blob,你就可以通过重新提供它们来证明那些是你拥有的正确的 blob,因为链上继续存储着这些 blob的哈希值,即承诺。我还想提到另一件重要的事情,那就是这些 blob 的收费市场将是不同的。
所以会有另一个收费市场。它们的价格会有一些不同。所以以太坊会有这两条管道。一个管道,如果它变得拥挤,你要支付更大的费用,比如说执行,如果一个数据管道变得拥挤,你要支付更大的费用来存储数据。所以我们还不知道存储会有多贵。直觉告诉我们,它一定比今天调用数据的成本低。但是,我们必须再次进行实验,看看到底会便宜多少。而 protodanksharding 实际上是向全面 danksharding 迈出的一步,但它就像我们要进行的一项实验,看看验证器如何处理这个额外的负载,以及存储这些数据块的费用会有多高。
因此,在通往破译的路上,我们要做这个实验,用 protodanksharding. 在 protodanksharding 中,基本上你不应用任何擦除编码或纠错。你所做的就是添加这种特殊的交易类型,携带数据块。这些数据块会有一个过期时间,仅此而已。
所以在以太坊中,区块大小会增加一点。所以现在,正如 Dan 所说,大约是 100 千字节。如果使用 protodanksharding,它将会是大约 500KB 左右。因此,这不是一个很大的增长,但我们仍然要测试像所有的假设,希望能检查出来,以太坊将继续走向完全的 danksharding.
Robert:那么 Lera,你在那里说了很多东西。我想确保所有这些观点都能被理解。你提到,blob 数据会有不同的收费市场。那么,考虑这个问题的正确方式是,比如你有不同的高速公路系统,或者也许你在高速公路上有一个车道,比如你有一个 E-ZPass 或其他类似的东西,也许在这个 HOV、E-ZPass 式的车道上的人更便宜?把这种数据放在区块链上,你会得到较低的费用,而那些只是普通通勤者则需要支付通行费。我知道我在这里混合了一些比喻,但我想知道这是否是一个物理类比来描述不同类型数据的收费市场的差异。
Lera:是的,我想说很难想象这个新数据的费用会比我们目前的费用高,所以假设是如果你不关心从执行层访问这些数据的话,把你的数据放在这些 blob 中总是会比较便宜的。因此,就像在你的高速公路上开辟另一条车道一样,这只会增加交通流量,但对于某些类型的交易,你会进入这条车道,对于那些数据量大的交易和执行力强的交易,你会继续通过主车道,如果这有意义的话。
Robert:是的,确实如此。听起来,它可以更便宜的原因之一是它有这个到期日,正如你提到的。我想你说过,目前的想法是,这个 blob 数据将持续 30 到 60 天,到那时,它将简单地消失,只剩下一个痕迹——你描述那种的承诺。
Lera:是的,没错。
Dan:也许要补充一下,基本上发生的情况是,当你提交交易时,有一个收费市场,正如 Lera 所说,如果有大量的交易被同时提交,比如有一个大的 NFT 铸币厂,每个人都想发出交易,那么当然每笔交易的价格会立即上升。
嗯,blob 数据将是一个平行的收费市场,所以估计提交 blob 的人比提交交易的人少。因此,希望在 blob 上的拥堵会更少。但原则上,这可能发生。希望不会,但有可能发生的是,突然间,由于某种原因,blob 出现了巨大的拥堵,然后 blob 的收费市场实际上会上升。
但原则上,同样,因为提交 blob 的需求比提交交易的需求少,所以希望 blob 的成本会比交易的成本低。
Robert:好的。这对理解也很有帮助。所以我们已经为这些更新制定了一种时间表。也许,听的人,也许你熟悉“以太坊合并”,这发生在去年秋天,这个大的以太坊升级,基本上消除了以太坊在能源消耗方面的环境影响。而现在我们正在进入这个新的升级时期,以太坊的联合创始人 Vitalik【Buterin】称之为“激增”,意思是说,突然之间,这些更新将使区块链的规模比以前要强大得多。因此,这次更新的一部分,第一批更新之一,是 protodanksharding. 它将在今年晚些时候发生。
在这种升级和完全的 danksharding 之间会发生什么?两者之间的区别是什么,我们什么时候才能得到未来完全形成的 danksharding?
Lera:这是个好问题。我认为在这一过程中还有一些研究问题需要解决,特别是围绕着网络,因为当这些验证器只存储 blob 的片段时,它们需要互相帮助重建这些片段。如果某个验证器沉睡了一段时间,当它醒来的时候,它希望其他验证器能帮助它重建其丢失的片段。
因此,这是一个相当复杂的网络协议,目前仍在制作中,而且还有其他令人兴奋的研究问题,有可能改进该计划,但我认为到目前为止,它看起来是一个相当清晰的路径,从 protodanksharding 到 danksharding. 而问题只是也许如何使它变得更好,如何改进它的不同方面,使它更有效率。
Dan:也许值得补充的是,在 protodanksharding 的方法中,每个块最多有四个 blob,这就是为什么每个 blob 是 128 千字节。4 乘以 128 得到半兆字节,这就是为什么这是 protodanksharding 中对块大小的限制,而且这实际上即将发生。这应该会在今年晚些时候发生。
然后,是的,一路走到 danksharding 仍然需要一些工作。事实上,最近有一个非常大的事件,就是联合生成 danksharding 的参数。因此,在准备实现完全的 danksharding 方面还有很多工作要做。
Lera:是的,那是相当令人兴奋的。我想他们仍然在接受参与贡献,以参加受信任的设置仪式。是的,所以它仍在进行。这是一个大型社区的努力,真的很有趣,人们想出了很多创造性的想法来贡献。所以,你们得看看这个,绝对的。
Robert:那超级酷的。我实际上参加了一些早期隐私币的可信设置仪式。这个受信任的设置仪式是否像某些人那样浮夸,在那里你有人们燃烧笔记本电脑和爆炸的硬盘之类的东西?
Lera:就我所见,这只是人们想出了不同的创造性方法来产生熵。有些人使用他们的宠物、狗和猫。有些人正在创造一些复杂的大理石运行机器之类的东西。甚至有一个从卫星上做的贡献,是那里的最高海拔贡献。
Dan:实际上我们必须提到这一点。这实际上是非常酷的。这家公司 Cryptosat 实际上在轨道上有卫星,对太空中的噪音进行采样,然后贡献并参与到可信设置协议中。
因此,看到这一点是非常酷的。
Robert:哇,这太棒了。我还不知道太空中还有加密货币呢。丹,你说过,“原汁原味”将在每个区块上有四块 blob. 储值是什么功能?我们在这里讨论的是多少个 blob?
Dan:是的,所以顺便说一下, protodanksharding 每块最多有四个 blob.
他们的目标实际上是两个,但最多是四个。然后 danksharding,正如我们所说,他们的目标是最多 30 兆字节的区块。因此,只要将 30 兆字节除以 128 千字节。这告诉你这是在一百个的顺序上,我猜是每块有一百个 blob.
Lera:是的,我记得目前的计划是每一个区块有 128 个 blob 的目标,也许最多有 256 个 blob.
Robert:听起来很棒!
Dan:而这正是区块变得相当大的时候。这时,验证器要保留整个块就变得有点困难了。这时,我们就必须开始把它们分成几块。每个验证器将存储一个片段。
Robert:我明白了。我很欣赏这种基本划分。也许你在帖子中所涉及的一些技术性较强的数学知识在这里会有点难以表达,但这是有道理的。也许我们可以谈一谈你在最近的帖子中提出的一些建议。所以你做了这项研究,你发现通过一些调整,你有可能从 EIP-4844 中获得更多的效率,这是 protodanksharding 的技术名称。
Lera:是的,大部分的工作只是为了全面了解 danksharding 的提议,然后我们观察到一些不同的方式来研究数学——其中的加密成分——希望能解开我们可以使用的新工具包。所以大致的想法是,不要太深入,你通过你的区块拟合一个多项式。
这是一个双变量多项式,因为你的区块是矩形的。然后你在更多的点上评估这个多项式,有点像扩大区块。我们的想法是,如果你已经使用了这些双变量多项式——而不是像 danksharding 所做的那样,作为一个多变量多项式的列表——你就可以应用双变量评估、双变量插值的技术,甚至可能尝试应用双变量纠错代码。但这是非常开放的,可以进行更多的研究和探索。因此,在这次访谈中,我们试图解释在哪些方面可以做更多的研究,以改善该计划的方向。
Dan:是的。也许我可以补充一下。我是说,danksharding 是个很好的主意。真的。以太坊基金会在这方面应该得到很大的帮助。而且,你知道,特别是 Dankrad【Feist】。这真的是一个相当优雅的结构。
最初,我们只是想了解细节,花了一些时间才准确地恢复了一切工作的细节。我们想,也许再写一篇解释该机制如何运作的文章会对世界有所帮助。最初,我想原始的 danksharding,它被描述的方式,都是使用单变量多项式承诺,我们把每一行,我们把它看作一个多项式。擦除编码都是使用多项式完成的。
也许我甚至可以在这里用一句话教一下擦除编码。假设你在一个平面上有两个点,你想对它们进行擦除编码。你可以做的是,你可以用一条线穿过这两个点,现在你可以直接发布,而不是只发布这两个点,你可以发布这两个点,也许再加上线上的两个点。
所以现在你总共有四个点。而且你知道,如果这四个点中有两个能到达接收方,接收方可以用它收到的两个点来恢复线路,然后再恢复原来的两个点。这就是擦除编码的整个想法。因此,当然,我们使用更高程度的多项式来实现不同的阈值,而不是线条,但这就是这个想法。
基本上,我们有两个点。我们通过一条线。我们在这条线上得到更多的点。如果这条线只有两个点能到达接收者那里,接收者可以重建这条线并恢复原来的点。因此,danksharding 实际上是通过把区块看成是一个矩阵,看成是一个矩形的数据集来做到这一点的,真的是相当优雅的。
然后它基本上延伸,使用这些线的想法,在水平和垂直方向上。而这实际上给出了编码块——然后,该矩形的碎片被发送到不同的验证器。有趣的是,现在你有了一个矩形,你可以把它看作是一个二维的物体。这很自然地导致了将其视为一个双变量多项式,正如 Lera 所说。
Danksharding 所做的是,它提供了一种非常有趣的方式来承诺这些双变量多项式。因此,它通过使用对单变量多项式的承诺建立了一种承诺双变量多项式的方法。因此,事实证明,在 danksharding 中进行的重建机制也是基于沿线和列的构建——也是使用单变量多项式进行的构建。然后当我们通过这个工作时,我们意识到,嘿,这里的一切真的是关于矩形和二元多项式。也许有一种方法,也可以通过使用双变量多项式的插值来进行重建。
Lera:所以事实上,你把你的区块,在两个方向上都扩大到 X 的系数。因此,你有 4 倍的点作为结果。但这 4 倍的点只编码了一个小象限。
因此,原则上,你只需要一个象限,以便插值和恢复这个编码块的所有其余部分。因此,25% 的点应该是足够的。但是,由于 danksharding 是通过单变量插值工作的,它需要 75% 的块来进行列和行的重建。
如果你直接做双变量插值,你应该只用 25% 而不是 75% 就可以了。因此,这将改善你为了重建、恢复区块所需的元素数量。它还将改善通信和数据可用性采样,但这都是由于改进了重建。
而现在的问题是,它变成了一种数学问题,即你如何做有效的双变量插值?
那里显然需要一个更好的算法。我们正在研究这个问题,到目前为止,它似乎还没有被充分开发。因此,也许以前并没有双变量插值的应用。也许这只是一个困难的问题,或者我们不知道。但这绝对是一个有趣的方向,基本上可以尝试改进双线性插值算法。
Dan:我喜欢这个,就像Lera说的,对于观众中更多的算法的人来说,在做单变量插值方面已经有很多工作了。如果我给你一个单变量多项式上的点,比如一条线上的点,然后我让你重建这个多项式,有非常好的单变量多项式插值算法。
而事实证明,双变量插值问题,不知为何,它似乎受到的关注较少。而这里真正酷的是,突然间,区块链、以太坊、danksharding 正在为双变量多项式插值这个真正自然的算法问题创造一个应用。
我们在这里真的需要它。如果我们有一个很好的双变量多项式插值算法,我们就可以让 danksharding 变得更好,因为正如 Lera 所说,重建将从 75% 下降到 25%. 所以对我来说,这真的很美,因为区块链、以太坊、danksharding 正在创造这个新的研究领域,或者至少优先考虑这个新的研究领域,表明我们真的需要更好的算法、新的算法、高效的算法来做双变量多项式插值。
因此,希望这将鼓励和刺激对这些类型的算法进行更多的研究,估计它们对这个问题将非常有用。
Robert:所以我喜欢我们在这里钻研方法论,没有回避数学。我知道有些东西可能听起来有点复杂——双变量多项式和单变量多项式。但我特别欣赏你用几何学和形状来描述这些,因为我想这里的每个人都能真正想象出一条线穿过一些点或一个矩形的功能。所以我认为这真的有助于巩固你所做的工作。
我想双击你提到的这个统计数字,目前的建议需要 75% 的样本才能被重建,而你的建议将把这个比例降低到 25%. 因此,这是一个巨大的差异。75% 对 25%。但是,这听起来就像对于一个不经意的观察者来说,如果你只有 25%,事实上,它只是不到 50%,听起来,这真的足以让人确信这些数据是可用的,并且是可用的?
当你下降到 25% 的时候,听起来,我不知道,你可能是在削减一些角落。那么,你如何向人们保证,事实上,只要有 25% 的数据样本就足够了,而且事情可以在这个水平上运作?
Lera:是的,这让我们想到了数据可用性抽样的话题,以及它所达到的目的,我猜,因为这个重建阈值——75% 或 25%——基本上决定了你需要多少个样本来获得数据存在的高度保证。
你做样本的方式是,你要求验证器网络给你一个元素,这个编码块的一个随机元素。如果你成功地拿回来——你也可以验证,一旦验证者给你拿回这块的有效性证明,你就可以根据链上持久存储的承诺进行验证——所以当你拿回成功的样本时,使你确信数据是可用的,其概率是 1 减去四分之一或四分之三,这取决于你的重建算法如何工作,它是否需要 25% 的数据或 75% 的数据。
因此,每当你做一个随机样本并成功返回时,基本上你的假阳【率】——你认为数据是可用的,但它不是的概率——就会呈指数级下降。而它下降的速度取决于你在重建中需要多少数据。因此,如果你的重建要求 25% 的数据,你就会做更少的样本,你的保证——假阳率——比你只有一个需要 75% 的数据的重建算法下降得更快。
因此,取决于你的重建的效率如何,你可能需要更少的样本,以便有同样的保证,数据是可用的。所以这就是为什么你在这里不仅改善了重建,而且还改善了你的数据可用性抽样所需的样本数量。
数据可用性抽样很有趣,因为它是概率性的。所以你做的样本越多,你对数据可用性的保证就越高,对吗?而且你总是可以通过做更多的样本来放大这个概率,使之清晰。
Dan:我认为,Lera,你刚才的解释真的非常非常重要。
这就是 danksharding 和数据可用性采样的核心。所以我再讲一遍,只是为了让听众听两遍,因为这确实是它的核心。因此,也许可以考虑一下这个块。我们说过,块会被编码为这个矩形,对吗?因此,我们以某种方式从一个块到一个矩形。
如何做到这一点的具体方法是使用这种擦除编码。但让我们假设我们从一个数据块变成一个矩形。所以现在想象这个矩形是字面上的一个矩形的点。每一个点都对应着一块数据,将被分配给一个验证人。所以现在要做数据可用性抽样,有人要验证是否有足够多的点是真的可用的。
我们知道,如果超过 75% 的点是可用的,那么就可以用擦除编码的方法重建该区块。或者说,如果我们所说的将被使用,那么只有 25% 的点足以重建原始矩形。但你怎么知道 75% 的点是可用的?
所以这正是数据可用性的抽样机制。你所做的是你可以想象你在这个矩形上投掷飞镖,对吗?所以,每次你投掷飞镖,你都会击中矩形中的一个随机点,然后持有该点的验证器必须证明,“是的,我真的有这个点”。
现在你要验证 75% 的点是可用的。所以,想象一下你有这个矩形。也许只有 75% 的点在那里。有些点由于某种原因消失了。你想确认 75% 的点是可用的,因为如果 75% 是可用的,你就可以重建整个矩形。那么,你要怎么做来验证 75% 的点在那里?
你要向这个长方形扔一堆飞镖。每当飞镖击中一个点,它所击中的验证器就必须证明这个点真的在那里。因此,如果你投掷一百个飞镖,所有一百个飞镖都回来说,“是的,数据真的在那里”,这给你一个相当好的想法,超过 75% 的数据是可用的。
因为你知道,如果少于 75% 的数据是可用的,而你投掷了四个飞镖,你预计有一个飞镖会击中一个丢失的点。如果你扔了 100 个飞镖,所有的飞镖都回来说数据是可用的,你就可以很好地保证 75% 以上的点都在那里。所以这就是数据可用性抽样的想法。
你只是尝试很多很多的随机点,比如一百个。如果所有的都有,那么你就有相当大的把握,超过 75% 的都有,你可以重建数据。你看,如果你想得到 75% 的保证,你需要投掷 100 个飞镖。如果你只需要 25% 的保证,你需要投掷的飞镖要比这个少。
所以这基本上会减少满足抽样机制所需的数据量。现在,也许值得说的是,一旦数据可用性抽样检查成功——所以所有的一百个飞镖都回来说,“是的,这些点真的在那里”——然后验证器说,“啊,数据是可用的”。
然后【验证者】继续前进并签署该区块,表示“该区块通过了数据可用性采样”。是的,这在以后的共识中会用到。这就是测试的内容。基本上,数据可用性抽样是一个非常有效的方法来测试是否有足够的数据来重建区块,而不需要实际完全重建区块。
所以我认为听两遍,甚至第三遍和第四遍是好的。但这也是使这一切成功的核心思想。
Robert:我喜欢这句话,我特别喜欢你用镖靶和投掷飞镖的实物比喻。我认为这真的让人感到很亲切。好了,我们已经接近这个小时的尽头了。
我想准备收尾了。但在我们这样做之前,也许我会用一句话把它扔给你们俩。所有这些的结果是什么?比如为什么要获得这些效率的提高?
Lera:好吧,我想说的是,最终的目标当然是扩大区块链的规模,这些新技术将使它能够做到这一点,为以太坊实现全面扩展。
我想说的是,这是一个非常有趣的方法,因为在一开始,以太坊就在考虑做分片,完全分片,并达成了相当复杂的设计。但是,拥有 rollup 有助于扩展以太坊的执行层,而这就使得以太坊要扩展其数据可用性层。基本上,增加空间,而 rollup 增加执行能力,这些部分加在一起,将给我们带来更便宜、更快速的区块链。
Dan:是的,Lera 说得很好。我的意思是,以太坊真正的扩展故事是 rollup,而让 rollup 更有效、更便宜的方法是通过解决数据问题。而 danksharding 是一种非常优雅和有效的方式。因此,结果是一个可扩展的以太坊版本,其中 rollup 的使用比现在便宜得多。
Robert:听起来真好。如果你得到更便宜的交易和进行更多交易的能力,我认为这为以太坊开辟了各种新的应用,而这些应用在以前的高 gas 和费用下是不可能的。所以听起来真的很好。感谢大家加入我们这一期。我希望你们都能学到一点关于数据可用性抽样和 danksharding 的知识。
如果你想了解更多,如前所述,你可以查看 Dan 和 Lera 的帖子。这是一篇非常、非常棒的文章,所以我强烈推荐你阅读它,并查看其中包含的所有参考资料。
感谢大家的收听。我很期待这个周末的到来。我要去我当地的酒吧,在飞镖盘上给大家讲讲擦除编码的问题。所以谢谢大家,保重。
Lera:听起来不错。谢谢你。
Dan:谢谢你。今天的聊天很有趣。再见了。
感谢您收听《a16z 的 Web3》节目。你可以在 a16zcrypto.com 上找到带有所讨论的资源、书籍或论文链接的节目笔记;文字记录,以及更多。本集由我们的音频编辑 Justin Golden 进行了技术编辑。艺术方面也归功于 Moonshot Design. 并全部感谢 a16z crypto 的支持。
如果想要关注我们的更多工作,并从我们和其他人那里获得更新、资源,请务必订阅我们的 Web3 每周通讯——你可以在我们的网站 a16zcrypto.com 上找到它。
感谢您的收听,感谢您的订阅。让我们 <消音> 开干吧!
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

123458667 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    11