Aptos Wiki
MoveMove 社区Aptos 链接合集Sui WikiStarcoin Wiki
  • 🎉欢迎
  • 💡概览
    • 起源
    • 愿景
    • 主网路线图
    • 激励测试网(1)
    • 技术路线图
    • 激励测试网(2)
    • 激励测试网(3)
    • 激励测试网(4)
  • 📌基础
    • 账户(Account)
    • 事件(Events)
    • 证明(Proof)
    • Gas 和交易费
    • 节点网络和同步
    • 验证者节点
    • 全节点
    • 交易和状态
  • 🔄交易
    • 与 Aptos 区块链交互
  • 📓教程
    • Petra 钱包插件安装使用
    • 教程指引
    • 您的第一笔交易
    • 您的第一个 Move 模块
    • 您的第一个 NFT
    • 运行本地网络
    • 开发网 Devnet
      • 运行全节点(官方教程)
      • 运行全节点(社区教程)
        • Windows
        • Linux
    • 测试网 Testnet
      • 社区教程
        • AIT-3 新功能
        • 节点要求
        • AIT-3 步骤
        • 使用 Docker
        • 全节点搭建
        • 加入测试网
        • 离开激励测试网
  • 🖊️博客
    • Block-STM:我们如何在 Aptos 区块链上每秒执行超过 16 万笔交易
  • 🗻生态
    • Aptos 宣布资助计划!
    • Aptos 生态项目汇总
      • 聚合器
        • Hippo Labs
      • Defi
        • 🟢Pontem Network
        • 🟢Vial Protocol
        • 1KX Protocol
        • Seam Money
        • Aries Markets
        • Empo Finance
        • Ultima protocol
        • Econia
        • Zaptos Finance
        • Laminar Market
        • Thala Labs
        • AptoSwap
        • Aptoslend
        • ASwap
      • 基础设施
        • 🟢Aptos 域名服务
        • Nutrios
        • Dialect
        • Switchboard
      • NFT
        • 🟢Topaz NFT Marketplace
        • TokenMasksLabs
        • Clone Protocol
        • Aptos Ape Society
      • 钱包
        • 🟢Fewcha Wallet
        • 🟢Martian Wallet
        • Volt.id wallet
        • ONTO Wallet
        • Hive Wallet
        • Blocto
      • 工具
        • ChainIDE
        • Paymagic
        • Aptosphere
        • Saber Labs
  • ❓问题(FAQ)
    • 常见问题
    • 如何分享自己的节点
    • 如何运行多个节点
    • 如何修改节点配置文件
Powered by GitBook
On this page
  • 介绍
  • 初始帐户设置​
  • Authentication Keys​
  • 账户资源​
  1. 基础

账户(Account)

Previous基础Next事件(Events)

Last updated 3 years ago

账户代表 Aptos 区块链上可以发送交易的资源。 每个帐户由一个特定的 16 字节帐户地址标识,并且是 Move 模块和 Move 资源的容器。

介绍

每个账户的状态包括 Code 和 Data:

  • Code: Move 模块包含 Code(类型和过程声明),但它们不包含 data。 该模块的程序对更新区块链全局状态的规则进行编码。

  • Data: Move 资源包含数据但没有 Code。 每个资源值都有一个在区块链分布式数据库中发布的模块中声明的类型。

一个帐户可能包含任意数量的 Move 资源和 Move 模块。

初始帐户设置

Aptos 帐户由一个帐户地址引用,该地址是一个 32 字节的值。 帐户地址源自该帐户的初始公共验证密钥。 具体来说,帐户地址是与签名方案标识符字节连接的初始公共验证密钥的 SHA-3 256 加密散列的最后 32 个字节。 Aptos 区块链支持两种签名方案: 和 MultiEd25519(用于多重签名交易)。 帐户的私钥是签署交易所必需的。

每个账户还存储一个 sequence_number,代表下一个交易的序列号,防止交易重放攻击。 在创建帐户时将其初始化为 0。

Authentication Keys

每个帐户都存储一个身份验证密钥。此身份验证密钥使帐户所有者能够轮换与帐户关联的私钥,而无需更改托管其帐户的地址。在轮换期间,身份验证密钥会根据新生成的私有、公共密钥对进行更新。

单签名者身份验证

要生成身份验证密钥和帐户地址:

  1. 生成密钥对:生成新的密钥对 (pubkey_A, privkey_A)。Aptos 区块链在 Ed25519 曲线上使用 PureEdDSA 方案,如 RFC 8032 中所定义。

  2. 派生一个 32 字节的身份验证密钥:派生一个 32 字节的身份验证密钥 auth_key = sha3-256(pubkey_A | 0x00), 其中 | 表示连接。 0x00 是一个 1 字节的签名方案标识符,其中 0x00 表示单签名。 auth_key 的前 16 个字节是“认证密钥前缀”。 auth_key 的最后 16 个字节是账户地址。任何创建账户的交易都需要账户地址和认证密钥前缀,但与现有账户交互的交易只需要地址。

帐户的身份验证密钥可能需要单个签名或多个签名(“multisig”)。使用 K-of-N 多重签名身份验证时,帐户总共有 N 个签名者,并且必须使用这 N 个签名中的至少 K 个来对交易进行身份验证。

创建 K-of-N 多重签名认证密钥类似于创建单个签名密钥:

  1. 生成密钥对:生成 N 个 ed25519 公钥 p_1, ..., p_n.

  2. 派生一个 32 字节的身份验证密钥:计算 auth_key = sha3-256(p_1 | … | p_n | K | 0x01)。如上所述派生地址和身份验证密钥前缀。 K 表示验证交易所需的 K-of-N。 0x01 是一个 1 字节的签名方案标识符,其中 0x01 表示多重签名。

Aptos 上的每个帐户都可以存储数据,它在资源中存储。初始资源是帐户数据本身(身份验证密钥和序列号)。可以在创建帐户后添加其他资源,例如货币或 NFT。为了创建帐户,Aptos 测试网需要帐户的公钥和一定数量的 TestCoin 才能添加到该帐户,从而使用这两种资源创建一个新帐户。

多重签名者身份验证

账户资源

📌
​
Ed25519
​
​
​
​