月亮链 月亮链
Ctrl+D收藏月亮链
首页 > DAI > 正文

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

作者:

时间:1900/1/1 0:00:00

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

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

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

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

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

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

Web3风投机构Coinsilium 2022年部署57.5万美元的加密货币、元宇宙和DeFi投资:2月2日消息,英国上市Web3风投机构Coinsilium Group Ltd于2022年向DeFi、元宇宙、交易、玩赚和时尚领域几家Pre-Seed和种子阶段Web3项目注资57.5万美元,投资项目包括Yellow Network(20万美元)、Silta Finance(7.5万美元)、GGs.io(10万美元)、Metalinq Labs(20万美元)。

Coinsilium还宣布,它已被任命为时尚品牌Blvck Paris的顾问,负责其“Blvck Genesis”NFT系列的发布。(Proactive Investors)[2023/2/2 11:43:37]

“以太坊的完整“状态”描述了所有账户和余额的当前状态,以及在EVM虚拟机中部署和运行的所有智能合约的集体记忆。链中每个最终确定的区块,都有且只有一个状态,这是由网络中的所有参与者商定的。该状态将随添加到链中的每个新区块而发生更改和更新。

以太坊状态以一种称为

Merkle-PatriciaTrie的哈希数据结构呈现的,它将每一条信息组织成一个庞大的连接单元,然后可以验证其唯一性。

完整的状态树太大了,大到无法可视化,但是这里有一棵“玩具版”状态树,当我们接触到Witness的概念时,这会很有帮助:

Circle年度“USDC经济状况”报告:截止去年12月,超过2130亿美元的USDC已被赎回:1月17日消息,Circle今日发布第一份年度“USDC经济状况”报告,报告显示,自成立至2022年12月以来,超过2130亿美元的USDC已被赎回。大约80%的USDC储备是美国持有的3个月期美国国债。到2023年1月底,将转移这些Circle100%持有的储备由贝莱德管理,由纽约梅隆银行(全球最大的托管人)托管。此外,Circle表示已被均富银行审计过,这些审计涵盖了USDC储备金。

2019年、2020年和2021年的审计工作(符合美国上市公司的标准)已向美国证券和监督管理公司公开提交美国证券交易委员会(SEC)。未来,Circle和USDC储备金将由德勤进行审计。[2023/1/17 11:16:38]

就像神奇的密码学毛虫一样,智能合约的账户和代码也存在于这棵树的叶子和树枝上,通过连续的哈希运算,最终得到一个根哈希。如果你想知道一棵状态trie树的两个副本是相同的,你可以简单地比较根哈希。在一个“规范”状态上保持相对安全,且无可争议的共识,是区块链设计的本质。

为了提交要包含在下一个区块中的交易,或验证特定更改是否与上一个包含的区块一致,以太坊节点必须保留状态的完整副本,并重新计算根哈希。而无状态以太坊是一组通过添加所谓的“witness”来消除此需求的更改。

witness究竟是什么?

在我们深入讨论witness规范之前,直观地认识下witness是什么是有帮助的。同样,上面链接的以太坊状态文章当中有一个更彻底的解释。

witness有点像一个健忘型学生的小抄,而这个小抄是通过其考试所需的最少信息量。这类学生并没有阅读整本教科书,而是要求朋友提供一张小抄来提交他们的答案。

Core Scientific 10月产出1295枚BTC,并出售2285枚BTC:金色财经报道,比特币矿企Core Scientific发布10月份生产和运营数据报告。截至10月底,Core Scientific运营约24.3万台用于托管和自挖矿的ASIC服务器,总计24.4 EH/s。其位于佐治亚州、肯塔基州、北卡罗来纳州和北达科他州的数据中心设施继续满负荷运行。该公司已在德克萨斯州完成287兆瓦的数据中心建设。Core Scientific的自挖矿业务在10月份产出1295枚比特币。截至10月底,公司运营约143000台自挖矿服务器,自挖矿算力为14.4 EH/s。(Businesswire)[2022/11/8 12:29:48]

在非常抽象的术语中,witness提供了一棵状态trie树中所有需要的哈希,并结合了一些关于这些哈希在trie树中属于何处的“结构”信息。这允许这类节点在其状态中包含新交易,并在本地计算新的根哈希,而不需要它们下载状态trie树的整个副本。

让我们脱离这种比喻式的想法,然后转向更具体的实现方式。以下是witness的“真实”形象:

我建议您在新的标签页中打开此图像,这样就可以放大它并真正欣赏它。之所以选择此witness,是因为它相对较小,且易于识别特征。这张图片中的每个小正方形,代表了一个"nibble",即半字节,你可以通过计数你必须“通过”的正方形数量来验证你自己,从根开始到一个以太币余额。当我们在看这张图片时,请注意其中一笔交易中必须包含的大量代码来进行减少。

加密资产管理平台Rocketplace完成900万美元种子轮融资,Launchpad Capital领投:金色财经报道,据 cablefreetv 消息,加密资产管理平台 Rocketplace 宣布完成 900 万美元种子轮融资,Launchpad Capital领投,TTV、Accomplice、Menlo Ventures 和 Soma Capital 参投。该公司此前还募集到一笔 800 万美元的 pre-seed 轮融资,当时的投资方包括 Accomplice、Launchpad 和 Better Tomorrow Ventures。Rocketplace 希望成为“加密领域的富达”,通过构建一个低成本、高质量、自助式数字资产平台为零售和机构客户服务,Rocketplace 表示目前不会对提供的数字金融产品收取佣金,其收入通过买方愿意支付的价格(出价)和卖方愿意出售的价格(出价)之间的小幅差价来获得。[2022/8/19 12:35:06]

一些繁琐的事

以太坊作为协议的一个基本特征,是它独立于特定的实现。这就是为什么以太坊不像比特币那样只有一个官方客户端,而是有几个完全不同的客户端版本。而这些用各种编程语言编写的客户端,必须遵守《以太坊黄皮书》,该《黄皮书》用更正式的术语解释了加入以太坊协议的任何客户端该如何运行。这样,为以太坊编写客户端的开发人员,就不必处理系统中的任何模糊问题。

而witness规范有一个确切的目标:为所有客户端提供“witness是什么”的明确描述,这将使它在任何语言中的实现变得简单。而当无状态以太坊成“型”时,可以将witness规范作为附录插入到《黄皮书》中。

这里我们所说的“明确”,它的意思是要比你在谈话中所说的要强烈。这并不是说正式规范只是对“witness是什么”,以及“它的行为是什么”的真正详细的描述。这是意味着,理想情况下,描述一个特定witness的方式只有一种。也就是说,如果你遵循了正式的规范,那么你为无状态以太坊编写的实现,它所生成的witness就不可能和遵循规则的任何其他实现不同。这是关键,因为witness将成为以太坊协议的新基石,它需要通过构造来纠正。

美股区块链概念股走低,Coinbase跌超10%:5月16日消息,美股区块链概念股走低,Coinbase跌超10%,Marathon Digital、Hut 8 Mining跌超9%,Riot Blockchain跌超8%,Bit Digital、嘉楠科技、MicroStrategy跟跌,区块链ETF BLOK跌3.5%。[2022/5/17 3:20:28]

语义和语法问题

尽管“区块链开发”通常意味着一些新的、令人兴奋的东西,但必须要说的是,其中很多都是基于一些旧的、明智的计算机编程、密码学和形式逻辑。为了理解Witness的规范是如何工作的,我们需要了解一些技术术语,而为了做到这一点,我们将不得不跨界进入语言学和形式语言理论。

大声朗读下列两个句子,并特别注意你的语调和节奏:

furiouslysleepideasgreencolorless

colorlessgreenideassleepfuriously

我敢打,第一句有点机械化,每个单词后面都有扁平的强调和停顿。相比之下,第二句可能感觉上自然一些,尽管它有点愚蠢。尽管这句话实际上没有任何意义,但它是说的通的,但第一句话却不行。这有点吸引人们注意语法和语义之间的区别。如果你是说英语的人,就可以理解这些单词所代表的含义,但这与此处基本上无关。你注意到的是有效语法和无效语法之间的区别。

这个例句来自诺姆·乔姆斯基在1956年撰写的论文,你可能会认出这个名字。尽管乔姆斯基现在被认为是一位有影响力的和社会思想家,但他作为一名学者的最初贡献,是在逻辑学和语言学领域,在他的这篇论文中,他创造了一个最有用的正式语言分类系统。

乔姆斯基关注的是语法的数学描述,如何根据语法规则对语言进行分类,以及这些类别具有哪些属性。与我们相关的一个性质是句法歧义。

模棱两可的Buffalo

考虑语法正确的句子“BuffalobuffaloBuffalobuffalobuffalobuffaloBuffalobuffalo。”——这是一个典型的例子,说明了英语语法规则是多么的模糊。如果你知道的话,根据上下文,“buffalo”这个词可以用作动词、形容词或名词,你可以根据每个词所属的位置来分析句子。

我们也可以使用完全不同的词和多个句子:

“YouknowthoseNYbisonthatotherNYbisonintimidate?Well,theyintimidate,too.TheyintimidateNYbison,tobeexact.”

“你知道被其他纽约野牛威吓的那些纽约野牛吗?好吧,它们也很吓人。确切地说,它们会威胁纽约野牛。”

但是,如果我们想消除歧义,但仍然限制我们的词只使用“buffalo”,并将其全部保留为一个句子,该怎么办?是有可能的,但我们需要修改一下英语规则。我们的新“语言”会更精确一点。一种方法是标记每个单词以表示其词性,如下所示:

Buffalo{pn}buffalo{n}Buffalo{pn}buffalo{n}buffalo{v}buffalo{v}Buffalo{pn}buffalo{n}

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

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

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

现在,这仍然有点令人困惑,因为在这个句子中有一个偷偷摸摸的关系从句,通过在我们的句子的第一部分插入单词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。

标签:FFAFALBUFFUFFffa币最新价格GFAL币BUFFDOGE价格Crypto Puffs

DAI热门资讯
区块链:中国企业区块链创新与监管评估报告发布,21家企业获AAA评级_ANCI

5月26日,由中国政法大学全球价值链与票据金融研究中心、数字金融创新与监管课题组编制的“中国企业区块链创新与监管指数”正式发布,以该指数为核心的《中国企业区块链创新与监管评估报告》同期发布.

1900/1/1 0:00:00
比特币:Patoshi告诉你,移动BTC的不是Satoshi_PAT

来源:Longhash就在5月20日深夜,比特币社区传出一个惊人的消息,根据WhaleAlert的报道,一个据称很可能是属于中本聪钱包内的比特币发生了移动.

1900/1/1 0:00:00
区块链:机构持续加码,分项持仓创新高已成「常态」 | CFTC COT 比特币持仓周报_web3.0币种有哪些

5月23日,CFTC公布了最新一期的CME比特币期货周报,统计周期中BTC价格大幅反弹,几乎实现了对于上一统计周期中全部跌幅的有效收复.

1900/1/1 0:00:00
区块链:巴比特原创 | 四川亮剑,矿场终于合规化,矿业或成资本进圈第一站!_如何做区块链

区块链已“拨乱反正”,挖矿头上“落后产业”的帽子,也该摘一摘了。四川力挺区块链,矿业合规化进程加快最近,四川关于挖矿的这两个政策,很多矿工都踊跃转发.

1900/1/1 0:00:00
区块链:全国社会保障基金理事会原副理事长王忠民:疫情之后,区块链等满足了数字化安全和后台服务的效能_国内数字货币交易所

来源:清华大学五道口金融学院官网5月16日,“金融战疫,共克时艰”——2020清华五道口全球金融论坛正式举行。全国社会保障基金理事会原副理事长王忠民在论坛上发表主题演讲.

1900/1/1 0:00:00
区块链:加密矿机诉讼未了,众应互联以“有资产”收购网红电商元纯传媒_CRUNCH价格

财经网·链上财经讯,5月24日,区块链概念股众应互联科技股份有限公司发布了一则收购公告,公告显示,众应互联拟认购北京元纯传媒有限公司本次新增注册资本300.01万元所支付的全部对价.

1900/1/1 0:00:00