ブログ > 2021 > November > ネットワークトラフィックと階層的価格設定

ネットワークトラフィックと階層的価格設定

分散型金融でCardanoの需要が高まり続ける中、研究プロジェクトはそれぞれのユーザーにとって公正なアクセスとスループットを維持する方法に注目

2021年 11月 26日 Philip Lazos 8 分で読めます

ネットワークトラフィックと階層的価格設定

最近のブログ記事で、スマートコントラクトとDeFiに対するグローバルな需要を満たすために、Cardanoネットワークを柔軟に進化させる方法を紹介しました。同様に、Cardanoで使用するトランザクション手数料のシステムをアップグレードすることも必要になります。

現行のシステムは単純かつ公正です。すべてのトランザクションは同等に処理され、ユーザーがより高額な手数料を支払って優先順位を変えたりできません。スループット容量が需要に見合っている限り、このアプローチはうまく機能します。

しかし、欠点もあります。Cardanoの使用が増えれば、パラメーターの調整をもってしても、やがてはブロックチェーンにすべてのトランザクションを含むことができなくなる時がきます。メインチェーンの容量を増やしたり、Hydraやその他のレイヤー2ソリューションにトランザクションを振り分けることによってこの懸念を緩和することはできますが、それでもコアシステムは常に、起こりうるすべてのケースでアジャイルに機能できなければなりません。

これは特にサービス拒否(DoS)攻撃にかかわってきます。現状のシステムでは、攻撃者は公正に処理されることを悪用して、ほかの人々の待機時間を増加させながら、自分たちの悪質なスパムを合法的なトランザクションとして通過させることができます。このような攻撃を技術的に難しいものにする方策も取られています(P2Pネットワークを介したトランザクション伝播関連)が、さらに保護を強化するために、システム全体の公正性と価格効率を損なうことなく、このような攻撃のコストを上げられるようにしたいと考えています。

これは、今年IOグループの研究チームが注目してきたトピックです。この結果として本稿で提案するアプローチは、Cardanoトランザクション処理の柱(予測可能性、公正性、高額でないアクセス)を維持する一方で、より大きな需要から生じる問題を軽減するもので、ブロックチェーンの新たなトランザクション手数料メカニズムを実現します。設計のカギは、ユースケースに応じて各ブロックを3つの「層」に分割している点です。各層はトランザクションのタイプ別に、最大ブロックサイズのパーセンテージで設定されています(図1)。層は、現在分析している分割案に応じて以下のように設定されています。

  • フェア(50%)
  • バランス(30%)
  • 即時(20%)

図1:各ブロックは3層に分割される

フェア層については他の2つとは異なる機能を果たすため、最後に説明します。バランス層と即時層は、それぞれ異なる「手数料閾値」を持つことによって機能します。トランザクション発行者は、ブロックに含ませるために、必要とする層を特定します。具体的には、トランザクションの最大手数料を設定します。その後、各ブロックは即時、バランス、最後にフェアの順に埋められていきます。同層内の類似したトランザクションは、同じ手数料になります。この選択をシンプルにするために、各トランザクションには、ブロックへの追加を保証する最低料金だけがチャージされます。各ブロックの生成後に、即時層とバランス層の料金は(以前のブロックの需要レベルを反映して)動的かつ決定的に更新され、各セグメントが確実に対象とするブロックのパーセンテージを使用するようにします。

即時層とバランス層の違いは、手数料の更新方法、特に、現在の負荷を考慮して調整する「速度」にあります。即時サービスの閾値は常にバランス層よりも高く、需要により鋭く反応し、これを求めるトランザクションができるだけ早く処理されるようにします。バランス層の閾値は、適用は遅めになりますがより安定しています。これは、時間の制約のあるトランザクションには不向きですが、より幅の広い待機時間によって、低めでより安定した価格を提供します。

バランス層と即時層が緊急性レベルに応じてトランザクションを処理する一方、フェア層は通常のトランザクションを処理します。フェアセグメントはCardanoの既存システムの改良型として機能するよう意図されたもので、手数料を低く維持し(またはステーブルフィーの記事で説明したように、将来的には商品または法定通貨バスケットにペッグすることにより安定化させ)、ユーザーの観点からあらゆる予測不可能性を排除します。需要が低い限り(そして、トランザクションがブロックの半分に収まる限り)、このセグメントは現在Cardanoが実践しているように機能します。

しかし、いったん需要が高まると、フェア層のトランザクションに特別なメカニズムが適用されます。このメカニズムは、優先順位付け機能に基づき、手数料とは独立した方法でトランザクションをフィルタリングします。この一例は、UTXOの古さと額に応じてトランザクションに優先順位をつけるというものです。特に、所与のトランザクションの優先度は、経過時間をかけた各インプットの合計を、トランザクションの合計サイズ(バイト単位)で割ったものと等しくなります。この優先度は優先度が低すぎるトランザクションをフィルタリングする閾値(各ブロックの後に動的に更新される)と併せて使用することができます。このようなアプローチにより、予測可能な低価格で各トランザクションの活性を保証し、常に高額ではない方法を各ブロックに提供することによって、悪質な攻撃者(または需要の急増)が価格に及ぼす影響を制限します。

ここで紹介されている階層的価格設定は、ステーブルフィーの記事で紹介した乗数のコンセプトを拡張し、明確にしています。このようにみると、3つの各層は決定的に計算された乗数(フェア層は常に乗数1)に関連付けられ、その価値は以前のブロックの各層の輻輳に依存します。

このメカニズムは、ビットコインやイーサリアムで使用されている、現在の価格設定アプローチとは異なります(イーサリアム改善提案1559を含む)。ここには変動料金が存在し、各トランザクションがブロックに含まれるようにするためにはこれを超えなければなりません。このアプローチの欠点は、誰もが支払う必要のある料金が、「もっとも富裕な」顧客により決定されることです。さらに悪いことに、これは、「即座に」ブロックに含むためにもっとも富裕な顧客によって支払われる料金です。加えて、料金は主に需要と供給の関数ですが、この特定のタイプのトランザクション手数料メカニズムは、最適な入札戦略がユーザーに明確でないために、無頓着に需要を「形成」し、無頓着に価格を高騰させます。ビットコインのトランザクション手数料が突然半額になり、誰も以前いくらだったか覚えていないとしたら、それでも今のレベルを上げようとするでしょうか。この質問に「いいえ」と答えることは、このようなメカニズムの欠点を描き出しており、階層的価格設定が排除しようとしている危うい状況を示しています。

階層的アプローチはより洗練されています。すべてのトランザクションに同じニーズがあるわけではないことを理解し、さまざまなユースケースが同時に起こりうることを保証し、ユーザーが望みのサービスタイプを簡単に選べるようにします。この方法で、階層的価格設定は、メインチェーンの混雑時を管理しながら、予測可能で公正な料金設定を可能にします。今後の投稿で紹介される、メインチェーンのロースループット容量と処理パワーに焦点を当てた設計改良点と組み合わせて、階層的価格設定は、Cardanoがトランザクション処理の需要のあらゆる状況にいかに対応できるかを示しています。

本稿執筆にあたり、Giorgos Panagiotakos、Aggelos Kiayias、Elias Koutsoupiasの諸氏にご協力いただきました。私たちは研究グループでこのメカニズムの設計に取り組んでいます。テクニカルペーパーはまもなく公開されます。