UFF:无状态以太坊的根基:零门槛了解Witness规范

写在前面:对于以太坊1.0,还是未来的以太坊2.0,无状态以太坊的概念都具有着颇为重要的意义,而要理解它,我们就需要了解Witness,以及关于Witness的规范,那它们到底是什么呢?在这篇文章中,来自以太坊基金会的开发者GriffinIchibaHotchkiss将用生动的比喻来对这两个复杂的概念进行解释。

有些东西看似可能会显得枯燥,但是它对于无状态以太坊而言却是非常基础和重要的:理解正式的Witness规范。

就像星际争霸中的战舰船长一样,我们会慢慢来讲这个话题。Witness规范不是一个特别复杂的概念,但它是非常深的,以至于这种深度有点让人望而生畏,但它是非常值得探索的,也许它会唤起书呆子的兴趣,它远远超出了区块链,甚至超出了软件的世界!

Lido已支付的Polygon质押奖励突破1000万枚MATIC:8月31日消息,官方数据显示,流动性质押协议Lido已支付的Polygon质押奖励突破1000万枚MATIC,目前达到10,335,059枚MATIC,价值约573万美元。

当前Lido平台已质押的MATIC总量超过1.34亿枚,价值约7463.5万美元。[2023/8/31 13:08:51]

在这篇入门文章的结尾,您至少应该对理解正式的无状态以太坊Witness规范,有了最低程度的信心。我也会尽量让这篇文章显得更有趣一些。

概述:关于状态你需要知道的知识点

实际上,无状态以太坊这个词有点用词不当,因为状态才是整个工作的真正目的。具体来说,我们要找到一种方法,使得保留整个以太坊状态的副本,成为一种可选的事情。如果你没有关注过无状态以太坊的文章,那么你可能有必要看看我之前写的一些关于无状态以太坊状态的入门文章。在这篇文章当中,我先简单地总结一下,如果你已经很好地掌握了这个话题,那你就可以随便扫上一眼。

SudoSwap主要开发商SudoRandom Labs完成1250万美元私募融资:金色财经报道,NFT AMM创新方案SudoSwap的主要开发商SudoRandom Labs于12月2日完成1250万美元私募融资,但未公布投资人信息及估值。

据悉,在Sudoswap治理代币SUDO的分发计划中,将分配给SudoRandom Labs900万枚SUDO,1年完全锁仓期,3年归属期。[2022/12/13 21:41:50]

Jack Dorsey首则推文NFT最新竞价仅1.14美元:金色财经报道,《黑天鹅》一书的作者纳西姆·尼古拉斯·塔勒布 (Nassim Nicholas Taleb)在最近的一条推文中批评了NFT投机问题并分享了buffalo{n}Buffalo{pn}buffalo{n}buffalo{v}buffalo{v}Buffalo{pn}buffalo{n}

Slope:如果攻击者归还被盗资金,将支付10%的赏金:金色财经消息,本周早些时候大约超500万美元被利用的Solana钱包Slope Wallet宣布,如果攻击者归还被盗资金,它将支付10%的赏金。

在一条推文中,Slope团队发布了Solana钱包地址,并以额外的动机向小偷发出呼吁:“在收到这些资金后,我们不会再努力调查此事,也不会采取任何法律行动。”

该团队给了攻击者一个48小时的窗口来返还资金并获得赏金。它补充说,它一直在与执法部门和领先的区块链情报公司TRM实验室合作,以追回被盗资金。

周二晚上,一名攻击者访问了以明文形式存储在Slope中央服务器上的用户助记词,并使用它们窃取了加密货币。该漏洞利用影响了数千名用户。[2022/8/6 12:05:59]

也许这对读者来说还不是很清楚。为了使它更精确,让我们试着用一些替代品来帮助我们把这些“buffalo”分成组。纽约州布法罗市的任何野牛实际上只是我们称之为“名词短语”<NP>的一个特殊版本。当我们遇到字符串Buffalo{pn}buffalo{n}时,可以用<NP>代替句子。由于我们的格式越来越正式了,因此我们可决定通过以下方式为该规则和其他将来的替换规则使用简写形式:<NP>::=Buffalo{pn}buffalo{n}

《华尔街日报》:马斯克9天未在社交媒体发言,创近五年最长沉默记录:金色财经报道,据《华尔街日报》消息,特斯拉首席执行官伊隆·马斯克已有9天时间没有在推特上发言,创下自2017年10月以来最长沉默记录。相关报道称,马斯克最后一篇推文发布时间是2022年6月21日,根据华尔街日报的分析,马斯克非常热衷于在推特上发言,自2018年1月以来,他从未出现超过六天不发推文的状况,鉴于马斯克正在尝试收购推特,当前沉默似乎极不寻常。[2022/7/1 1:44:51]

其中::=表示“左侧的内容可以替换为右侧的内容”。重要的是,我们不希望这种关系发生变化。想象一下一头博尔德的buffalo会变得多么疯狂!

将我们的替代规则应用于整句话,它将改为:<NP><NP>buffalo{v}buffalo{v}<NP>

加密货币总市值跌破9000亿美元:金色财经报道,据coingecko数据显示,加密货币总市值已跌破9000亿美元,现为8930亿美元左右,24小时交易量为74,272,645,014美元。当前BTC占比41.7%,ETH占比13.9%。[2022/6/18 4:37:10]

现在,这仍然有点令人困惑,因为在这个句子中有一个偷偷摸摸的关系从句,通过在我们的句子的第一部分插入单词that,可以更清楚地看到它,即?<NP>*that*<NP>buffalo{v}...

因此,让我们制定一个替换规则,将关系从句分组为<RC>,并说:<RC>::=<NP>buffalo{v}

另外,由于关系从句实际上只是对一个名词短语作出澄清,所以这两个从句合在一起就相当于另一个名词短语:<NP>::=<NP><RC>

定义并应用这些规则,我们可以将句子写成:<NP>buffalo{v}<NP>

这似乎很好,而且真的得到了这个愚蠢的句子表达的核心关系:一组特定的野牛在恐吓另一组野牛。

我们已经走了这么远,为什么不一直走下去呢?每当“buffalo”作为动词出现在名词之前时,我们都可以称其为动词短语或<VP&gt;并定义一个规则:<VP>::=buffalo{v}<NP>

这样,我们就有了一个完整的有效句子,我们可以称之为S:S::=<NP><VP>

我们在此处所做的操作,通过视觉方式呈现便是:

这种结构看起来很熟悉,不是吗?

buffalo的例子有点傻,也不够严谨,但它足以证明“Witness规范”中的怪异数学语言是怎么回事,我在关于buffalo的咆哮中偷偷地介绍了这种语言。它被称为巴科斯范式,在各种实际场景中,它经常用于类似这样的形式化规范中。

我们为受限制的英语所定义的“替换规则”,有助于确保,给定一堆“buffalo”,我们可以构造出一个“有效”的句子,而无需知道“buffalo”这个词在现实世界中的含义。在乔姆斯基首先阐明的分类中,一种有足够精确的语法规则允许你这样做的语言,被称为上下文无关语言。

更重要的是,规则确保对于由单词buffalo{np|n|v}组成的每一个可能的句子,都有一种且只有一种方法来构造上面树图中所示的数据结构。一点都不含糊不清!

继续阅读Witness规范

Witness的核心只是一个大对象,其被编码为一个字节数组。从无状态客户端的角度来看,该字节数组可能看起来有点像长句子,它由看起来很相似的单词组成。只要所有客户端都遵循相同的规则集,则字节数组应该转换为一个哈希数据结构,无论实现如何选择在内存或磁盘中表示它。

与我们在玩具示例中使用的规则相比,规范第3.2节中写出的实际规则要复杂一些,并且直观性要差得多,但是其实质是相同的:为无状态客户端提供明确的指导,并确保他们正确执行。

我在这篇论述文章中已略过了很多细节,可以肯定的是,正式语言的兔子洞要深得多。我的目的是提供足够的介绍和基础来克服理解的第一道障碍。既然你已经跨过了这个障碍,现在是时候打开维基百科,自己解决剩下的问题了!

与往常一样,如果你有反馈、问题或对主题的要求,请在twitter上@gichiba或@JHancock。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:15ms0-1:239ms