在 Aptos 上使用保密交易进行构建

Aptos 推出了保密交易(ACTs)功能,旨在对链上的token余额和交易金额进行加密,除了指定的第三方审计员外,对外部网络参与者(包括验证者)保密。ACTs基于同态加密和零知识证明,允许在不泄露明文金额的情况下进行链上余额更新和验证。此功能支持合规性审计,并为机密薪资等新用例开启了大门。

传统金融应用的用户通常期望交易时具有保密性。但公共区块链,按照设计,是开放和透明的,会泄露交易的关键细节。这使得许多受监管的金融和企业级用例难以采用该技术。

Aptos Confidential Transactions(ACTs,保密交易)通过使交易金额和余额对公众保密来解决这个问题,从而为开发者构建符合规定的保密用例开辟了空间。这仍然允许选择性地向授权审计员披露,因此机构可以满足其报告和监督义务。

保密交易现在已在 devnet 上线。 探索如何使用此功能构建一个简单的支付应用程序:https://confidential.aptoslabs.com/

注意:当 ACTs 在主网上启动时,现有功能可能会发生变化。

它是什么: ACTs 对链上的 Token 余额和交易金额进行加密, 使它们对外面的网络参与者(包括验证者)保密,除了指定第三方审计员。

拥有解密密钥的第三方审计员可以选择性地解密和审查加密的余额和转移金额,以帮助受监管的实体履行其义务,而无需将这些细节暴露给更广泛的网络。 这意味着开发者可以出于法律和合规目的执行所需的监督和审计交易,而不会损害整体用户隐私。

它不是什么: ACTs 隐藏发送者和接收者的身份;它们专门关注 Token 余额的保密性,而所有其他交易信息保持公开。

ACTs 如何工作:

从高层次上讲,用户余额在长期加密密钥下保密——可能与正常的帐户签名密钥不同。

要在保密帐户之间转移,发送者可以使转移的金额保密,并通过零知识证明(ZKP)使验证者相信该金额不超过其余额。

保密交易概述

Aptos 上的 ACT 遵循三个基本原则:

  1. 余额和转移的金额对网络中的每个参与者保密,除了预期的接收者和审计员

  2. 接收者能够解密余额

  3. 验证者无法看到保密 Token 余额或转移的金额,但网络仍然确保完整性:没有负余额,没有人为通货膨胀等。

它们建立在两个主要原语之上:

加法同态加密方案 (E)

这会对整数金额进行加密,并允许直接组合密文而无需解密。

E(ek, v; r) -> c 使用一些随机数 r 在加密密钥 ek 下加密值 v,从而生成密文 c

稍后,D(dk, c) -> v 可以使用与 ek 关联的相应解密密钥 dk 解密密文 c,从而显示原始加密值 v

最重要的是,E 是同态的,因为两个值 v1v2(分别)的加密 c1c2 可以通过简单地计算 c1+c2 组合成它们的总和 v1+v2 的加密。

无需解密。

更正式地说,对于任何值 v1, v2 和随机数 r1,r2,加密函数 E 具有以下属性:

E(ek, v1; r1) + E(ek, v2; r2) = E(ek, v1 + v2; r1 + r2)
  • ek 是公共加密密钥。
  • v1​ 和 v2​ 代表在密文中加密的交易金额或余额。
  • r1 和 r2 是用于盲化和加密底层金额的随机标量。

余额可以直接在链上加密、更新、添加或减少,而无需透露明文金额。

零知识证明 (ZKP) 方案 (Π)

如果发送者有 4 个 Token 的加密余额,但试图发送 5 个的加密金额会发生什么? 验证者如何判断加密金额高于余额?

发送者将使用零知识证明说服验证者加密金额不超过加密余额。

验证者除了加密值的这个事实之外什么也学不到。

保密交易的生命周期

以下是通过这些原语解释的保密交易的实际生命周期:

步骤 1: 每个用户为所有交易生成一个加密密钥对:一个公共加密密钥 ek 和一个私有解密密钥 dk。

步骤 2: 当 Alice 以保密方式向 Bob 发送Coin时:

Alice 使用随机 blinder r 在她自己的加密密钥 ek_Alice 和 Bob 的加密密钥 ek_Bob 下加密金额 v。

c_Alice = E(ek_Alice, v; r)

c_Bob = E(ek_Bob, v; r)

然后,Alice 生成一个零知识证明 π,同时证明三件事:

  1. 密文 c_Alicec_Bob 都加密了相同的数值 v。
  2. 值 v 在有效的数值范围内。
  3. Alice 在减去 v 后的余额仍然有效(≥ 0)。

步骤 3: 验证者验证 Alice 的证明 π,在不解密金额的情况下确认正确性。

然后以同态方式更新余额:

Alice 的加密余额减少,减去加密金额。 Bob 的加密余额增加,加上加密金额。

没有数值透露给验证者或未经授权的观察者。

步骤 4: Bob 使用他的私钥 dk 解密密文以发现收到的金额。

合规性审计

ACT 支持可以选择性地解密金额和余额以进行法规遵从的审计员:

  • 每次转账还可以使用审计员的加密密钥加密金额。
  • 发送者调整零知识证明,现在证明所有密文在 Alice、Bob 和审计员的加密密钥下加密相同的金额。

实施选择

一个账户维护三个主要状态:

  • 待处理余额:临时接收传入的保密转移,以防止抢先交易。
  • 实际余额:用于支出的主要加密余额。
  • 冻结标志:在安全密钥轮换期间暂时暂停传入的转移。

开始构建

ACTs 释放了大量新的用例,我们很高兴看到生态系统构建的内容。

“我们要感谢我们的合作伙伴 Distributed Lab (https://distributedlab.com/) 与我们共同构建此功能。 感谢 (@olkurbatov) 的合作。”

以下是一些示例:

  • 机密工资单:构建工资单应用程序并在链上支付工资,而无需分享对你团队薪资结构的敏感见解。

我们要感谢我们的合作伙伴 Distributed Lab 与我们共同构建此功能。

资源

资源

开发者文档:https://aptos.dev/en/build/smart-contracts/confidential-asset

CFA 合约:https://github.com/aptos-labs/aptos-core/blob/main/aptos-move/framework/aptos-experimental/sources/confidential_asset/confidential_asset.move

TypeScript SDK:https://github.com/aptos-labs/aptos-ts-sdk/tree/main/confidential-assets

保密支付 webapp demohttps://github.com/aptos-labs/confidential-payments-example

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

0 条评论

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