ドーマーとの対話:ポリマーケットNo.1トレーダーからの戦略とアドバイス
インタビューでは、ドーマーが自身のプロとしての経歴、予測市場における取引の枠組み、取引の心理について語っている。
JinseFinanceソース: denchain コミュニティ
このブログ記事では、EigenLayer プロトコルの進化を紹介し、EigenLayer アーキテクチャが元のコンセプトからどのように生まれたかを説明します。
このブログはDavid PhilipsonのAccount Abstraction Series[5]にインスパイアされました。この記事に対するコメントやフィードバックをくれたNoam Horowitz[6]、Shiva[7]、NashQ[8]、Mike Neuder[9]、Sina[10]のコミュニティに感謝する。
再スタートやEigenLayerという用語は多くの人が知っていますが、私たちのコア契約には何千行ものコード[11]が含まれ、以下のように設計されていることを知っている人はごく少数です。
EigenLayer簡易アーキテクチャ
このブログポストでは、EigenLayerの現在の複雑なアーキテクチャが元のコンセプトからどのように生まれたかを説明することで、プロトコルの進化を紹介します。
この記事の対象読者は、スマートコントラクトの基本的な理解があり、EigenLayerやrestakingについて聞いたことがある人です。
このブログ記事の目的はEigenLayerのデザインの進化についてハイレベルな説明を提供することなので、インターフェース、変数、ロジックは現在のEigenLayerのコア契約[12]とは異なるかもしれません。
さあ、始めましょう。
まず、EigenLayerが解決しようとしている問題の紹介から始めよう。この部分についてはすでにご存知の方は、後のセクションは読み飛ばしてください。
イーサ上で分散型インフラを構築する開発者は、自身の経済的安全性を確立するという課題に直面しています。イーサはスマートコントラクトプロトコルの経済的セキュリティを提供しますが、ブリッジやシーケンサーのようなインフラは、ノードの分散ネットワークがコンセンサスに到達できるようにするために、独自の経済的セキュリティを必要とします。
コンセンサスメカニズムは、L1であれ、捕食者のネットワークであれ、ブリッジであれ、これらのノード間の相互作用を促進するために重要です。
プルーフ・オブ・ワーク[13]はパワーを必要とし、プルーフ・オブ・オーソリティ[14]は中央集権的すぎるため、プルーフ・オブ・ステーク[15](PoS)がほとんどのインフラプロジェクトのプライマリコンセンサスメカニズムとなっている。コンセンサス・メカニズムは、ほとんどのインフラ・プロジェクトで採用されている。
しかし、新しいPoSネットワークを始めるのは難しい。
まず、誓約者(誓約を提供する人)がどこにいるのかを特定するのが難しい。開発者が誓約者を見つける良い場所がないのです。
第二に、プレッジャーは新しいネットワークのプレッジを得るために多額の資金を投資しなければなりません。
第三に、プレッジャーは、イーサが提供する5%の報酬など、他の報酬の機会を見送らなければなりません。
最後に、現在のセキュリティモデルは最適とは言えない。
今のところ、インフラプロジェクトに関わる誓約者は、オフラインソフトウェアを安全に運用する責任も負っていると仮定しましょう。しかし、この前提は記事の後半で変更します。
EigenLayerはこれらの問題に対処するために作られました:
プレッジャーは経済的な安全性を提供するために任意のトークンを使用することができます。
プレッジャーは元のプレッジを破棄し、ネイティブのイーサ報酬を受け取りながら他のインフラのセキュリティに貢献することを選択できます。
再誓約することで、EigenLayerはセキュリティを分散(断片化)させるのではなく、一つにまとめることができます。
EigenLayerのホワイトペーパー[16]はこれらの問題を掘り下げています。
EigenLayerは経済的保障を提供するというコンセプトを一般化しています。
EigenLayerは、誓約者があらゆるインフラプロジェクトに誓約を提供できるプラットフォームです。EigenLayerは、EigenLayer上の潜在的な誓約者にインフラプロジェクトを提案できるプラットフォームです。プラットフォームのバックボーンは、誓約者が様々なインフラに対して信頼できる誓約を行えるようにすることです。
これらの約束は、EigenLayerだけでなく、すべての利益証明システムに適用されます。L1 誓約者は通常、プロトコルのルールに従うことを約束し、同じブロックの高さで競合するブロックに署名した場合、誓約を失うリスクがあります。
インフラ開発者はインフラのロジックとソフトウェアを構築し、誓約者はインフラを保護するための誓約を提供する。この誓約は、インフラの利用者に対するコミットメントとして提供されます。この誓約は、プロトコルの円滑な運用と、特定の不正行為に対するものです。
概念的に、あるプロジェクトが1億ドルの誓約によって支えられている場合、これは、そのプロジェクトが約束から逸脱して悪意のある振る舞いを見せた場合、_その1億ドルの一部がカットされることを意味します。簡単に言えば、「カット」は資金を破棄すると解釈できる。
数字が高ければ高いほど、利用者に安全と安心を提供することになる。
誓約者が様々な約束に誓約を割り当てることができるようにすれば、その上にユーザーフレンドリーなプラットフォームを作ることができる。
私たちは、さまざまな誓約者のコミットメントを強制するために、信頼できるプログラム可能なプラットフォームが必要であり、イーサは完璧に適合します。さらに、イーサは最大の誓約を保持しており、誓約者市場を飛躍させるのに役立ちます。
ここでの目標は、誓約者がEigenLayerを介してEther上のブリッジプロトコルのセキュリティを提供できるようにすることです。もし誓約者が悪意を持ってEther上のメッセージを偽造し、それをGnosisに送信した場合、誰でも証拠を提出し、その誓約者を切り捨てることができます。
誓約と約束の執行はイーサ上で行われるため、カットのロジックもイーサのスマートコントラクトとして実装されています。誓約者が約束を破った場合、誰でもカットコントラクトに証拠を提供し、悪意のある誓約者から誓約を没収することができます。
これがEigenLayerの基礎を形成しています - どんな誓約者も、どんなインフラプロトコルに対しても信頼できる誓約を行うことができます。
さて、これを実装してみよう。最も単純な設計から始めよう。誓約者は、証拠が提示され、基準が満たされたときに誓約者のトークンをカットできる機能を含む契約にトークンを誓約する。その後、ユーザーは残高を引き出すことができる。
他の誓約者もこのコントラクトにトークンを誓約することができ、インフラのセキュリティを高めることができる。このコントラクトをTokenPool
と呼ぶことにする。
わかりやすくするために、この記事で使われている用語の定義を以下に示します:
誓約者: 誓約を行う人: 誓約を行う人。本人:EigenLayerにトークンを提供する人。
トークン: トークンの種類は問いません。
TokenPool: 誓約者のトークンを保持するスマートコントラクト。
Reduce:誓約者のアクセスを削除する。アクセス権を削除する。
このは、:誓約者のアクセスを削除します。この
TokenPool
インターフェイスは次のように表すことができます:
function stake(uint256 amount) public;
 ;function withdraw() public;
function enroll(address slasher) onlyOwner;
}
stake
、withdraw
、balance
の関数と変数に加えて、新しい関数と変数を導入しました。変数slasher
は、各誓約者の現在登録されているAVSを監視し、関数enroll
は、誓約者がAVSに参加することを可能にします
つまり、AVSに登録することは、実際に「カッター」にあなたの誓約をカットする能力を与えることになります。つまり、AVSに登録することで、"裁断者 "はあなたの誓約書を裁断することができるようになるのです。
この変更により、TokenPool
に誓約した後、誓約者はenroll
関数を呼び出すことで、特定のAVSに参加することができます。slasherのマッピングが含まれています。
ここでのenroll関数はアクセス制御の対象となります。このTokenPoolが安全に管理されるように、信頼できるサードパーティが監督しているものとします。
引き出しプロセスの間、TokenPool
契約は、各slasher
に、誓約者が引き出す資格があるかどうかを判断するよう求めることができます。これは、slasher
コントラクト内のisSlasher
関数を通して検証される。もしisSlashed
がTRUE
であれば、誓約者は誓約を破棄されたことになり、誓約を撤回することはできません。
契約TokenPool {
mapping(アドレス => uint256) public stakerBalance;
mapping(アドレス => uint256) public operatorBalance;
mapping(アドレス => アドレス) public delegation;
mapping(アドレス => アドレス) public delegation;
 nbsp;mapping(address => address[]) public slasher;
function stake(uint256 amount) public;
functionwithdraw() public;
function delegateTo(address operator) public;
function enroll(address slasher)operatorOnly;
function exit(address slasher) operatorOnly;
}
私たちはBalance変数を2つの異なる部分に分けました。さらに、delegation
マッピングを導入し、質権者とオペレーターの間の委任関係を記録しています。
また、slasher
マッピングにも小さな変更を加えました。これにより、slasher
契約が、誓約者の代わりにオペレーターの権限を削減するために付与されるようになりました。
function withdraw() public;
}
TokenPool
契約は、各誓約の残高のみを追跡します。AVSのトラッキングと参加はDelegationManager
によって処理されます。
contract slasher {
mapping (address => bool) isSlashed;
function slash(address operator, ???????????);
function slash(address operator, ? proof);
}
コントラクトの構造を整理し、各コンポーネントをモジュール化した結果、アーキテクチャは次のようになりました:
EigenLayer中間設計:Operatorの役割をPledgeeの役割から分離した後。
これまでのところ、私たちは1つのトークンのみを維持するため、1つのトークンのプレッジをサポートするデザインを開発しました。1つのマッピングを維持します。
LPシェアに基づくモデルを採用し、トークン固有のTokenPools
を作成することで、これを回避することができます。
これを行うために、TokenManager
という新しいコントラクトを作成します。TokenManager
は、プレッジャーがトークンをプレッジしたり引き出したりする場所になります。
TokenManager
の下で、各トークンはTokenPool
を持ちます。TokenManager
はすべてのトークンのための帳簿センターとして機能します。各 TokenPool
は対応するトークンを保持します。
新しいコンポーネントは、プレジャーのさまざまなトークンを追跡するように設計されています。トークンを追跡するように設計された新しいコンポーネントです。
ユーザーがトークンを誓約するとき、それはTokenManager
によって処理されます。TokenManager
は次に、そのトークンに関連付けられた対応するTokenPool
のstake
関数を呼び出します。ユーザのトークンはTokenPool
に転送されます。関数の最後で、totalShares
とstakerPoolShares
は新しい誓約を反映するように更新されます。totalShares
は、TokenPool
によって発行された株式の総数を追跡し、stakerPoolShares
は、各TokenPool
内の個々の誓約者によって保有された株式数を記録します。
各契約のインターフェイスは以下のようになります:
contract DelegationManager {
// ...
mapping(address => mapping(address => uint256)) operatorPoolShares;
// ....
}
さて、同じコアアーキテクチャで、誓約者は他のAVSを保護するためにEigenLayerに任意のトークンを誓約することができます
次のシナリオを考えてみましょう。資産を切り崩す。
_例えば_、AVSで悪意を持って行動している、オペレーターであり質権者でもあるオペレーターがいるとします。そのオペレーターは、他の誰かがチェーンを切断する前に、EigenLayerの契約から誓約を撤回します。これが可能なのは、引き出しの時点ではslasher
が自分の資産をカットするために更新されていないからです。その結果、カットできるトークンがなくなったため、AVSは悪意のあるオペレーター/プレッジホルダーをカットすることができなくなりました。
悪意のあるオペレーター/プレッジホルダーのイベントのタイムラインの可能性。
したがって、「安全な」AVSには、イベントが発生したブロックで不正なオペレーターをフリーズさせる契約削減が必要です。この制限は AVS の設計を大きく制限し、ほとんどの AVS を安全でなくします。
一つの解決策は、拘束解除期間を導入することです。誓約者がすぐに誓約を撤回できるようにする代わりに、アンバンドル期間と呼ばれる撤回プロセスの遅延を導入します。その後、誓約者は以前と同じように撤回できる。
誓約者がシステムからの脱退を決定すると、その要求はキューに入れられます。このキューに入れられた脱退は、事業者の最長のアンバンドリング期間が満了した後にのみ処理される。これは、オペレーターは複数のAVSを管理することができますが、プレジデントの引き出しは1つのアンバンドリング期間にしか合わせることができないためです。セキュリティ上の理由から、システムはアンバンドル期間を最も長いものに設定します。
例えば、あるプレジェンシーが、アンバンドル期間が6日、5日、7日の3つのAVSに参加しているオペレーターにプレッジを委任した場合、EigenLayerに引き出しをリクエストした後、プレッジにアクセスするには7日間待たなければなりません。これは7日間が3つの期間の中で最も長いためです。
7日間の期間が終了すると、質権者は出金することができます。しかし、この期間中に委任されたオペレーターが削減された場合、保留中の引き出しも停止される。
この変更を導入するために、DelegationManager
は各オペレーターのアンバンドリング期間を追跡し、オペレーターが新しいAVSに追加されたときに更新する必要があります。
contract TokenManager {
?
mapping(address => address) public tokenPoolRegistry;
mapping(address => mapping(address => uint256)) public stakerPoolShares;
mapping(address => uint256) public withdrawalCompleteTime;
function stakeToPool(address pool, uint256 amount) public;
function queueWithdrawal(address pool) public;
function completeWithdrawal(address pool) public;
}
質権者が引き出しのためにキューに入っている間、TokenManager
は、DelegationManager
と、質権者によって委任されたオペレータがスラッシュされていないことを確認します。TokenManagerは、DelegationManager
のunbondingPeriod
と現在時刻に基づいて、質権設定者のwithdrawalCompleteTime
を更新します。
期間をアンボンドした後、質権者はcompleteWithdrawal
で引き出しを完了することができます。この関数は、withdrawalCompleteTime
が期限切れになったかどうかを確認します。もし期限切れであれば、その誓約者のトークンは前のプロセスに従って送金されます。
このプロセスの設計は複雑で、私たちのプロセスでは何度か繰り返してきました。このトピックについては別の記事を書くこともできます!現在、私たちはこのアンバンドリングのトラッキングを実施するためにタイムトラッキングシステムを使用しています。この部分はまだ進行中です!
スラッシュ機構をより安全にするのですから、よりモジュール式で効率的なものにしてみましょう。
現在、抽出プロセスの間、TokenManager
は個々のslasher
にオペレータがスラッシュされたかどうかを確認する必要があります。これは誓約者のガス・オーバーヘッドを追加し、小規模な誓約者の報酬を大幅に減らすかもしれません。
さらに、AVS 開発者はスラッシャーを設計することが多いため、この特定のコンポーネントをモジュール化することで、個々の AVS の開発プロセスを簡素化できます。
TokenManager
と同様に、スラッシュ機構は2つの部分から構成されます。SlasherManager
は各演算子の状態を保持します。別のslasher
が各AVSのスラッシュ・ロジックを処理する。
誓約者のガス代を減らすために、スラッシュ契約をさらにモジュール化します。
スラッシュ契約をさらにモジュール化し、誓約者のガス料金を削減する。 function slash(address operator, ?????) public;
}
slasher
は AVS 固有のもので、おそらく AVS の開発者によって開発されるでしょう。これは、SlasherManager
と相互作用して、異なるオペレータのステータスを更新します。
まとめ:EigenLayerのゴールはインフラ構築を簡素化することだ。
誓約者とインフラ開発者をつなぐプラットフォームを構築する。
誓約者が経済的安定を提供するために任意のトークンを使用できるようにする。
他のインフラのセキュリティを提供しながら、誓約者が誓約を再誓約し、ネイティブETH報酬を獲得できるようにする。
分散化するのではなく、再プレッジすることでセキュリティをプールします。
数回の繰り返しの後、私たちはTokenManager
、DelegationManager
、SecurityManager
という3つのコアコンポーネントを開発しました。code>、そしてSlasherManager
である。
EigenLayerの簡易アーキテクチャEigenLayerの簡易アーキテクチャ
TokenManager
: 誓約者からの誓約と引き出しを処理します。
DelegationManager
: オペレーターの登録とオペレーターシェアの追跡を可能にします。
SlasherManager
: AVS開発者がスラッシュロジックを決定するためのインターフェースを提供します。
これらのコアコンポーネントはまた、システム全体のセキュリティを確保するために互いに通信します。
これらのコア・コントラクトに加えて、スタック全体を強化する他の多くの機能とコントラクトがあります。これらのアドオンは幅広いAVS設計をサポートし、オフラインの技術的な複雑さを簡素化し、ユーザーとオペレーターのガスコストを削減します。
これらの追加機能の詳細については、https://github.com/Layr-Labs/eigenlayer-contracts
プロトコルの参加者間の信頼の仮定を追跡することは、システムがモジュール化されている場合、困難な場合があります。したがって、プロトコルに関与する参加者間の信頼の前提を明確に概説することが重要です。
EigenLayerでは、誓約者、オペレーター、AVS開発者という3つの主なエージェントが存在します。
オペレーターはAVS開発者がクライアントソフトウェアとオンチェーンのスラッシュ条件を正確に書いてくれることを頼りにしています。もしAVSソフトウェアにバグがあれば、よくても、オペレーターは潜在的な手数料の支払いを見逃してしまうかもしれません。最悪の場合、オペレーターは結果としてスラッシュによって完全に誓約されてしまうかもしれません。
危機に瀕している価値の重要性を考えると、稼働前にシステム全体が補助輪を備えていることを確認することが重要です。
拒否権委員会は、この補助輪の役割を果たす。この委員会には、悪意のない行動によるスラッシュを取り消す権限があり、拒否権委員会は、誓約者、運営者、AVS開発者の間の相互信頼当事者です。
そして、AVS開発者に対する信頼の前提を取り除くことができる。たとえAVSにソフトウェアのバグがあったとしても、誓約者とオペレーターにペナルティはありません。
プリンシパルは委託したオペレーターを信頼している。もしオペレーターが悪さをすれば、誓約者は手数料の支払いを逃すか、あるいは誓約全体を失う可能性さえあります。この信頼の前提は、Coin Pledgeや他の誓約サービスのような既存の検証サービスと同じです。
AVSの開発者は、運営者が誠実に運営することに依存しています。もし運営者が不誠実であれば、AVSのサービスは著しく低下し、顧客離れやその他の結果につながるでしょう。
拒否権委員会を通じて参加者の間で、信頼の前提は次のようになっています:
プレッジゲーター。
AVSの開発者は、AVSソフトウェアに対して正直に行動するオペレーターを信頼しています。
誓約者、オペレーター、そしてAVS開発者は、拒否権発動委員会がスラッシュを取り消すことを信頼しています
これまで、LSTを使った再テイクについて説明してきました。
ネイティブ再誓約を定義しましょう:バリデータ内のETHを使って追加誓約を行うプロセスです。
ここでの課題は、バリデータ内のETHがERC20トークンの形で表現されていないことです。代わりに、ETHはビーコンチェーン上に存在します。実行レイヤーやコンセンサスレイヤー(ビーコンチェーン)についてよく知らない場合は、この説明[17]がスピードアップするための素晴らしいリソースです。
これを回避するには、EigenPod
を使ってイーサリアムバリデータの残高を追跡し、必要であればそれを削減します。
EigenPod
は仮想簿記システムとして機能します。EigenPod
を使えば、各リプレッジバリデータのETH残高を監視することができます。
高いレベルでは、EigenPods
はバリデータの抽出プロセスを処理します。バリデータがEigenLayerから誓約を取り出すとき、ETHはまずEigenPod/code>を通過して、バリデータがスラッシュされているかどうかをチェックし、もしバリデータがスラッシュされていれば、トークンは
EigenPod/code>コントラクト内で凍結されます。strong>frozenされ、効果的にスラッシュされます。
EigenPod
を実装するのは厄介です。実行レイヤーのビーコンチェーンデータにアクセスできないからです。
この問題を解決するために、述語を使ってビーコンチェーンのステートルートを実行レイヤーに渡します。ビーコンのステートルートを取得することで、対応するMerkle証明を提供することで検証者のバランスにアクセスできる。
EIP-4788[18]の実装では、この述語マシンを削除し、実行レイヤーから直接ビーコンルートを問い合わせることができます。
ブックキーピングシステムをカプセル化するために、TokenPool
とTokenManager
モデルに似たパターンを使用して、モジュール化するローカルのレプリケーションシステムを作成します。.それぞれのEigenPod
は1つのバリデータの引き出し処理を行います。EigenPodManager
は他のコアコントラクトと協調し、各オペレーターとプレッジによってリプレッジされたイーサの量を追跡します。
<span ) 10px 10px / 40px no-repeat ;height: 30px;width: 100%;margin-bottom: -7px;border-radius: 5px;'>契約EigenPodManager{
mapping(address =>
function createEigenPod(address owner) public;
function stakeToPod(address pod, uint256 amount) public;
function withdrawFromPod(address pod) public;
}
契約EigenPod{
address BEACON_CHAIN_ORACLE;
address podOwner;
uint256 restakedAmount;
functionstake(uint256 amount) public;
function verifyRestakedBalance(uint256 amount, MerkleProof proof) public;
 ;function withdraw() public;
}
EigenPodManager
各誓約者が所有する株式数を追跡します。これにより、誓約者はEigenPods
を作成し、誓約し、撤退することができます。
EigenPod
BYBYrestakedBalance
ビーコンチェーン上の個々のベリファイアの残高を追跡する変数。再取得されたバリデータの残高が変更されるたびに、verifyRestakedBalance()
BEACON_CHAIN_ORACLE から取得したビーコンのステータスルートを調べて、更新された残高が正しいかどうかをチェックします。が正しいかどうかをチェックします。
これがEigenLayerがローカルのレプリケーションを実装する方法だ。
参考文献
[1]Dengchain Translation Project: https://github.com/lbc-team/Pioneer
[2]Translation Team: https://learnblockchain.cn/人/412
[3]Tiny Bears: https://learnblockchain.cn/people/15
[4]learnblockchain.co.uk/article...: https://learnblockchain.cn/article/7657
[5]Account Abstract Series: https://learnblockchain.cn/article/5426
[6]Noam Horowitz: https://twitter.com/ProbablyNoam
[8]NashQ: https://twitter.com/NashQueue
[9]Mike Neuder: https://twitter.com/mikeneuder
[10].Sina: https://twitter.com/sina_eth_
[11] Code: https://github.com/Layr-Labs/eigenlayer-contracts/tree/master/src/contracts
[12]Contracts.https://github.com/Layr-Labs/eigenlayer-contracts/tree/master/src/contracts
[13]Certificate of Workload: https://en.wikipedia.org/wiki/Proof_of_work
[14]権威の証明:https://en.wikipedia.org/wiki/Proof_of_authority
[15]Proof of Interest: https://en.wikipedia.org/wiki/Proof_of_stake
[16] White Paper: https.//docs.eigenlayer.xyz/overview/whitepaper
[17]This explains: https://docs.prylabs.network/docs/concepts/nodes-networks
[18]EIP-4788: https.//eips.ethereum.org/EIPS/eip-4788
[19]DeCert.me:https://decert.me/
[19]DeCert.me: .
インタビューでは、ドーマーが自身のプロとしての経歴、予測市場における取引の枠組み、取引の心理について語っている。
JinseFinanceAave DAOの手数料切り替えの提案は、ステイカーの報酬を強化するための戦略的な動きである。短期的な市場の反応はポジティブに見えるが、トークンの最近の下落傾向は長引く課題を示している。
Sanyaフォーブス、NFTイベント「No Sleep NYC」でMemelandと提携、Web3へのコミットメントを表明。 コラボレーションは、ダイナミックなデジタル空間におけるコミュニティとイノベーションの育成を目指す。Memecoin(MEME)は発表後に活発な動きを見せ、市場の興奮を反映。
Xu Lin裁判所の文書によると、Sam Bankman-Fried (SBF) は、2023 年 1 月 3 日にニューヨーク南部地区 (SDNY) の連邦裁判所によって罪状認否を受ける予定です。
OthersDecrypting DeFi は Decrypt の DeFi メールニュースレターです。
decryptBinance のボスは、CZ はうそつきであり、最終的に FTX の崩壊から利益を得たという Bankman-Fried の主張に応えて、「誰も勝てなかった」と述べた。
decrypt法案はさらに次のように述べています。
Othersステーキングは主流になる可能性が高く、英国の納税者にとってかなりの負担になる可能性があります。
Beincryptoポルトガルは 2018 年以来、仮想通貨のタックス ヘイブンですが、長くはありません。その国はかつてハンズオフ政策をとっていた...
Bitcoinist今日、NFT は単なる投資手段ではなく、誇大広告主導の収集品の地位を超えて...
Bitcoinist