Skip to main content

aptos

地址

  1. https://aptos.dev/en/build/guides/aptos-keyless/how-keyless-works
  2. https://aptos.dev/en/build/guides/aptos-keyless/oidc-support
  3. https://github.com/aptos-labs/aptos-keyless-example/
  4. https://github.com/aptos-labs/aptos-core/tree/main/keyless
  5. https://console.cloud.google.com/apis/credentials?referrer=search&project=semiotic-vial-425010-k6 同 google drive 配置
  6. https://aptos-labs.github.io/aptos-ts-sdk/@aptos-labs/ts-sdk-1.24.0/
  7. https://github.com/aptos-labs/aptos-core/pull/12342
  8. https://github.com/aptos-labs/aptos-core/blob/rex%2Fmerge-prover-service/keyless/prover-service/src/handlers.rs

alt text

流程:在 dApp 中为用户派生无密钥帐户

alt text

Flow: Obtaining a zero-knowledge proof before transacting

alt text alt text

这张图描述了一个无密钥零知识(Keyless ZK)关系的验证过程。具体来说,它展示了如何通过公开和私有信息来验证某些条件。

元素解释

公共信息(Public Information)

  • addr: 地址
  • epk: 临时公钥(Ephemeral Public Key)
  • GPK: 全局公钥(Global Public Key)

私有信息(Private Information)

  • jwt: JSON Web Token
  • σ_G: 签名
  • ρ: 混淆因子
  • r: 随机数

验证条件

右侧的三个条件描述了如何验证这些信息:

  1. 签名验证:

    • σ_G 是在 jwt 上使用 GPK 验证的签名。
    • 这意味着 σ_G 必须是有效的,并且可以用 GPK 来验证 jwt 的真实性。
  2. JWT Nonce 验证:

    • jwt["nonce"] = H(epk, ρ)
    • 这里的 H 是一个哈希函数。这意味着 JWT 中的 nonce 值必须等于 epkρ 的哈希值。
  3. 地址计算:

    • addr = H(jwt["sub"], jwt["aud"], r)
    • 这意味着地址 addr 是通过对 JWT 中的 sub(主题)、aud(受众)和随机数 r 进行哈希计算得到的。

总结

这张图展示了一个验证过程,其中公共信息和私有信息通过一组条件进行验证。如果所有条件都满足,则这个无密钥零知识关系成立。这个过程确保了在不泄露私有信息的情况下验证某些属性的真实性。

具体来说,这个验证过程可能用于某种加密协议,确保只有在拥有正确的 JWT、签名和其他私有信息的情况下,才能生成有效的地址。这在隐私保护和安全通信中非常有用。

Flow: Sending a TXN from a keyless account

alt text

简写

  1. TXN 是“Transaction”
  2. POC 是“Proof of Concept”
  3. OIDC 是“OpenID Connect”
  4. EPK 是“ephemeral public key”
  5. ESK 是“ephemeral secret key”

接口

alt text