Skip to main content

互联网计算机协议(ICP)核心词汇表

glossary

A

account: 账号

帐号是分类账本容器中的条目组合,它是一种智能合约,模仿了常规银行帐户的行为,用 ICP 作为度量单位。账号由主体拥有,其所有权不会随时间而改变。每个账号都有一个用 ICP 度量的正余额,精确到小数点后8位。

address: 地址

在谈论账本交易的时候,地址账号是同一个意思。

actor: 参与者

参与者是参与者模式 (Actor Model) 中的原语。它是一个封装了状态的进程,通过顺序接收异步消息,并与其他并发运行的参与者进行通信。参与者模式与 IC 的关联之处在于 IC 中的容器遵循参与者模式进行并发与异步计算。

API canister call: 容器调用接口

定义在 IC 接口规范中的 API,用来和 IC 上的容器进行交互。

B

balance: 余额

余额账号中的存款总额减去取款总额。某些情况中,必要时可以说一个不在账本中的账号余额为零。

账本帐号的余额以 ICP 计价,以八位小数表示。一个账号的最小余额是0.00000001或10^-8 ICP。这个数量有时被称为一个e8

batch: 批次

批次是一个消息的集合,其顺序通过共识达成。

beneficiary: 账号持有者

账号持有者是拥有账号余额的主体。账号持有者不能被变更。一个账号持有者有可能被允许对账号进行交易操作(见账号受托者)。

blockchain: 区块链

区块链是一列通过加密技术链接在一起不断扩展的,经过共识协议确认的的很多区块的集合。在 IC 上,每个子网都是一条区块链,这些区块链通过链钥密码学进行交互。

boundary node: 边界节点

所有对 IC 的访问都会经过某一个边界节点。这些节点遍布全球,它们会将传入的对容器的接口调用路由到正确的子网和节点副本,并提供 service worker 以及将 HTTP 请求转换为 API 调用 (icx-proxy)。

burning transaction: 销毁交易

销毁交易是“销毁” ICP 的过程,以此一定数量的 ICP 会被销毁。它的主要用途是购买 cycles,当一定数量的 ICP 被销毁的同时会产生对应数量的 cycles,这里会使用当前 ICP 和 SDR 的汇率,一个 SDR 对应兑换1T(10E12)的 cycles。销毁交易表现为从来源账号到 ICP 供应帐号的一笔交易。

C

Candid

Candid 是为 IC 专门制作的接口定义语言,为应用程序接口提供一种公共语言,使得由不同编程语言所编写的服务之间的通信更加容易。

canister: 容器

容器是一种集合了代码和状态的智能合约。一个容器可以作为智能合约来部署在 IC 上以供互联网访问。

canister account: 容器账号

容器账号是一个由容器所有的账本账号(即:账户受托者是个容器)。一个非容器账号是账本账号,它的账户受托人是非容器主体

canister identifier: 容器 ID

容器 ID 是一个全局的唯一标识符,用于标识一个容器、与之交互。

canister signature: 容器签名

容器签名使用一种基于可认证变量的签名方案。它的公钥包括一个容器ID加上一段助记词(每个容器可以拥有多个公钥)。签名是一种证书,以证明容器把签署过的消息放在其状态树里的某一个具体的位置。详情见 IC 接口规范

canister state: 容器状态

容器状态指的是在某一个特定时间点一个容器里包含的所有状态。一个容器的状态分为用户状态和系统状态。用户状态是一个 WebAssembly 的模块副本。系统状态指的是IC代表容器维持的辅助状态,譬如这个容器的算力分配、cycles 的余额、输入和输出的队列、以及其他的元数据。一个容器跟自己的系统状态的交互方式要么是隐含的,譬如消耗 cycles 的时候,要么是通过系统 API 来完成,譬如发送消息的时候。

catch-up package (CUP): 同步包

同步包 (CUP) 是一个数据包,它包含启动一个子网副本所需的一切数据。

certified query: 可认证查询

可认证查询是其响应经过认证的查询调用。

certified variable: 可认证变量

在处理更新调用(或容器间调用)时,容器存储在其子网的规范状态中的数据片段被称为可认证变量。因此在处理查询调用时,容器能向用户返回证书以证实它确实提交了该值。

chain key: 链钥

链钥密码学由一组加密协议组成,这些协议共同编排了构成IC的节点。链钥密码学最显著的创新是 IC 只有一个公钥。这是一个巨大的优势,因为它允许任何设备(包括智能手表和手机)验证来自 IC 的产物真实性。

consensus: 共识

在分布式计算中,共识是一种容错机制。通过该机制,多个节点可以就某个值或状态达成一致。

共识是节点副本软件的核心组件。共识层从点对点产物池中选择消息,然后从其他子网的跨网络数据流中拉取消息并组织成一个批次,并传递给消息路由层。

controller: 控制者

容器的控制者是对容器具有管理权限的个人、组织或其他容器。 控制者通过主体来标识。容器的控制者可以升级该容器的 WebAssembly 代码或删除该容器。

cycle

在 IC 上,cycle是以处理、内存、存储和网络带宽的形式消耗的资源的计量单位。每个容器都有一个 cycles 帐户,根据容器消耗的资源进行收费。 ICP 可以转换为 cycles 并转账到容器中。 也可以将cycles附加到容器间的消息上,在容器之间进行 cycles 转账。

ICP 始终以 SDR 来衡量的当前 ICP 的价格,基于此将 ICP 转换为 cycles。其中一万亿个 cycles 对应一个 SDR。

D

dapp: 去中心化应用

去中心化应用是一个运行在 IC 上的容器

data center: 数据中心

数据中心是托管节点的物理站点,这些节点对 IC 作出贡献。在 IC 上数据中心通过唯一标识符来标记,它包括了节点部署所需的硬件和软件基础设施。

direct integration (BTC-ICP Direct Integration)

IC 提供了与 BTC 网络的直接集成,这使得在 IC 上的容器可以直接通过 BTC 网络的交易来接收、持有和发送BTC。容器可以像BTC网络上持有BTC的用户一样。所有这些都是基于以下条件实现的:

  1. IC 是在协议层与BTC集成;
  2. 通过基于门限ECDSA的链钥签名新协议,容器能够安全地持有(和使用)ECDSA 密钥。

IC 是首批实现了与其他区块链的直接集成的区块链网络之一,并为此构建了极具创新的技术基础。

dissolve delay: 溶解延迟

溶解延迟神经元在溶解之前必须花费的时间。

dissolved state: 溶解完成状态

溶解完成状态是一种神经元状态,其特征在于溶解延迟为零。(通常说处于此状态的神经元没有溶解延迟。)在这种状态下,一个神经元可以被发放,之后它的质押金会转移到别处,其相应的神经元账号会关闭。 已溶解的神经元的年龄被认定为零。

dissolving state: 溶解进行状态

溶解进行状态是紧随其所有者发出“开始溶解”命令后的神经元状态,并一直持续到发出“停止溶解”命令、或直到溶解延迟计时结束。溶解神经元的年龄被认定为零。

E

execution environment: 执行环境

执行环境节点副本软件的核心层之一。

F

fiduciary: 账号受托者

账号受托者是被允许在账户上进行交易的主体;因此可以将其理解为帐户的所有者,但需要注意的是,它可能不是帐户的受益者神经元账户就是一个受益者和受托者不一致的突出范例(受托者是治理容器,而受益者是神经元持有者)。账本账户的受托者不会随时间而改变。

对于与 IC 账本交互的 DeFi 应用(容器),受托者和受益者的区别也很重要:在这种情况下,受托者是 DeFi 容器,而受益者是使用 DeFi 容器服务的个人或组织。

G

governance canister: 治理容器

治理容器是实现了 NNS 治理系统的系统容器,即存储和管理神经元提案、并实现了 NNS 投票环境等。

H

HTTP gateway protocol: HTTP网关协议

HTTP 网关协议允许容器处理传统的 HTTP 请求。HTTP 网关协议存在多个实现(例如,service workericx-proxy),可以在 IC 接口规范中找到它的定义。

HTTPS outcalls

在IC上,容器可以通过 HTTPs outcalls 访问指定的 URL,以直接获取链下数据、或与链下系统(如 Web 2.0 服务或企业 IT 基础设施)进行交互。调用的结果会经过共识处理和协商,从而防止不确定性。HTTPs outcalls 避免了对可信任的预言机和桥的需求。

I

ICP

ICP 是 IC 的实用令牌。通过将 ICP 锁定在神经元中,互联网社区可以参与 IC 区块链网络的治理。ICP 还可以转换为 cycles,用来维持容器运转。

ICP supply account: ICP供应账号

ICP 供应账号是一个准虚构的、余额永远为零的账本账号,它在 ICP 的铸造销毁操作中扮演着核心角色。

icx-proxy

icx-proxy 是一个实现 HTTP 网关协议的命令行工具,用来与 IC 的节点副本通信。

identity: 身份

身份是一个字节字符串,用于标识与 IC 交互的实体(例如主体)。对于用户而言,身份是用户的 DER 编码公钥的 SHA-224 哈希值。

Internet Identity: 互联网身份

互联网身份是一个运行在 IC 上的匿名区块链身份验证系统。

induction pool: 导入池

子网区块链的导入池是驻留在子网上的所有容器的所有输入队列的集合。

ingress message: 入口消息

入口消息是最终用户发送给在子网区块链上运行的容器的消息。该消息由最终用户身份对应的密钥签名,并发送到参与子网的副本

ingress message history: 入口消息历史

入口消息历史记录了节点副本处理的每条入口消息的当前状态,并跟踪消息是否成功包含在导入池中、以及已执行消息的响应。

input queue: 输入队列

容器输入队列包含绑定到该容器的所有消息,参见导入池。当容器被调度执行时,将执行其输入队列中的消息。

inter-canister message: 容器间消息

与用户发起的入口消息不同,容器间消息是指从一个容器发送到另一个容器的消息

Internet Computer (IC): 互联网计算机

互联网计算机 (IC) 是一个去中心化的区块链,通过独立的节点供应商在区域分布的数据中心运行节点来为部署在区块链上的容器(智能合约)提供可扩展的计算能力。

L

ledger canister: 账本容器

账本容器是一个系统容器,其主要作用是存储帐户及其对应的交易

M

message: 消息

消息是用户或者一个容器发送到另一个容器的数据。

message routing: 消息路由

消息路由层从共识层接收消息批次并将其引入导入池中,然后消息路由会调度一组容器去执行其输入队列中的消息。

当消息被执行后,消息路由层会从输出队列中获取执行轮次中产生的消息,并将这些消息放入输出流中、以供其他子网上的容器使用。

minting transaction: 铸造交易

铸造交易是“铸造” ICP 的过程,从而产生一定数量的 ICP。铸造 ICP 是为了奖励神经元投票,也用来奖励那些通过运行节点为 IC 提供计算能力的节点供应商。铸造交易表现为从 ICP 供应账户到目标账户的交易。

Motoko

Motoko 是一种编程语言,旨在直接支持 IC 的编程模型,从而更容易的、更高效的利用 IC 的一些独有功能(包括智能合约的参与者模型和 WebAssembly 的编译)构建应用程序。

N

non-dissolving state: 非溶解状态

不处于已溶解溶解中神经元被称为非溶解状态(或“老化”状态)。因此非溶解的神经元会累积“年龄”,但需要注意的是,任何时候开始溶解都会将这个年龄降低到零。 非溶解神经元的溶解延迟参数不能为零,因为这样的神经元必须已经溶解。

network nervous system (NNS): 网络神经系统

网络神经系统 (NNS) 是一组系统容器(又名“NNS 容器”)的集合,这些系统容器组装成一个治理系统、并控制着 IC 各个方面。

neuron: 神经元

神经元是一种 IC 实体,可以对 IC 平台治理发起提案或对提案进行投票

为了提供负责任的治理所需的稳定性,神经元需要存储("质押")一定量的 ICP 才能发起提案或对提案进行投票。这会将 ICP 锁定一段时间,然后开始溶解。神经元中质押的 ICP 存储在神经元帐号中。神经元持有者有权就治理问题发起提案或投票,并根据质押的 ICP 数量和溶解期的长度来按比例获得投票奖励。

neuron account: 神经元账号

神经元帐号是一个容器帐号,其受益人神经元(或神经元的所有者)。治理容器是所有神经元账号的受托人

neuron age: 神经元年龄

神经元年龄是一个神经元参数,大致表示自其创建以来或自其最后一次进入非溶解状态以来所经过的时间。神经元年龄的计算需要考虑该神经元是否已花费时间溶解正在溶解,两者都会重置此参数。

node: 节点

节点是一个物理或虚拟的网络端点,它托管了参与 IC 所需的所有硬件、节点副本软件和配置。

node operator: 节点操作员

节点操作员是一种非容器主体,有权将节点添加到 IC、或者从 IC 删除。

节点供应商拥有硬件安全模块(HSM),并通过NNS注册HSM。(HSM 的注册过程本质上是从存储在 HSM 上的密钥派生出 IC 主体 ID,并通过 NNS 将该 ID 持久化。)然后节点供应商将已注册的 HSMs 移交给法人,后者因此获得了物理上操作节点的权限(也就是安装节点副本)。与“常规”主体(一个主体ID仅对应一个人)相反,HSMs 可以例行更换人员,因此许多人可以在不同时间充当某个节点操作员主体。

node provider: 节点供应商

节点供应商是一种非容器主体,接收来自因节点参与 IC 而获得的奖励。通常节点供应商是节点的所有者,也可能参与节点操作相关的任务。节点供应商可以从分布在多个数据中心的多个节点获得奖励。

O

output queue: 输出队列

每个容器都有一个消息输出队列,包含了绑定到其他容器的消息。

P

peer-to-peer (P2P): 点对点

在常见应用中,点对点(P2P)计算或网络是一种分布式应用程序架构,它将工作负载分区到网络中的同等特权计算机节点上,以便参与者可以贡献资源(如处理能力、磁盘存储或网络带宽)来处理应用程序工作负载。

点对点层收集并传播来自用户和其他节点的消息和产物。

子网节点形成一个专用的点对点广播网络,以促进产物(例如入口消息、控制消息及其签名份额)的广播是安全的、并在一定时间内最终交付。IC 的共识层就是建立在此功能之上。

principal: 主体

主体是可以通过 IC 进行身份验证的实体。这与维基百科定义的主体一词的含义相同。主体使用特定的身份与 IC 交互。

proposal: 提案

提案是描述修改 IC 或其子系统的某些参数的操作声明,它具体实现为具有多种属性(例如 ID、URL、摘要等)的 IC 实体。

提案由符合条件的神经元所有者提交,供 IC 社区评估、并经过投票过程、决定其是否通过或拒绝。投票后,通过的提案会被执行。

提案有几种分类方法,其中最重要的一种是将提案按主题划分,当其被采纳后会触发某些类别的操作,例如创建子网、将节点添加到子网等。

proto-node: 原初节点

原初节点是一种包含硬件和软件组合的 IC 实体,与节点的不同之处在于它尚未在 IC 上注册。简而言之,原初节点是“等待中的节点”,因此除了节点副本软件之外,它拥有成为节点所需的一切软硬件。

Q

query: 查询

查询是一种优化方式,用于在不需要保留状态更改的情况下对容器执行操作。查询是同步的,可以被发送到任何托管容器的节点。查询不需要共识来验证结果。

R

replica: 节点副本

节点副本节点参与子网所需的协议组件的集合。

registry: 注册表

IC 注册表管理在 NNS 上维护的系统元数据,该数据由所有子网区块链访问。

S

service worker

Service worker 实现了 HTTP 网关协议,可以将浏览器资产请求转换为对容器的接口调用,并验证资产认证。

smart contract: 智能合约

智能合约是一种有状态的计算机程序,目的是根据合同或协议条款自动执行、控制或记录相关事件和行为。智能合约以容器(绑定了数据和代码)的形式部署在 IC 上。

一个容器可以有一个或多个控制者,控制者可以修改容器的代码、从而修改智能合约的条款。对于具有不可变代码的容器智能合约,其控制者列表必须为空。

state change: 状态改变

状态改变是任何交易、函数调用或操作的结果,这些交易、函数调用或操作会更改存储在容器中的信息。例如一个函数进行更新调用(将两个数字相加、或从列表中删除一个名称),其结果即是对容器状态的更改。

state manager: 状态管理器

状态管理器负责:

  1. 维护(多个版本的)由消息路由执行环境实现的确定性状态机操作的复制状态;
  2. 在复制状态和其规范版本之间来回转换(后者可以独立于具体实现进行理解);
  3. 获取部分规范状态的认证,这些认证允许其他利益相关者(例如其他子网和/或用户)验证某些状态确实来自有效的子网;
  4. 提供功能允许同一子网中的其他节点副本同步规范状态,以便落后的节点副本追赶上来。

subnet: 子网

子网是一组节点的集合,这些节点运行自己的共识算法实例来生成子网区块链,该子网区块链使用链钥加密与 IC 的其他子网进行交互。

system canister: 系统容器

系统容器是预安装的容器,用于执行维护 IC 所需的某些任务。

T

transaction: 交易

账户交易是将 ICP 从一个帐户转移到另一个帐户的过程,它可以分为三种类型:常规转账交易、销毁交易铸造交易

transfer transaction: 转账交易

转账交易是将 ICP 从任何账户(即除了 ICP 供应账户之外的任何账本账户)转移到另一个常规账户的过程。

U

user: 用户

用户是与 IC 交互的所有实体,包括去中心化应用的开发者、部署在 IC 上的去中心化应用的终端用户、ICP 的持有者以及神经元的持有者。

V

valid set rule: 有效集合规则

有效集合规则是确定导入池有效的规则。入口消息容器间消息必须通过某些检查,以确保在将它们加入到导入池前遵守有效集合规则。

voting: 投票

投票是选择通过和实施提案的过程。投票的直接参与者是神经元,他们可以提交提案、或对提案进行投票。投票过程是一项相当复杂的工作,涉及神经元资格、投票权重、神经元追随链等各个方面。投票在设计时考虑了安全性和可靠性,并正在不断改进以防止投票权重集中在少数神经元拥有者的手中。

W

WebAssembly

WebAssembly(缩写为 Wasm )是一种基于堆栈的虚拟机的二进制指令格式。

有问题么?

欢迎大家随时向我们提出任何技术问题。我们会尽力尽快回应

  1. 上网比较方便的,在 ICP China 的 Twitter Community,用中文发帖提问

  2. 有经验的开发者在 DFINITY 基金会运营的开发者论坛上用英文提问

    info

    https://forum.dfinity.org/ ,可以 cue 我们:BenPaulVincentHerbert

  3. 深度 ICP 用户可以在 OpenChat 上的 IC123.xyz Community 里的频道 ic123.xyz 工作组 里提问题

    欢迎您申请 DFINITY 基金会的 Developer Grant 项目,加入互联网计算机的大家庭!