
著者:Nic Lin、Medium
ペクトラハードフォークは、2025年3月にメインネットの展開を開始する予定です。ペクトラアップグレードには、11の技術プロトコル(EIP)が含まれています。
-
EIP-2537:BLS12-381曲線操作の事前コンパイル
-
EIP-2935:状態で履歴ブロックハッシュ値を保存します
-
EIP-6110:オンチェーンのバリデーター堆積物を提供します
-
EIP-7002:実行レイヤーが出口をトリガーします
-
EIP-7251:max_effectient_balanceを追加しました
-
EIP-7549:委員会指数を検証外に移動します
-
EIP-7623:CallDataコストを増やします
-
EIP-7685:一般的な実行レイヤーリクエスト
-
EIP-7691:BLOBスループットを増やします
-
EIP-7702:EOAアカウントコードの設定
-
EIP-7840:EL ConfigurationファイルにBLOBプランを追加します
誓約に関連する技術契約
EIP-6110:BLS12-381曲線操作前コンパイル
誓約に参加するユーザーのプロセスを簡素化し、待ち時間を大幅に短縮します。
ユーザーがステーキングに参加する方法は、実行レイヤーに32のETHを預け、イベントログ(イベントログ)でそれらを記録することです。ステーキングで検証者になります。
ただし、コンセンサスレイヤーバリエーターは、最初に預金する時点でコンセンサスに到達する必要があります。デポジットでは、一部のバリデーターは3しか表示されません。同じ実行レイヤーブロックが表示されるように、どの実行レイヤーブロック(ETH1DATA)を参照するかについて投票します。
ただし、チェーンフォークを引き起こす実行レイヤーの主要なエラーを回避するために、参照実行レイヤーブロック(ETH1DATA)は約10時間前に実行レイヤーブロックになり、主要なエラーが発生したときにコンセンサスレイヤーの開発者が持っていることを保証します。応答するのに十分な時間ですが、これはできるだけ早く有効になるために10時間以上待たなければならないという事実にもつながります。
clブロック内の10900000 ETH1DATA、その中に記録されたブロックハッシュは、10時間前に登場した実行レイヤーブロック21683339です。
EIP-6110の技術プロトコルが実行された後、契約に関するユーザーの誓約データは実行レイヤーの一部になります。 「実行レイヤー参照のメモリブロックが同じであることを確認するために」という問題を考慮する必要はありません。同じ実行を参照してください。したがって、ユーザーがステーキングに参加した後、実行レイヤーメモリブロックは、実行レイヤーが最速で13分以内に完了した後に有効になり、コンセンサスレイヤークライアントは、もともと使用された複雑なロジックを削除することもできます。ステーキングデータ。
EIP-7002:状態で履歴ブロックハッシュ値を保存します
Verifiersが預金と利益を排除または撤回し、検証剤のリスクを減らすためのプロセスを改善するために使用できます。
ステーキングに参加するには、2つのキー、つまりバリデーターキーと引き出しの資格情報が必要です。
VALIFATORキーは、検証剤の作業コンテンツに使用され、検証者が株式を終了すると、預金と収入が撤回される住所に使用されます。
Valifatorキーが失われた場合、検証剤作業は実行できず、退去資格が失われる場合、すべての預金と福利厚生が失われます。さらに、一部のユーザーはLidoなどのサードパーティのステーキングサービスを使用します。検証剤。
EIP-7002技術契約を使用し、ユーザーは引き出し資格を使用して「撤退契約」(つまり、0x0C15F14308530B7CDB8460094BBB9CC28B9AAAA)を呼び出すことができます。サービスに関連するリスク。ユーザーが自分で誓約に参加しているが、Validatorキーを失うと、これを使用して誓約を終了することもできます。
-
リクエストを開始するためのパラメーターには、validator_pubkeyと額:balidator_pubkeyが検証因子のvalidator(public)キーであり、金額は収集される数字です。
-
リクエストを開始した撤回資格情報は、validator_pubkey balidatorの撤回資格情報でなければなりません。
-
リクエストを開始するために撤退契約を呼び出す場合、リクエスト数が多い場合、ガソリン料金を添付する必要があります。
-
ユーザーの撤回資格が契約である場合、最初に契約書に移動して現在の取引料を取得し、リクエストを開始して取引料金を添付することができます。正確な結果。取り扱い料は事前に鎖でのみシミュレートできます。
注:引き出し資格がまだBLS公開キー形式である場合、最初に切り替えてELアドレス形式に変更することを忘れないでください。
EIP-7251:max_effectient_balanceを追加しました
誓約額の上限を大幅に増加させることができ、バリデーターの数を減らすことができ、上限に達していない検証者は誓約収入を自動的に享受できます。
ユーザーは、MAX_EFFECT_BALANCEをETHの数を提供するために検証剤になるための利害関係者になります。ユーザーが1024 ETHを杭打ちしている場合、彼は32回の賭けに参加し、32のバリッターを有効にし、32のバリタンノードを実行できます。また、ステーキングのすべての人の積極的な参加は、約100万のバリデーターの継続的な増加につながりました。それぞれのスロット(12秒ごと)には、P2Pネットワークレイヤーに連続的に渡されて集約される数万の認証装置の署名があるためです。
EIP-7251の技術的契約を実行した後、誓約の下限(min_activation_balance)はまだ32 ETHですが、上限(max_efctiveted_balance)は2048年から2048年のETHに大幅に増加します。あなたはそれを誓約し続ける前に、あなたの収入を定期的に引き出し、32 ETHを蓄積する必要があります。
現在、既存の検証剤は、最初にステークを終了してから、統合して株式に再加入する必要があります。検証するために、撤退のクレンデティシャルにコール契約に移動して、マージされたデポジットのリクエストを開始します。
-
マージされたデポジットリクエストのパラメーターには、source_pubkeyとtarget_pubkeyが含まれます。これらの2つのキーは検証剤のバリデーターキーであり、ソース検証者はターゲット検証器にマージされます。
-
リクエストを開始した撤回資格は、ソース検証者の撤回資格でなければなりません。
-
マージされた預金契約を呼び出してリクエストを開始すると、取り扱い手数料が現在のリクエスト数に基づいて計算されます。
-
ユーザーの引き出し資格が契約である場合、最初にマージされた預金契約に電話して、現在の取引料金を取得し、リクエストを開始して取引料金を添付することができます。正確な取り扱い手数料は、事前にオフチェーンのみをシミュレートし、リクエストが正常に実行されることを確認するために、過剰な取り扱い手数料(払い戻しなし)に対してのみ支払うことができます。
注:引き出し資格がBLS公開キー形式である場合、最初に切り替えてELアドレス形式に変更する必要があります。
EIP-7685:一般的な実行レイヤーリクエスト
正式なEL->
ユーザーは実行レイヤーからコンセンサスレイヤーに直接リクエストを送信でき、ステーキングサービス(LIDOなど)は、より分散的に実行できます。たとえば、上記のEIP-7002のステーキングの要求と、EIP-7251の連結預金の要求。この技術的契約が利用できない場合、Lidoユーザーは、Lido Nodeサービスプロバイダーが真に株式を実行するか、この技術契約でデポジットをマージすると信じなければなりません。 。
これらのリクエストには、さまざまなタイプのリクエストを区別し、さまざまな契約を通じてリクエストを開始するリクエストタイプがあります。これらのリクエストは、実行レイヤーメモリブロックに書き込まれます。個々の解析ロジックを書く必要はありません。
EIP-6110、EIP-7002、およびEIP-7251はすべて、EIP-7685によって定義された標準に基づいてリクエストを作成します。
-
EIP-6110誓約書に参加:預金契約を通じてリクエストタイプ= 0
(0x000000219AB5540356CBB839CBE05303D7705FA)リクエストを開始します。
-
EIP-7002出口誓約リクエスト:撤回契約を通じてリクエストタイプ= 1
(0x0c15f14308530b7cdb8460094bbb9cc28b9aaaaa)リクエストを開始します。
-
EIP-7251統合デポジットリクエスト:統合契約によるリクエストタイプ= 2
(0x00431F263CE400F4455C2DCF564E53007CA4BBBB)リクエストを開始します。
ユーザーエクスペリエンスを向上させるための技術的合意
EIP-7702:EOAアカウントコードを設定します
EOAアカウントを自由に契約アカウントに変換し、ユーザーエクスペリエンスを大幅に改善します。
EOAアカウントの使用におけるいくつかの欠点は次のとおりです。
-
プライベートキーまたはニーモニック語を記録して保持する必要があります。これは、新しいユーザーが登録して使用するための高いしきい値を持っています。
-
EOAアカウントトランザクションは、UNISWAPにアクセスしてUSDTをETHに交換する場合にのみ実行できます。最初にUSDTを承認する必要があります。
-
アカウント内の特定の操作を第三者に操作のために第三者に引き渡すなど、未洗練された許可制御は、各操作のすべての雑用と署名とトランザクションを個人的に処理する必要があります。
-
回復メカニズムがなければ、独自の秘密キーまたはニーモニックの単語のみを保持することができます。それを失った場合、アカウント内の資産を二度と取得することはありません。
それがスマート契約アカウント(安全など)の場合、上記の問題はすべて解決できます。
-
ユーザーは、携帯電話(またはコンピューター)のセキュリティチップに署名し、承認することができます。
-
同じトランザクションで複数の操作をバッチすることができます。
-
非常に詳細な許可制御が存在する可能性があり、ユーザーは自分のアカウントを制御するために第三者を承認できますが、同時に「契約をやり取りできる」、「実行できない」、「関与するものだけが関与するものがあります。資産の転送。
-
新しい回復メカニズムを追加でき、アシスタントの単語、携帯電話、電子メールを失うと、アカウントの資産を回復メカニズムを介して新しいアカウントに転送できます。
EIP-7702の提案は、EOAアカウントに契約アカウントに変換する能力を提供することです。ユーザーは、EOAの秘密鍵を使用して、「チェーンID」、「変更された契約アドレス」、「EOA NONCE値」に署名します。
-
チェーンID:チェーンAの署名がチェーンBに持ち込まれ、再生されるのを防ぐために使用されます。ただし、チェーンIDが0に記入されている場合、各チェーンで変換する意思があることを意味します。
-
契約アドレスになりたい:安全な契約アドレスに記入すると、EOAアカウントは安全な契約になります(アドレス(0))。単純なEOAアカウントをバックします。
-
EOAのNonCe値:署名が再生されないようにするために使用されます。NonCe値が増加すると、元の署名が無効になります。
ただし、注意すべき点がいくつかあります。
1.EOA秘密キーも使用できます
ユーザーのEOAアカウントが契約になったとしても、元のEOAアカウントで引き続き使用できます。たとえば、彼のアカウントは、EOAアカウントが安全な契約になった場合、安全なインターフェイスを使用したり、安全なトランザクションプロセスを通過したり、元のEOAウォレットで署名してトランザクションを送信したりすることができます。ただし、これは、アカウントのセキュリティが依然としてその秘密鍵に限定されていることを意味します。
2。それでもEOAプライベートキーのセキュリティ
ユーザーのEOAがEOAの秘密鍵を捨てない限り、ユーザーのEOAがマルチシグネチャーになったとしても、彼のアカウントセキュリティは常にEOA秘密鍵のセキュリティになります。 、彼は複数の兆候ほど安全になることはありません。
3.EOAアカウントのストレージはフォーマットされません
EOAアカウントが契約に変換され、データの削除のアクションが明示的に実行されない限り、ストレージに記載されているデータは、EOAアカウントが契約に変換されるか変換されるため、ストレージに書き込まれたデータは別の契約に変換されたりキャンセルされたりしない場合、データの削除が明示的に実行されない限り、キャンセルされた契約。
4. EIP-7702のプロセスには、初期化は含まれません
通常、契約アカウントは、アカウントの展開時にアカウント所有者の情報(公開キーや住所など)を同期し、展開ステップが外れていることを回避し、アカウントの所有権を失います。これは通常、契約アカウントを展開して「展開 +初期化」を実行する工場契約によって実行されますが、EIP-7702は工場で契約をEOAに展開するのではなく、直接変更されるため、攻撃者はユーザーの変換と署名をコピーできます。最初にリンクにトランザクションを送信してユーザーを変換しますが、攻撃者が制御するアカウントを初期化するため、開発者はEIP-7702に注意を払う必要があります。初期化関数内のEOAアカウントの署名をチェックするなどの可能な予防方法により、攻撃者はEOAアカウントの署名を生成して初期化を完了することができません。
5.ウォレットは変更をチェックする必要があります
ウォレットは、ユーザーをチェックし、リクエストを停止し、悪意のあるDAPP Webサイトがユーザーに変換トランザクションに署名するように要求する必要があります。変換契約の実装の例をいくつか紹介します。
-
修正されたセーフイサカアカウント
-
ithacaアカウント
DAPP技術契約
EIP-2537:BLS12-381曲線操作の事前コンパイル
BLS曲線に基づいてゼロ知識証明アプリケーションのコストをより実現可能にします。
EIP-2537は、安価なBLSカーブ操作を提供するためにいくつかのプレリコンパイル契約(プレパイル)を追加したため、BLS曲線に基づいてゼロ知識証明アプリケーションを開発することがより可能になります。
EIP-2935:状態で履歴ブロックハッシュ値を保存します
開発者またはノードは、システム契約のストレージから直接過去のメモリブロックのハッシュ値を読み取ることができます。
たとえば、開発者が以前のメモリブロックのコンテンツを証明する必要がある場合、楽観的なロールアップの詐欺の課題が1,000の以前のメモリブロックにトランザクションがあることを証明しなければならないと仮定します。チャレンジャーはそれを直接言うことができません。
「このトランザクションは実際には1000のメモリブロックに存在していたと信じてください。彼は証拠を提供しなければなりませんでしたが、「1000の以前のメモリブロックがこれらのコンテンツを含む」ことを直接証明するための直接的な証拠はなかったので、彼はそれをメモリとして使用する必要がありました。ブロック「チェーン」メソッドは、1,000の前のメモリブロックに到達するまで、メモリブロック1メモリブロックを前方に証明し、トランザクションがメモリブロックに存在することを証明することです。
card各ブロックは親ブロックを指すので、歴史の中ですべてのブロックを前進させることができます。
現在、メモリブロックは10000番号であると仮定しており、詐欺の課題は9000のメモリブロックにトランザクションXが存在することの証拠を提供する必要があります。チャレンジャーは、10000メモリブロックのハッシュ値から始める必要があります。ブロックは10000です。接続された親メモリブロック9999のハッシュ値は、メモリブロック9000までメモリブロック9998を証明し、最後にメモリブロック9000のコンテンツにトランザクションXが含まれています。
EIP-2935の後、システム契約(0x0f792be4b0c0cb4dae440ef133e90c0cd48cccc)があり、そのストレージは前のメモリブロックの最大8192のハッシュ値を保存します。新しいメモリブロックが生成されると、システム契約が自動的に更新され、前のメモリブロックのハッシュ値がシステム契約に書き込まれます(8192の以前のメモリブロックのハッシュ値がコピーされます)。
このように、楽観的なロールアップ詐欺の課題の例では、チャレンジャーはそれを前のメモリブロックとメモリブロックにゆっくりと証明する必要はありませんが、メモリブロック10,000の現在のチェーン状態が特定のシステムであることを直接証明できます。契約(メモリブロック9000に対応)の値は、メモリブロック9000のハッシュ値です。メモリブロック1000などの範囲が8192を超える場合、最大1つのステップは、メモリブロック1808(= 10000-8192)のハッシュ値を証明し、メモリブロック1808が現在のチェーン状態にあることを証明することです。メモリブロック1000のシステム契約ハッシュ値。
これは、将来のステートレスクライアントへの道を開きます。将来のライトノードは、歴史のすべてのメモリブロックを保存する必要がなくなりますが、ハッシュ値またはメモリブロックコンテンツを使用する必要がある場合は履歴の特定の部分を使用しますメモリブロックの場合、前の詐欺チャレンジの例で証明方法を使用して証明を提供するように他の人に依頼してください。
EIP-7623 :: CallDataコストを増やします
CallDataを使用してデータを公開するためのコストを増やして、ブロックガス制限とブロブの数を増やすのに十分なセキュリティスペースを迂回させます。
Rollupのデータリリースの需要は、EIP-4844にBlobsを導入して非常に安価な方法でデータを配置できるようになると、ブロブの数を増やすことが、コミュニティが期待するように常にアップグレードされましたブロックガスの制限を上げるコミュニティによって、それはリソースを増やすための生態学の必要性を反映しています。
blockブロックガス限界の上昇をサポートすると言うが、ますます多くの検証容疑者が言っています。
ただし、ブロックガス限界またはブロブの数を増やすかどうかにかかわらず、トランザクションボリュームが大きくなるため、EthereumのP2Pネットワークに圧力がかかり、データが公開されない限り攻撃者の攻撃の効率が向上しますまた増加します。
EIP-7623プロトコルのリリース後、CallDataのコストは、元の「ゼロバイト:4ガス、非ゼロバイト:16ガス」から「ゼロバイト:10ガス、非ゼロバイトから2.5倍増加します。 :40ガス」。
もともと、攻撃者がすべてのブロックガス制限(30m)を使用してジャンクデータを配置した場合、メモリブロックのデータサイズは1.79 MB(30m / 16)でしたガス制限は40mに引き上げられ、攻撃者は約2.38 MBのメモリブロックを生成できます。CallDataのコストが2.5倍に増加すると、攻撃者の効率が低下し、最大0.72MBと40mの最大0.95MBになります。ただし、この技術契約は、「CallDataを使用してデータを公開しない」通常のユーザーに影響を与えたくないため、トランザクションの総ガス使用量を2つの方法で計算し、より高いものを取得します。
-
元の取引ガス使用量計算方法は、古いコールダタコストで計算されます。つまり、コールダタは「ゼロバイト:4ガス、非ゼロバイト:16ガス」の形式で計算され、トランザクションの実行が消費されます契約を展開することで消費されるガス。
-
CallDataガスの量を計算するだけですが、新しいコストで計算されます。つまり、「ゼロバイト:10ガス、非ゼロバイト:40ガス」の形式でコールダタを計算しますが、消費されたガスをカウントしません。したがって、契約を展開することで消費されるガス。新しいコストは、実行によって消費されます。そのため、平均的なユーザーは影響を受けません。
Blobsはサイズと固定コストが固定されているため、実際に影響を受けるものは小さなロールアップですこれらの小さなロールアップのコストは、2.5倍になります。ブロブの使用に切り替える必要があります。
EIP-7691:BLOBスループットを増やします
ブロブの数を増やし、データを公開するためのスペースを増やします。
EIP-7691は、「ターゲット:3ブロブ、上限:6ブロブ」から「ターゲット:6ブロブ、上限:9ブロブ」までのブロブの数を増やし、ロールアップするための情報を公開するためのスペースを追加します。
注:さらに、BLOB料金市場には、手数料の調整速度が即座になく、最低料金制限が低すぎるなど、微調整する必要がある設計がいくつかありますが、これは問題ではありません。技術的な合意は解決する必要があります。
その他の技術的契約
EIP-7549:委員会指数を検証外に移動します
Validator投票の内容を調整して、P2Pネットワークへの圧力を削減するために投票をより便利にします。
検証者は委員会のグループにランダムに割り当てられ、
メモリブロック投票では、各委員会のバリデーターの投票は一緒に集約できます。これにより、P2Pネットワークで渡される投票数を減らすことができますが、検証者の投票には「検証者が属する委員会の数」が含まれます。さまざまな委員会の投票は、たとえそれらがすべて同じメモリブロックに投票したとしても、集約できないと考えられます。
EIP-7549は、「この検証者が投票コンテンツから「どの委員会が属しているか」の情報を削除し、異なる委員会の検証者を同じ投票コンテンツと一緒に集約し、P2Pネットワークの投票をさらに減らすことができます。 P2Pネットワークの圧力に還元されました。
EIP-7840:EL構成ファイルにBLOBプランを追加する
実行レイヤーでBLOBパラメーターの設定ファイルを確立し、コンセンサスレイヤーノードのBLOB関連パラメーターを要求する実行レイヤーノードの問題を排除します。
BLOB関連のパラメーターは現在、コンセンサスレイヤーノードに保存されていますが、実行レイヤーノードには依然としてこれらのパラメーター(RPC ETH_FEEHISTORYなど)が必要なため、コンセンサスレイヤーノードから尋ねる必要があります。
EIP-7840は、実行レイヤーでBLOB関連のパラメーターの設定ファイルを確立します。