コンセンサス

コンセンサスプロトコルとはブロックチェーンシステムのノードが 合意形成意志決定 をするための動的メソッドです。

Symbol では、有名な Proof-of-Stake (PoS) プロトコルの改善バージョンである Proof-of-Stake Plus (PoS+) と呼ばれる革新的なメカニズムを利用します。

基本的な PoS コンセンサスアルゴリズムでは、ブロックチェーン内の新しいブロック生成は ノード所有者の富にのみ関連する 要因の組み合わせに基づいて、確率的にノードに割り当てられます。

PoS+ プロトコルはアカウントの利害関係も考慮しますが、 参加者の活動に基づいた 報酬を与えることにより、エコシステムの健全性も促進します。

要因

アルゴリズムはアカウントの インポータンス を計算する際に、次のハーベスティングノードを選択するために最終的に使用される指標を考慮します:

  • Stake: 保有している ハーベスティングモザイク の合計量。残高が多い保有者はエコシステムの繁栄を見るインセンティブがあります。10,000 を超えるハーベスティングモザイクを保持しているアカウント (高価値アカウント) のみがハーベスティングに 適格 となります。
  • Transactions: アカウントによって支払われた 手数料 の合計。これによりアカウントはネットワークでアクティブになります。
  • Nodes: アカウントがノードによってハーベストされた手数料の 受取人 であった回数。したがってネットワークはノードを実行するアカウントにインセンティブを与えます。

すべての高価値アカウントについて、定期的にこれら 3 つの要素に基づいて インポータンススコア が計算されます。インポータンススコアはアカウントが次のブロックを ハーベスト する確率を決定します。

部分スコア

ネットワークは最初に、各インポータンス期間 (720 ブロック、約 6 時間 ネットワーク設定importanceGrouping を参照) の終わりに、すべての高価値アカウントについて、次の 部分スコア を計算します:

  • Stake Score (\(S\)): 期末時点のアカウントの残高をすべての高価値アカウントの残高で割ったもの。

  • Transaction Score (\(T\)): アカウントによって支払われた手数料の合計を、期間中にすべての高価値アカウントによって支払われた手数料の合計で割ったもの。

  • Node Score (\(N\)): 期間中にアカウントがノード手数料の 受益者 であった回数を、すべての高価値アカウントがノード料金の受益者であった回数で割ったもの。

  • Activity Score (\(A\)): \(T\)\(N\) スコアの平均は、それぞれ 80%20% で重み付けされ、アカウント残高で除算されます。アカウント残高で割ると、小さなアカウントがいくらか後押しされます。これはアカウントのインポータンススコアがアクティビティに依存し、ステークには依存しないためです。

    最初に絶対アクティビティスコア (\(A'\)) が計算されます:

    \[A' = \frac{10000}{Balance}(0.8T+0.2N)\]

    また、実際のアクティビティスコア (\(A\)) は \(A'\) をすべての高価値アカウントの絶対アクティビティスコアの合計で割って計算されます。

次に、上記の部分スコアに基づいてインポータンススコアが計算されます。

インポータンススコア

The importance score \(I\) is calculated as the average of the \(S\) and \(A\) scores, weighted by an activity factor \(\gamma\):

\[I = \gamma A + (1-\gamma)S\]

Symbol ネットワークにおいて \(\gamma\) は 0.05 (5%) です

Finally, among all accounts eligible for harvesting, the probability that a particular one is chosen is proportional to its effective importance score, which is defined as the smaller of the previous two importance scores \(I\).

注釈

Since scores are calculated every 720 blocks (roughly 6 hours) and the smaller of the previous two scores is used when calculating harvesting probabilities, when you first fund an account it will require 12 hours to have a probability greater than zero.

カスタマイズ

プライベートネットワークは、次の構成プロパティを変更することにより、 コンセンサスアルゴリズムをカスタマイズ できます。 ネットワーク設定 を参照してください。

プロパティ Default 説明
importanceGrouping 720 blocks インポータンスが計算される頻度。
minHarvesterBalance 10000 ハーベスティング対象となるために必要な最小残高。
importanceActivityPercentage 0.05 アクティビティスコアの寄与 (\(\gamma\)) が 0 の場合、 PoS+ コンセンサスは、従来の PoS と同じように動作します。

次項: ハーベスティング