# @aragon/id 中文文档

规范地址：https://npmcn.com/package/%40aragon/id/

版本：2\.1\.1
npm 元数据更新时间：2025-05-09T12:19:48.775Z
中文译文更新时间：2026-11-06T13:30:52.256Z
软件包许可：GPL-3\.0-or-later

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aragon/id
原文对照：https://npmcn.com/package/%40aragon/id/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：6.4 MB，69 个文件
- TypeScript 类型：未声明
- 运行依赖：1 个
- 首次发布：2018-02-13T08:50:09.016Z
- 最新版本发布：2020-01-30T18:28:13.730Z
- 近 30 天下载量：4058（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 0 个）

## 中文简介

很可能是安全的 ENS 登记.

## 安装

```sh
npm install @aragon/id
```

也可以使用：`pnpm add @aragon/id`、`yarn add @aragon/id`、`bun add @aragon/id`

## README

# 阿拉贡标识

很可能是安全的 ENS 登记.

#### 这回波中的一切都是高度实验性的软件.

在进行适当的安全审计之前,在生产(主网)中使用任何这种代码是不安全的 已进行。 它可能造成不可逆转的资金损失.

## 为什么

Aragon用户以及一般大多数区块链用户都受到 [左子三角区](https://en.wikipedia.org/wiki/Zooko%27s_triangle)—— 说 地址是安全的和分散的,但并非对人友好。 除了作为最重要的 还应指出的是,对人友好可被视为一种 安全方面:已显示密码地址便于用户无辜 错误和 [攻击者恶意出击](https://blog.gridplus.io/hardware-wallet-vulnerabilities-f20688361b88)。 。 。 .

虽然有几个项目正在建设服务以解决这一问题,例如: [微波](https://www.uport.me/) 财务报告和审定财务报表 [公民](https://www.civic.com/),则还没有成熟或可供大众市场使用 收养。 鉴此,阿拉贡ID是一个简单的身份系统,用来弥合差距,直到这样 项目已经就绪。 它利用现有的 [国家](https://ens.domains/) 基础设施安全 提供双向、先入先出地址地图 `<name>.aragonid.eth` 标识符. 之后,用户将能够解决和逆向解决任何 `<name>.aragonid.eth` 改为: 地址,并相信他们的名字登记由自己安全控制.

## 使用量

总结如下: [丹·芬莱](https://medium.com/@danfinlay/the-future-of-ens-subdomain-markets-e5b7d98a18d3) 财务报告和审定财务报表 [尼克·约翰逊](https://medium.com/the-ethereum-name-service/results-of-the-first-ens-workshop-ab5e8d39fb79) 作为第一次环境服务讲习班的一部分,环境服务子节点登记默认应更改 随时由节点的主人负责。 节点拥有者有权更改任何 子节点,甚至可以将节点的所有权转让给自己,叫拍卖 书记官 [`finalizeAuction()`](https://github.com/ethereum/ens/blob/master/contracts/HashRegistrarSimplified.sol#L458) 或者说 [`transfer()`](https://github.com/ethereum/ens/blob/master/contracts/HashRegistrarSimplified.sol#L475) 在任何时间。 这个问题一直持续到TLD,因为 ENS 根由 (原始内容存档于2018-10-21). ENS multisig.

Aragon ID是一份合同的收集 减轻了缺乏安全 子节点的注册人。 它受到很大影响 [尼克·约翰逊以前的工作](https://gist.github.com/Arachnid/3acaf6ed437ee79e8e894b2ce5e82441)。 。 。 .

### 在阿拉贡客户端

应建议阿拉贡的新用户登记一个对人类友好的名字 `<name>.aragonid.eth` 如果他们还没有ENS识别符 与他们地址有关. 虽然登记过程最初是免费的,在出现不良情况时是优先的 aragon可能要求用户燃烧一些 [阿拉贡网络](https://github.com/aragon/aragon-network-token) 或作为登记费用的另一种标志.

需要用户进行两次交易才能全面登记姓名;不幸的是,没有 创建双向注册的安全方式(地址对名称和名称对地址都可以解决) 用于一次交易中的用户。 因此,登记应首先按“前进”方向进行, 通过部署 [FIF 可注册登记器](https://npmcn.com/package/%40aragon/id/#readme-fifsburnableregistrar-is-fifsresolvingregistrar) 页:1 `aragonid.eth`,以确保一个名字。 "逆向"登记一旦成功,就应发送 改为现有 [ENS 反向登记员](http://docs.ens.domains/en/latest/userguide.html#reverse-name-resolution)。 。 。 .

请注意,用户可以完全控制其 `<name>.aragonid.eth` 子节点,其登记可 在转帐时更改。 在使用标识符前,阿拉贡客户端应当先检查 它决心的地址没有改变.

## 今后的工作

虽然阿拉贡以前 [与Keybase合并](https://blog.aragon.one/how-aragon-approaches-identity-and-the-ethereum-keybase-resolver-d548133e4a26), (中文(简体) ), 现在ENS的存在 使我们可以建立一个身份系统 避免依赖集中的 第三会. 在这样做的过程中,我们失去了以前由Keybase提供的一些特征,例如: 作为脱链存储器(例如配置照片或其他服务标识符)。 将来,我们计划 将Aragon ID与分散的离链存储服务整合起来,例如 [沼泽](https://github.com/ethersphere/swarm) 或者说 [森林小组](https://ipfs.io/),以提供这种功能.

最后,在乌波特和公民等身份服务即将到来之后,应当指出的是 Aragon ID在Ethereum身份的最基本层面工作:账户地址. 这意味着 未来用户将能够将其阿拉贡ID标识与任何身份连接 通过服务提供,反之亦然。 未来来到阿拉贡的用户 身份甚至可能选择完全跳过阿拉贡ID注册程序.

举例来说,就进行中的案件而言 [ethereum 身份的标准化](https://github.com/ethereum/EIPs/issues/725), (中文(简体) ), 在阿拉贡注册的ERC725身份合同可以代表阿拉贡的用户 身份识别 该身份合同将有一个可解决的名称和地址,允许 与阿拉贡组织通过 `ACTION` 键,并能够证明各种细节 关于自己通过组织持有的 [索赔](https://github.com/ethereum/EIPs/issues/735)。 。 。 . 未来,一个阿拉贡组织,可能通过未来 [阿拉贡应用](http://wiki.aragon.org/dev/apps/), (中文(简体) ), 也可以是身份索赔的提出者,其中最基本的可能是关于 会员或行政(如"Brett Sun是Aradenity Inc."的总经理.

## 合同

#### 契约持有者

稍作修改的版本 [尼克・约翰逊的 `DeedHolder`](https://gist.github.com/Arachnid/3acaf6ed437ee79e8e894b2ce5e82441)。 。 。 .

这个 `DeedHolder` 充当契约的保存库(由拍卖登记员为每项契约设立) 登记)。 转让后,证书及其相应的ENS节点将锁定在 `DeedHolder` 直到更换原登记员。 这阻止了节点所有者的能力 直接控制 ENS 节点, 并禁用它们拨打登记员的能力 `finalizeAuction()` 或者说 `transfer()` 以重新完全控制节点.

鉴于目前尚不清楚向新登记员迁移的过程,可能需要 多个业务,契约的所有权需要转移到一项合同,其逻辑是 同样不详。 这个负责移民的新主人最好通过一些机构决定 治理机制,如社区多思潮。 一旦移民完成, 契约应该 再次被锁定以确保节点不被篡改.

函数 :

-   `claim(bytes32 node)`: 重新要求从 `DeedHolder` 当原始登记员 由新的书记官长取代
-   `owner(bytes32 node) returns(address)`: 返回契约的当前所有者
-   `transfer(bytes32 node, address newOwner)`: 转让地契所有权(注意: 新的"所有者"在契约成为可要求之前仍然无法获取)

#### 授权代办(是代办)

A 类 `DeedHolder` 允许契约的所有人为节点设置"管理者"(即成为 eNS节点的拥有者)允许外部方或合同管理子节点注册.

使用 `DeedHolder` 它本身就使得今后不可能对所持有的 ENS节点,因为转让契约的过程也确定了 `DeedHolder` 作为拥有者 节点.

函数 :

-   `setManager(bytes32 node, address manager)`: 设置 ENS 节点的管理器 行动 最好是登记员合同(见下文).

#### FIFS 解析 书记官长

A 类 [`FIFSRegistrar`](https://github.com/ethereum/ens/blob/master/contracts/FIFSRegistrar.sol) 还设置解析器的执行(和相应的地址映射,如果是登记册) 支持地址接口),当一个子节点被请求时.

函数 :

-   `register(bytes32 subnode, address owner)`: 如果 尚未索赔
-   `registerWithResolver(bytes32 subnode, address owner, AbstractPublicResolver resolver)`数字 : 以给定的解析器注册子节点,该解析器必须符合 [解析器谱](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-137.md#resolver-specification)

#### FIFSBUNSLAR(是FIFS解析Registrarr) 互联网档案馆的存檔,存档日期2013-12-02

拥有的 `FIFSResolvingRegistrar` 允许所有人为登记设定价格(以象征性方式) 子节点。 以此方式使用的托币会被送往 `0xdead`。支持 `ApproveAndCallReceiver` 接口.

函数 :

-   `register(bytes32 subnode, address owner)`: 如果 页:1 `owner` 已预先批准了至少登记费用的合同。 这次行动 如果通过“ token. transfer From( 所有人, “ 0xdead” ) 来烧掉令牌, 将会失败 .
-   `registerWithResolver(bytes32 subnode, address owner, AbstractPublicResolver resolver)`数字 : 以给定的解析器注册子节点,该解析器必须符合 [解析器谱](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-137.md#resolver-specification), (中文(简体) ), 若为 `owner` 已预先核准至少登记费用的合同
-   `setBurningToken(ERC20 burningToken)`: 设置注册时要被烧毁的标志 费用
-   `setRegistrationCost(uint256 cost)`: 设置子节点注册费用
-   `receiveApproval(address from, uint256 amount, address token, bytes data)`数字 : `ApproveAndCallReceiver` 执行,用于支持 `ApproveAndCall` 接口

### 示例

这个 `DeedHolder` 财务报告和审定财务报表 `DelegatingDeedHolder` 合同意在用于初始阶段 已部署的一套环境服务合同(特别是 [拍卖登记员](https://github.com/ethereum/ens/blob/master/contracts/HashRegistrarSimplified.sol#L103)) (中文(简体) ). 假设有这些,你的流量很可能是类似的东西(在伪JS中):

```js
// Contract instances
const ens = '...'
const publicResolver = '...'
const auctionRegistrar = '...'
const token = '...'

// Deploy contracts
const deedHolder = DelegatingDeedHolder.new(ens.address, namehash('eth'))
const nodeRegistrar = FIFSBurnableRegistrar.new(
  ens.address,
  publicResolver.address,
  namehash('node.eth'),
  token.address,
  10
)

// Transfer deed ownership to the deed holder and set up the nodeRegistrar as the manager
auctionRegistrar.transfer(web3.sha3('node'), deedHolder.address)
deedHolder.setManager(web3.sha3('node'), nodeRegistrar.address)

// Register via token.approve()
token.approve(nodeRegistrar.address, 10, { from: '<owner address>' })
nodeRegistrar.register(web3.sha3('subnode'), '<owner address>')

// Register via token.approveAndCall()
token.approveAndCall(nodeRegistrar.address, 10, '<call data for register(bytes32,address)>')

// Eventually reclaim ownership of deed, when the registrar has been updated
deedHolder.claim(web3.sha3('node'))
```

## 安装(用于Web3项目)

您可以通过 `/abi` 文件夹,例如:. `const DeedHolderAbi = require('@aragon/id/abi/DeedHolder.json).abi`

## 发展中国家

```sh
npm install
npm test
```

## 常见问题

### @aragon/id 是什么？

很可能是安全的 ENS 登记\.

### 如何安装 @aragon/id？

在项目目录运行 npm install @aragon/id，或使用 pnpm add / yarn add / bun add。

### @aragon/id 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/aragon\_\_id 是否存在。

### @aragon/id 可以商用吗？

@aragon/id 使用 GPL-3\.0-or-later 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @aragon/id 的下载量有多少？

根据 npm 官方下载统计，@aragon/id 在 2026/10/07 – 2026/11/05 这 30 天内被下载 4,058 次，日均约 135 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aragon/id 还在维护吗？

最新版本 2\.1\.1 发布于 2020/01/31（6 年前）；至今共发布 13 个版本，其中过去 12 个月发布了 0 个；首次发布于 2018/02/13。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

