Internet Computerネットワークを制御するNetwork Nervous System (NNS)の解説と技術的概要
Internet Computer は、世界初の完全適応型ブロックチェーンです。Internet Computer ネットワークと、ネットワークをホストする特別なノード マシンは、Network Nervous System (NNS) の完全な制御下で実行されます。
NNS は、完全にオープンな分散型トークン化ガバナンスシステムです。世界中の誰もが NNS に提案を提出でき、採用された場合は即座に実行され、完全に自動化され、ネットワークはリアルタイムで適応および進化します。
NNS は、ノード マシンをアップグレードしてプロトコルを更新したり、セキュリティ修正を適用したり、経済パラメータを調整したり、ネットワーク容量を増やすための新しいサブネット ブロックチェーンを形成したりするなどのタスクをいつでも実行できます。
これは、インターネット コンピュータのプロトコル内で実行され、ネットワークの操作を中断したり、セキュリティを破壊したりすることなく、これらの変更を行うことができます。
Network Nervous System は、ユーザーが ICPガバナンス トークンをステークして投票ニューロンを作成できるようにすることで機能します。誰もがニューロンを作成できます。私たちは、ジェネシス後に何万ものニューロンが作成されると予想しています。
これらのニューロンは、アルゴリズムを介して共同体の意志を発揮します。ニューロンは、引き出しの通知が必要な普通預金口座のようなものであり、通知期間の長さは「溶解遅延」として知られる構成です。ニューロンの投票力、および投票報酬に対するそれらの相対的な要求は、ステークされた ICP の量、設定されたディゾルブ遅延の長さ、およびそれらの「経過時間」に比例します。ニューロンは、液体民主主義の形式で他のニューロンをフォローすることにより、手動または自動で投票させることができます。
ニューロン所有者は暗号経済ゲームに参加し、提案を採用または拒否するか、インターネットの価値を最も高める可能性が最も高いものに応じて、望ましい方法で自動的に投票するようにニューロン フォローを構成するインセンティブを与えられます。長期にわたるコンピュータ ネットワーク。
分散型インフラストラクチャが、リーダーや取締役会を持つ商業組織によって運営されている独自の集中型インフラストラクチャと競合する目的で自己主導するのは、これが史上初めてのことです。
インターネット入門 パソコンのネットワーク神経系アプリ&ウォレット
NNS アプリケーションを使用すると、インターネット コンピューターのガバナンスに関与し、計算サイクルを作成し、送受信することができます。
概要
NNS の目的は、インターネットコンピュータ ネットワークをオープンで分散型で安全な方法で管理できるようにすることです。ネットワークのすべての側面を完全に制御します。たとえば、ネットワークをホストするノード マシンで使用されるプロトコルとソフトウェアをアップグレードできます。
新しいサブネットブロックチェーンを作成してネットワーク容量を増やすことができます。サブネットを分割して負荷を分割できます。コンピューティング キャパシティに対してユーザーが支払う必要のある金額を制御する経済的パラメーターを構成できます。
また、極端な状況では、ネットワークを保護するために悪意のあるキャニスター ソフトウェアをフリーズする可能性があります。などなど。NNSは、提案を受け入れ、ネットワーク参加者が作成した「ニューロン」による投票活動に基づいて、それらを採用するか拒否するかを決定することによって機能します。
ニューロンは、参加者が新しい提案を提出するためにも使用されます。提出後、提案は採択または却下されます。これは、ニューロンの全体がどのように投票するかに応じて、ほぼ即時に、またはいくらか遅れて行われます。各プロポーザルは、特定の「プロポーザル タイプ」のインスタンスであり、含まれる情報が決定されます。
提案のタイプごとに、NNS は対応するシステム関数を維持します。このシステム関数は、そのタイプの提案が採用されるたびに呼び出されます。提案が NNS によって採用されると、提案のコンテンツから情報を引き出してパラメータを入力することにより、対応するシステム関数を呼び出します。プロポーザルの各タイプは、「#NodeAdmin」や「#NetworkEconomics」などの特定の「プロポーザルトピック」に属し、処理方法の詳細を決定します。
NNS は、ニューロンがどのように票を発するかを見て、提案を採用するか拒否するかを決定します。NNS 内の台帳でホストされている Internet Computer のネイティブ ユーティリティ トークン (ICP) の残高をロックすることにより、誰でもニューロンを作成できます。ユーザーがニューロンを作成する場合、ICP のロックされたバランスは、ニューロンをディスバース (「破棄」) することによってのみロックを解除できます。
提案に投票すると報酬が得られるため、ユーザーはニューロンを作成するインセンティブを得ます。報酬は、NNS によって作成された新しく作成された ICP の形式を取ります。ニューロンに支払われる ICP 報酬の量は、ロックされたバランスのサイズ、残りの最小ロックアップ期間 (「ディゾルブ遅延」)、ニューロンの「年齢」、参加した可能性のある投票の割合などの要因から導き出されます。支払われる全体的な報酬には上限があり、有権者間で分配する必要があるため、すべてのニューロンにわたる投票活動の合計。
どの時点でも、各ニューロンには現在設定されている「ディゾルブ遅延」があります。これにより、「ディゾルブモード」にした場合にディゾルブにかかる時間が決まります。ニューロンが中に置かれていたら、それがゼロに達するまで、その所有者は、最終的な実行することができ、そこで「モードを溶解、」その溶解遅延は、むしろキッチンタイマーのように、時間の経過とともに低下支出をICP のバランスを解除するア クション。
ディゾルブの遅延により、ニューロンの所有者は、将来の日付でロックされた ICP バランスの価値を最大化することを視野に入れて投票するという経済的なインセンティブが生まれます。ICPは、ネットワークの長期的な成功の代用であり、短期的な変動性はありません。これは、ネットワークの最善の利益のために投票するための経済的インセンティブを作成します。ニューロンの所有者は、最大 8 年の遅延まで、より高いディゾルブ遅延を自由に構成できますが、自然な時間の経過以外ではディゾルブ遅延を減らすことはできません。
NNS は、解散の遅延が大きいほど、より高い投票報酬を支払い、ユーザーが非常に長期的なビジョンに従って投票するための経済的インセンティブが作成されるゲームに参加するように促します。
Neuronの所有者は、NNS に提出されたすべての提案に手動で直接投票するのが難しいと感じるかもしれません。第一に、大量の提案が NNS に提出される可能性があり、それはしばしば厄介な時期に行われ、所有者が対応できないか、各提案を評価するのに必要な時間がない可能性があります。第二に、ニューロンの所有者は、提案自体を評価するために必要な専門知識を欠いている可能性があります。
NNS は、これらの課題に対処するために、流動的な民主主義の形式を使用しています。どの提案トピックについても、ニューロンは、ニューロンのグループの投票に従って自動的に投票するように構成でき、フォロワーの過半数が採用に投票するたびに提案を採用するために投票し、過半数による採用が不可能になったときにはいつでも拒否するように投票します。キャッチオール フォロー ルールを定義して、フォロー ルールが定義されていないトピックを含む提案にニューロンが自動的に投票するようにすることもできます。
報酬を得るために、ICP の供給全体の大部分がロックされることが予想されます。これにより、攻撃者が大きな影響力を得るために十分に大きな株を取得することは困難であり、法外な費用がかかるため、インターネット コンピュータのネットワーク ガバナンスが保護されます。ニューロンの所有者は、すべての提案に投票することで報酬を最大化したい場合があるため、ほとんどのニューロンはアクティブに管理されるか、他のニューロンに従うように構成され、自動的に投票できるようになります。
実際には、信頼できるニューロンが提案に投票すると、他のニューロンの大部分もカスケードフォロー関係の結果として投票します。これは、NNS が通常、すべてのニューロンによって表される全体的な投票力の過半数が提案の採用または拒否を望んでいるかどうかを迅速に判断できることを意味します。それに応じて提案を決定します。ただし、原則として、ニューロンの所有者は従う規則を定義しないか、投票しないことを選択する可能性があるため、NNS はそのような過半数を獲得することに依存することはできません。
提案
フォーマット
NNS に提出された各提案には、次のフィールドがあります。
* ID:プロポーザルのID。NNS は、受け取った各提案に一意の ID を割り当てます。
* 概要:提案の短い説明を提供するテキスト。最大 280 バイトを使用して構成されます。
* URL: HTTPS を使用して指定された、提案の評価に必要な追加コンテンツの Web アドレス。たとえば、アドレスには、新しいデータ センターへの DCID (データ センター ID) の割り当てをサポートするコンテンツが記述されている場合があります。
* プロポーザ:プロポーザルを送信したニューロンの ID。プロポーザルが提出されると、却下された場合に備えて残高に「料金」が課されます。したがって、残高は、(すべての) 拒否に対する料金を支払うのに十分な大きさである必要があります。ニューロンには投票までに 6 か月以上のディゾルブ遅延が必要であり、これは提案の提出にも当てはまります。
* プロポーザルタイプ: プロポーザルのタイプ。これは、それが属するトピック (例: #NodeAdmin )、プロポーザルが採用された場合にプロポーザルを処理するシステム関数、およびその関数に渡されるパラメータのタイプと構造を推測します。
* パラメーター:提案が採用された場合に呼び出されるシステム関数に渡されるパラメーターは、そのタイプによって決定されます。提案が提出されると、NNS はパラメータをチェックします。
トピック
プロポーザルのトピックは、そのタイプから推測され、プロポーザルの処理方法を決定します。たとえば、NNS は、一部のトピックについて、有権者に対して、より大きな同意を得ること、または提案をより迅速に処理することを要求する場合があります。また、ニューロンはトピックごとに他のニューロンに従います。最初のトピックは次のとおりです。
* #NeuronManagement :このトピックのフォロワーがニューロンを管理できる特別なトピック (この場合、デフォルトへのフォールバックはありません)。このトピックに関する投票は、ニューロンの投票履歴には含まれません。このトピックに関する提案については、提案が関係するニューロンのうち、このトピックに関するフォロワーのみが投票できます。このトピックに関する提案の有権者のセットが制限されているため、このトピックに関する提案の投票期間は通常よりも短くなります。
* #ExchangeRate :すべての提案は、国際通貨基金 (IMF) 特別引出権 (SDR) によって測定された ICP の市場価値に関する情報を「リアルタイム」で提供します。これにより、NNS は ICP をサイクル (計算に使用する) に変換できます。現実世界のコストを一定に保つレートで。このトピックに関する提案は非常に頻繁に行われるため、投票期間が短くなり、このトピックに関する投票はニューロンの投票履歴に含まれません。
* #NetworkEconomics :ネットワーク経済を管理する提案 — たとえば、ノード オペレーターに支払われるべき報酬を決定します。
* #Governance :ガバナンスを管理するすべての提案 — たとえば、モーションや特定のパラメーターの構成。
* #NodeAdmin : OS のアップグレードまたは構成、仮想マシン フレームワークのアップグレードまたは構成、ノード レプリカ ソフトウェアのアップグレードまたは構成を含むがこれらに限定されない、何らかの方法でノード マシンを管理するすべての提案。
* #ParticipantManagement :ネットワーク参加者を管理するすべての提案 — たとえば、DCID (データ センター ID) または NOID (ノード オペレータ ID) の付与と取り消し。
* #SubnetManagement :ネットワーク サブネットを管理するすべての提案 — たとえば、新しいサブネットの作成、サブネット ノードの追加と削除、サブネットの分割など。
* #NetworkCanisterManagement :ネットワークに属する「システム」キャニスターのインストールとアップグレード — たとえば、NNS のアップグレード。
* #KYC :規制目的で KYC 情報を更新する提案 — たとえば、ニューロンの形での ICP の最初のジェネシス配布中。
* #NodeProviderRewards :ノード プロバイダーに報酬を与える提案のトピック。
タイプ
最初の提案タイプは次のとおりです。
* ManageNeuron (#NeuronManagement, 制限付き投票)
このタイプの提案は、指定されたターゲット ニューロンの主要な機能を呼び出します。ターゲット ニューロンのフォロワーだけがこれらの提案に投票できます。これにより、フォロワーはターゲット ニューロンを効果的に制御できます。これは、個人のチームが重要なニューロンを管理するための便利で安全性の高い手段を提供できます。
たとえば、あるニューロンは大きなバランスを保っているか、評判の高い組織に属しており、他の多くのニューロンがその投票に従うことができるように公表されている可能性があります。どちらの場合も、プリンシパルの秘密鍵を安全に管理することは問題になる可能性があります。(単一のコピーが保持されますが、これは非常に安全ではなく、単一の当事者が管理を行うことを提供します。または、個人のグループが責任を分担する必要があります。たとえば、複雑で時間がかかるしきい値暗号化を使用します)。
この提案タイプを使用してこれに対処するために、重要なニューロンは、チームの個々のメンバーによって制御されるニューロンに従うように構成できます。これで、重要なニューロンにアクションを実行させるための提案を提出できます。これは、過半数が採用に投票した場合にのみ採用されます。(サービス拒否攻撃を防ぐために、このような提案を送信するには少額の費用がかかります。) ターゲット ニューロンのほぼすべてのコマンドを実行できます。
これには、フォロールールを変更するコマンドが含まれ、チーム メンバーのセットを動的にすることができます。ディゾルブ遅延がゼロに達した後、ニューロンをディゾルブする最終ステップのみ、このタイプの提案を使用して実行することはできません。これにより、ロックされたバランスの制御/「所有権」が転送されるためです。(このルールの唯一の例外は、非営利団体に適用されます。
* ManageNetworkEconomics(#NetworkEconomics)
:これは、1つのまたは複数の経済的なパラメータを更新することができ、単一の提案型である--rejectコスト: -軽薄な提案のスパムを防ぐために拒否された提案の提案者が課金されますICPの量が。
——最小ニューロン ステーク:ニューロンの作成に必要な ICP の最小数を設定します。溶解遅延を増やす場合、またはニューロンの状態を溶解から老化に変更する場合も、同じ制限を尊重する必要があります。
——Neuron Management Fee : ニューロン管理提案ごとの ICP の費用。ここでは、NNS が特定のニューロンに代わって作業を行っており、この機能 (つまりスパム) の過剰使用を防ぐために少額の料金が適用されます。
——最小 ICP/SDR レート: 間違いを防ぐために、ICP/SDR レートには下限があり、ネットワークの経済的提案によって管理されます。
——生成ニューロンのディゾルブ遅延 : 既存のニューロンの成熟によって生成されたニューロンのディゾルブ遅延。 ——ノードプロバイダーの最大報酬: 1回の配信イベント(プロポーザル)でノードプロバイダーに配信される最大報酬。
——取引手数料: 元帳取引ごとに支払わなければならない取引手数料。
——トピックごとに保持する提案の最大数 :トピックごとに保持する提案の最大数。特定のトピックの提案の合計数がこの数を超える場合、「最終」状態に達した最も古い提案が削除され、スペースを節約できます。
* モーション (#Governance)
モーションは、採用または拒否できるテキストです。モーションが採用された場合、コードは実行されません。採択された動きは、インターネット コンピューター エコシステムの将来の戦略を導くべきです。
* ApproveGenesisKYC (#KYC)
Genesis で新しいニューロンが作成されると、GenesisKYC=false になります。これにより、実行できるアクションが制限されます。具体的には、彼らは新しいニューロンを生み出すことができず、ディゾルブの遅延がゼロになると、支払いを行うことはできず、残高は新しいアカウントにロックされます。この提案は、プリンシパルのバッチに対して GenesisKYC=true を設定します。
(特別な注意:ジェネシス イベントは、すべての ICP をニューロンの形で分配します。そのプリンシパルは KYC されなければなりません。したがって、ジェネシスの後に作成されたすべてのニューロンは、すでに KYC されたバランスから派生している必要があるため、GenesisKYC=true が自動的に設定されます。)
* AddOrRemoveNodeProvider (#Participant Management)
ID をノード プロバイダーに割り当て (または取り消し)、関連付けられた法人に関するキー情報を関連付けて、一意に識別する方法を提供する必要があります。
* RewardNodeProvider (#NodeProviderRewards)
Gen-1 ノード プロバイダーに、Gen-1 ノードを IC に提供することに対する報酬として、ICP の量に報酬を与えることを提案します。
* SetDefaultFollowees (#Governance)
新しく作成されたニューロンが持つべきフォロワーのリストを指定します。
以下は、他の NNS キャニスターを呼び出す提案タイプのリストです。
* CreateSubnet (#SubnetManagement)
指定されたノードのセット (通常は独立性を保証する方法でデータ センターとオペレーターから引き出される) を新しい分散型サブネットに結合します。この外部更新を実行すると、最初に分散鍵生成プロトコルの新しいインスタンスが開始されます。そのプロトコルのトランスクリプトは、サブネットの初期構成情報とともに、レジストリ内の新しいサブネット レコードに書き込まれ、サブネットを構成するノードがそこから取得します。
* AddNodeToSubnet (#SubnetManagement)
サブネットに新しいノードを追加します。現在、ノードをサブネットに割り当てることはできません。この提案を実行すると、既存のサブネット レコードが変更されてノードが追加されます。NNS の観点からは、この更新はレジストリ内のサブネット レコードの単純な更新です。
* InstallNetworkCanister (#NetworkCanisterManagement)
NNS サブネットワークにインストールおよび実行される新しいキャニスターを追加するための提案。それ自体を除く NNS 上のすべてのキャニスターを制御するルート キャニスターは、この提案タイプを処理します。この呼び出しでは、インストールされる Wasm モジュールも必要です。
* UpgradeNetworkCanister (#NetworkCanisterManagement)
NNS サブネットワーク内の既存のキャニスターをアップグレードするための提案。この提案タイプはルートキャニスターによって実行されます。ターゲット キャニスターの Wasm モジュールをアップグレードするだけでなく、この提案では許可情報と割り当てを設定することもできます。
* BlessReplicaVersion (#NodeAdmin)
レプリカをアップグレードできる新しいバージョンを祝福するための提案。この提案は、レプリカ バージョン (インストール イメージのハッシュによって識別される) をレジストリに登録します。この提案では、そのバージョンのレコードを作成するだけでなく、そのバージョンをサブネットにインストールできる「祝福されたバージョン」のリストに追加します。この提案自体はアップグレードには影響しません。(将来的には、レプリカ ソフトウェアの祝福されたバージョンは常に 1 つだけになります。)
* RecoverSubnet (#SubnetManagement)
サブネットの回復 CUP を更新します(停止したサブネットを回復するために使用されます)。サブネットの回復 CUP を見つけたノードは、レジストリからその CUP をロードし、その CUP からレプリカを再起動します。
* UpdateSubnetConfig (#SubnetManagement)
サブネットの構成を更新します。このプロポーザルは、レジストリ内のサブネット レコードを更新し、サブネット上のノードがそれぞれのレジストリ バージョンを参照するときに変更を取得します。サブネット構成は、サブネット全体で一貫している必要のあるプロトコル パラメータ (メッセージ サイズなど) で構成されます。
* AssignNOID (#ParticipantManagement)
ノード オペレータに ID を割り当て、その所有権、ノードが位置する管轄、およびその他の情報に関するキー情報を関連付けます。ノード オペレータは、レジストリにレコードとして保存されます。これには、そのノード オペレーターの残りのノード許容量、つまりノード オペレーターが IC にまだ追加できるノードの数が含まれています。ノード運用者によりノードが追加されると、残りの許容値が減少します。
* RootUpgrade (#NetworkCanisterManagement)
NNS サブネットワークのルート キャニスターをアップグレードするための提案。プロポーザルは、ルート キャニスターを制御する Lifeline キャニスターによって処理されます。この提案は、Wasm モジュールと認証設定を更新します。
* SetICPSDR (#ExchangeRate)
IMF SDR によって測定された 1 ICP の市場価値について NNS に指示します。この設定は、サイクルの価格に影響します (サイクルの値は IMF SDR に関して一定である必要があるため)。
* UpgradeSubnetToReplicaVersion (#SubnetManagement)
指定されたサブネットで実行されているレプリカ バージョンを更新します。この提案は、指定されたサブネットで使用されるレプリカ バージョンを変更します。バージョンは、祝福されたレプリカ バージョンのリストに含まれている必要があります。アップグレードは、サブネットが次の通常の CUP を作成するときに実行されます。
* ClearProvisionalWhitelist (#NetworkEconomics)
暫定的なホワイトリストをクリアします。これにより、リストされたプリンシパルがサイクルでキャニスターを作成できるようになります。このメカニズムは、ブートストラップとテストにのみ必要であり、後で非アクティブ化する必要があります。
* RemoveNodeFromSubnet (#SubnetManagement)
サブネットからノードを削除します。その後、再割り当てが可能になります。この提案を実行すると、既存のサブネット レコードが変更され、ノードが削除されます。NNS の観点からは、この更新はレジストリ内のサブネット レコードの単純な更新です。
* SetAuthorizedSubnetworks (#Governance)
特定のプリンシパルが特定のサブネットワーク (リストから) を使用することを許可されていることを、サイクル作成キャニスターに通知します。特別な許可のないプリンシパルが使用できるサブネットワークの「デフォルト」リストを設定するためにも使用できます。
* SetFirewallConfig (#SubnetManagement)
レジストリのファイアウォール構成を変更します (サブネット ブロックチェーン レプリカが通信する境界ノードを構成します)。
* UpdateNodeOperatorConfig (#NodeAdmin)
レジストリ内のノード オペレーターの許可を変更します。
* StopOrStartNNSCanister (#NetworkCanisterManagement)
NNS キャニスターを停止または開始します。
ICPトークン
ICP は、ネットワークで 3 つの重要な役割を果たすネイティブ ユーティリティ トークンです。
* ネットワーク ガバナンスの促進
ICP トークンは、投票によってネットワーク ガバナンスに参加するニューロンを作成するようにロックでき、それによって経済的報酬を得ることができます。
* 計算のためのサイクルの生成
ICP は、「サイクル」に変換できる価値のソース ストアを提供します。サイクルは、使用時に燃焼される燃料の役割で電力計算を実行します。NNS は ICP を変動レートでサイクルに変換するため、ネットワークのユーザーが常に実質的に一定のコストで新しいサイクルを作成できるようにするために選択され、燃料の取得コストが予測可能です。
* 参加者
に報酬を与える ネットワークは、ネットワークが機能することを可能にする重要な役割を果たしている人々に報酬とインセンティブを与えるために新しいICPを作成します: a) ガバナンスに参加している人々への「投票報酬」の提供、およびb) 「ノードプロバイダー報酬」の提供ネットワークをホストしているノード マシンを操作している人に。
元帳
ICP 台帳は NNS 内でホストされ、スプレッドシートの方法で ICP のすべての残高を記録します。各行は「アカウント」と呼ばれ、2 つのフィールドがあります (つまり、2 つの「列」があります)。
* アカウント識別子 (バイト) アカウント
を「管理」する「プリンシパル」の ID から導出される一意の値。現在、プリンシパルは、(i) 公開鍵ペアの所有者、または (ii) NNS の一部であるスマート コントラクト (キャニスター) のいずれかである必要があります。アカウント ID は、ドメイン セパレーター、プリンシパル ID、およびサブアカウント (サブアカウントが指定されていない場合はゼロ) の連結をハッシュすることによって取得されます。
* 残高 (正の整数、ICP の 100 万分の 1 を表す)
アカウントの元本に割り当てられた ICP の量。
プリンシパルが公開鍵またはキャニスターである場合、次の操作をアカウントに適用できます。
* 送信
ICP 残高の一部を別のアカウントに送信します。すべての ICP が別のアカウントに送信されると、送信アカウントは存在しなくなります (つまり、元帳から削除されます)。
* 通知
送金された資金の宛先が NNS キャニスターの口座 (たとえば、ガバナンス キャニスターの口座) である場合、送信者は台帳に受信者のキャニスターに送金を通知するよう依頼できます。受信者キャニスターは、この通知に基づいて行動できます。この能力が使用される 2 つの例は、ニューロンの作成とニューロンのステークの更新です。以下に詳細を示します。
元帳とガバナンス システム (Neurons) 間の相互作用を必要とする操作:
* ニューロンを作成
プリンシパルが公開鍵の所有者である場合、彼らはバランスの一部を新しいニューロン内にロックする可能性があります。技術的には、ニューロンの作成は 2 段階で行われます。最初に、杭打ちする ICP をガバナンス キャニスター (新しいニューロンに対応します - 関連付けの詳細はここでは省略します) のアカウントに転送します。次に、内部ニューロンのブックキーピングを更新する着信転送をガバナンス キャニスターに通知します。残高全体が新しいニューロン内にロックされている場合、アカウントは存在しなくなります (つまり、元帳から削除されます)。これらの ICP を別のアカウント (元のアカウントに戻すなど) に移動して、再び通常のバランスのように制御できるようにするには、関連付けられているニューロンを完全に溶解し、ディスバース (破棄) する必要があります。
* ステーク
の更新ニューロンのステークは、元帳のアドレス/アカウントに転送し、転送の入ってくることをガバナンス キャニスターに通知することで増やすことができます。ステークを更新すると、比例配分されたニューロンの成熟度と年齢が変更されます。たとえば、賭け金が2倍になると、成熟度と年齢が半分になるため、産卵は同じ量になり、年齢ボーナスは以前と同じになります(絶対値で)。
ニューロン
ニューロンは ICP のバランスをロックし、その所有者がネットワーク ガバナンスに参加できるようにします。これにより、ニューロンは報酬を獲得できます。
属性
ニューロンには次の属性があります。
* Identity (uint64)
ニューロン オブジェクトの一般的な ID。ニューロンが別のニューロンに従うように構成されている場合、これが使用される値です。これは、ニューロンの作成時に選択されたランダムな 64 ビット値です。
* アカウント (バイト、プライベート)
ロックされた ICP 残高が存在する元帳アカウント。
* Controller (プリンシパルID、プライベート)
実際にニューロンを制御するプリンシパル。プリンシパルは、対応する秘密鍵が非常に安全に保たれるように、「マスター鍵」として機能する公開鍵ペアを識別する必要があります。プリンシパルは、多くのニューロンを制御している可能性があります。
* ホット キー (プリンシパル ID のリスト、プライベート)
プリンシパルに対応する秘密キー (たとえば、WebAuthn キーなど) を公開せずに、投票などの限定された特権でアクションを実行するために使用できるキー。
* CreatedAt (タイムスタンプ)
ニューロンが作成された日時。
* AgingSince (タイムスタンプ)
このニューロンが老化を開始した時間に対応するタイムスタンプ。これは、ニューロンが溶解を停止した最後の時間または作成時間です。溶解ニューロンの年齢は常にゼロであるため、ニューロンが溶解している場合、この値は意味がありません。
* DissolveState
いつでも、WhenDissolved と DissolveDelay のいずれか 1 つしか指定されません。
——WhenDissolved (タイムスタンプ)
ディゾルブ タイマーが実行されている場合、これはタイムスタンプを Unix エポックからの秒数で保存し、その時点でニューロンがディゾルブされます。ニューロンがディゾルブしている間はいつでも、ニューロンの所有者はディゾルブを一時停止できます。その場合、DissolveDelay は、WhenDissolved からアクションが実行されたときのタイムスタンプを差し引いた値に割り当てられます。
——DissolveDelay (期間)
ディゾルブ タイマーが停止した場合、ディゾルブ タイマーが開始される時間を保存します。最長で8年になる可能性があります。この状態にある間はいつでも、ニューロンの所有者はディゾルブを (再) 開始できます。その場合、WhenDissolved は、アクションが実行されたときのタイムスタンプと DissolveDelay に割り当てられます。
* 成熟度 (正の数–パーセント)
ニューロンの成熟度。新しいニューロンを生成する能力と、生成されるニューロンの割合のこの値に等しい期待値で新しく生成された ICP の対応するロックされたバランスを決定します。新しいニューロンが作成されると、その成熟度はゼロになります。ニューロンが投票すると、時間の経過とともにNNSはそれらに報酬を与えるために成熟度を高めます。
* フォロー関係 (トピックからフォロワーのリストへのマッピング、プライベート)
トピックごとに他のニューロンをフォローすることで、ニューロンは自動的に投票するように構成できます。有効なトピックについては、フォロワーのリストを指定でき、ニューロンはそのトピックに属するタイプの提案に対するフォロワーの過半数の投票に従います。null トピックが指定されている場合、これは、ルールが指定されていない場合にニューロンがフォロワーの投票に従うことを可能にするキャッチオールとして機能します。
* 最近の投票 (公開) 最近の投票
の記録が保持されます。これは、ニューロンをフォローするかどうか、またはフォロワーの投票方法を評価したい人にガイドを提供できます。
* NotForProfit (ブール値)
このニューロンが「非営利」であり、投票によって分解できるようにするかどうか。
次の属性を計算できます。
* 年齢 (秒)
| AgingSince と現在の時間から計算
ニューロンが作成されてから、または最後に溶解が停止してから経過した時間。概念的には、ニューロンが分解し始めると、その年齢はゼロにリセットされ、分解中はゼロのままです。ディゾルブ ニューロンのディゾルブがオフになっている場合、現在の時刻は、年齢を計算するための有効なニューロンの作成日になります。
* 状態 (LOCKED または DISSOLVING または DISSOLVED) | DissolveState と現在時刻から計算されます ——LOCKED:この状態では、ニューロンは特定の DissolveDelay でロックされます。時間の経過により年齢が発生し、DissolveDelay が 6 か月以上であれば投票できます。
メソッド start_dissolving を呼び出して、ニューロンを DISSOLVING 状態に移行できます。ニューロンの状態や年齢に影響を与えずにディゾルブ遅延を増やすには、メソッドインクリメント_ディゾルブ_delayを使用できます。 ——解体: この状態では、ニューロンの有効な溶解遅延は時間の経過とともに減少します。分解中、ニューロンの年齢はゼロと見なされます。
最終的には、DISSOLVED 状態になります。メソッド stop_dissolving を呼び出してニューロンを LOCKED 状態に移行すると、ニューロンは再び老化を開始します。メソッドインクリメント_ディゾルブ_delayを使用してディゾルブ遅延を増やすことができますが、これはタイマーを停止したり、ニューロンの年齢に影響を与えたりしません。
——解散: 溶解状態では、ニューロンのステークはディスバース メソッドを使用してディスバースできます。ディゾルブ遅延はゼロと見なされるため、投票できません。この状態でインクリメント_ディゾルブ_delay メソッドが呼び出されると、ニューロンは指定されたディゾルブ遅延でロックされ、再び老化を開始します。ニューロンの保有者には、ニューロンを長期間溶解状態にしないインセンティブがあります。保有者がトークンを液体にしたい場合はニューロンのステークを支払い、投票報酬を獲得したい場合は溶解遅延を増やします。これらのインセンティブが不十分であることが判明した場合、NNS は溶解したニューロンにさらに制限を課すことを決定する可能性があります。
* ControlByProposals (ブール値)
| ニューロンが#NeuronManagementトピックにフォロイーの非空のリストを持っている場合はtrue
ManageNeuronのトピックに関するニューロン指定のフォロイー場合、それはタイプManageNeuron(#NeuronManagement)の提案によって管理することができます唯一のニューロンのによって時に投票することができます自分のフォロワー. これにより、ホット キーやプリンシパルの秘密キーなしでそれらを維持できるため、セキュリティに非常に敏感なニューロンを管理するための基盤が提供されます。ロックを解除する必要はありません)。
たとえば、DFINITY Foundation または Internet Computer Association は、希望に応じて投票を行う特別なニューロンのアドレスを公開し、他の人がニューロンを構成してフォローし、ガバナンスにおける専門知識と努力を活用できるようにします。このような慣行の問題の 1 つは、公開されたニューロンの管理に使用される秘密鍵が危険にさらされ、ハッカーが制御を奪い、多数の後続ニューロンを「だまして」、希望どおりに投票するリスクが生じることです。
コマンド
ニューロンを制御するプリンシパルは、次のアクションを実行するようにニューロンに指示する場合があります。
* ディゾルブ
の開始 ディゾルブの遅延は、一方向にしか回せないキッチン タイマーのようなものです。任意に増やすことができますが、ディゾルブ モードをオンにしてカウント ダウンすることによってのみ減らすことができます。ニューロンに「分解」を開始するよう指示することができます。ニューロンが溶解している場合、その溶解遅延は、停止するかゼロに達するまで、時間の経過とともに減少します。ディゾルブ遅延が 6 か月未満になると、ニューロンは投票できません (または投票に対する報酬を獲得できません)。ディゾルブ遅延がゼロに達すると、低下が止まり、制御プリンシパルはニューロンにディスバースするように指示できます。
* ディゾルブ
の停止 ディゾルブ中のニューロンは停止するように指示できます。これにより、ディゾルブ遅延は時間とともに低下しなくなります。
* 分配
ニューロンのディゾルブ遅延が 0 の場合、その制御主体はニューロンのステークを分配するように命令できます。ロックされた ICP 残高は指定された新しい元帳アカウントに転送され、ニューロンとそれ自体の元帳アカウントが消えます。
* ディゾルブ遅延
の増加ニューロンのディゾルブ遅延は、最大 8 年まで延長できます。
* スポーン
ニューロンの成熟度がしきい値を超えた場合、新しいニューロンをスポーンするように指示できます。これにより、元帳上の ICP の新しいバランスをロックする新しいニューロンが作成されます。新しいニューロンは、その親と同じプリンシパルによって制御され続けるか、または新しいプリンシパルに割り当てられます。ニューロンが新しいニューロンを生成すると、その成熟度はゼロになります。
* ホット キーの
追加 ニューロンの管理に使用できる新しいホット キーを追加します。これは、プリンシパルのコールド キーを使用してニューロンを管理する代わりになります。これは、特に定期的に使用する場合、面倒で安全な状態を保つのが難しい場合があります。ホット キーは、スマートフォンなどのユーザー デバイス内で保持される WebAuthn キーである場合があります。
* ホット キーの
削除 以前にニューロンに割り当てられたホット キーを削除します。
構成済みのプリンシパルまたはホット キーを使用して、次のアクションを開始できます。
* 投票
ニューロンに、指定された ID を持つ提案を採用または拒否する投票をさせます。
* フォローする ニューロンが特定のトピックに属する提案に自動的に投票できるようにするルールを追加します。これは、多数決に従うフォロワー ニューロンのグループを指定することによります。このようなフォロールールの構成は、次の目的で使用できます:
a) 複数のエンティティ間で投票権の制御を分散する
b) 所有者が新しく提出された提案を評価する時間がない場合にニューロンに自動的に投票させる
c) 独自の場合にニューロンに自動的に投票する新たに提出された提案を評価するための専門知識を欠いている
d) 他の目的のため。フォロー ルールは、フォロー対象のセットを指定します。フォロワーの過半数が、指定されたトピックに属する提案を採用または拒否することに投票すると、ニューロンは同じように投票します。
フォロワーの過半数が採用できなくなった場合 (たとえば、採用と拒否の間で 50 対 50 に分かれているため)、その後、ニューロンは拒否に投票します。プロポーザル トピックが null であるルールが指定された場合、それはキャッチオール フォロー ルールになり、特定のルールが指定されていないトピックに属するプロポーザルに自動的に投票するために使用されます。フォロワーのリストが空の場合、これにより、フォロー ルールが実質的に削除されます。
暗号経済学
概要
ニューロンは、ガバナンスに参加することで報酬を獲得する機会を提供します。報酬は、ニューロンの成熟度の増加という形で投票した人に支払われ、最終的には、新しく生成された ICP を含む新しいニューロンが生成されます。ただし、ニューロンの作成から得られる全体的な経済的結果は、ロックされた ICP の関連するバランスの値によっても変動します。これは、ニューロンの存在期間中に変動する可能性があります。
経済的成果を最大化するために、ニューロンの所有者は、第一にニューロンが常に投票することを保証する強力なインセンティブを持っています。これにより、投票に対して可能な限りの報酬を受け取り、第二に、自分のビジョンに最も一致する方法で提案に投票します。ネットワーク全体の成功を最も促進するアクションは何か。
ディゾルブ遅延
クリプトエコノミクスのニュアンスは、ニューロンの溶解遅延に関連しています。誰かが ICP のロックされた残高を販売したい場合、ロックを解除して販売できる正確な将来の時点でその価値が最大に達した場合、最も利益を得ることができます。ロッキングニューロンを考えると、その瞬間は常に未来の「溶解遅延日」であり、ニューロンが溶解している日に日に近づいています。一方、ネットワークの長期的な成功は、ニューロンの所有者が、遠い将来のネットワークの価値を最大化するという長期的な視点で投票する場合に最も役立つでしょう。
このような理由から、NNS はニューロンの所有者に、ニューロンの溶解期間をできるだけ長くするようインセンティブを与えます。ニューロンにより多くの報酬を支払うほど、溶解期間が長くなり、最大 8 年まで設定できます。
ニューロンによる投票は、所有者が長期的な視点を持っている場合に意思決定に役立つため、NNS は、ニューロンの溶解遅延が大きいほど、ニューロンからの投票にもより多くの重みを適用します。まとめて投票。もちろん、ロックされたバランスが転送された場合、このスキームはネットワークに与える利益が少なくなります.これにより、ニューロンの所有者は、ロックされていないバランスと比較して割引が必要な場合でも、いつでも「ニューロンを売却する」オプションが得られるためです。
51% ガバナンスへの攻撃
セキュリティ上の重要な懸念事項は、攻撃者が投票権の 51% を獲得するのを防ぐことです。あるいは、ネットワークの成功に悪影響を与える、賢明でない投票者に有利なようにバランスを崩すことができます。(ここでの「攻撃者」という用語は、ネットワークに危害を加えようとするアクター、偶然に影響力を弱めるアクター、および単に権力を過度に集中化する可能性のあるアクターにも等しく適用されます。) NNS 内に ICP がロックされているため、そのような株式を取得するのに法外な費用がかかります。
さらに、購入してロックされた ICP は、ネットワークが損傷を受けると劇的に価値を失うため、必要な金融投資を回収するのは困難です。たとえば、リソースがそれほど問題にならなかったとしても、攻撃者が悪意のある国家アクターだった場合 — ICP 供給全体の大部分が報酬を得るためにニューロンにロックされているため、ロック解除された ICP は金融取引所ですぐに購入できませんでした。
これにより、そのような攻撃者は、時間の経過とともにゆっくりと地位を築き上げ、大量の購入によって生じる購入圧力も価格を押し上げ、連続した購入がこれまで以上に高価になることを余儀なくされます。
これらの理由から、ロックされた ICP 残高にアクセスすることなく、議決権の 51% を蓄積することはできそうにありません。これは、ニューロンのために市場を作成できないことが重要である理由を反映しています。この場合、攻撃者は、ロックされたステークを低コストでまとめて迅速に取得できるようにするために、市場のパニックを引き起こそうとする可能性があります。
たとえば、ネットワークに対する深刻で持続的な DoS 攻撃と、ソーシャル メディアでのフェイク ニュースや否定的な意見の広範な拡散を組み合わせて、ニューロンの所有者に、ロックされた賭け金が無価値になるリスクがあることを納得させ、大規模な「投売り」を行う可能性があります。 」が発生します。
国家の関係者が実際にそのような攻撃を行う可能性は非常に低いですが、オープンネットワークとデジタル資産の政治は、大衆のマニアと市場の暴落の可能性をはるかに高くしています。そのようなイベントが投票権の再編成を促進することは、ネットワークの利益にはなりません。特に、それが結果として、資金の豊富な少数の手に突然集中化する結果となる場合はそうです。これは、ニューロンの市場が望ましくない理由をさらに反映しています。
投票報酬の計算
概要
まず、ICP の総供給量の 90% をニューロンに閉じ込めるべきであると判断することから始めます。次に、新たに発行されたICPの形で、90パーセントの参加を奨励するためにICPをロックしている人々に提供されなければならないリターンを見積もる. これにより、成功した場合に支払わなければならない報酬の総額を計算できます。次に、参加者が90%に達するまで参加者がより多くの報酬を受け取るように、現在の参加レベルに関係なく、新しく鋳造されたICPのこの量を配布することを決定し、市場が現在参加していない人々に参加するように説得できるようにします。
必要なリターンを現在の供給のパーセンテージとして推定し、ネットワークがより安定するにつれてバランスが低下するリスクを考慮して、これが時間の経過とともに低下することを許可します。供給量の 10% を (年率ベースで) 配分することから始め、8 年間で供給量の 5% を配分するまで、これを減らします。
アルゴリズム
ニューロンの成熟度は 0 から始まりますが、投票活動とともに増加します。ニューロンの成熟度が特定のしきい値を超えて成長すると、新しく生成された ICP を含む新しいニューロンが生成され、自身の成熟度がゼロにリセットされます。生成されたニューロン内の新しく生成された ICP ニューロンの量は、予想どおり、親ニューロンの成熟度によって因数分解された親ニューロン内にロックされた ICP と等しくなります。
したがって、たとえば、100 ICP を含み、10% の成熟度を持つニューロンは、10 ICP を含む新しいニューロンを予期して生成することができます。新たに生成されたニューロンのディゾルブ遅延はわずか 1 日であるため、必要に応じて内部にロックされた ICP を簡単に取得できます。もちろん、新しく生成されたニューロンの年齢はゼロ日です。
ニューロンの成熟度と、別のニューロンを生成することによってまだ取り消されていない、それが収集した投票報酬との間には、おおよその同等性があります。(「生成」操作にはある程度の不確定性があるため、成熟度は生成されたニューロン内に予想される ICP の数を決定するだけであるため、同等性は概算です。)投票に参加したすべてのニューロンの成熟度。報酬として作成および配布される可能性のある ICP の名目最大量を計算することから始めます。これは、ニューロンの成熟度の増加として反映されます。この量が分かれば、ロックされている ICP の量などを考慮して、各ニューロンが受け取るべき報酬の相対的な割合を計算できます。
現在の ICP 供給と創世記からの日数から、報酬として鋳造および配布できる ICP の名目最大量を導き出します。まず、これは ICP 供給量の 10% をその年の日数 (通常は 365、うるう年の場合は 366) で割ったものです。8 年間で、これは 5% に下がります。この間、ICPの供給は増減する可能性があるため、投票報酬は実際には半分にならないことに注意してください。
* 発生率を年率 10% にしたいと考えています。
* ジェネシス + 8 年での率を年 5% にし、その後は横ばいにしたいと考えています。
* レートを時間の二次関数にしたい
* レートがフラットになる時点で、レートが時間に対して微分可能である必要があります。
G と G + 8y の間の任意の時間 t について、ジェネシス時間を G と呼ぶと、時間 t での合計報酬 R(t) は
R(t) = 0.05 + 0.05[ (G + 8y – t) / 8y ]²
または、より一般的には、
R(t) = Rf + (R0 – Rf)[ (T – t) / (T – G)]²,
ここで、R0 は初期レート (10%)、Rf は最終レート (5%)、T はレートがフラットになる時間 (G + 8y) です。
ご了承ください:
R(G) = Rf + (R0 – Rf) [ (T – G) / (T – G) ]² = Rf + (R0 – Rf) = R0
R(T) = Rf + (R0 – Rf) [ ( T – T) / (T – G) ]² = Rf
R'(t) = 2 (R0 – Rf) (T – t) / ( T – G )²
R'(T) = 0
fnminal_voting_rewards_available(icp_supply, days_since_genesis)
{
// 8年× 365.25日は2922日
let day = min(days_since_genesis, 2922);
as_perc_of_annual = 0.05 + 0.05 [ (2922 — 日) / 2922 ]^2
icp_supply*as_perc_of_annual / 365.25 に
する
グラフィックは、現在の供給に対するその時点の年間パーセンテージとして報酬を示しています
特定の時点でのニューロンの投票力は、次のように計算されます。
Neuron_stake * ディゾルブ_delay_bonus * age_bonus
ディゾルブ遅延ボーナスは 1 から 2 までの値とディゾルブ遅延 (最大値は 8 年) の線形関数であり、経過時間ボーナスは 1 から 1.25 の間の値と年齢の線形関数です。ニューロン (上限は 4 年)。ニューロンはロック状態になると老化を開始します。したがって、ニューロンは、分解遅延を増やすことで最大 100 パーセント、老化によって最大 25 パーセント、投票力を高めることができます。
これらのボーナスは累積的であるため、100 ICP のニューロンの最大投票力は 250 です。これは、ニューロンが 8 年間の最大溶解遅延でロックされ、少なくとも 4 年間老化したままになっている場合に達成されます。
特定の報酬期間 (通常は 1 日) の投票報酬を配布するには、まずこの報酬期間に含まれる一連の提案を決定します。
これらは、(1) 投票報酬に関してまだ解決されていない提案です。 (2) もはや投票のために開かれていない (つまり、彼らの投票期間が終了した)。次に、採択または拒否に投票するニューロンによってこれらの提案に貢献した総投票力が加算されます。最後に、各ニューロンは、これらの提案に貢献した投票力に比例して報酬を受け取ります。
・参考文献
この記事が気に入ったらサポートをしてみませんか?