ZK账户概述

本文概述了ZK账户在区块链中的应用,特别是在Celestia网络中,如何通过验证ZK证明来实现更灵活的账户控制和功能扩展。ZK账户允许用户自定义账户的使用条件,支持账户抽象、升级、跨链桥接(Lazybridging)和密钥库Rollup等功能,从而实现功能上的“逃逸速度”,无需在协议中单独实现每个特性。

ZK账户概述

概述

为了实现"功能逃逸速度"(即为了支持重要的L2),区块链必须具有足够的表达能力。虽然之前假设区块链必须提供通用的执行才能满足足够的表达能力的标准,但ZK证明——也称为有效性证明——放宽了这一要求。使用这样的系统,区块链只需要提供ZK证明的验证

背景

以太坊的账户模型为例,具有通用执行能力的区块链上的交易传统上只需要以下几点才能从账户支出(相当于交易有效性):

  1. 正确的账户nonce(或其他重放保护机制),以及
  2. 足够的账户余额来支付费用和发送资金,以及
  3. 基于账户公钥的有效数字签名。

这与比特币相反,比特币允许以无状态谓词的形式进行有限的脚本编写来控制UTXO的支出。传统账户模型缺乏灵活性,严重限制了用户定义账户使用条件的的能力;臭名昭著的是,原生多重签名在以太坊上是不可能的。一些基于账户的区块链,例如基于Cosmos SDK的区块链,可以原生支持额外的功能,例如多重签名账户或归属账户,但是每个此类功能都需要单独进行协议的固化。

ZK证明可以提供两全其美的方案:富有表现力的账户控制,而无需单独固化到协议中。

协议草图

ZK账户协议的草图实际上非常简单。ZK账户是Celestia状态机中的一种特殊账户类型,它与验证密钥相关联,该密钥唯一地表示一个程序,该程序对输入的执行可以被验证。该程序完全由用户决定,不需要在Celestia状态机中进行特定的固化。

从ZK账户支出(相当于推进ZK账户的状态)是通过一个交易完成的,该交易针对当前的ZK账户状态提供了一个证明。如果正确验证了该证明,则账户的资金将被解锁,并可以按照交易中的定义进行支出。证明验证器的输入取决于ZK账户的具体应用(在下一节中详细介绍),这可以在创建账户时或发送交易时定义。最简单的形式是,输入可以是公钥和nonce——TIA余额的充足性必须由Celestia状态机强制执行。

ZK账户的应用

前一节中的协议草图允许有条件地进行简单的转账,但除此之外没有太多功能。通过固化少量额外的逻辑,可以启用重要的附加功能,本节非详尽地对此进行描述。

账户抽象

虽然协议草图是一种账户抽象的形式,因为用户可以设置从ZK账户支出的条件,但是如果ZK账户无法与任何其他账户交互,则此抽象的用处有限。作为对协议草图的补充,我们可以允许其他账户的消息作为验证器的输入。这将使ZK账户能够将对支出的受限或不受限的控制权委托给另一个账户。

受限控制在以下情况下可能很有用:两个ZK rollup通过单个Celestia交易在Celestia状态机中原子地进行桥接。第一个rollup可以从其ZK账户中提取token,然后通过消息将其发送到第二个rollup,并将其吸收到第二个rollup的ZK账户中。Rollup桥接在Lazybridging中有更详细的描述。

不受限制的控制对于将账户的控制权委托给另一个账户可能很有用。这在keystore rollups中有应用。

升级

与ZK账户关联的验证密钥不需要在创建账户时固定。借鉴账户抽象的设计思路,每个ZK账户都可以将其验证密钥存储为可变的。验证器的特定执行路径可以触发升级,该升级可以来自向ZK账户本身发布有效的证明,也可以完全来自另一个账户。升级将更改验证密钥,可能会任意更改,从而从根本上更改控制ZK账户支出的程序。在ZK rollup的上下文中,这意味着升级rollup的执行逻辑。

Lazybridging

💡 提示: "Lazybridging 是一种生活方式。"

Lazybriding是对基本ZK账户功能的扩展,它允许在Celestia状态机和rollup之间建立信任最小化的双向桥梁(可能用于TIA和任意token),以及从非IBC外部链中传入的资产桥接。该扩展是验证器的另一条执行路径,可以触发解锁特定的账户资金以从ZK账户中支出,而不是像协议草图那样解锁整个账户资金。

对于rollup(ZK和optimistic),lazybriding被实现为协同工作的两个组件:一个如上所述在Celestia状态机中,另一个在rollup的状态转换函数中。例如,rollup可以具有固化的交易类型或固化的智能合约,可以刻录rollup上的资产,从而触发从Celestia上的相关ZK账户中提取这些资产。

lazybriding的另一种形式是从非IBC链(例如以太坊)中继资产。在此方案中,ZK账户将验证远程链的共识的正确性及其状态转换的某个子集(例如,仅EVM链的日志)。换句话说,它不需要远程链选择使用Celestia进行数据可用性。

Keystore Rollups

最后,keystore rollup是一个rollup,它将可变的用户公钥抽象在唯一的不可变标识符后面。然后,标识符控制资产,而不是公钥。当与账户抽象结合使用时,这允许keystore rollup账户控制Celestia状态机中的其他账户和使用ZK账户的其他rollup。

关注ZK账户的开发

工作组和CIP

一个设计和实现ZK账户的工作组每两周举行一次会议:Celestia基层的零知识。还有一个正在进行中的CIP可用,其中包含会议录音和其他资源。

内容

  • 原文链接: github.com/celestiaorg/C...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
celestiaorg
celestiaorg
江湖只有他的大名,没有他的介绍。