プロトコルにID識別機能を内蔵するブロックチェーンCONCORDIUMのホワイトペーパー

企業コンプライアンスをサポートする、プロトコルレベルでのユーザーアイデンティティを内蔵した分散型ブロックチェーン、Concordiumのホワイトペーパーの日本語版です。

Makoto Ota
Nov 10, 2020 · 68 min read

Concordiumは、ビジネスアプリケーションを念頭に置いて作成された科学に基づいたProof-of-Stakeのブロックチェーンです。Concordiumは、規制要件を満たす、プロトコルに識別機能を組み込んだ初のブロックチェーンを提供しています。

オーフス大学のConcordium Blockchain Research Center Aarhus(COBRA)とスイス連邦工科大学(ETH)との共同研究で開発されています。

Concordium ホワイトペーパー

Concordium 概要
ネットワーク・レイヤー
コンセンサス・レイヤー
アイデンティティ・レイヤー
実行・レイヤー
トークンノミクス
オンチェーン・インセンティブ
ガバナンス

Concordiumは、プライバシーに焦点を当てた、パブリックでパーミッションレスなブロックチェーンアーキテクチャです。本稿では、個人、企業、公共機関がプライバシー、信頼性、拡張性、規制への準拠性を備えた方法でパーミッションレスのブロックチェーン技術を利用できるようにするための様々な斬新な機能とともに、Concordiumプラットフォームの技術仕様を紹介します。

Concordiumプラットフォームは、迅速かつ安全でコスト効率の良い設計となっています。Concordiumの革新的なアイデンティティ・レイヤーは、オンチェーンのアイデンティティ・コンプライアンスを中心とした支払いとユーザーのプライバシーを強化すると同時に、ネットワーク参加者の匿名化を解除することも可能にしています。Concordiumの二層コンセンサスプロトコルは、ナカモト-スタイルのコンセンサスブロックチェーンと、トランザクションを迅速に確認するためのファイナリティ・レイヤーで構成されています。シャーディング設計により、高いトランザクションスループットと、ビジネスユースケースや機密性の高いデータのためのプライベートシャーディングを実現しています。また、Concordiumは、シャード間、およびConcordiumと他のブロックチェーン間の相互運用性と通信を可能にします。Concordiumは、多言語に対応した標準ベースのスマートコントラクトコアを備えています。また、Concordiumプラットフォームは、費用対効果の高いと予測可能な手数料を備えた透明なインセンティブ構造を特徴としています。

Concordium 概要

Concordiumは、ユーザーのアイデンティティの知識を必要とする現行の金融システムやビジネスシステムと統合できるように設計されています。Concordiumは、独自のプロトコルレベルのアイデンティティの基礎要素を開発することで、アプリケーション開発者や個人、企業が現地の規制に準拠した製品を構築することを支援し、プライバシーに焦点を当てたパブリックでパーミッションレスなブロックチェーンの利点を維持します。

Concordiumの革新的なアイデンティティ・レイヤーは、匿名性と説明責任の間にコンプライアンスを中心としたバランスを提供します。ユーザーのアイデンティティはチェーン上では匿名ですが、この匿名性は政府機関からの正当な要求に応じて、取り消し、実際のアイデンティティを明らかにすることができます。ユーザーの視点では、一般市民に対する匿名性は維持され、Concordiumのアイデンティティ・レイヤーは、世界中の異なる管轄区域に拠点を置くアイデンティティ・プロバイダや匿名性リボーカーに対応することができます。このように、Concordiumプラットフォームは、規制体制を超えてブロックチェーン技術を採用するためのグローバルなソリューションを複数の管轄区域で提供します。

Concordiumプラットフォームは、1秒あたりのトランザクション数やトランザクションの完了までの時間など、世界規模のビジネスアプリケーションのニーズを満たすために十分な速度を持つように設計されています。これは、前世代のブロックチェーン技術と比較しても大きな発展を遂げています。

Concordiumは、アップタイムが厳しいビジネスユースケース向けに設計されています。二層コンセンサス設計により、悪条件下でもプラットフォームの可用性と安全性を確保しています。悪意のある者によって管理されているステークの割合が33%未満の通常の状況下では、大幅なスピードアップと効率化を実現しています。他のプラットフォームとは異なり、Concordiumは、悪意のある者が総ステークの50%未満を支配している限り、利用性と安全性を維持します。さらに、ネットワークに致命的な障害が発生し、メッセージが通常の状態よりも大幅に遅延するような状況下でも、Concordiumのファイナリティ・レイヤーの安全性は維持されます。

ブロックチェーン技術の現実のビジネスアプリケーションの多くには、高いスループットが求められます。このようなニーズに応えるために、Concordiumはファイナリティ・レイヤーと連動して動作する新しいシャーディングメカニズムを開発しています。Concordiumは複数のサブブロックチェーン(シャード)を並行して実行・調整することができ、それぞれがスタンドアロンのブロックチェーンよりもはるかに高速に動作します。シャード間の転送や通信も、新しい設計のシャード間シグナリングによってサポートされています。

ミッションクリティカルなアプリケーションの中には、専用のリソースとデータセキュリティを必要とするものがあることをConcordiumは理解しています。Concordiumプラットフォームは、企業や国、個人がConcordiumプラットフォーム内のプライベート・シャードを利用して独自のブロックチェーンを作成するための費用対効果の高い簡単な仕組みを提供しています。プライベート・シャードの場合、Concordiumプラットフォームは、コンテンツやデータを検することなくトランザクションを確認する公証サービスとして機能します。

相互運用性は、異なるブロックチェーン間でデータを転送することを可能にします。これは、企業が特定のプラットフォームにロックされないブロックチェーン技術を広く採用するための要件です。受信者がConcordiumプラットフォームを操作することなく、プラットフォームが他のチェーンやエンティティに短い認証済みメッセージを送信できるようにする相互運用性の新しい設計を開発しました。

Concordiumの中核となるオンチェーン言語はWebAssembly (Wasm) です。Wasmは、近年注目を集めているインターネット標準で、すでに主要なウェブブラウザでサポートされています。多くのプログラミング言語がすでにWasmにコンパイルされているため、広範囲のスマートコントラクト言語をサポートできる可能性があります。Concordiumでは、1番目の高水準スマートコントラクト言語としてRustを使用しています。

グローバル トランザクション ユニット (GTU) は Concordiumプラットフォームのネイティブ トークンであり、ネットワーク参加者の努力が報われるようにインセンティブを与える手段です。GTUは、スマートコントラクトの実行のための支払い、ユーザー間のトランザクションによる支払い、価値の保管としてなど、さまざまな目的で使用することができます。

大規模なビジネスに対応するために、Concordiumプラットフォーム上でのトランザクションは、コスト効率が高く、かつ高速であるように設計されています。低コストを実現しているのは、Proof-of-Stake、ファイナライゼーション、シャーディングの設計と、過剰な課金を防ぐインセンティブメカニズムのおかげです。

持続可能なビジネスモデルを構築するためには、トランザクションコストを事前に把握しておく必要があります。Concordiumは革新的な価格安定メカニズムを採用しており、オープン市場でGTUの価格が変動する可能性があるにもかかわらず、トランザクションコストが現実の不換紙幣ベースで固定されていることを保証しています。

Concordiumプラットフォーム内の経済とインセンティブの構造は透明性が高く、理解しやすくなっています。報酬の分配、インフレ率、トランザクションの価格設定を管理するすべてのパラメータが公開されます。Concordium財団は、Concordiumエコノミーの健全性を積極的に監視・管理します。

Concordium財団は初期には、プラットフォームに関するすべてのガバナンスと開発の決定を行います。その後、プラットフォームの成熟に伴い、ネットワーク参加者の間でガバナンスが分散化されていきます。将来的には、Concordiumプラットフォームの全コンポーネントのプロトコル仕様とコードベースをオープンソース化する予定です。

デザインの概要

Concordiumのプロトコルは、以下の層に分けることができます:

ネットワーク・レイヤーは、ピアツーピア・レイヤーキャッチアップ・レイヤーから構成され、ピアツーピア・レイヤーは、利用可能なすべてのノードにメッセージをブロードキャストするための、パブリックで許可のない高速プロトコルで構成されています。キャッチアップ・レイヤーは、ピアツーピア・レイヤーとコンセンサス・レイヤーの間に位置し、ノードがすべての関連するメッセージを確実に受信できるようにします。

コンセンサス・レイヤーは、すべてのトランザクションと台帳上の順序の合意を保証します。コンセンサス・レイヤーはその最下層に、最長チェーンルールを使用するナカモト-スタイルのコンセンサスブロックチェーンのProof-of-Stakeを持っています。NSCブロックチェーンの上には、高速なBFTファイナリティ・レイヤーがあります。ファイナリティ・レイヤーの上にはシャーディング・レイヤーがあり、スループットを向上させます。

アイデンティティ・レイヤーは、ユーザーのアイデンティティがどのように処理されるかを定義します。アイデンティティ・プロバイダと匿名性リボーカーがどのようにユーザーと対話してアイデンティティ・オブジェクトを作成し、適格な権限を持つ機関から有効な命令を受けた場合にユーザーの匿名性を取り消すかを規定しています。

実行・レイヤーは、ユーザーがプラットフォームと対話することを可能にします。APIを使用して、ユーザーはユーザーアカウント間の転送、スマートコントラクトの展開と実行などのトランザクションを送信することができます。

ネットワーク・レイヤー

Concordiumプラットフォームは分散型システムです。複数のノードで構成され、ブロックの生成(bake)や確定処理を行うことでブロックチェーンを維持しています。ネットワーク・レイヤーはノード間の通信を確立し管理します。

ネットワーク・レイヤーは通信のための抽象的なインターフェースを提供し、その上に置かれたプロトコルが実際の通信プロトコルの詳細を知る必要がないようにしています。例えば、コンセンサス・レイヤーのためのインタフェースは、当事者が他のすべての当事者にメッセージを送信することを可能にするブロードキャストチャネルです。

ネットワーク・レイヤーは、通信を管理するピアツーピア・レイヤーと、一時的にオフラインになっているノードを含む全てのノードが必要なメッセージを確実に受信できるようにするキャッチアップ・レイヤーで構成されています。

ピアツーピアレイヤは、ノードとピアとの接続を確立し、ノード間の双方向通信を管理します。その役割は3つの部分に分けられます:

  1. ネットワーク上でのノードの存在を設定し、維持する。これには、最適なピアリストを確保するために、ピアノードを見つけて管理したり、ネットワークに関する情報を収集したりすることが含まれます。
  2. 各ピアとの1対1通信を管理する。
  3. トランザクション、ブロック、確定メッセージなどのメッセージをネットワーク内のすべてのノードにブロードキャストします。

ノードが起動すると、ピアツーピアは最初に起動するモジュールです。ノードはDNSレコードを解決し、ブートストラップサーバのリストをデコードし接続して、ピアのリストを受け取ります。初期は、ブートストラップサーバは Concordium財団が管理します。

ピアツーピアでのすべての通信は、ネットワークメッセージを介して行われます。効率化のために、ネットワークメッセージはFlatBufferを使ってシリアル化されており、様々なプログラミング言語での高速な実装が可能です。

ピアツーピア・レイヤープロトコルは、Verifiable Noise Protocol [Per16]を使用し、正式に検証された暗号化の実装を使用することで、回線盗聴に対して厳重に保護されています。これにより、ピアツーピアレイヤ上での回線盗聴やリプレイアタックに対して非常に堅牢な保証が可能になります。

任意のノードは、ピアに m を送信することで、メッセージ m のブロードキャストを開始することができます。ピアが初めて m を受信すると、ピアは m をすべてのピアに転送します。これにより、メッセージがネットワーク全体に確実に伝播します。同じメッセージを何度も再送しないようにするために、ノードは以前にブロードキャストされたメッセージのハッシュをバッファリングします。受信したメッセージは、バッファに入っていない場合にのみ、すべてのピアに転送されます。

ピアツーピア・レイヤーでは、メッセージが送信されたときにオンラインになっているすべてのノードにメッセージを送信することができます。キャッチアップ・レイヤーは、メッセージが送信されたときにオフラインになっていたノードや、他の理由でメッセージを受信できなかったノードもメッセージを受信できます。

キャッチアップ・レイヤーによって処理されるメッセージには2つのタイプがあります。最初のタイプは、ノードがメッセージを見逃したと自分で判断できるメッセージです。これには、コンセンサス・レイヤーで送信されたブロックが含まれます。例えば、ノードが未知のブロックへの親ポインタを持つブロックを受信した場合、これは親ブロックを含むメッセージが欠落していることを示しています。このようなメッセージについては、キャッチアップ・レイヤーはプルメカニズムを使用します。

二つ目のタイプのメッセージは、欠落していると簡単に認識できないメッセージです。たとえば、これはファイナリティ・レイヤーのファイナライザー間で送信されるメッセージの場合です。これらのメッセージの場合、キャッチアップ・レイヤーはプッシュメカニズムを使用します。このメカニズムでは、送信者は、関連する限り、これらのメッセージを定期的に再送信します。この場合、特定のブロックのファイナライズメッセージが関連しており、このブロックのファイナライズが完了するまで再生されます。

コンセンサス・レイヤー

ここでは、Concordiumのコンセンサスメカニズムについて説明します。Concordiumの設計の大きな革新点は、ナカモト-スタイル・コンセンサスブロックチェーンと新しい確定方法を組み合わせた二層コンセンサスアプローチであり、高速な確定性を実現しています。

Concordiumプラットフォームでは、PoS (Proof of Stake) メカニズムを使用して、ネットワークのリソース効率の良い運用を確保するとともに、参加者間のセキュリティを強化しています。アカウントにGTUを保有しているユーザーは、GTUの一部をステークして自分のノードを実行するか、GTUをいわゆる委任プールに委任することができます。ネットワーク全体では、参加するステークが多ければ多いほど、悪意のある者がステークの過半数を支配することが難しくなります。ノードの有効なステークは、そのノードのステークに委任プールのノードの一部を加えたものに等しくなります。

ナカモト-スタイル・コンセンサス(NSC)ブロックチェーンを、ブロックをチェーンに追加する権利を獲得するための抽選に参加するシステムと定義しています。特定の当事者が抽選に勝つ確率は、その当事者が必要とするリソース、例えば、Proof-of-Workシステムのための計算能力や、PoSシステムのためのステークなどをどれだけ持っているかに依存します。

NSCブロックチェーンでは、ネットワークの遅延により、ある当事者が前のブロックに関する情報を受け取らずに新しいブロックを追加する可能性があります。さらに、悪意のある当事者が既存のブロックを意図的に無視することもあります。これらの状況はいずれもチェーンの分岐点となり、ブロックチェーンをツリーに変えてしまいます。この問題に対処する1つの方法は、当事者に最長チェーンルールなどのチェーン選択ルールを持たせることです。任意の当事者によって選択されたチェーンは時間の経過とともに変化し、ロールバックが発生したり、以前に選択されたチェーン上のトランザクションが無効になったりする可能性があります。非常に長いロールバックは考えにくいので、ブロックは、その下のチェーンに'十分に多くの'ブロックがある場合に'最終的な'ブロックとみなされます。

NSCブロックチェーンは、悪意が1/2以下であれば安全です。このしきい値は、悪意のある者がコントロールするステークの割合を指します。

代替案を提供することを目的として、Tendermint [Kwo14] や Algorand [CM19] が採用しているような、コミッティベースのビザンチン・ フォールト・トレランス性(CBFT)コンセンサス設計があります。これらは、チェーンに含まれるすべてのブロックを最終的なものとみなすことができるという意味で、即時的な最終性を提供します。このメカニズムは、NSCブロックチェーンと比較してより良い一貫性を提供しますが、これにはコストがかかります。すなわち、CBFTコンセンサスデザインは、ステークの1⁄3以下の悪意しか許容しません。

Concordiumのファイナリティ・レイヤーは、NSCブロックチェーンの上に追加することができます [DMMNT19]。ファイナリティ・レイヤーでは、ビザンチン合意を使ってブロックチェーンを動的に'チェックポイント'することができ、誠実なユーザーのチェーン内の共通ブロックを識別し、最終的なものとしてマークすることができます。この二層アプローチは、両方の世界のベストを提供します。具体的には、以下のことを実現しています:

  • 悪意が1/3未満である限り、ファイナリティレイヤーは、'十分な数'のブロックを待機する必要がある純粋なNSCブロックチェーンのファイナリティルールよりも速くブロックをファイナルとして宣言します。
  • 悪意が1/3から1/2の間にある場合でも、NSCブロックチェーンに依存することができ、純粋なNSCブロックチェーンと同じ保証を得ることができます。純粋なCBFTデザインは、これらの条件では完全に失敗することに注意してください。

Concordiumは現在、NSCブロックチェーンの効率とセキュリティを向上させるための研究を行っています [KMM+20]、 Proof-of-Stakeメカニズムは、Ouroboros Praos [DGKR18] の簡略化されたバリエーションです。この単純化は、革新的なファイナリティ・レイヤーによって可能になり、長距離攻撃を防ぐことができます。

ブロックの生産に参加する当事者をbakerと呼びます。時間はslotと呼ばれる均等な大きさの単位に分割され、各スロットでは各bakerが抽選に当選したかどうかをローカルに確認します。そのために、各bakerは検証可能なランダム関数(VRF)の秘密鍵を持っています。これにより、bakerは与えられた入力に対して関数を評価することができ、他の当事者が(秘密鍵を知らなくても)出力を予測することなく、ある出力が正しく計算されたかどうかを確認することができます。

特定のベイカーが特定のスロットで当選したかどうかを確認するために、VRFへの入力として値slotとnonceを受け取り、ランダムな値rを計算します。ここでのnonceはランダムな値であり、定期的に更新されて、当事者が当選する未来を予測しすぎないようにします。値rがしきい値Tを下回った場合、当事者が当選します。これは、当事者の相対的なステークαと一般的な難易度パラメータfに依存します。勝率はαにほぼ比例し、難易度のパラメーターが高いほど、すべての当事者の勝率が低くなります。

当選した当事者は、現在の最長チェーンを新しいブロックで拡張します。当事者は独立してVRFを計算するので、与えられたslotに対して0人または複数の勝者が存在する可能性があります。難易度パラメータfは、これらの衝突があまり頻繁に起こらないように設定し、ネットワークの遅延を考慮して勝者が十分に分散されるように設定する必要があります。

上述のNSCブロックチェーンプロトコルを実行すると、参加しているbakerはその根元にあるジェネシスブロックを持つツリーを成長させます。ここで得る一貫性属性はcommon-prefixプロパティと呼ばれています。これは、ステークの大部分がプロトコルに従う誠実な当事者によって管理されている場合、(すべての誠実な当事者から見て)最も長いチェーンは長いコモンプレフィックスを持つというものです。つまり、すべての正直者は、最も新鮮なブロックを除くすべてのブロックについて同意しています。また、十分な割合のブロックが誠実なbakerによって生成されるようなチェーンの品質と、最長のチェーンが十分に高い速度で成長するようなチェーンの成長の特性も得られます。このようにして、プロトコルは安全であり、作動しています。Concordiumプロトコルは、これらの特性が正式に検証された最初のプロトコルです [TS20]。

上記のようなブロックのツリーが成長すると、ファイナライズ・コミッティが定期的にブロックを最終的なものとしてマークします。bakerは、最後に確定されたブロックを超えてチェーンを延長するだけで、確定されたブロックは決して巻き戻されません。

確定は、ファイナライズ・コミッティによって実行され、そのメンバーをファイナライザーと呼んでいます。最終合意が適切に機能するためには、誠実なファイナライザーが、委任されたステークを含めた総ステークの2/3以上を保有する必要があります。したがって、十分な誠実なステークホルダーが最終決定に参加するようなファイナライズ・コミッティを選ぶことが重要です。一方、コミッティが大きすぎると、最終合意が大幅に遅くなります。そこで、必要最低限の利害関係を持つすべてのbakerがファイナライズ・コミッティに参加し、ファイナライザーとして活動できるようにすることで、この2つの条件のバランスをとっています。例えば、ファイナライザーが総ステークの0.1%以上を保有するという要件は、コミッティには最大でも1000人のファイナライザーが存在し、実質的なステークを持つすべてのノードが参加できることを保証します。

ConcordiumのNSCブロックチェーンは、成長するブロックのツリーを生成していることを思い出してください。ファイナライズ・コミッティは、このツリー内のブロックを繰り返し最終的に合意します。各イテレーションでは、ファイナライザーはプロトコルを実行して、指定されたdepth d(すなわち、生成ブロックからの距離d)で一意のブロックに合意します。与えられたdepth dに対する最終的合意は、以下のように進行します。 ファイナライザーのチェーンが深さd + 1に達した場合、ConcordiumのCBFTコンセンサスプロトコルを使用して、チェーンのdepth dにあるブロックに投票します。このプロトコルは、すべてのファイナライザーが同じブロックに投票した場合に成功するように設計されており、そうでない場合は失敗する可能性があります。コンセンサスプロトコルが成功した場合、出力されるブロックは最終的なものと定義されます。コンセンサスプロトコルが失敗した場合、ファイナライザは成功するまで反復的に再試行します。i回目の再試行では、depth d + 2iになるまで待ち、チェーン上のdepth dにあるブロックに投票します。最終的に2iは、depth dのブロックがすべてのファイナライザーの共通プレフィックスにあるように十分に大きくなります。その場合、すべてのファイナライザーは同じブロックに投票し、コンセンサスプロトコルは成功します。オフセットを指数関数的に増加させることは、共通のプレフィックスのバイナリサーチとみなすことができます。誠実な当事者は通常、いくつかのブロックについてのみ逸脱しているため、アルゴリズムは通常、小さなiで成功することに注意してください。最終合意が成功すると、ファイナライザーは確定したブロックに署名を作成し、これを最終合意証明としてカウントします。最終合意証明は、後続のブロックの一部となります。その後,最終合意は,より大きなdepth dに対して繰り返されます。

ファイナライズ・レイヤーは、共通のプレフィックスがある場合に動作します。これには2つの理由があります。つまり、ブロックがすべてのファイナライザーの共通プレフィックスに含まれ、その後迅速に合意された場合はいつでも、迅速に最終合意します。さらに、共通プレフィックスの長さの固定バインドに頼らないことで、長いフォークの原因となる破局的なイベント(インターネットのパーティションなど)に対するヘッジとして、ファイナライズ・レイヤーが機能します。

Dinsdale-Young et al. [DMMNT19]によって証明されているように、ファイナライズ・レイヤーから以下の保証を取得します:

  • チェーン形成:最終合意されたブロックは連鎖を形成する;
  • 合意:最終的なブロックについては、すべての当事者が合意しています;
  • 更新:最後に確定したブロックが、基盤となるブロックチェーンの最後のブロックよりもはるかに遅れていないこと;
  • 1/3-サポート:確定したすべてのブロックは、ステークの少なくとも1/3を保有する誠実な当事者によって'サポート'されます。これは、誠実な当事者が最終合意前にチェーンにこれらのブロックを持っていたことを意味し、最終合意後に新しいチェーンを採用する必要がないため、潜在的なロールバックが制限されます

Concordiumプラットフォームの信頼性をさらに確保するために、ファイナライズ・レイヤーのセキュリティを正式に証明するための正式な検証方法を研究しています[DSTT19]。

シャーディングの主な目的は、スケーラビリティの問題を克服することです。シャーディングがなければ、ネットワーク内のすべてのノードがすべてのトランザクションを処理し、すべてのスマートコントラクトを実行しなければなりません。シャーディングの基本的な考え方は、ネットワークをより小さなコンポーネントまたはシャードに分割して実行を並列化することです。次に、ノードは別れたアカウントに均衡され、異なるシャードに割り当てられます。各シャードは基本的に、他のシャードとはほぼ独立して実行できる別のブロックチェーンに対応しています。これは、1つのシャード上のトランザクションはそのシャード上のノードによってのみ処理され、その結果、より多くのトランザクションを全体的に処理することができることを意味します。

シャードを発生させるコントロールチェーンを使用します。コントロールチェーンは、上述のようにな完全な二層コンセンサスメカニズムを実行します。各シャードは個別のブロックチェーンを実行し、コントロールチェーンのfinality-as-a-service(FaaS)コンポーネントを使用して最終合意を行います。つまり、シャード上での最終合意は、コントロールチェーンのファイナライズ・コミッティと一緒にシャード内のノードによって行われ、コントロールチェーンはすべてのシャード上で最終合意されたブロックを追跡します。

最適な効率を得るためには、少数のノードのみで構成される多数のシャードが必要です。しかし、少数のノードのみをサンプリングすることに関連するリスクは、そのうちの大部分が破損してしまうことです。ブロックチェーンが安全であるためには、一部の参加者だけが破損する可能性があります。

この問題を回避するための重要な洞察は、セキュリティは安全性と有効性の2つの部分から構成されています。Safetyとは、システムがミスをしないことを意味します。Livenessとは、システムが停止しないことを意味します。これらの 2 つの特性は、許容できる破損のレベルが両方で異なるようにバランスをとることができます。これは、破損レベルが高くても安全性が保たれるようにプロトコルのパラメータを設定できることを意味します。

この洞察を次のように利用します。コントロールチェーンは、広範囲に分散化された多数のノードで構成されています。シャードは、安全性のために比較的高い破損レベルを許容しながら、シャードごとに少数のノードで実行されます。これにより、安全性を確保しつつスケーラビリティを実現します。コントロールチェーンはシャードを監視し、破損したノードが多すぎて停止した場合は、そのシャードを実行しているノードのセットを再サンプルします。これにより、Livenessが再確立されます。SafetyとLivenessが確保されていれば、セキュリティも確保されます。

シャード間シグナリングは、シャード間のトランザクションと、異なるシャード上でのスマートコントラクトの通信を可能にします。このためのプロトコルは以下のように動作します。あるシャードでブロックが確定すると、他のシャードへの発信メッセージのリストが含まれます。送信側シャードのノードは、送信メッセージのリストに署名します。受信側のシャードのノードは、送信側のシャードで動作しているノードのリストとその公開鍵をコントロールチェーンから取得することができ、送信側のシャードから署名されたメッセージを検証することができます。メッセージが検証されると、受信側のシャードで実行されます。

シャーディングのメカニズムはプライベート・シャードも可能にします。プライベート・シャードでは、コントロール・チェーンはシャード上のトランザクションを見ることができず、FaaSとデッドロックしたシャードを再起動するための調整のみを提供します。プライベート・シャードは最終的には独自のコンセンサス・アルゴリズムを実行し、独自のアイデンティティ・プロバイダや匿名リボーカーを使用することができます。プライベート・シャードは、個人、国、企業が独自のブロックチェーンを立ち上げるための安価な方法を提供します。プライベートシャードは、Concordiumが提供するGTUやツール、フォールバックメカニズムとして機能するコントロールチェーンを利用することで利益を得ることができます。

アイデンティティ・レイヤー

このセクションでは、Concordiumの革新的なアイデンティティ・レイヤーについて説明します。このレイヤーでは、ユーザーが検証可能なアイデンティティをオフチェーンで作成し、関連する規制への準拠を容易にすると同時に、そのアイデンティティをユーザーのプライバシーを保護する方法でオンチェーンで表現することができます。

これまでのブロックチェーンは、ユーザーのプライバシーと説明責任の間で極端なバランスを選択してきました。一部のブロックチェーンでは、説明責任なしに完全な匿名トランザクションを許可しており、違法行為に対して脆弱になっています。同様に厄介なのは、ブロックチェーンの中にはトランザクションに真の匿名性を与えず、トランザクションやアカウントの追跡を可能にするものもある一方で、疑わしいユーザーの身元を実際に発見するための体系的な方法を提供していないことです。

Concordiumは、ユーザーにトランザクションのプライバシーを提供するとともに、現地の規制への説明責任を可能にするメカニズムを提供することで、実行可能なソリューションを提供しています。つまり、トランザクションは、送信者や受信者の身元を明らかにすることなく処理されます。暗号化された送金(後述)の場合、実際の取引額を見ることができるのは送信者と受信者だけになります。一方、不審なトランザクションまたはトランザクションのセットが検出された場合、匿名性リボーカーおよびアイデンティティ・プロバイダの助けを借りて、ユーザーの実世界のアイデンティティを適切な当局に明らかにすることができます。さらに、特定の実世界のアイデンティティが悪意のある行動の疑いがある場合、匿名性リボーカーとアイデンティティ・プロバイダは、そのユーザーのすべてのアカウントを追跡するのに役立ちます。

このセクションでは、アイデンティティ・レイヤーに関与するエンティティの概要を説明する。

ユーザーとは、Concordiumプラットフォーム上でアカウントを保有する個人を指します。個人であっても企業などの法人であってもよく、オフチェーンでの本人確認プロセスを容易にするために有効な身分証明書が必要となります。

アイデンティティ・プロバイダは、ユーザーのオフチェーン識別を実行する個人または組織です。アイデンティティ・プロバイダは、ユーザーに対して発行された各アイデンティティに対して、アイデンティティ・オブジェクトと呼ばれるオフチェーンのレコードを格納します。

アイデンティティ・プロバイダの主な機能は以下の通りです:

  • ユーザーのアイデンティティを検証する;
  • ユーザーにユーザーアイデンティティ証明書を発行する;
  • アイデンティティ・オブジェクトと関連する属性を作成し、記録保存のために保存する;そして
  • 匿名性の取り消しプロセスに参加する。

アイデンティティ・プロバイダとして機能する組織の名前、場所、公開鍵などの情報は、オンチェーン・レジストリで見つけることができます。初期には、アイデンティティ・プロバイダの登録は Concordium財団によって管理されます。ユーザーは、Concordiumプラットフォーム上でアカウントを開設して操作するには、アイデンティティ・プロバイダから アイデンティティ・オブジェクトを取得する必要があります。

匿名性リボーカーとは、Concordiumネットワークが信頼する個人または組織のことで、必要に応じてアカウントを所有しているユーザーの身元を確認することができます。匿名性リボーカーは初期には、Concordium財団によって任命されます。

Concordiumプラットフォーム上のすべてのアカウントは、実世界のアイデンティティに関連付けられており、アイデンティティ・プロバイダが保存するアイデンティティ・オブジェクトにリンクされています。アイデンティティ・オブジェクトは匿名性リボーカーのセットにもリンクされています。匿名性リボーカーは、各アカウントのチェーン上に保存されている一意のユーザー識別子を復号化することで、疑わしいユーザーの実世界のアイデンティティを明らかにする上で重要な役割を果たします。公的命令のサービスに続いて一意のユーザ識別子が復号化された場合(以下に説明する)、それを関連するアイデンティティ・プロバイダによって格納された情報と組み合わせて、正当な当局が不審なユーザの実世界の身元を明らかにできるようにすることができます。

ここでは、アイデンティティ・レイヤーに関連するプロセスについて説明します。

個人や企業がConcordiumプラットフォームを利用する前に、実世界での身元を確認し、アイデンティティ・プロバイダによって記録する必要があります。この身元確認は、最初のアカウント作成時に行われます。

アイデンティティ・プロバイダがユーザーの身元を確認する前に、ユーザーはまず、専用のウォレットやアプリを使用してユーザー・アイデンティティ情報を作成するプロセスを完了する必要があります。ユーザー・アイデンティティ情報には、年齢や国籍などのユーザーの属性が含まれる。ユーザーは、これらの属性またはこれらの機能(例:"年齢>21")を、ユーザーが作成するアカウントに関連付けることを選択することができます。ユーザーはこれらの属性を非公開にすることもできます。ただし、匿名性が取り消された場合には、これらの属性を公開されます。

ユーザはさらに、初期アカウント用のアカウント・キーを作成し、ユーザはこれを個人的に保存します。その後、アイデンティティ・プロバイダは、ユーザー・アイデンティティ情報の属性がユーザーにとって有効であることを検証し、ユーザーに固有のアイデンティティ・オブジェクトにローカルに格納します。アイデンティティ・オブジェクトは、アイデンティティ・プロバイダによってのみ保持されます。アイデンティティ検証プロセスの最後に、ユーザーはユーザー・アイデンティティ証明書を受け取り、Concordiumプラットフォームの初期アカウントにアクセスできるようになります。ユーザー・アイデンティティ証明書を使用することで、ユーザーはチェーン上で追加のアカウントを開設することができます。これらの証明書の有効期限は所定の年数で、その後、アイデンティティ・プロバイダによる更新されたアイデンティティ検証に関連して更新することができる。アイデンティティ・プロバイダは最初のアカウントをユーザーにリンクさせることができますが、他の誰もリンクさせることはできません。その後に作成されたアカウント(以下を参照)は、匿名性が取り消されない限り、アイデンティティ・プロバイダを含む誰もが相互にリンクすることはできません。

以下に示すように、特定のユーザーのユーザー・アイデンティティ情報は、正当な当局が法的手続きを開始し、その特定のユー ザーに属するアイデンティティ・オブジェクトに関連付けられたアイデンティティ・プロバイダおよび匿名性取り消し者の両方と協力して作業する場合にのみ明らかにすることができます。

ユーザーがアイデンティティ・プロバイダからユーザー・アイデンティティ証明書を取得すると、Concordiumプラットフォーム上でさらに多くのアカウントを作成することができます。このプロセスは、ユーザーにアカウント作成プロセスを案内するアプリやウォレットを使って自動化することができます。

ユーザーのアイデンティティ証明書に基づいて、Concordiumプラットフォームはユーザーにアカウント作成情報のセットを生成させ、それをブロックチェーン上で公開します。また、このプラットフォームでは、ユーザーはアカウントキーのセットを作成することができ、ユーザーは個人的に保存されます。アカウント作成情報には、公開アカウント・キー、ユーザー・アイデンティティ情報のサブセット(アカウントを作成する際に、特定のアカウントに対して公開される属性の特定のセットを選択することができる)、およびアイデンティティ・プロバイダとアイデンティティ・オブジェクトに関連付けられた匿名性のリボーカーに関する情報が含まれています。これにより、関連する匿名性リボーカーとアイデンティティ・プロバイダは、一緒に作業しているときに、アカウントをユーザーにリンクさせることができますが、アカウント作成情報は、他の当事者や任意の単一の当事者がユーザーを公然と特定することを許可しません。さらに、同じユーザー・アイデンティティ証明書で作成されたアカウントを公にリンクすることはできません。

ユーザーのアイデンティティは、有効な法的手続きの一部として、正当な当局にのみ明らかにすることができます。正当な機関とは、関連する法域で行動する権限を持つ政府機関のことです。例えば、金融行為を規制する地方警察、地方裁判所、または地方自治体の調査部門は、すべて関連する管轄区域で行動する権限を持っています。これらの当局は、確立された法的経路を経て正式な要請を行った場合に、ユーザーの匿名性を取り消すプロセスを開始する資格を有しています。そのような要求の結果は、正当な当局が令状、裁判所命令、または同様の文書の形をした公式命令を得ることになる可能性が高くなります。適格な権限を持つ当局が、関連する匿名性リボーカーおよび アイデンティティ・プロバイダに公式命令を有効に送達した後でなければ、ユーザーの実世界のアイデンティティは、命令に定められた範囲内でのみ明らかにすることができません。

Concordiumのアイデンティティ・レイヤーは柔軟性があり、進化する金融規制の性質やブロックチェーン領域への影響に敏感です。例えば、ブロックチェーントランザクションにいわゆる"トラベルルール"が適用されるなど、新たな法律やルールが登場した場合、Concordiumのアイデンティティ・レイヤーはコンプライアンスを中心としたソリューションを提供し、特定のビジネスニーズに合わせて調整することができます。

当局が調査したいオンチェーントランザクションやアカウントを特定した後、ユーザーのアイデンティティを明らかにするためには、次のようなプロセスを踏む必要があります:

  • 正当な当局は、匿名性リボーカーと匿名性を取り消したいアカウントに関連する ーザーのアイデンティティ・プロバイダを特定し、公式命令を提示しなければならない;
  • 公式命令の条件に従って、匿名性リボーカーは利用可能なオンチェーンデータを検査して復号化することで、そのユーザーに対す る一意のユーザー識別子を抽出する;
  • この一意なユーザー識別子により、正当な当局は関連するアイデンティティ・プロバイダと協力して、ユーザーの実世界のアイデンティティを取得することができる。

必要に応じて、公式命令に従って、特定のユーザーによって作成されたすべてのアカウントは、このプロセスで明らかにすることができます。

このプロセスは、正当な当局による行き過ぎた行為を防ぐためにチェック、バランス、および制御を確立した現代の法制度に 合わせることを意図していることに注意することが重要です。また、単独で活動する時には、アイデンティティ・プロバイダも匿名性取り消し者もユーザーの実世界のアイデンティティを明らかにすることができないこと、を提供します。

実行・レイヤー

ユーザーは、さまざまな種類のトランザクションを介してConcordiumプラットフォームとやり取りします。トランザクションが送信されると、トランザクションプールに追加されます。bakerはトランザクションの有効性をチェックし、有効なトランザクションを次のブロックに含めます。トランザクションの有効性とトランザクションの処理方法は、トランザクションの種類によって異なります。以下、最も重要なタイプについて説明します。

すべてのトランザクションにはタイムアウトがあります。タイムアウトはトランザクションの作成者によって設定され、タイムアウト時間が経過した後にトランザクションを実行することはできません。このような場合でも、トランザクションはブロックに追加され、トランザクション手数料は請求されますが、トランザクションは実行されません。これにより、古い決済が数日後に突然実行されるという事態を防ぐことができます。

ユーザーは、アカウント開設トランザクションをパブリッシュすることで、新しいアカウントを開設します。このトランザクションには、アカウント作成情報が含まれます (上記のセクションのIdentity Layerを参照)。ユーザーは、アカウント更新トランザクションを使用してアカウントを更新することで、アカウントのユーザー・アイデンティティ証明書を更新することができます。

トランザクションの最も基本的なタイプは、アカウントAからアカウントBへの x GTUのプレーン・トランザクションです。このようなトランザクションは、アカウントAの公開残高が少なくとも x + トランザクション手数料であれば有効です。このトランザクションの効果は、アカウントAのパブリック・バランスが x + トランザクション手数料によって減少し、アカウントBのパブリック・バランスが x によって増加することです。

Concordiumプラットフォームは暗号化された転送をサポートしています。暗号化された送金を可能にするため、アカウントには公開残高に加えて暗号化された残高が設定されています。暗号化された送金は通常の送金と同じ機能を持ちますが、暗号化された残高に基づいて処理され、送金額は隠され、送信者と受信者のみが知ることができます。送信者が十分な暗号化された残高を持っていることを保証するために、トランザクションにはゼロ知識証明(zk-SNARK)が含まれており、転送された金額が送信者の暗号化された残高を超えていないことを誰もが確認できるようになっています。

匿名性リボーカーは、匿名性の取り消しに使用されるのと同様のプロセスで暗号化された金額を明らかにすることができます。

匿名トランザクション
暗号化された転送はGTUの金額を隠しますが、どの口座が転送に関与しているかを確認することができます。プライバシーの追加レベルは、匿名トランザクションで追加されます。匿名トランザクションは暗号化された転送と同じ機能を持っていますが、トランザクションの送信者と受信者をリンクすることはできません。
Concordiumでは、Fauzi et al. on Quisquis [FMMO19] のようなミックスネットのようなアプローチも含め、様々な新しい技術やよく知られた技術を使って匿名トランザクションをサポートする予定です。

匿名リボッカーは、匿名トランザクションに隠されたトランザクションに関する情報を得ることができます。

ユーザーの、送信ユーザー、は、別のユーザーの、受信ユーザー、に匿名で転送することもできます。これは、上記のトランザクションを介して実装され、トランザクションとユーザーごとに専用のシングルユース・アカウントを使用して、バックグラウンドで自動的に実行されます。

これは上述のトランザクションを実行し、バックグラウンドで自動的に実行され、各トランザクションとユーザーのために専用のシングルユース・アカウントを使用します。転送の前に、受信ユーザーは、転送を受け取るために使用される新しいアカウントの詳細を送信ユーザーに通知する必要があります。送信ユーザーのウォレットは、新しいアカウントを作成し、この新しいアカウントに匿名のユーザー間転送を行います。その後、送信ユーザーの新しいアカウントから受信ユーザーの新しいアカウントへ暗号化された転送が行われます。

スマートコントラクトの動作は、スマートコントラクトコードのデプロイから始まります。どのユーザーも、特別なトランザクションを使用してスマートコントラクトコードをデプロイすることができます。ユーザーは、初期化トランザクションを使用して、デプロイされたスマートコントラクトのインスタンスを取得することができます。初期化された各スマートコントラクトはアカウントに関連付けられています。それはまた、このコントラクトの有効性が関連付けられたアカウントの有効性に依存することを意味します。スマートコントラクトのインスタンスは、インプット・トランザクションの形で入力を受け取ることができる。これらのトランザクションは、入力の実行に許容されるENERGYの量を指定します。異なる入力が実行される順序は、入力トランザクションがブロックに追加される順序に依存します。

ユーザーは、特別なトランザクションをパブリッシュすることでbakerになることができます。新しく作成されたbakerは、ユーザーのアカウントのひとつに関連付けられます。このアカウントはbaker報酬を受け取るために使用されます。bakerのオンチェーン情報は、トランザクションによって更新することができます。これにより、bakerは、bakingリワード受信者アカウントまたは署名キーを更新することができます。さらに、bakerとしての登録を解除するためのトランザクションがあます。

スマートコントラクト言語

Concordiumの中核となるオンチェーン言語は WebAssembly (Wasm) です。Wasmは、近年注目を集めているインターネット標準で、すでに主要なウェブブラウザでサポートされています。

多くのプログラミング言語がすでにWasmにコンパイルされており、これにより、多くのスマートコントラクト言語をサポートできる可能性があります。Wasmはオンチェーンコードを低水準で制御することができ、スマートコントラクトに暗号化のサポートを追加する際の最適化に役立ちます。

パーミッションレス・ブロックチェーンプラットフォームの中でも、スマートコントラクトのための共通の標準は非常に少ないですが、Wasmは複数のプラットフォームで採用されている数少ない言語のひとつです。

Concordiumは多くのスマートコントラクト言語をサポートする予定で、最初の高水準スマートコントラクト言語としてRustを選択しました。Rustのエコシステムは非常にフレンドリーで、ドキュメントも充実しており、WebAssemblyのサポートも充実しています。

Rustは安全な言語ですが、低水準のリソース制御も可能です。これはコントラクトのコストを削減するのに役立ち、暗号プリミティブやプロトコルの開発に非常に適しています。既製品を使用したり、WebAssemblyにコンパイルしたりできる高品質なライブラリが多数存在します。

ConcordiumはRustコードの検証も行い、生成されたモジュールがオンチェーンの要件に適合するようにします。

しかし最終的には、WebAssemblyにコンパイルできる言語であれば、どのような言語でもConcordiumチェーンを利用することができます。

ブロックチェーンの相互運用性は、さまざまなレベルで考えることができます。1つのレベルは、依存するアプリケーションが使用するAPIとデータフォーマットです。このレベルでの相互運用性は、アプリケーションが異なるブロックチェーン上で動作することを可能にし、アプリケーションを特定のブロックチェーンに依存しないものにする可能性があります。もう一つの側面は、少数の一般的なスマートコントラクト言語を定義することで、これらで書かれたスマートコントラクトを異なるブロックチェーン上で実行できるようにすることです。

多くの場合、相互運用性とはブロックチェーン間でデータを転送する能力のことであり、あるブロックチェーンが別のブロックチェーンにデータを要求できるようにすることが一般的です。Concordiumはこのような要求をサポートするように設計されており、ファイナライズ・コミッティがConcordiumプラットフォームを代表して発信メッセージに署名することができます。この機能を実現するためには、受信者は現在のファイナライズ・コミッティの検証キーを知る必要があるだけです。最初のファイナライズ・コミッティの検証鍵は生成ブロックにあります。署名の連鎖を利用して、現在のファイナライズ・コミッティを生成ブロックにリンクさせることができます。これにより、Concordiumプラットフォームは、受信者がConcordiumプラットフォームを実行していなくても、他のチェーンや取引所などの他のエンティティに短い認証済みメッセージを送信できるようになります。これらの発信メッセージのフォーマットは、チェーン上のブロック構造に依存しないものであり、完全な相互運用性を実現するためには、標準化されたフォーマットを使用する必要があります。そのような標準が定義され、広くサポートされている場合、Concordiumプラットフォームは、このフォーマットを使用して得られた情報を他のブロックチェーンに要求する仕組みを備えて強化される可能性があります。

いずれにしても、APIの相互運用性、スマートコントラクト、データ交換のいずれにしても、適切な標準が定義され、多くのブロックチェーンに適用されていることが、高いレベルの相互運用性の前提条件となります。Concordiumは、このような方向に向かうイニシアチブに参加することを歓迎し、楽しみにしています。

トークノミクスとオンチェーンインセンティブ

Concordiumプラットフォームは、経済内で相互に作用するトランザクションと経済的役割のセットで構成されています。bakerやアイデンティティ・プロバイダなどの経済的役割は、オフチェーンに存在するか、Concordiumプラットフォーム上のアカウントで表現されます。

トランザクションを通じてアカウント間でGTUが流れることで、ネットワークへの参加を促し、不正行為に対抗するための経済が形成されます。Concordium財団の目的は、参加者がネットワークを発展させるための努力に報いる持続可能な経済の構築を導くことにあります。

Concordium財団は、内部のダイナミクスを監視し、外部の市場環境の影響を精査することで、経済の健全性を維持する責任があります。Concordium財団は、Concordiumプラットフォームの経済がより複雑なダイナミクスやトランザクションを含むように発展していく中で、柔軟なアプローチで経済の健全性を維持していきます。

以下のFigure3は、Concordiumエコノミーにおける様々な役割、アカウント、トランザクションを、オンチェーンとオフチェーンの両方で可視化したものです。

Global Transaction Unit(GTU)は、Concordiumプラットフォーム上のネイティブトークンです。GTUは決済トークンであり、スマートコントラクトの実行時の支払い、ユーザー間の支払い、商取引の支払い、価値の保管としてなど、様々な用途に使用できます。ジェネシスブロックでは、特定の数のGTUが生成されます。この後、より多くのGTUを作成するための仕組みは、発行プロセスのみです。プラットフォーム上に常に存在するGTUの数は、定義され公表されています。

新しいGTUの発行プロセスはConcordiumプラットフォームの自動機能であり、発行されたばかりのトークンは、一部はインセンティブとして配布されるリワードアカウントに、一部はConcordium財団に送信されます。発行はConcordiumプラットフォーム内に存在するGTU数を増加させる唯一の手段であり、当初はその増加率は財団によって管理されます。

発行はパラメータによって管理され、slotごとに作成されるGTUの数を制御します。これにより、インフレ率が時間に連動し、ブロックの作成速度の変動に左右されないようになっています。当初は、Concordium財団がGTU/slotのパラメータを制御し、経済の持続可能性を確保するためにGTUの成長率を監視します。

Concordiumプラットフォーム内では、ユーザーやその他のエンティティがエコノミーや相互作用を行うためのトランザクションが数多く存在します。これらのトランザクションの多くについては、上述の実行レイヤーのセクションで詳しく説明しています。Concordiumプラットフォーム内での具体的な役割は:

ユーザーは個人、企業、その他の識別可能な法人であり、Concordiumプラットフォーム内でアカウントを作成し、管理する。

  1. アカウント開設およびアカウント更新トランザクションにより、ユーザーはConcordiumプラットフォームでアカウントを作成できます。
  2. ユーザーがアカウントを作成する前に、まずアイデンティティ・アカウントの作成に必要なアイデンティティ・オブジェクトを作成するためにプロバイダに支払う必要はありません。初期には、ユーザーのアイデンティティ・オブジェクトを作成するためにユーザーからアイデンティティ・プロバイダーへの支払いは不要で、その手数料はエコシステムを刺激するためにConcordium財団が負担します。しかし、将来的には、ユーザーはアイデンティティ・プロバイダーに手数料を支払わなければならない可能性があります。
  1. ユーザーは、関連付けられたアカウントを介して、他のアカウントへのGTUのプレーン・トランザクション、チェーンへの情報の書き込み、またはConcordiumプラットフォームに存在する他のネイティブトークンの転送などのトランザクションを開始できます。ブロックチェーンで有効化されたトランザクションに加えて、スマートコントラクトは特定のアプリケーションを処理するための強力なプログラミング機能を提供します。
  2. ユーザーは、トランザクションの受取人に自分のアドレスが指定されている場合、アカウントにGTUを受け取ることができます。特定のスマートコントラクトを追加することで、GTUの受け取りをオプトアウトすることが可能になります。
  3. ユーザーは、暗号化された転送や匿名の転送が可能になります。
  1. ユーザーは委任トランザクションを開始して、bakerのプールにステークを委任することができます(ユーザーが委任したステーク)。同様に、ユーザーは、ステークの委任を取り消すために同様のトランザクションを開始することができます。
  2. ユーザーの委任されたステークに関連した報酬は、自動的にユーザーのアカウントに転送されます。

Concordium財団は、一連の特別なアカウント(後述)を管理し、ユーザーと同じトランザクションを実行できます。Concordium財団は、発行プロセスから支払われるプラットフォーム開発助成金と、トランザクション手数料の財団分の割当を受け取ります。

bakerは、ユーザーがbakerとして登録するための特別なトランザクションを発行することで作成されます。bakerは、Concordiumプラットフォームに損害を与える望ましくない行為に対するインセンティブとして、GTUのステークの一定割合をコミットすることを要求される場合があります。

ファイナライザー:bakerはGTUのステークホルダーが一定のしきい値に達すると、自動的にファイナライザーになります。Concordium財団は、GTUをどれだけステークしなければならないかのしきい値を管理し、速度や効率性を損なうことなくネットワークの安全性を確保する観点から、ファイナライザーの数を増減するように調整します。bakerはファイナライザーになることをオプトアウトすることができます。

スマートコントラクト開発者:すべてのユーザーがConcordiumプラットフォームでスマートコントラクトを作成、展開、または使用できます。スマートコントラクトを公開したユーザーは、他のユーザーがそのスマートコントラクトを使用したことで報酬を得ることができます。将来的には、このプロセスには、認定されたスマートコントラクトのAppStoreのようなライブラリが必要になります。これにより、ユーザーは自分で開発しなくても高品質のコードを使用できるようになります。

アイデンティティ・プロバイダーは、オフチェーンアイデンティティを実行し、アイデンティティ・オブジェクトを作成します。アイデンティティ・プロバイダーはアカウントを必要としません。アイデンティティ・プロバイダーは、最初はオフチェーンの法定紙幣で支払われますが、将来的には、アイデンティティ・オブジェクトを作成するプロセスのためにオンチェーンのGTUでインセンティブを与えられる可能性があります。

匿名性のリボーカーは、アカウントに関連する暗号化されたユーザーアイデンティティ番号の復号化を実行し、有効な裁判所命令が提示された場合、そのような番号を関係当局に開示します。匿名性のリボーカーはアカウントを必要としません。

Concordium プラットフォーム内には特別なアカウントが存在します。これらのアカウントは、トークンリワードスキーム、GTUの成長、Concordium財団の様々なタスクなど、特定のトランザクションを促進します。

財団のアカウントは、ジェネシスブロックに従って、最初のトークン配布でConcordium財団に割り当てられたGTUを保持する一連のアカウントです。Concordium財団はこれらのアカウントの鍵を管理しています。Concordium財団アカウントのGTUはコンコルディウム財団に合法的に帰属し、Concordiumプラットフォームの開発とネットワークの普及を促進するための排他的な目的に使用されます。

ベーキング報酬アカウント(Baking Reward Account)はGTUのプールを保有しており、そこからbakerやユーザーに報酬が分配されます。GTUは新しいGTUの発行からベーキング報酬アカウントに支払らわれます。

ファイナライズ報酬アカウント(Finalization Reward Account​)は、ファイナライザーでもあるbakerとステークを委任されたユーザーに報酬が分配されるGTUのプールを保持しています。GTUは、新しいGTUの発行からファイナライズ報酬アカウント支払わされます。

GASアカウントはGTUのプールを保持しており、その中からトランザクション手数料をbakerやステークを委任したユーザーに分配します。GTUは、トランザクション手数料の支払いにより、ユーザーからGASアカウントに支払われます。

ブロックチェーンの利用者は、トランザクションを行うたびにトランザクション手数料(GASの支払いとも呼ばれる)を支払います。手数料はGTUで支払われ、そのためにはユーザーはGTUを取得して保有する必要があります。

トランザクションコストは、EUR換算で比較的安定するように設計されており、それにより事業者は、固定された予測可能なコストで、計画を立てることができます。

後述するENERGYの原則により、Concordiumは、価値が上下し得る通貨(GTU)と、EURに対して安定したトランザクションコストを組み合わせています。これは、トランザクションに支払われるGTUの数を、EURに対して測定した場合のGTUの価格に反比例して変化させることで達成されています。したがって、GTUの価値が上昇した場合、ユーザーはトランザクションのために支払うべきGTUの数を少なくすることで、EUR換算で安定したコストを維持することができます。上記の原則の技術的な実装については後述します。

トランザクション手数料は、ENERGYと呼ばれる内部のトランザクションコスト計算単位に基づいて計算されます。

ENERGYに記載されているトランザクションあたりの内部トランザクション手数料は、3つの要素から構成されています:

トランザクションベースのコスト(全トランザクションの同額)
+ 複雑さの割り増し(トランザクションの検証と実行にかかる時間に関連した計算の複雑さに依存する)
+ 大量のデータを含むトランザクションサイズの割り増し
= エネルギーの数で表される総トランザクションコスト

透明性の問題として、Concordium財団はGAS-feeの表を管理し公開します。これは、複雑さと規模の異なるトランザクションコストを示すものです。

計算されたENERGYは、固定EUR/ENERGY変換率および変動GTU/EUR変換率を適用してGTUコストに変換され、EURで測定した場合にコストが安定していることを保証するために動的に調整されます。

トランザクションのEURコストは、市場環境の大幅な変化やトランザクション処理に関連するコストの変化に対応して、 ガバナンス・コミッティによって変更される可能性があます(ガバナンスのセクションを参照)。このような変更は、月に 1 回以下の頻度で行われることが想定されています。また、時間の経過とともにトランザクションコストは大幅に減少し、最終的にはゼロに近づくことが想定されています。トランザクションのEURコストの変更は、例外的な状況が発生しない限り、1ヶ月以上の告知期間を設けて、ユーザーと公に発表されます。

GTU単位でのGAS支払いは、以下の計算を適用しています:
GAS(GTU)=エネルギー量 ×(EUR/エネルギー)×(GTU/EUR

  • ENERGY は、上記のパラメータ(上記参照)に基づき、特定のトランザクションについて計算されたENERGYの量。
  • GTU/EURは、トランザクション時または直前にリアルタイムで1つ以上の取引所で観測された実際のレート。
  • EUR/ENERGYは、Concordiumブロックチェーンのローンチ前に最初に決定された、ENERGYの1単位当たりの初期数値。

ブロックチェーンのローンチに先立ち、サイズと複雑さのための正確な計算原理が準備され、公開されます。

変換を実行するために必要なGTU/EUR変換レートは、外部ソースから供給されます。初期には、Concordium財団がこのデータを提供します。その後、オラクルを使用して、十分な流動性と取引量を持つ取引所からデータを引き出し、市場操作の有無を精査しながらデータを提供します。

トークノミクスシステムは以下の報酬で構成されています:

  • ベーキング報酬は、bakerに新たに発行されたGTUで支払われます。ベーキング報酬は、新しく発行されたGTUの60%を占めています。
  • ファイナライズ報酬は、新たに発行されたGTUと一緒に、最終合意を行っているbaker(例:ファイナライザー)に支払われます。ファイナライズ報酬は、新たに発行されたGTUの30%を占めます。
  • プラットフォーム開発費は、新たに発行されたGTUと一緒にConcordium財団に支払われます。プラットフォーム開発費は、新規に発行されたGTUの10%となります。
  • ユーザーがbakerに支払ったトランザクション手数料は、全トランザクション手数料の90%を占めています。
  • ユーザーがConcordium財団に支払うトランザクション手数料は、全トランザクション手数料の10%を占めています。

委任プログラムの導入に伴い、メインネット開始後6ヶ月以内にGTU(ステーク)をデレゲーションプールに委任したユーザーは、ベーキング報酬アカウント、ファイナライズ報酬アカウント、GASアカウントから支払われる報酬の一部を受け取ることになります。委任報酬は、委任者とベーカリーの間で分割され、当初は85 /15 となります。

上記のインセンティブに加えて、スマートコントラクト開発者へのオンチェーンインセンティブ報酬も後ほど実施される予定ですが、メインネットのソリューションには含まれていません。メインネットのローンチ時には、スマートコントラクト開発者へのインセンティブモデルは、コミュニティ寄金プログラムを通じて提供されます。

ベーキング報酬は発行プロセスからベーキング報酬アカウントに支払われ、そこからbakerに支払われます。あるエポックの終了時に、ベーキング報酬アカウントの現在の残高がbakerに分配され、各bakerがそのエポックで生産したブロック数に応じてbaker間の配分が行われます。

bakerがあるエポックで発行したブロックの数、を
あるエポックに発行したブロックの数、で割る
エポック終了時のベーキング報酬アカウントの残高、を掛ける
= 発行作業からbakerに支払われるベーキング報酬の合計

ファイナライズ報酬は、発行プロセスからファイナライズ報酬アカウントに支払われ、そこからファイナライザーでもあるbaker払われます。

ブロックを最終合意したファイナライザーへの報酬は、ブロックが最終合意され、bakerが対応する最終合意証明をブロックに追加した時点で支払われます。報酬の支払いは、ファイナライズ報酬アカウントの現在の残高の全額と同じです。

ファイナライザーへの報酬は、ファイナライズ・コミッティの全コミッティに配分され、ステークに比例して個々のファイナライザーに分配されます。つまり、ステーク S のファイナライザーは、ファイナライズー報酬アカウントの現在の残高の (S / 全ファイナライザーのステークの合計) を取得します。

前のブロックの最終合意証明を含むブロックでは、GASアカウントから追加のトランザクション手数料が取られ、ブロック内のトランザクション手数料に追加されます(bakerにこれらの証明を含めるようにインセンティブを与えるため)。

ブロックを作成する権利は、抽選によってbakerに割り当てられます。抽選はslotごとに実行され、ブロックチェーンは250ミリ秒のslotタイムで動作します。slotの抽選に当選する確率は、各bakerの抽選パワー(0から1の間の値)に依存し、次のように定義されます

P[baker wins] = P[U<1-(1-diff)^(lottery power)]

ここでdiffは抽選の難易度(0から1の間の値)、Uは0から1の間の一様なランダム変数です。 最初は難易度パラメータは10秒の予想ブロックタイムを得るために設定されていますが、このパラメータはガバナンス・コミッティによって調整することができます。

抽選は、エポックごとに固定された抽選パワー分布を使用します。通常のネットワーク条件では、エポック i のbaker/ファイナライザーの抽選パワーは、エポック i-2 の最初のブロック(すなわち、エポック i-2 のすべての報酬が支払われるブロック)によって定義されるように、そのステークによって決定されます。形式的には、エポックiに対するbakerjの抽選パワーは、stake_j / stake であり、stake_jはbakerjのステークであり、stakeは(エポックi-1の最初のブロックにおける)全ての(アクティブな)bakerのステークです。

トランザクション報酬はbakerとConcordium財団に支払われ、90%がbaker、10%がConcordium財団に割り当てられます。

トランザクション報酬はベーキング報酬の支払いと同時に、つまり各エポックの終了時にbakerに支払われます。

当選したbakerへのトランザクション報酬は、以下のように構成されています:

そのブロック内のトランザクションからのGAS手数料の一部、最初は45%に設定
+ 現在のブロックに関連するトランザクション手数料を追加する前の、GASアカウントの残高の一部、最初は25%に設定
= ブロックのトランザクション報酬総額

Concordium財団は、各ブロックのトランザクションから手数料の10%を受け取ります。上記のパラメータを前提とすると、各エポックの終了時に、GASアカウントは以下のように変化します:

GASアカウントの旧値
+ 現在のエポックで生産されたブロックに関連するトランザクション手数料の90%を加算
- 現在のエポックのブロックに関連したトランザクション手数料の45%(bakerに支払われたもの)
- GASアカウントの旧値の25%
= GASアカウントの新たな値

ブロックあたりの発行されたGTUの数(したがって報酬)はGTUの成長にリンクしており、ステークされたGTUの量は各bakerのステーク決定の結果であるため、bakerとファイナライザーのステーク収益率(RoS%)は時間の経過とともに変動します。

上記のように、bakerとファイナライザーに支払われる報酬は、新規発行の90%になります。GTUの成長率が2%で、全GTUの50%がステークされているとすると、ステーキングの報酬は90%となります:
2% x 90% / 50% = 3.6%

ステークしたGTUの数が25%まで下がる場合、報酬は:
2% x 90% / 25% = 7.2%

ステークされるGTUの量が増加すると、ステーク収益率は低下し、その逆もまた然りです。この関係は、ステークされているGTUの量が少ないときには、ステークすることが財務的に魅力的になることから、安定化効果があると考えられています。

エポック i で発行/最終合意したい場合は、エポック i-1 の開始前にbakerとして登録しなければなりません。より長い遅延は後の段階で実装されます。
baker登録には以下の情報が含まれます:

  • アカウント番号。このアカウントは報酬の支払いに使用され、またステークが保存されています。
  • ステークの上限。ステークの額。この金額は、その時点での口座の残高よりも少なくなければなりません。

デフォルトでは(将来変更される可能性があります)、報酬はすぐにステークに追加されます。これは、報酬を受け取ると、ステークの上限が自動的に増加することを意味します。つまり、報酬を受け取ったときにはステークの上限は増加せず、その金額はアカウントから自由に送金することができます。

baker/ファイナライザーがアクティブである限り、ステーク上限のGTUの額はアカウントに固定されており、移動することはできません。ステーク上限を超えた額は、他のアカウントに自由に移すことができます。

bakerが自分のステークを変更したい場合は、ステークの上限額を高くしたり低くしたりしてbakerとして再登録することで変更することができます。そうでない場合は、再登録の前に追加のGTUをアカウントに移しておく必要があります。

bakerがエポック i のステークを増やしたい場合、再登録はエポック i-1 の開始前に行わなければなりません。

ステークを減らしたい場合は、7日間に相当する168エポック後に変更が有効になります。この猶予期間中、bakerは元のステークで発行を続けます。

エポック j でbakerをやめたい場合は、エポック j-168 の開始前にbakerとしての登録を解除しなければなりません。

ガバナンス

Concordiumは、要求の厳しいユーザーのニーズに対応することを目的としています。これは、品質、セキュリティ、スピード、予測可能性、透明性を提供することを意味します。

Concordium財団はスイス当局の監督下にあり、その目的は公文書に明記されています。財団理事会は、コンコーディウムプロトコルが継続的に発展し、財団の目的のパラメーターの範囲内で、ユーザーのニーズに合ったものであり続けるようにすることを使命としています。

Concordium Global Transaction Unit(GTU)のステークホルダーは、ガバナンス・コミッティを通じてConcordiumの優先事項を提案・決定する上で中心的な役割を担うことになりますが、財団理事会はプライバシーと説明責任の原則、Concordium財団の公約が遵守されることを保証する役割を担います。財団理事会は、完全な分散化後も財団の最高機関としての役割を維持しますが、重要な機能はガバナンス・コミッティに委譲されます。

分散化は4つの段階を経て実施されます。

Concordium財団理事会は、ガバナンスの分散化プロセス、オンチェーンのガバナンスメカニズム、トークンノミクス、インフレを監督するために、5人のメンバーで構成されるガバナンス委員会を任命します。

ガバナンス委員会はConcordium財団理事会が100%任命。

GTUステークホルダーは、ガバナンス委員会の委員2名をオンチェーン投票で任命し、委員会を5名から7名に拡大します。ガバナンス・コミッティは、プロトコルの変更をオンチェーンで提案できます。

ガバナンス・コミッティの28.6%はGTUステークホルダーによって任命。

マインネット +4年
GTUステークホルダーは、オンチェーン投票によりガバナンス・コミッティのメンバーをさらに2名任命し、委員会のメンバーを7名から9名に拡大します。ステークホルダーは、プロトコルの変更を提案し、その変更をオンチェーンで投票することができます。ガバナンス・コミッティは、ステークホルダーによる決定の実施と順序付けを監督します。

ガバナンス・コミッティの44.4%はGTUステークホルダーによって任命。

GTUステークホルダーは、財団理事会によって任命された当初の5つの委員会のうち2つの議席に代わって、ガバナンス・コミッティの2人の委員をオンチェーン投票によって任命します。コミッティの総委員数は9名のままで、毎年2名の委員が選出されます。GTUステークホルダーは、プロトコルの変更を実施することができます。ガバナンス・コミッティは、ステークホルダーによって可決された決定の執行者としての役割を果たします。

ガバナンス・コミッティの66.6%はGTUステークホルダーによって任命。

メインネット +8年までに、ガバナンス・コミッティの100%はGTUステークホルダーによって任命。

公式 Discord 開発者コミュニティ日本語 https://discord.gg/md7ebQr8
非公式 Twitter 日本コミュニティhttps://twitter.com/Concordium_JP

エンジニアを最優先に!

Concordium-Japan

アイデンティティ識別機能ブロックチェーンプラットフォーム

Concordium-Japan

ビジネスアプリケーションにフォーカスして設計された、規制要件を満たすためにプロトコルにアイデンティティ識別機能を組み込んだ、パーミッションレスのブロックチェーンプラットフォームを提供しています。

Makoto Ota

Written by

Currently as Japan Lead at Concordium Foundation building an identity built-in consensus mechanism Blockchain platform.

Concordium-Japan

ビジネスアプリケーションにフォーカスして設計された、規制要件を満たすためにプロトコルにアイデンティティ識別機能を組み込んだ、パーミッションレスのブロックチェーンプラットフォームを提供しています。

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store