カンクンでアップグレードする前の重要な安全確認
簡単に言うと、カンクンのアップグレードが近づいています。このアップグレードには、主に 6 つの EIP、EIP-1153、EIP-4788、EIP-4844、EIP-5656、 EIP-6780 および EIP-7516。 EIP-4844 はこのアップグレードの主役であり、イーサリアムのスケーラビリティを向上させ、トランザクション コストを削減し、L2 のトランザクション速度を向上させることを目的としています。カンクンのアップグレードは、それぞれ 1 月 17 日、1 月 30 日、2 月 7 日にイーサリアム Goerli、Sepolia、Holesky テストネットで完了し、3 月 13 日にイーサリアムメインネットで有効化される予定です。アップグレードの前に、Salus は開発者が自分で確認できるように、このアップグレードに関する重要な安全上の注意事項をまとめました。
EIP 提案のレビュー
公式に公開されたセキュリティに関する考慮事項
スマート コントラクト関連のリスク
詳細情報
EIP 提案のレビュー
EIP-1153
EIP-1153 では、一時ストレージのオペコードが導入されています。これは状態を操作し、ストレージとほぼ同じように動作するために使用されますが、一時ストレージは各トランザクション後に破棄されます。これは、一時ストレージがストレージからの値を逆シリアル化したり、ストレージに値をシリアル化したりしないことを意味します。そのため、一時ストレージはディスク アクセスが必要ないため、コストが安くなります。スマート コントラクトは、2 つの新しいオペコード、TLOAD および TSTORE (「T」は「一時」を表します) を通じて一時ストレージにアクセスできます。この提案は、イーサリアムのトランザクション実行における複数のネストされた実行フレームワーク間の通信のための専用かつ効率的なソリューションを提供することを目的としています。
EIP-4788
EIP-4788 は、ビーコン チェーン ブロックのハッシュ ツリー ルートを EVM に公開して、これらにアクセスできるようにするように設計されています。スマートコントラクト内にルーツがあります。これにより、コンセンサス レイヤー ステートへのトラストレス アクセスが提供され、ステーキング プール、再ステーキング構造、スマート コントラクト ブリッジ、MEV 緩和などの複数のユースケースがサポートされます。この提案では、スマート コントラクトを通じてこれらのルートを保存し、リング バッファーを使用してストレージ消費を制限し、各実行ブロックがこの情報を表すために必要なスペースのみが一定であることを保証します。
EIP-4844
EIP-4844 では、イーサリアムのデータ可用性をシンプルな方法で拡張するために設計された、「シャード Blob トランザクション」と呼ばれる新しいトランザクション形式が導入されています。 、上位互換性のある方法。この提案は、EVM の実行ではアクセスできないが、コミットメントにはアクセスできる大量のデータを含む「BLOB を運ぶトランザクション」を導入することで機能します。この形式は、将来のフル シャーディングで使用される形式と完全な互換性があり、ローリング拡張に対して一時的ではあるが大幅な軽減を提供します。
EIP-5656
EIP-5656 では、メモリ領域を効率的にコピーするための新しい EVM 命令 MCOPY が導入されています。この提案は、EVM 上でメモリ コピー操作を実行するオーバーヘッドを削減し、MCOPY 命令を通じてメモリ間でデータを直接コピーすることを目的としています。 MCOPY は、ソース アドレスと宛先アドレスを重複させることができ、下位互換性を念頭に置いて設計されており、データ構造の構築、メモリ オブジェクトの効率的なアクセスとコピーなど、さまざまなシナリオでの実行効率の向上を目指しています。
EIP-6780
EIP-6780 SELFDESTRUCT オペコードの機能を変更します。本提案では、SELFDESTRUCTはコントラクト作成と同じトランザクションでアカウントの削除と全てのイーサコインの転送のみを行い、またSELFDESTRCT実行時はコントラクトの削除は行わず、指定した宛先に全てのイーサコインを転送します。この変更は、Verkle ツリーの将来の使用に適応するものであり、SELFDESTRUCT のいくつかの一般的なシナリオを維持しながら、EVM の実装を簡素化し、状態変更の複雑さを軽減することを目的としています。
EIP-7516
EIP-7516 では、現在のブロック実行コスト値の BLOB ベースを返す新しい EVM 命令 BLOBBASEFEE が導入されています。この命令は、EIP-4844 で定義されている BLOB 基本料金を返す点を除いて、EIP-3198 の BASEFEE オペコードに似ています。この機能により、契約は BLOB データのガス価格をプログラムで考慮できるようになります。たとえば、ロールアップ コントラクトで BLOB データの使用コストをトラストレスに計算したり、これに基づいて BLOB ガス先物を実装して BLOB データ コストを平滑化したりできます。
正式に公開されたセキュリティに関する考慮事項
EIP-1153
スマート コントラクト開発者は、使用前に一時ストレージ変数のライフ サイクルを理解する必要があります。一時ストレージはトランザクションの終了時に自動的にクリアされるため、スマート コントラクト開発者は、ガスを節約するために呼び出し中にスロットのクリアを回避しようとする場合があります。ただし、これにより、同じトランザクション内でコントラクトとのさらなる対話が妨げられたり (再入可能ロックの場合など)、他のエラーが発生したりする可能性があるため、スマート コントラクト開発者は、非一時ストレージ スロットが予約されている場合にのみ予約するように注意する必要があります。ゼロ値。同じトランザクション内の将来の呼び出しで使用することを目的としています。 SSTORE それ以外の場合、これらのオペコードは SLOAD および SLOAD とまったく同じように動作するため、特に再入リスクに関して、通常のセキュリティ上の考慮事項がすべて適用されます。
スマート コントラクトの開発者は、メモリ マッピングの代わりに一時ストレージを使用しようとすることもあります。一時ストレージは呼び出しが戻ったり再開したりするときにメモリのように破棄されないことに注意する必要があり、これらの使用例では、同じトランザクション内での再入時の予期しない動作を避けるためにメモリを優先する必要があります。メモリ上の一時的なストレージ コストは必然的に高くなるため、この使用パターンは抑制されるはずです。インメモリ マッピングのほとんどの使用法は、キー順のエントリ リストを使用して実装する方が適切であり、スマート コントラクトではインメモリ マッピングが必要になることはほとんどありません (つまり、作成者は運用環境での既知の使用例を認識していません)。
EIP-4844
この EIP により、帯域幅要件がビーコン ブロックあたり最大約 0.75 MB 増加します。これは、今日のブロックの理論上の最大サイズ (呼び出しデータ バイトあたり 30M ガス / 16 ガス = 1.875M バイト) より 40% 大きいため、最悪の場合の帯域幅が大幅に増加するわけではありません。マージ後、ブロック時間は予測不可能なポアソン分布ではなく静的となり、大きなブロックの伝播に保証された期間が提供されます。
呼び出しデータが限られている場合でも、負荷が実行される限り BLOB を保存する必要がないため、この EIP の持続的な負荷は、通話データのコストを削減する代替手段よりもはるかに低くなります。これにより、これらの BLOB を少なくとも一定期間保持する必要があるポリシーを実装することが可能になります。選択される特定の値は MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS エポックで、これは約 18 日であり、ペイロード履歴を実行するために推奨される (ただしまだ実装されていない) 1 年のローテーションと比較すると、はるかに短い遅延です。
EIP-5656
これは潜在的なサービス拒否 (DoS) ベクトルであるため、クライアントは実装で中間バッファを使用しない (たとえば、C stdlibmemmove 関数は中間バッファを使用しない) ことに注意する必要があります。バイトを移動するための言語の組み込み/標準ライブラリ関数のほとんどは、適切なパフォーマンス特性を備えています。
それ以外の場合、メモリ拡張は同じ価格設定ルールに従うため、サービス拒否 (DoS) およびメモリ枯渇攻撃の分析は、メモリに触れる他のオペコードの分析と同じになります。
EIP-6780
次のアプリケーション SELFDESTRUCT は壊れるため、この方法でそれを使用するアプリケーションは安全ではなくなります:
コントラクトを再デプロイするために CREATE2 が使用される場所アップグレード可能です。この機能はサポートされなくなったため、代わりに ERC-2535 または別のタイプのプロキシ コントラクトを使用する必要があります。
コントラクトが SELFDESTRUCT コントラクトを受益者として持つことにより、イーサの燃焼に依存している場合、そのコントラクトは同じトランザクションで作成されていません。
スマート コントラクト関連のリスク
EIP1153
オペレーション コード TLOAD と TSTORE を使用する 2 つのシナリオを想像してください。
- 呼び出されたコントラクトは、このオペレーション コードを使用します。
- このオペコードを使用して通話契約を開始します
リスク 1:
従来の SSTORE および SLOAD と比較して、新しい一時ストレージは主にデータの保存期間が変わりますtstore に保存されたデータは、tload を通じて読み取られます。データは、sstore のようにコントラクトに書き込まれて永続的に記録されるのではなく、トランザクションの実行後に解放されます。開発者は、データがコントラクトに誤って書き込まれ、損失が発生する可能性のある誤った使用を避けるために、このオペコードを使用する際にその特性を認識する必要があります。さらに、tstore 内のデータはプライベート変数であり、コントラクト自体によってのみアクセスできます。データを外部で使用する場合は、パラメータの形式で渡すか、パブリック記憶域変数に一時的に保存することしかできません。
リスク 2:
もう 1 つの潜在的なリスクは、スマート コントラクト開発者が一時ストレージ変数のライフ サイクルを適切に管理しない場合、データが消去されるべきではない、または誤って消去される可能性があることです。予約する。コントラクトでは、トランザクションの後続の呼び出しで一時ストレージに保存されたデータを使用することが期待されているが、このデータのライフサイクルを適切に管理できなかった場合、呼び出し間でデータが誤って共有されたり失われたりして、ロジック エラーやセキュリティの脆弱性が発生する可能性があります。トークンプロジェクトと同様の残高や手当のデータを正しく保存できないことを考慮すると、契約ロジックに誤りが生じ、損失が発生する可能性があります。または、所有者アドレスを設定するときにこのオペコードを使用すると、特権アドレスが正しく記録されず、コントラクトの重要なパラメータの変更が失われます。
一時ストレージを使用して仮想通貨取引所の取引価格を一時的に記録するスマート コントラクトを考えてみましょう。この契約では、各取引が完了すると価格が更新され、ユーザーは短期間で最新の価格を照会できるようになります。ただし、トランザクションの終了時に一時ストレージが自動的にクリアされるという機能が契約の設計で考慮されていない場合、ユーザーは、トランザクションの終了から次のトランザクションの開始までの間に、間違ったトランザクションまたは古いトランザクションを取得する可能性があります。取引の価格です。これは、ユーザーが誤った情報に基づいて意思決定を行うよう導くだけでなく、悪用されてプラットフォームの信頼性やユーザー資産のセキュリティに影響を与える可能性があります。
EIP-6780
この提案は、以前の自己破壊オペコードの動作を変更します。コントラクトは破壊されず、トークンのみが転送され、自己破壊と同じトランザクションで作成されたコントラクトのみが転送されます。破壊は破壊されます。この EIP の影響は比較的大きいです。
create2 を使用して同じアドレスにコントラクトを再デプロイし、コントラクトをアップグレードします。この機能はサポートされなくなったため、代わりに ERC-2535 または別のタイプのプロキシ コントラクトを使用する必要があります。 (これは、create2 を使用してアップグレード可能なコントラクトを実装するオンチェーン コントラクトのセキュリティに影響を与える可能性があります)
スマート コントラクトの SELFDESTRUCT 操作により、コントラクトを破棄し、コントラクト残高を指定されたターゲット アドレスに送信できます。この場合、コントラクトは SELFDESTRUCT を使用してイーサを破棄し、破棄されたイーサをコントラクトに送信します。ただし、その契約は、同じトランザクションで作成された契約(この契約または同じトランザクション内の他の契約によって作成された契約)のみにすることができます。それ以外の場合は、コントラクトを破棄せずにエーテルのみが転送されます (たとえば、コントラクトが自己破棄され、受益者が自己破棄するコントラクトである場合、これによって変更は生じません)。これは、引き出しやその他の操作で自己破壊に依存するすべての契約に影響します。
1 インチ CHI トークンと同様のガス トークンは、オフセットを維持し、常にこのオフセットで CREATE2 または SELFDESTRUCT を実行することによって機能します。この更新後、現在のオフセットにあるコントラクトが正しく自己破壊されていない場合、後続の CREATE2 はコントラクトを正常にデプロイできなくなります。
この提案の実装は、契約への直接的な攻撃にはつながりませんが、自己破壊操作に依存する最初に展開された契約の通常のロジックに損傷を与えることになります (資金移動のみに自己破壊に依存する契約は、影響を受けません。その後の操作では、自己消滅するコントラクトを削除する必要があります。削除しないと影響を受けます)、コントラクトが予期せず機能する原因となります。コントラクトとユーザーにのみ、コントラクトがストライキされ、失われる可能性があります。資金やその他の危険 (たとえば、最初は create2 を使用して元のアドレスに新しいコントラクトをデプロイしていましたが、アップグレードのために元のコントラクトを自己破壊するコントラクトは正常にデプロイできなくなりました)。長期的には、オペコードの機能を変更すると、集中化の問題が発生する可能性があります。
たとえば、既存のボールト契約ボールトが更新された場合:
create2 一時ストレージ契約はボールト資金を一時的に予約するために使用されます
-
Vault 契約を自己破壊し、資金は一時契約に転送されます (契約は破棄せずに資金のみが転送されます)
元のアドレスに新しい Vault 契約を 2 つ作成します (失敗したため、元のボールト契約は破棄されていません)
資金をボールトに戻す一時契約を自己破棄します(資金の損失、ボールト契約は作成されていません)
詳細情報
カンクンのアップグレードは、イーサリアムの競争上の優位性をさらに強化します。ただし、このアップグレードはコアのスマート コントラクト層への変更にリスクをもたらし、既存の DApps の安全な運用に影響を及ぼします。スマート コントラクトの開発中は、これらの変更とそれが引き起こす可能性のあるリスクにも細心の注意を払う必要があります。リスクレビューまたは監査サポートについては Salus に問い合わせることができます。また、変更についてさらに詳しく知ることもできます。
以上がカンクンでアップグレードする前の重要な安全確認の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









上位10の仮想通貨視聴プラットフォームの推奨アプリ:1。OKX、2。BINANCE、3。GATE.IO、4。HUOBI、5。COINBASE、6。KRAKEN、7。BITFINEX、8。KUCOIN、9。BYBIT、10。

機関投資家は、Coinbase ProやGenesis Tradingなどの準拠したプラットフォームを選択して、コールドストレージ比と監査の透明性に焦点を当てる必要があります。小売投資家は、ユーザーのエクスペリエンスとセキュリティに焦点を当てて、BinanceやHuobiなどの大規模なプラットフォームを選択する必要があります。コンプライアンスに敏感な分野のユーザーは、サークルトレードとHuobiグローバルを通じてフィアット通貨取引を行うことができ、中国本土のユーザーは、コンプライアンスな店頭チャネルを通過する必要があります。

初心者に適したデジタル通貨取引プラットフォームを選択する場合、セキュリティ、使いやすさ、教育リソース、コストの透明性を考慮する必要があります。 2。シンプルなインターフェイスとクリア操作を備えたアプリは、初心者により適しています。 3.プラットフォームは、チュートリアルや市場分析などの学習ツールを提供する必要があります。 4.取引手数料や現金引き出し料などの隠れた費用に注意してください。

通貨サークルの上位3つのトップ10のフリーマーケットビューイングソフトウェアは、OKX、Binance、およびgate.ioです。 1。OKXは、シンプルなインターフェイスとリアルタイムデータを提供し、さまざまなチャートと市場分析をサポートしています。 2。Binanceには強力な機能、正確なデータがあり、あらゆる種類のトレーダーに適しています。 3。Gate.ioは、その安定性と包括性で知られており、長期的および短期投資家に適しています。

信頼性が高く使いやすい仮想通貨交換アプリは次のとおりです。1。Binance、2。Okx、3。Gate.io、4。Coinbase、5。Kraken、6。HuobiGlobal、7。Bitfinex、8。Kucoin、9。Bittrex、10。Poloniex。これらのプラットフォームは、トランザクションのボリューム、ユーザーエクスペリエンス、セキュリティに最適なものとして選択され、すべてが登録、検証、預金、撤退、および取引操作を提供しています。

初心者に適した暗号通貨データプラットフォームには、Coinmarketcapと非小さいトランペットが含まれます。 1。CoinMarketCapは、初心者と基本的な分析のニーズに合わせて、グローバルなリアルタイム価格、市場価値、取引量のランキングを提供します。 2。小さい引用は、中国のユーザーが低リスクの潜在的なプロジェクトをすばやくスクリーニングするのに適した中国フレンドリーなインターフェイスを提供します。

Binance Spotの取引料金は0.1%であり、保有BNBを0.025%に減らすことができます。 OKXレートは0.1%-0.2%で、最低0.02%です。 gate.ioレートは0.2%で、最低0.10%です。 FTXレートは0.02%-0.05%ですが、破産を申請しています。 Coinbase Proレートは0.05%、通常のユーザーです。 Kraken率は0.16%-0.26%で、最低0.10%です。 Bitfinexレートは0.1%-0.2%で、最低0.02%です。 Huobi率は0.2%で、最低0.02%です。クコイン率は0.1%で、最低0.02%です。ビットハンプレートは0.15%で、最低0.02%です。 Huobi率は0.2%で、最低0.02%です。クコイン率は0.1%で、最低0.02%です。ビットハンプレートは0.15%で、最低0は0です。

ミームコインを取引するのに最も適したプラットフォームには、次のものがあります。1。Binance、世界最大、高流動性と低いハンドリング料金があります。 2。OKX、効率的な取引エンジンであり、さまざまなミームコインをサポートしています。 3。Xbit、分散型、クロスチェーン取引をサポートする。 4。Redim(Solana Dex)、低コスト、血清注文帳。 5。PancakesWap(BSC DEX)、低い取引手数料、高速。 6。ORCA(Solana Dex)、ユーザーエクスペリエンスの最適化。 7。コインベース、高セキュリティ、初心者に適しています。 8。アジアで有名なHuobi、豊かな取引ペア。 9。デクスラビット、インテリジェント