用語集

Actor

Actor とは、モダンプログラミング言語における特殊な種類のオブジェクトで、メッセージ(Actor 間の関数呼び出しのやり取り)を隔離されたステートとして処理し、リモートで非同期に処理することを可能にします。

Canister スマートコントラクト

Canister スマートコントラクト(あるいは、単に Canister と呼ばれることもあります)は、スマートコントラクトを拡張したものです。 Canister スマートコントラクトが画期的なのは、決定論的に並列実行できるからです。 これは、Actor モデルと決定論的メッセージパッシングによって可能になります。 Canister のスマートコントラクトは、普遍的にユニークな識別子と、特定の Dapp の境界を定義する Owner を持っています。 Canister は、プログラムのロジック、公開された関数の呼び出し方法、メッセージの型に対するインターフェース記述、および Canister によって表される Dapp のステート情報のすべてをカプセル化します。

プリンシパル

プリンシパルとは、Internet Computer ブロックチェーンによって認証可能なエンティティです。 Internet Computer ブロックチェーンとやりとりするプリンシパルは、多くの場合、ID を介して行います。 例えば、DFINITY Canister SDK を初めて使用するとき、dfx というコマンドラインツールは、PEM ファイル内の公開鍵と秘密鍵のペアを使って、デフォルトの 開発者 ID を生成します。(訳者注:default という名前のディレクトリが生成され、その中に PEM ファイルが生成されます。) この開発者 ID が、プリンシパルを決定づけます。 プリンシパルにはテキスト表現があり、これはしばしば プリンシパル ID と呼ばれます。 開発者 ID は、ICP トークンを ID に代わって Ledger に保持するためのアカウント ID (BitcoinやEthereumのアドレスに似ています)を導くためにも使用できます。

コントローラ

コントローラとは、Canister スマートコントラクトを管理する特別な権利を持つプリンシパルのことです。 たとえば、コントローラであるプリンシパルのみが、その制御下にある Canister のインストール、アップグレード、または削除を行うことができます。 コントローラは、ユーザーまたは Canister に関連付けられたプリンシパルのテキスト表現(プリンシパル ID)を用いて指定することができます。

Ledger

Internet Computer ブロックチェーンは、ICP トークンを含むすべての取引を、Ledger Canister と呼ばれる専用の管理 Canister スマートコントラクトに記録します。 Ledger Canister は、アカウント残高を管理し、アカウントと残高に影響を与える トランザクション の履歴を残すスマートコントラクトを実装しています。トランザクションは、以下の特定のイベントを追跡するために記録されます:

  • アカウントに対して ICPトークンをミント する。

  • あるアカウントから別のアカウントに ICP トークンを転送する。

  • ICP トークンをバーンして消滅させる。

Wallet

Wallet とは、Cycle を保管・管理するための専用の Dapp で、Canister スマートコントラクトとして実装されています。 Cycle は Internet Computer ブロックチェーンでの計算やリソース消費の支払いに使用されます。 Cycle は Internet Computer ブロックチェーンのネイティブユーティリティートークンである ICP から変換することで入手できます。

ノード

Internet Computer ブロックチェーンに参加するために必要なすべてのハードウェア、レプリカソフトウェア、および構成設定をホストする物理的または仮想的なマシンです。

レプリカ

Internet Computer ブロックチェーンの文脈では、レプリカとはノード上で実行されている Internet Computer プロトコルのプロセスを指します。

WebAssembly

WebAssembly (Wasm) は、低レベルのコンピュータ命令フォーマットです。 WebAssemblyは、ほとんどのモダンなコンピュータハードウェアをきれいに抽象化した、ポータブルでオープンスタンダードなバイナリフォーマットを定義しているため、インターネット上で実行するプログラムに広くサポートされています。 Motoko で書かれた Dapps は、Internet Computer ブロックチェーン上で実行するために WebAssembly コードにコンパイルされます。