
【Celo Protocol】 White Paper
独自のL1チェーンを構築し、Social Paymentを可能にするCelo Protocol。
今回はそのWhite Paperの詳細について書いていきます。暗号通貨を用いた決済のメリット・デメリットを紹介し、その欠点の解決方法を提示した内容となっています。
原文についてはこちらから。
Celoを初めて聞いた!という方は以下の記事が概要を掴む上で大変分かりやすいです。
概要
クリプト決済の優位性と課題
暗号資産は法定通貨に比べて、決済手段の観点からいくつかの利点・欠点があります。

法定通貨での支払いに慣れているユーザーは、ほんの些細な違和感・不便さを伴った体験が利用結果の大きな差を生んでしまうでしょう。本文では以下のように書かれています。
While these may seem small obstacles, experience has shown that small differences in user experience lead to large differences in usage outcomes.
解決策
上記の課題を解決するため、Celo Protocolは大別して二つのソリューションを提供しています。
Address-Based Encryption
従来使用されていた公開鍵ではなく、電話番号・メールアドレスなど個人を識別できる一意のアドレスを公開鍵として使用するReserve-Backed Stabilization
安定した価値を持つアセット・準備金に裏付けられた柔軟な通貨供給ルールを導入し、ボラティリティーを最小限にする(ステーブルコイン)
加えて準備金を共有化することによる安定した地域通貨の導入や、自然資産を裏付けにした通貨の発行をも可能にします。
利便性の提供
Address-Based Encryption

クリプトを決済手段として利用する際、最も障害となるのは公開鍵(≒ウォレットアドレス)の取り扱い方です。
送金する時は相手の公開鍵の取得、受領するときは自身で公開鍵・秘密鍵を作成しその告知をする必要があります。ENSなどのサービスはもちろん存在しますが、電話番号やメアドを使用できた方がもっと簡単になるはず。
Celoはアドレスベースの暗号方式"address-based encryption"によってこれを可能にします。ユーザーはメアドや電話番号を公開鍵と紐づけることが出来ます。
そのプロセスは以下の通り。
ユーザーが公開/秘密鍵を生成する
公開鍵を追記のみの分散化されたデータベースに登録する
[address → public key]
登録するデータの正当性は分散化されたP2Pネットワークによって証明される。

address-base encryptionはソーシャルペイメントのユースケースを考えた時2つの重要な特徴を提供します。
ユーザーは相手の電話番号を公開鍵として使用することでcelo通貨を友人に送金することが出来ます。加えて相手がceloのウォレットをダウンロードしていなくても送金することが出来ます。
validator nodeについて
単一のvalidator nodeによって直接アドレス(以下では電話番号を想定)を保存するデータベース運営はいくつかの問題を抱えています。課題と解決策を以下表で示します。

Celoでは上記の解決策を取り入れるとともに、分散化された複数のvalidator nodeによってデータベースの管理と承認を行なっています。単一ではなく複数での運営にすることで、nodeでの処理が失敗してしまうことに対して備えることが出来ます。
Aggregating Reputation Signal
電話番号などのアドレスが公開鍵と紐づけられることで、ユーザーが新しく取引を行う相手を信用して良いか判別する評価システムを構築することが可能になります。
具体的には、明確なシグナル(自身の連絡先に登録されているか)と暗黙的なシグナル(連絡先を知っている人と取引しているかどうか等)などを用いて論理的・機能的に分散化された信用のネットワークを作ることができると紹介されています。 CeloではEigenTrustの考え方を改良したものを信用システムの構築のために採用しています。
EigenTrustはグローバルな評価スコアを計算する分散型アルゴリズムです。この説明だけだと何を言っているか分かりません。
人々の評価はその人を評価している人がどれだけいるのかで決まる、というのが直感的な理解になります。 EigenTrustに関する日本語の記事はほとんどありませんでした。そのため今回はchatGPTに教えてもらいます。

Sybil攻撃に対処するため、本論文ではゼロ知識証明を導入しています。元来の方式と異なり、各ピア(ノード)が自分で計算を行い、正確に計算が行われたことをゼロ知識証明を用いて証明することで、プライバシーを保護しながら不正行為を防ぐ方法が提案されています。
また本来のEigenTrustアルゴリズムでは、Pre-Trusted Peersという、ネットワーク内で普遍的に信頼されるとされるピアのグループが存在します。これは、悪意のあるクリークを分断し、アルゴリズムの収束性と固有ベクトルの一意性を保証するために導入されています。
しかし、これにより普遍的に信頼されるピアを定義する必要があり、また、そのピアに過度な評価力が集中してしまいます。
そこで、パーソナライズされたPre-Trusted Peersを導入し、各ピアに対して個別の信頼スコアを計算する方法が提案されています。これにより、計算コストは増加しますが、計算を効率化する手法を適用することで実用上の問題にはならないとされています。
価値の安定化

Elastic Coin Supply and Shifting Volatility Risk
クリプト決済でもう一つ大きなハードルとなっているのが、通貨価格におけるボラティリティーの大きさです。
消費者・商人両者にとって、わざわざ変動幅が大きくリスクも高い通貨を決済手段として使いたくないでしょう。
またクリプト通貨は成功に伴ってデフレの性質を持ってしまうことも人々の行動に影響を及ぼします。通貨の価格が上昇すると、相対的に通貨建てで表示されているモノやサービスの価格が下がるからです。
ステーブルコインは上記の問題に悩まされている人々に対して多くのメリットを提供します。ボラティリティーを最小限に抑えることで、価値交換の媒体として機能し、給与や物価価格・負債などを当該通貨で表すだけでなく、金銭的契約全般を簡単に結びやすくするのです。
いくつかのプロトコルでは分散化されて安定化された価値を持つ通貨が提案されています。それらには共通して二つの特性があります。
決定論的な通貨供給ルールではなく弾力的な供給ルールを導入している
multi-asset ecologyを採用している
ビットコインのようにあらかじめ通貨発行量を規定するのではなく、外部の状況も加味しながら供給を行うことで、より柔軟な対応を取ることが出来ます。こちらは分かりやすいですが、multi-asset ecologyは少し説明が必要かと思います。
特定通貨の価格を安定化させるために、補完的なクリプトアセットに価格変動リスクを負担させる仕組みです。
(Celoの場合、CUSD, CGLDなどのステーブルコインの価格変動を安定化させるために、準備金(補完的なアセット)としてCELO等を使用しCELOの価格を変動させることで調整を行なっています。)
Celo protocolはこの仕組みを取り入れつつ、5つの新しい機能を持たせているとしています。

Shared Reserves
単一ではなく複数の通貨を導入することで、さらに利便性を高めることが出来ます。単一の通貨のみでは、ローカルでの取引をしたくてもグローバルの価格変動の影響を受けてしまい使いづらいからです。
celoではshared reservesというアイデアを導入して複数通貨の導入を可能にしています。
プロトコルが新しく通貨を導入する際、その準備金(reserve)はすでに導入している通貨のものと共有する仕組みです。
なぜ個別に準備金を用意しないのか。個別で管理した方がガバナンスの問題などが複雑にならずに済みそうです。
一方でこの簡便さはコストが伴います。新しいステーブルコインの導入は既存のコインを安定化させる効果はなく、むしろ不安定にさせてしまう可能性も伴ってきます。
そのため準備金を一元化することで、導入された全てのコインの安定化を図ろうとしているのです。
補足
Celo ProtocolはEthereumからフォークして構築されています。イーサリアムとの違いはEtherがERC20に準拠していない一方、Celoは準拠している点。
そのためCelo stable value asset(ステーブルコイン)とCelo native asset (リザーブとして用意されている資産、CELO)がDEXで可能になります。
ステーブルコインの価格はステークホルダー間にシェリングポイントスキームを適応します。 シェリングポイントとはゲーム理論の考え方の一つです。
シェリングポイント
コミュニケーション手段がない場合に、人々が採るであろう自然で特別で適切と思われる解決策
ガバナンスとインセンティブ
Celo Protocolにおける主要なインセンティブはブロック報酬の分配です。バリデーターを選出しシェリングポイントスキームに参加するまで、一連のプロセスのどこかに参加しプロトコルの維持に貢献したコントリビューターにリワードが分配されます。
CELOホルダーは上記に加えて二つの手段で収益を得る可能性があります。
CELOの需要が高まった時の値上がり益
リザーブの準備率が目標準備率より高い場合ブロック報酬の一部をホルダーに分配
一方CELOはステーブルコインではないのでリスクも負うことになります。
Improving the Protocol
最後にCelo Protoclの発展にユーザー側が寄与できる方法をいくつか紹介しています。
技術的な提案
celoでは保証金(bonded deposit)を預け入れることで誰でも技術的な提案を行うことが出来ます。
提案の可否は長期のステークホルダーの投票によって決定されます。
地域通貨の導入と準備金の拡大
新たなステーブルコインの導入とそれに伴う準備金の拡大はプロトコルの発展に寄与します。
新しくステーブルコインが適切に導入されれば、プロトコルの利便性増加・長期的なコイン需要の促進・全体的な需要変動の減少などを見込むことが出来ます。
将来の展望
予測市場を導入することもあり得ると本論では示唆しています。準備金の構成やステーブルコインのポートフォリオによって長期的な通貨の安定性が増加するのか減少するのかを検討します。
このマーケットは投票メカニズムとして機能させることも可能です。
分割された準備金
share reservesを使わず、独自の基軸通貨を準備金として新しい地域通貨を導入することも可能です。発行された地域通貨を地域住民に与えることで、社会的な配当を付与することも可能です。また地域での通貨採用が進むことで住民たちは利益を享受することが出来ます。
まとめ
Celo Protocolはソーシャルペイメントを可能にするL1プロトコル。
①address-based encryptionのよって電話番号やメールアドレスを公開鍵と紐付けて相手とのやり取りが可能になり
②reserve-backed stabilizationによって価格変動を抑えていることが大きな特徴でした。
さらにはaddress-baseによる評価システム、share reservesによって新しく発行する通貨にもstabilityを提供するところが独自性を生み出しています。