作者:MirandaChrist(哥伦比亚大学计算机科学专业博士生/a16z加密研究实习生)、JosephBonneau(a16zcrypto)来源:a16z crypto;编译:Yvonne,MarsBit
随着区块链支持更多用户和更频繁的交易,验证器为验证交易而存储的信息量(“状态”)也在增长。例如,在比特币中,状态由一组未使用的交易输出(utxo)组成。在以太坊中,状态由每个账户的账户余额以及每个智能合约的代码和存储组成。
对于拥有足够账户或 UTXO 来支持大部分人真正日常交易的区块链来说,这种存储负担将变得难以处理,从而使其难以成为验证者并对去中心化构成威胁。人们很容易将密码学作为一种解决方案,像默克尔树和零知识证明这样的工具已经帮助我们实现了以前难以置信的目标。
这正是“无状态区块链”的目标。但是,尽管在这方面做出了大量的工作,它们仍然远未实用。但事实证明,这种进展上的滞后是固有的——这些结构与实用性之间的差距永远无法弥合。我们最近的工作表明,如果没有额外的措施来管理状态,任何无状态的区块链方案,无论多么智能,都是不可行的。正如我们在这篇文章的末尾所展示的那样,这种不可能的结果不应该令人沮丧。
无状态的状态
如今,状态规模虽庞大但可控。例如,比特币节点存储大约7GB的数据,以太坊节点存储大约650GB的数据。但是,全节点的存储负担与链的吞吐量(每秒交易数或TPS)大致呈线性增长,而目前的吞吐量低得令人无法接受。根据当前的设计,真正支持日常交易(数十万到数百万TPS)所需的状态将变得难以处理,需要使用几TB甚至PB的存储空间。
这促使人们寻找技术方法来大幅减少验证者所需的状态量——无状态的区块链,它将要求验证者仅存储一个恒定大小的状态,而不管交易吞吐量如何。(实际上,这个术语是一个误称:仍然存在状态,只是足够小以适应任何未来的吞吐量——通常是恒定大小的。)这种轻量级的存储要求将使得运行验证者节点更加容易;乐观地讲,每个人都可以在他们的手机上运行一个节点。由于增加验证者的数量将增加链的安全性,降低验证者的准入门槛非常重要。
A16z首席法务官:分布式系统上的结算层不仅仅是一个信息通信层:金色财经报道,A16z首席法务官Jai Ramaswamy在第一天的会议“理性监管 Web3:千载难逢的机会”上发言称,比特币论文的原始见解指出,分布式系统上的结算层不仅仅是一个信息通信层,而是一个新颖的计算机科学概念。然而,它的含义远不止金融,因为它允许在互联网上创建可编程的分布式层。目前所遇到的问题是,当人们思考监管时,他们会以静态的方式思考,而事实上,这是一个动态的概念。如果我们考虑一下今天的世界是如何被监管的。互联网的协议层实际上是被监管的,但它们一般是由自我监管组织(SRO)监管的。而在一些自律组织之外,还有包括SEC、CFTC、FinCen等在内的监管机构,这两类监管机构通常监管应用层。
我们今天遇到的部分问题是金融监管机构开始监管或认为他们正在监管这些基础层或协议层,这是一个错误。因为监管机构和金融监管机构最没有能力做出设计决策。行业需要仔细考虑如何通过标准制定机构的自我监管通过最佳实践来监管基础层。[2022/10/24 16:37:10]
尽管对无状态区块链进行了大量研究(例如Todd, Buterin, Boneh等人,Srinivasan等人),但它们远非实用,据我们所知,没有一个被部署。所有已知的无状态区块链的根本问题是,它们要求用户存储称为证人的额外数据,以帮助验证者验证涉及其账户的交易。例如,这个见证可能是一个Merkle包含证明,表明用户的帐户及其余额包含在全局状态承诺中。当用户进行交易时,他们将此见证提交给验证者,表明他们的帐户有足够的余额。
与存储永远不需要更改的私钥不同,这些见证经常更改,即使对于不积极进行交易的用户也是如此,这给用户带来了不切实际的负担。类似地,想象一下,如果你必须持续监视全球范围内的所有其他信用卡交易,并相应地更新一些本地数据才能使用你自己的信用卡。为了使区块链实用,用户必须能够保持离线状态,只有在提交交易时才能与区块链交互。在许多情况下,比如硬件钱包,更新见证不仅不方便,而且不可能。
a16z合伙人:Crypto和Web3领域存在创新,应关注长期愿景和产品周期:6月28日消息,a16z合伙人Chris Dixon发文对比互联网时代和当下Web3的现状,并发布金融周期和产品周期图表。
Chris Dixon指出,现在的科技行业与21世纪20年代有很大不同。少数科技巨头主导互联网,发挥巨大的经济和文化影响。在21世纪20年代,Web2大多被忽视或被视为谈论琐事的技术人员。如今,既得利益者积极应对有朝一日可能威胁到自己的新运动。但是,21世纪20年代出现的创造性模式今天仍然存在,由那些能提前看到更多可能性的爱好者推动。你只需要知道去哪里找到它们。Chris Dixon认为最好的地方是Crypto和Web3。
在他看来,现在的金融负面情绪与2008年最为相似。如果我们正走向长期低迷,那么可以从2008年那个时代学到一些战术上的教训,即保全资本并专注于长期愿景。战略上的教训是始终聚焦在产品周期上。对聪明人来说,看起来有趣的东西通常是因为它们具有丰富的产品可能性。这些可能性最终成为现实。玩具成为必备工具。周末爱好成为主流活动。愤世嫉俗者听起来很聪明,但乐观主义者创造了未来。[2022/6/28 1:36:34]
这就引出了一个自然的研究问题:我们能否构建一个不需要更新见证(或者很少需要更新见证)的无状态区块链?为回答这一问题,我们开发了一个新的理论框架(可撤销的证明系统),它概括了无状态区块链。使用这一框架,我们证明了一个结论性的不可能结果:简洁的全局状态和频繁的见证更新之间的权衡是根本性的。我们的证明技术是信息论的,这意味着未来的计算机不会强大到足以解决这个问题:无状态区块链结构和实用性之间的差距将永远无法弥合。
研究背景
a16z合伙人:使网络参与者团结起来朝着共同的目标共同努力:10月8日消息,a16z合伙人Chris Dixon发表最新的观点,为什么Web3很重要?Chris Dixon介绍说,现在正处于web3时代的开端,它将web1的去中心化、社区治理的精神与web2的先进、现代功能相结合。Web3是由构建者和用户拥有的互联网,由通证精心策划。 Chris Dixon解释表示,中心化平台遵循可预测的生命周期。当他们到达S曲线的顶部时,他们与网络参与者的关系从正和变为零和。在web3中,所有权和控制权是去中心化的。用户和建设者可以通过拥有NFT和FT来拥有互联网服务。通证币赋予用户产权:拥有互联网的一部分的能力。区块链是任何人都可以访问但无人拥有的特殊计算机。通证使网络参与者团结起来朝着共同的目标共同努力,网络的发展和通证的升值。[2021/10/8 20:12:23]
为帮助建立对不可能结果的直觉,我们将首先使用Merkle树描述无状态区块链的自然但低效的构造。我们的目标是让验证器确定用户提交的交易是否有效——例如,用户是否有足够大的账户余额来进行交易。在无状态区块链方案中,验证器存储恒定大小的状态。当用户进行交易时,他们必须在交易中包含一个见证。验证器可以使用当前状态和用户提交的(交易、见证)对来验证该用户是否有足够的账户余额来进行交易。
我们首先构建一个Merkle 树,其中每个(账户 ID,余额)对(a,b)都作为叶子包含在内。验证器存储的恒定大小的状态V是该树的根,它充当对帐户余额对集的承诺。每个用户都维护其(账户 ID、余额)对的 Merkle 包含证明作为其见证人。叶子 ( a , b ) 的 Merkle 包含证明由沿着其到树根的路径上的伙伴节点 ( v 1 , …, v k ) 组成。给定用户使用帐户a进行的交易并声明余额b,验证器可以检查b通过检查 ( a , b )的证明 ( v 1 , …, v k )与其当前状态V ,确实是帐户a的余额。如果是这样,验证器将执行交易并必须相应地更新帐户余额。Merkle 树的一个便利属性是,给定叶子的 Merkle 包含证明,当该叶子发生更改时,很容易计算生成的根。换句话说,验证者可以轻松计算更新后的状态V' ,该状态V'在交易执行后捕获帐户 a 的新余额。
DeSo区块链通过代币销售获得2亿美元融资,a16z等参投:9月21日消息,BitClout创始人(化名为Diamondhands)透露自己的身份是稳定币初创公司Basis创始人Nader Al-Naji,Basis因监管限制于2018年关闭。Nader Al-Naji的新区块链网络Decentralized Social(DeSo)通过出售DESO代币获得2亿美元融资,Andreessen Horowitz(a16z)、Sequoia、Social Capital、TQ Ventures、Coinbase Ventures、Winklevoss Capital、Polychain Capital、Pantera Capital、Arrington Capital、Blockchange Ventures、Distributed Global、Blockchain.com Ventures、Hack Ventures、Reddit联合创始人Alexis Ohanian等参投。
DeSo区块链支持传统社交媒体功能(如创建个人资料和帖子)以及区块链原生功能(如社交代币、小费和NFT),这些功能可以让创作者赚钱。Al-Naji表示,所有想要使用DeSo区块链或基于该区块链构建的应用程序的人都必须持有DESO代币。[2021/9/21 23:40:46]
默克尔树方案有两个主要缺点。首先,用户的见证数量相对较大,在系统中账户总数中呈对数增长。理想情况下,它们应该是恒定大小的,我们可以使用RSA累加器(Boneh等人在无状态区块链的背景下研究)等方案来实现。
第二个缺点更难以避免:每当其他用户进行交易时,帐户-余额对的证明就会更改。回想一下,叶子的证明由从该叶子到树的根的路径上的伙伴节点(partner nodes)组成。如果任何其他叶子发生变化,这些节点中的一个就会发生变化,从而在实践中出现问题。大多数区块链用户希望被动地将他们的代币保存在钱包中,只有当他们想要进行交易时才登入。然而,在这种无状态区块链的实践中,用户必须不断监控其他人的交易,以使他们的见证保持最新状态。(虽然第三方可以代表用户进行这种监控,但这偏离了标准的无状态区块链模型。我们将在本文的最后讨论这个问题。)实际上,这对于无状态区块链来说是一个不可逾越的挑战,给用户带来了沉重的负担。
动态 | 风投机构A16z或将对加密货币等高风险资产投入10亿美元:据福布斯消息,硅谷风投Andreessen Horowitz(A16Z)在进行一些内部调整后,或将在加密货币或其他数字资产等风险更高的投资上投入多达10亿美元。创始人Marc AndreessenBen Horowitz表示,其已将150名员工全部注册为财务顾问,以便让他们能够进行更大的押注,并加大对加密货币等高风险资产类别的投资。[2019/4/3]
我们的结论:无状态是不可能的
这种现象并不是Merkle树结构所特有的——所有已知的无状态区块链方案都要求用户频繁更新他们的见证。我们在本文中说明了这一点。更准确地说,我们表明,必须更新其见证的用户数量与所有用户进行的交易总数大致呈线性增长。
这意味着,即使用户Alice没有进行任何交易,她的见证也可能需要随着其他用户的交易而更改。只要验证器存储的简洁状态太小而无法捕获完整状态(即所有帐户余额的集合),那么增加简洁状态的大小就没有什么帮助。我们按照下面的定理绘制了这种关系,以及不同吞吐量的区块链每天所需的见证人更改数量。这些图显示了见证人需要更改以获得最佳无状态区块链的次数。这里,数据域指的是帐户(在帐户模型中)或UTXO(在UTXO模型中)的总数。
我们证明的核心是信息论论证。Claude Shannon提出的信息理论的一个核心原则是,如果Alice从一个大小为2n的集合中随机选择了一个对象,并希望告诉Bob她选择了哪个对象,她必须向他发送至少n位。如果存在一个无状态的区块链方案,用户很少更新他们的见证,那么Alice可以用少于n比特的时间告诉Bob她选择了哪个对象——Shannon证明这是不可能的。因此,这种无状态区块链是不可能存在的。
为了简单起见,我们将在这里描述一个稍弱的陈述的证明:不可能存在用户永远不需要更新其见证的无状态区块链。关键思想是Alice使用无状态区块链方案将她的消息编码给Bob。最初,Alice 和 Bob 都知道所有n 个用户的完整帐户余额对。假设每个账户至少有一枚币。Alice 和 Bob 也都知道无状态区块链的简洁状态V和所有账户余额对( a i , b i )的见证人 w i。Alice 和 Bob 还就消息和帐户集之间的映射达成了一致。Alice会选择与她的消息对应的一组A账户,然后她会从这些账户中花费代币。她将使用无状态区块链与Bob沟通她选择的集合,而他可以从该集合中了解她的消息是什么。
编码: Alice 从A的每个账户中花费一枚代币。使用无状态区块链方案,Alice 计算更新后的状态V'并将V'发送给 Bob。
解码:对于每个i, Bob 检查是否Verify( w i , ( a i , b i )) 。Bob 输出账户集合B,使得Verify( w i , ( a i , b i )) = false。
Bob成功地输出了与Alice选择的相同集合:B = A。首先,观察到如果Alice从帐户a i中花费了一枚代币,则不应再接受其旧余额的见证 - 否则,Alice将能够加倍花费。因此,对于A中的每个账户a i,Verify( w i , ( a i , b i )) = false,并且 Bob 会将该账户包含在B中。另一方面,Bob 绝不会在B中包含Alice 所识别的账户。没有_花一枚代币,因为这些账户的余额保持不变,并且(回想一下我们要证明的宽松声明)他们的见证人永远不会改变。因此,B完全等于A。
最后,通过计算Alice应该发送给Bob的比特数来解决矛盾。她可以选择的账户子集有2 n 种可能,根据Shannon定律,她至少应该发送n比特给Bob。然而,她只发送了常量大小的状态V',远远比n比特要短。
(熟悉密码学的读者可能会注意到,我们在这里掩盖了一些细节;例如,Bob的解码失败的概率可以忽略不计。我们的论文包括完整的证明。)
虽然我们用无状态区块链描述了我们的证明,但Alice和Bob可以使用各种其他经过身份验证的数据结构(例如累加器、向量承诺)执行类似的过于高效的通信。我们使用一种新的抽象来形式化这类数据结构,我们称之为可撤销证明系统。
结果带来的影响
我们的结果表明,你不能“加密状态”——没有灵丹妙药式的方案允许我们构建一个用户永远不必更新他们的见证的无状态区块链。状态并没有消失,而是从验证器转移到用户身上,以频繁更新见证的形式推送给用户。
确实存在一些潜在的解决方案,但这些解决方案脱离了严格的无状态区块链模型。该模型允许第三方(既不是用户也不是验证者)负责存储完整的状态。这一方被称为证明服务节点(由Srinivasan等人进行了最严格的检查),它使用完整状态来代表用户生成最新的见证。然后,用户可以使用这些见证进行交易,就像在常规的无状态区块链中一样,其中验证器仍然只存储一个简洁的状态。该系统的激励机制,特别是用户如何补偿证明服务节点,是一个有趣的开放研究方向。
虽然到目前为止我们的讨论主要集中在L1区块链上,但我们的结果也会对L2系统(如rollup服务器)产生影响。rollup(无论是optimistic的还是ZK的)通常采用一个大的状态并使用存储在 L1 上的一个小值来提交它。此状态包括L2上每个用户的帐户。我们希望这些用户能够通过发布其当前账户余额的见证来直接在 L1 上提取资金(无需 L2 服务器的配合)。此设置也是我们模型中可撤销证明系统的一个实例。事实上,有人可能会说无状态区块链已经以 L2 rollup的形式在实践中得到了实施。
不幸的是,这意味着我们的不可能性结果直接适用。用户的rollup取款见证必须经常更改,否则几乎整个L2状态都必须写入L1。因此,今天的集合通常假设有一个数据可用性委员会(有时称为“有效性委员会”),其功能类似于“证明服务节点”,在用户准备退出时帮助他们计算新的见证。我们的研究结果表明,以太坊文档中对用户的警告——“如果无法访问交易数据,用户无法计算证明资金所有权和执行提款所需的默克尔证明。”——将永远适用。
随着区块链系统的发展,开发更有效的方法来管理区块链状态将变得更加重要。尽管我们排除无状态区块链的结果似乎是消极的,但不可能的结果对区块链设计者来说是有用的,因为它们告诉我们将研究重点放在其他地方,理想情况下可以帮助我们更快地找到可行的解决方案。
MarsBit
媒体专栏
阅读更多
金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。