主页 > 苹果版imtoken图标 > V神发布CBC Casper教程

V神发布CBC Casper教程

苹果版imtoken图标 2023-07-20 05:18:02

12月7日,V神发推文:“我正在尝试解释CBC Casper”,并在其网站上附上了CBC Casper教程。

为了帮助更多人理解“另一个 Casper”(Vlad Zamfir 的 CBC Casper),尤其是最适合区块链协议的实例化,我想我会自己写一个解释器,从不那么抽象,更“接近”具体使用”的观点。可以在此处、此处和此处找到 Vlad 对 CBC Casper 的描述;欢迎并鼓励您浏览这些材料。

CBC Casper的设计基本上是非常通用和抽象的,几乎对任何数据结构都有共识; 你可以使用 CBC 来决定是选择 0 还是 1,你可以在 CBC 上运行一个简单的逐块链,或者在 292 多维立方体中运行 Tangled DAG,以及介于两者之间的一切。

但为简单起见,我们首先关注一个具体案例:一个简单的基于链的结构。 我们假设有一个由 N 个验证者组成的固定验证者集(“质押节点”的奇特词;我们还假设每个节点质押相同数量的代币,如果不是这种情况,这可以通过分配一些 ID 来完成多个验证者模拟一个节点),时间被分解为 10 秒的时隙,验证者 k 可以在时隙 k、N+k、2N+k 等创建区块 k。每个区块指向特定的父区块。 显然,如果我们想创建尽可能简单的东西,我们可以采用这种结构,对其施加最长链规则,然后收工。

sitecybtc.com 以太坊v神是谁_以太坊创始人v神视频_v神怎么修改协议让以太坊

然而,我们在这里关心的是添加一些“最终性”的概念——一些区块可以在链中牢固地建立起来,以至于它不能被竞争区块取代,除非有很大一部分(例如 1/4)验证作者提出一个独特的可归因错误——以一种明确且密​​码可验证的恶意方式行事。 如果很大一部分验证者确实采取恶意行为来恢复阻塞,则可以将不当行为的证据提交给链,以取消这些验证者的全部存款,从而使最终性回归非常昂贵(想想数亿美元)。

陆战队幽灵

我们将一步一步迈出这一步。 首先,我们替换了分叉选择规则(在多个可能的选择中选择哪条链的规则是“规范链”,即用户应该遵循的链),远离简单的最长链规则,而是使用“最新消息驱动的GHOST ”。 为了说明 LMD GHOST 的工作原理,我们将修改上面的示例。 为了更具体,假设验证器集的大小为 5,我们将其标记为 A、B、C、D、E,因此验证器 A 在插槽 0 和 5 处生成块,而验证器 B 在插槽 1 处生成和6,依此类推。 评估 LMD GHOST 分叉选择规则的客户端只关注每个验证者签名的最新(即最高时隙)消息(即区块):

以太坊创始人v神视频_v神怎么修改协议让以太坊_sitecybtc.com 以太坊v神是谁

我们现在将仅使用这些消息作为“贪婪最重观察子树”(GHOST)分叉选择规则的源数据:从创世块开始,然后每次有一个分叉时选择一个块的更新消息子树支持的一个一方面(即支持该块或其后代之一的最新消息),并继续这样做直到到达没有孩子的块。 我们可以为每个块计算支持该块或其后代之一的最新消息的子集:

以太坊创始人v神视频_v神怎么修改协议让以太坊_sitecybtc.com 以太坊v神是谁

现在,为了计算头部,我们从头开始,然后在每个分叉处选择较高的数字:首先,选择底部链,因为它有 4 个最新消息支持它,对于整体顶部链,然后在底部叉支撑中间链。 结果是和以前一样最长的链。 事实上,在一个行为良好的网络(即孤儿率低)中,几乎所有时间 LMD GHOST 和最长链规则都会给出完全相同的答案。 但在更极端的情况下,情况并非总是如此。 例如,考虑以下链,具有更实质性的三块分叉:

sitecybtc.com 以太坊v神是谁_v神怎么修改协议让以太坊_以太坊创始人v神视频

LMD GHOST 方法的优势部分在于它更擅长在高延迟条件下提取信息。 如果两个验证者创建了两个具有相同父块的块,那么他们实际上应该算作对父块的合作投票,即使他们同时在为自己竞争选票。 最长链式法则未能捕捉到这种细微差别; 基于 GHOST 的规则。

检测最终性

但是 LMD GHOST 方法还有另一个不错的特性:它具有粘性。 例如,假设在两轮中,4/5 的验证者投票给同一条链(我们假设没有投票的五个验证者之一 B 正在攻击):

sitecybtc.com 以太坊v神是谁_以太坊创始人v神视频_v神怎么修改协议让以太坊

为了成为规范链,最重要的链实际上需要发生什么? 五个验证者中的四个建立在 E 的第一个区块之上,所有四个都验证了 E 在 LMD 分叉选择中得分很高。 仅通过查看链的结构,我们至少可以告诉验证者在不同时间必须看到的一些消息。 以下是我们对四种验证者观点的了解:

以太坊创始人v神视频_sitecybtc.com 以太坊v神是谁_v神怎么修改协议让以太坊

注意,四个验证者都可以看到 B 的一个或两个区块,而 D 和 E 可以看到 C 的第二个区块,使他们看到的是最新消息,而不是 C 的第一个区块; 然而,链本身的结构并没有给我们证据证明他们确实做到了。 幸运的是,正如我们将在下面看到的,这种歧义对我们来说并不重要。

A 的视图包含支持底部链的最近四个消息,但没有 B 的块。 因此,在(我们模拟的)A 眼中,至少 4-1 的分数有利于底部链。 C、D 和 E 的观点描绘了相似的画面,最近有四个消息支持底部链。 因此,所有四个验证者都处于无法改变主意的位置,除非另外两个验证者先改变主意,将比分变为 2-3 以支持 B 的区块。

请注意,我们对验证器视图的模拟是“过时的”,例如,它没有捕获 D 和 E 最近可能看到 C 的块。 然而,这不会改变顶部链与底部链的计算,因为我们可以非常普遍地说任何验证者的新消息都将与之前的消息有相同的意见,除非另外两个验证者先改变了立场。

sitecybtc.com 以太坊v神是谁_以太坊创始人v神视频_v神怎么修改协议让以太坊

由于诸如 LMD GHOST 之类的分叉选择规则以这种方式具有粘性,并且客户端可以检测到分叉选择规则何时“卡在”特定区块上,因此我们可以将其用作实现异步安全共识的一种方式。

安全甲骨文

实际上检测链卡在某个块上的所有可能情况(在 CBC 术语中,一个块是“决定的”或“安全的”)是非常困难的,但我们可以想出一组启发式(“安全预言机”) ,将帮助我们检测发生这种情况的一些情况。 其中最简单的是 clique oracle。 如果存在 V 验证器的某个子集构成 p 的总验证器集的一部分(p > 1/2),则所有块都支持某个块 B,然后使另一轮块仍然支持引用其第一轮块的 B,然后我们可以推断出以下几点:

由于两轮消息传递,我们知道这个子集 V all (i) 支持 B (ii) 知道 B 支持它很好,所以他们都不能合法切换,除非其他人先切换。 对于一些与 B' 竞争击败的 B,这样的支持 B' 可以合法拥有最初的 1-p(每个人都不是集团的一部分),并且要赢得 LMD GHOST 分叉选择,其支持需要达到 1/2,所以在至少 1/2 - (1-p) = p - 1/2 需要非法切换才能达到 LMD GHOST 规则支持的范围 B'。

作为一个特例,注意 ap=3/4clique oracle 提供了一些 1/4 的安全度,只要 3/4 的节点在线,就可以产生一组满足 clique 的块(并且在正常运行中)。 因此,在 BFT 意义上,就活性和安全性而言v神怎么修改协议让以太坊,使用两轮辛迪加预言机可以达到的容错水平的 1/4。

这种达成共识的方法有很多好处。 首先,短期链选择算法和“终极算法”并不是两个不同的组件笨拙地粘在一起,就像它们在 Casper FFG 中一样; 相反,它们都是同一个连贯整体的一部分。 其次,由于安全检测是客户端的,协议中不需要选择任何阈值; 客户可以自己决定什么级别的安全性足以考虑区块最终。

走得更远

CBC 可以通过多种方式进一步扩展。 第一,可以想出其他的安全神谕; 更高的循环团可以实现 1/3 的容错。 其次,我们可以添加验证者轮换机制。 最简单的是每次 q = 3/4 满足 clique oracle 时允许验证器集进行少量更改,但我们也可以做其他事情。 第三,我们可以超越链结构,转而关注增加单位时间内消息密度的结构,例如Serenity Beacon Chain的证明结构:

以太坊创始人v神视频_sitecybtc.com 以太坊v神是谁_v神怎么修改协议让以太坊

在这种情况下,将证明与区块分开是值得的; 块是实际增长底层 DAG 的对象v神怎么修改协议让以太坊,而证明有助于分叉选择规则。 在宁静信标链规范中,每个区块可能有数百个对应的证明。 但是,无论走哪条路,CBC Casper 的核心逻辑都是一样的。

为了使 CBC Casper 的安全性“在加密经济上可执行”,我们需要添加有效性和斜线条件。 首先,我们将从有效性规则开始。 一个块包含一个父块和它知道的一组证明,这些证明还不是链的一部分(类似于当前以太坊 PoW 链中的“叔叔”)。 为了使区块有效,区块的父节点必须是执行 LMD GHOST 分叉选择规则的结果,给定链中包含的信息,包括区块本身。

以太坊创始人v神视频_v神怎么修改协议让以太坊_sitecybtc.com 以太坊v神是谁

我们现在可以让 CBC Casper 安全,只有一个削减条件:你不能做两个证明 M1 和 M2,除非 M2 在 M2 证明的链中或 M1 在 M1 证明的链中。

sitecybtc.com 以太坊v神是谁_以太坊创始人v神视频_v神怎么修改协议让以太坊

有效性和罚没条件相对容易描述,尽管实际实现它们需要检查哈希链并以共识方式执行分叉选择规则,所以这不像获取两条消息并检查这些数字之间的一些不等式那么简单。 消息提交,就像您在 Casper FFG 中所做的那样,NO_SURROUND 和 NO_DBL_VOTE 剪切条件。

CBC 中的 Live Casper 搭载了任何底层链算法的活性(例如,如果它是每个槽一个块,那么它取决于同步,假设所有节点在开始 .slot N+1 之前都会看到槽 N 中产生的所有内容)。 不能在无法进步的路上“卡壳”; 从任何情况到最终确定一个新块都是可能的,即使有攻击者和/或网络延迟高于底层链算法所需的块。

假设在某个时刻 T,网络“平静下来”并再次满足同步假设。 然后每个人都会聚集在同一个链视图上,即同一个头部 H。从那里,验证者将开始签署有利于 H 或 H 的后代的消息。 从那里开始,链条可以顺利进行并最终遇到一个 clique oracle,此时 H 被最终确定。

以太坊创始人v神视频_v神怎么修改协议让以太坊_sitecybtc.com 以太坊v神是谁

这里是它自己的一切! 在实现方面,CBC 可能比 FFG 复杂得多,但就协议及其提供的属性的推理能力而言,它却出奇地简单。