理解 Aleo 的 Record 模型

介绍

在我们深入了解 Record 之前,我们首先要了解 Aleo 是什么,以及为什么它选择 Record 模型作为其核心数据结构。Aleo 是一个 L1 区块链,可以将通用可编程性与隐私性相结合。

Aleo 背后的核心思想是最初在 2018 年的这篇研究论文中提出的 ZEXE 和 ZK执行。它首先引入了 Record 模型,该模型扩展了 Zcash 的 UTXO 模型,能够存储和加密任意数据(用户资产和应用程序状态),而不仅仅是特定的资产或代币的价值。

状态存储

区块链中有两种主要的状态模型 - UTXO(未花费交易输出)和账户模型(由以太坊引入)。

Aleo 使用 UTXO 模型的变体 - Record 模型。

账户模型和UTXO模型
账户模型和UTXO模型

账户模型

在以太坊使用的账户模型中,可以通过引用特定地址来找到应用程序状态。

因此,任何人只要知道地址,就可以查看任何帐户的所有活动记录。

以太坊存储
以太坊存储

Record 模型

在 Record 模型中,应用程序状态及其所有者被加密并存储在区块链上。

Aleo Record
Aleo Record

Record 模型理解

Record 是一种基本数据结构,可以包含任何数据,并用于对用户资产或应用程序状态进行编码。Record 代表了链上保存的全局状态的一部分。例如,您在某个账户中的积分余额是由以您所拥有的所有积分 Record 组成的。

Aleo Record 按以下格式序列化编码:

编码
编码

Record 示例:

{
  owner: aleo13ssze66adjjkt795z9u5wpq8h6kn0y2657726h4h3e3wfnez4vqsm3008q.private,
  amount: 100u64.private,
  _nonce: 5861592911433819692697358191094794940442348980903696700646555355124091569429group.public
}

owner aleo13ssze66adjjkt795z9u5wpq8h6kn0y2657726h4h3e3wfnez4vqsm3008q

owner 是一个帐户地址,是有权使用这条 Record 的账户。

data 100u64

该 Record 可以对任意信息进行编码。 amount 就像我们所熟悉的 key - value 结构的 key 。

nonce 5861592911433819692697358191094794940442348980903696700646555355124091569429group

nonce 用于为每个 Record 创建唯一标识符。

状态更新

在 Record 模型中,应用程序通过使用包含旧状态的 Record 并生成包含新状态的新 Record 来更新其状态。已使用的旧的 Record 将被标记为已用且不能再次使用。这里和比特币的 UTXO 很类似,可以有多个输入 Record 和多个输出 Record。

Record 的消耗和生成通常在 transition 函数中完成。 Aleo 中的一笔交易最多可以包含 32 个 transition,其中一个转换用于支付交易费用。

Aleo交易
Aleo交易

Record模型的重要性

在基于帐户的模型中,应用程序的数据存储在与应用程序帐户关联的 slot 中,并且直接对此存储的数据进行更新。对于使用此模型的典型代币转移交易,用户余额将存储在将用户帐户地址映射到其各自余额的表中。当用户A向用户B转账时,A表中的余额减少,B的余额增加等量。

虽然账户模型对于开发者来说更加直观,但它使用账户地址来索引全局状态。这意味着,虽然私人账户模型可以实现输入和输出的隐私,但由于账户地址无法加密,它仍然会损害用户隐私。私人帐户模型的另一个问题是缺乏并发性,因为一次只有一个用户可以访问和更新整个程序状态。

Aleo 的 Record 模型使用程序 ID 来唯一标识程序,而不是帐户地址。这提高了隐私性并使程序能够具有内部状态。这种方法效率更高,并且解决了并发问题。

结论

Aleo 是新的 L1 区块链,强调隐私编程和可扩展性。它选择 Record 模型作为其基本数据结构,因为基于帐户的模型无法提供具有可扩展性的隐私。Record 模型还对比特币中使用的 UTXO 模型进行了增强,它能够对任意数据进行编码,从而提供可编程的隐私。

Aleo 官方链接:

Subscribe to Yaakov
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.