ニュース, ビジネス・ユースケース, ...

コミュニティが語るカルダノでの構築やeUTXO モデルの力について:並行性、ステート、そしてカルダノ

チャールズさんが、”まだ日が浅く、全く新しい技術ですが、これこそが成功の秘訣です。”とメッセージを添えて、”コミュニティがカルダノでの構築やeUTXO モデルの力について”書いているSundaeSwap Labsに掲載された記事「Concurrency, State, & Cardano.」を紹介しています。

この記事は”多くの評論家は、この議論を機に、カルダノを指摘し、問題点を誤魔化し、最終的には暗号業界の巨人の1人の可能性を過小評価している”とし、実際にカルダノでSundaeSwapプロジェクトの開発者が、ビットコインとイーサリアムの仕組みを説明しながらカルダノのeUTXOモデルについて解説しています。

SundaeSwapは、カルダノ・ブロックチェーンのために構築された分散型の取引所です。この取引所では、ブロックチェーンの参加者が流動性を提供し、他の参加者が自分のネイティブトークンを交換するための市場を作ることができます。その見返りとして、交換者は少額の手数料を支払い、流動性提供者は預託金の再回転を得ることができます。

関連記事:SundaeSwapがLiqwid Labsとのコラボレーションを発表:Liquid Nitrogen Ice Cream

以下はSundaeSwap Labsに掲載された記事「Concurrency, State, & Cardano.」を翻訳したものです。

並行性、ステート、そしてカルダノ

By SundaeSwap Labs 2021年9月6日

数ヶ月にわたる小規模なグループでのテストを経て、先日、カルダノのパブリックテストネットがスマートコントラクトをサポートするようにアップグレードされました。その後の活動の急増には、多くのdAppテストや実験が含まれており、開発者たちは大規模なテストを行い、自分たちの努力を誇示したいと考えていました。

多くの評論家は、この議論を機に、カルダノを指摘し、問題点を誤魔化し、最終的には暗号業界の巨人の1人の可能性を過小評価しています。カルダノはブロックごとに1つのトランザクションにしか対応していない、一度に1人のユーザーしかスマートコントラクトと対話できない、カルダノは最終的に中央集権化する運命にある、などの誤解が現在出回っています。これらはすべて不正確であり、私たちは以下に新しい枠組みと、dAppビルダーが選択する可能性のあるいくつかのソリューションの始まりを提示します。

SundaeSwapチームにとっては、提起されているより一般的な問題、特にカルダノがイーサリアムのアプローチではなくeUTXOモデルを選択するに至った設計上および会計上の決定、そしてこの選択がカルダノブロックチェーン上の並行性に与える影響について、意見を述べる良い機会だと思います。

この議論には多くの激しさが見られますが、私たちは冷静にいくつかの利点、欠点、誤解を探り、最後にいくつかの潜在的な解決策を提示したいと思います。この記事はここから先、かなり技術的な内容になりますが、最後に技術的ではないまとめ方をします。

システム設計の技術は、多くの場合、トレードオフの選択の技術です。しばしば、ソフトウェアエンジニアのキャリアの成長は、問題を解決するためにどれだけこのトレードオフを認識し、採用したかで判断することができます。カルダノ・コミュニティにいる私たちにとって、カルダノがどのようなトレードオフを選択したかを分析することは価値があり、比較するのに便利なポイントはイーサリアムです。

多くの人が、カルダノがeUTXOを選択したことで、プロトコルを移植する際に問題が生じる可能性があると指摘しています。これは確かにその通りで、私たちは何ヶ月も前のホワイトペーパーでこのことを示唆しました。同様に、IOGの教育担当ディレクターであるLars Brünjes氏もこのことについてツイートしており、他にも多くの人がツイートしています。

この決定の影響を十分に理解するために、いくつかの背景を説明しましょう。

歴史

ビットコインは、「使われていないトランザクションの出力」(UTXO)のリストを介してユーザーの資金を追跡するという概念を世界に広めました。ユーザー間の各取引は、いくつかのインプットを消費し、いくつかのアウトプットを生み出します。各アウトプットは、価値の束(一部のビットコイン)と、それを使用できる人の宣言を表します。

例えば、誰かが私に1ビットコインを送ってくれた場合、1ビットコインの出力を伴う取引が行われ、その所有者は私の公開鍵となります。そして、その入力を消費し、自分にその権利があることを証明し、新しい所有者で新しい出力を宣言したトランザクションを公開することで、誰かに1ビットコインを送ることができます。

これには多くの利点があります。

  • 検証が非常に簡単で安全である。価値が創造されているか破壊されているかが一目瞭然である。
  • ブロック内のトランザクションを並行して検証するのは非常に簡単です。各トランザクションの署名を別々のスレッドでチェックするだけです。
  • 非常に決定論的です。ユーザーがトランザクションを作成して送信するとき、ユーザーはトランザクションが承認された後に元帳の自分のセクションがどのように見えるべきかを明示的に宣言しています。

しかし、このようにローカルで単一の取引に関わることを重視すると、グローバルに関わるシステムを犠牲にすることになります。ビットコインはスマートコントラクトの導入に苦労しました。というのも、多くのアプリケーションは当然ながら何らかのグローバルな状態へのアクセスを求めているからです。

一方、イーサリアムでは、(グローバルな)アカウントの残高を記録することを選択しました。台帳の状態は、アドレスと残高のマッピングであり、単純なトランザクションは、ペアでアカウントの残高を増減させます。より複雑なトランザクションは、より複雑なことができ、独自のグローバルな状態にアクセスできます。例えばERC-20トークンは、このアカウンティングモデルを実装したスマートコントラクトであり、これらのトークンを鋳造、燃焼、転送するためのインターフェースを提供しているに過ぎません。
この2つの違いは、ポケットの中の現金と銀行口座の残高の違いに例えることができます。

これらのモデルでは、価格などのグローバル情報へのアクセスは些細なことです。しかし、この選択には多くの下流の負の副作用があります。

第一に、すべてのトランザクションは何らかの順序で処理されなければなりません。なぜなら、どのトランザクションが同じ状態の一部に触れようとするかを判断することは、不可能ではないにしても難しいからです。あるトランザクションが他のトランザクションと同時にアカウントの残高を更新した場合、トークンの破壊、二重支出などの厄介なバグが発生する可能性があります。

第二に、上記の結果として、トランザクションの順序が重要になり、根本的にはそれらのトランザクションを注文するエンティティに大きな力を与えることになります。これにより、Miner Extractable Value(MEV)やフロントランニングなどの望ましくない現象が発生します。

第三に、このモデルは基本的に決定論を犠牲にする必要があるため、より大きな信頼が求められます。トランザクションを構築してから送信するまでの間にブロックチェーンの状態が変化する可能性があるため、スマートコントラクトが実行される際には、たとえそれが意図したものではなくても、「あなたにとって最善の利益となること」を行うと信頼される必要があります。例えば、DEXは、価格がある大きな割合で動いた場合、あなたがもうその取引に興味がないことを知る必要があります。各スマートコントラクトが「正しい」不変量のすべてをチェックしていることを信頼する必要があるため、膨大な開発労力、バグの原因、ハッキングのための攻撃面の領域がここから生まれます。

主な問題は、イーサリアムがすべてのdAppに対してこのグローバル化する状態の選択をすることで、すべてのdAppが取引コストの増加、フロントランニングに対する脆弱性、追加の開発負担を被ることです。

議論の中でよく目にする3つの言葉は、「コンカレンシー(並行性)」、「パラレリズム」、「コンテンション」です。これは微妙な概念であり、これらの意味を漠然と理解している方のために、いくつかの定義を定めておきましょう。並行性」とは、複数のアクターがお互いに干渉することなく、1つのタスクを進行させる能力のこと。並列性とは、複数のアクターがお互いに干渉することなく、同時にタスクを進行させる能力のことです。競合とは、複数のアクターが実際にお互いに干渉することです。

これを理解するために、キッチンにいるシェフを例えにしてみましょう。一人の熟練したシェフは、一度に複数の料理を作ることができ、適切なタイミングで料理を切り替えることができます。このシェフはコンカレント性が高い。複数のシェフは、それぞれのワークステーションで異なる料理を作ることができます。このシェフは「高度な並列性」を持っています。しかし、うまく運営されているキッチンでは、多くのシェフが多くの料理を一緒に作り、同時並行的に作業を進めることができます。もし、共通の食材を手にするときに、シェフ同士がぶつかってしまうようなことがあれば、それは突然の「競合」です。

Introduction to Concurrency in Programming Languages」の図を参考にしています。

この議論の文脈では、Ethereumは同時実行が得意ですが、並列処理は苦手です。UTXOモデルは並列性に優れていますが、一部のプロトコル設計では競合が発生し、同時性に乏しいものになる可能性があります。

カルダノとeUTXO

最後に、カルダノについてお話します。カルダノは、UTXOモデルを改良して、dApps自身が独立した運営と集中化の間のトレードオフを行えるようにすることを選択しました。カルダノが研究を主導したeUTXOモデルは、スマートコントラクトに3つの新しいプリミティブを導入しています。データム(datum)、リディーマー(redeemer)、バリデーター(validator)です。

データムは、1つのUTXOに付随する任意のデータです。これは、そのUTXOに関連する内部状態の一部を表します。たとえば、権利確定契約のロック解除時刻や返送先を追跡するために使用することができます。

リディーマーは、複数の選択肢がある場合に、何をすべきかを示す信号を表します。例えば、権利化されたトークンを償還するのか、それとも権利化の条件が破られたのでクローバックを行使するのかを表すのに使用できます。

最後に、バリデータは、新しい状態が正しいかどうかの検証を含め、UTXOを使用できる条件を表します。バリデーターは、その判断を下すためにトランザクション全体にアクセスできます。

スマートコントラクトが依存できる唯一の状態は、入力として含まれる状態の断片であり、スマートコントラクトが生成できる唯一の状態は、トランザクションの出力として宣言されたものです。

カルダノのトランザクションは、依存関係によって部分的に順序付けられており、ステークプールのオペレータが順序を変更しても結果には影響しないため、MEVは消滅します。

同様に、すべてのカルダノ取引は決定論的である。ユーザーは世界の新しい状態を構築し、宣言し、サインオフする。状態を変更する唯一の方法はUTXOを消費することであり、UTXOは一度しか消費できないため、自分の下から状態が変わってしまうことを防ぐことができます。

多くの目的やプロトコルにおいて、これは信じられないほどの価値を構築するのに十分です。例えば、権利確定契約は、グローバルな状態へのアクセスを必要としません。アリスのトークンがベスト化契約によってロックされたUTXOに置かれているという事実は、ボブのトークンが同じベスト化契約によってロックされた別のUTXOに置かれているという事実とは無関係です。

しかし、一部のプロトコルは、グローバルな状態から切り離すのがはるかに困難です。例えば、UniswapのようなDEXは、基本的には資本効率のために流動性をプールし、2つのトークン間の為替レートの単一の統一されたビューを作成することに依存しています。

多くの人がこのグローバルな状態にアクセスする必要があり、その状態が1つのUTXOのデータに保存されている場合、ユーザー間でそのUTXOを最初に使うための競争が発生します。誰かがその競争に勝つたびに、他の人々は振り出しに戻る。新しいUTXOを見つけ、新しいトランザクションを構築し、それを送信しなければならない。

トランザクションが前のブロックのUTXOのみを参照するように制限されていても、ブロック内で連鎖できるようになっていても、この基本的な争いはプロトコルのユーザー体験とスループットに深刻な課題をもたらします。

したがって、プロトコルを設計する際には、巧妙なエンジニアリングが必要となります。

誤解

解決策を語る前に、この問題に関するいくつかの誤解に触れておきましょう。

誤解1:Cardanoはブロックごとに1回の取引しかできないので、欠陥がある。

実際には全く逆です。Cardanoは1ブロックあたり何百ものトランザクションを可能にします。
むしろ、Cardanoは1つのトランザクションで1つのトランザクション出力を1回だけ使えるようにしているというのが正確で、複数の人が同じUTXOにアクセスできるようなプロトコルはコンテンションの問題に直面する可能性があります。

誤解2:ブロック/トランザクションごとにスマートコントラクトと対話できるユーザーは1人だけ。

これも事実ではありません。争点はUTXOの周りにありますが、多くのUTXOが同じスマートコントラクトによって管理される可能性があります。

これは根本的に、スマートコントラクトを呼び出して何かをさせるEthereumと、アウトプットをコントラクトでロックし、それが後にいつ使われるかを決めるCardanoとの考え方の違いに起因しています。

誤解3:中央集権でしか解決できない。

中央集権はこの問題を解決する方法の一つではありますが、唯一の方法ではありません。以下をご覧ください。

潜在的なソリューション

現在、この問題に対する解決策は2つのカテゴリーに分かれているように見えます。それは、状態の細分化を許容するようにプロトコルを設計するか、その状態とのインタラクションを集約するかです。

これらの解決策のいくつかを検討するために、いくつかの仮想的なDEXを設計してみましょう。

単一の流動性プールを必要としないようにDEXを設計することもできます。その代わりに、流動性をいくつかのプールに分割し、分割すればするほど、人々が交流するためのポートが増え、資金をめぐる争いも少なくなります。しかし、プールが分断されればされるほど、資本効率は低下し、クロスプール・アービトラージによって失われる価値も大きくなります。そこで、これらの問題を解決するためのソリューションを設計するのが、賢いやり方だと思います。例えば、Uniswap v3スタイルの集中的な流動性です。

あるいは、Ethereumでは維持・更新に悲惨なほどのコストがかかる取引所のオーダーブックモデルの方が、基本的にはCardanoに適していると思われます:各オーダーは個別のUTXOです。各注文は個別のUTXOです。しかし、厄介なのは、現在の価格に最も近い注文、つまり砂の山が出会うところで、まだ争いがあるということです。実現可能なソリューションは、チェーン上にマーケットオーダーを表示し、サードパーティのアグリゲーターがこれらのオーダーをマッチングして実行することです。巧妙なのは、仲買人が市場に対して過剰な力を持たないようにすることです。

最後に、ハイブリッドな取引所を作ることもできます。資金のカストディは分散化されてブロックチェーンに保存されますが、マーケットメイキングやマッチングは中央のバックエンドサーバーを介して行われます。これはエンジニアリングの問題を解決するものですが、規制の厳しい証券会社のディーラーになる可能性が高く、それなりの課題があります。

SundaeSwapのソリューション

私たちは上記とは異なるソリューションを選択しました。まもなく、その仕組みを明らかにする準備が整います。最近の議論の性質上、私たちは領収書を発行したいと考えています。現在、私たちのスケーリングソリューションがどれだけの課題に対応しているかを実証するためのロードテストを準備しています。今後の情報にご期待ください。

まとめ

要するに、カルダノの死の噂はかなり誇張されている。今日見られる問題に対する解決策があり、カルダノが設計された方法にはメリットがあり、明るい未来と激しい設計の発見段階の両方が待ち受けています。

この業界では、多くの人々が、しばしば著名な声を持ちながら、1つの技術に対して最大主義者であるという不健全な側面があります。これは、金銭的な利益を得るために、どちらかが他方に勝つことを望んでいるのかもしれませんし、他のすべてのプロジェクトを犠牲にして、1つのプロジェクトだけに突っ走ってしまい、後に引けなくなってしまったのかもしれませんし、他のコミュニティのメンバーとの交流がうまくいかずに嫌な思いをしているだけかもしれません。いずれにしても、私たちのコミュニティの中で、Bitcoin、Ethereum、Cardano、Solana、Mac、PC、Hammer、Screwdrivers、その他多くのツールの選択肢の中で、あるプロジェクトがすべての答えを持っていて、あらゆる面で優れていると主張する立場にいることは、あまり健全ではありません。

私たちのチームには、カルダノ・マキシマリズムはありません。私たちは、確かにカルダノは難しい問題に対して面白い解決策を持っているし、トレードオフや優先順位の付け方を変えて、暗号のエコシステムに新しい機会を生み出していると信じています。私たちは、その上に製品を構築するに足るだけの信頼を寄せています。長期的には、暗号空間の構築者として、エンドユーザーはどのブロックチェーンと対話しているかを気にしないだろうと考えています。私たちが考える理想的な最終状態は、ブロックチェーンがプログラミング言語のようになり、プロジェクトごとに、自分たちのプロトコルを世に出すために必要な力に合わせて異なるチェーンを選択し、エンドユーザーは何も気にしなくなることです。

だから、これがカルダノの死だと主張する人たちには、「ありえない」と言いたい。エコシステムの最も初期の段階で行われた1つの不安定な実験を指摘して、それをカルダノの没落の致命的な前兆とするのは、よく言えば時期尚早のナイーブさ、悪く言えば知的不誠実さです。私たちは、いくつかの創造的な解決策を上記に示しましたが、カルダノの上に構築されている人々は、他にも多くのことを考え出しているはずです。

お問い合わせ

Contact Us
SIPOのステーキングサービス、Cardano ADA、ADAの購入方法から保管方法についてご興味、ご質問がある方はこちらのフォームからお問い合わせください。24時間以内にメールにてご返信いたします。