BTC
ETH
HTX
SOL
BNB
View Market
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

ポピュラーサイエンス: ETH 1.x とステートレスノードの紹介

以太坊爱好者
特邀专栏作者
この記事は約7356文字で、全文を読むには約11分かかります
eth 1.x アップグレードに関連する変更は、イーサリアムの現在の苦境をどのように改善できるでしょうか。
AI要約
eth 1.x アップグレードに関連する変更は、イーサリアムの現在の苦境をどのように改善できるでしょうか。

編集者注: この記事は以下から引用しましたイーサリアム愛好家 (ID: ethfa​​ns)編集者注: この記事は以下から引用しました

イーサリアム愛好家 (ID: ethfa​​ns)

、著者:Lai Jack Lai Yanting、Odaily が許可を得て転載。

この記事では、eth 1.0 に存在するさまざまな問題を分析し、イーサリアム財団によって提案された eth 1.x アップグレード関連の変更がイーサリアムの現在の苦境をどのように改善できるかを紹介します。

eth1.xとは何ですか

イーサリアム 2.0 の研究は長い間行われていますが、これまで (2020/06) 完全にローンチするにはまだ 2 ~ 3 年かかり、イーサリアム 2.0 はビーコン チェーン (Beacon Chain) と複数のビーコン チェーンの組み合わせとして展開されます。シャード チェーン (シャード チェーン) ですが、eth 2.0 のシャード チェーンの 1 つになるように eth 1.0 を変更してアップグレードする必要があります。これは、現在のイーサリアム 1.0 ブロックチェーンを変更する必要があり、今後 5 ~ 10 年間は運用と開発が継続されることを意味します。そして eth 1.x は Ethereum 1.0 のアップグレード版の名前です。

最初のレベルのタイトル

イーサリアム1.0の欠点と問題点

イーサリアム 1.x の導入を開始する前に、まずイーサリアムの現在 (2020/06) の問題を認識し、イーサリアム 1.x の背景とそれが解決しようとしている問題点を完全に理解する必要があります。

副題

2020年5月以降、ガス価格の高騰により開発者や高頻度ユーザーから不満の声が上がっていますが、その背景にはイーサリアムユーザー数の増加だけでなく、イーサリアムを消費するスマートコントラクトインタラクションの割合が増加していることが挙げられます。大量のガス(単に転送する ETH の割合が薄められる)により、イーサリアム ネットワークは引き続き混雑します。

- etherscan.io -

このような状況に直面して、マイナー コミュニティは 2020 年 6 月 19 日 UTC に各ブロックのガス制限を 10,000,000 から 12,000,000 に引き上げることを投票しました。

画像の説明

1200万ガスリミットはまだ混雑しているから増やしてもいいのではないかと思う人もいるかもしれない。その理由は、ガス制限の増加により各ブロックの処理時間が長くなり、その結果アンクルブロックの数が増加し、ネットワークのコンセンサスメカニズムが不健全になり、マイナーが多くの余分な計算を費やす必要があるためです。加工用に。

さらに、独立したノードや小規模なマイニング プールではアンクル ブロックのマイニングが容易であるため、長期的にはブロック生成に対する報酬の期待が低くなり、一部のノードがやりくりしてネットワークから離脱することになります。これにより、イーサリアムネットワークはさらに集中化され、大規模なマイニングプールに集中することになり、ネットワークの長期的な健全性とセキュリティが危険にさらされます。

副題

問題 (B): 状態爆発

より多くのスマート コントラクトが展開され、多数のコントラクト インタラクションが行われるにつれて、イーサリアム ネットワークが保存する必要がある「状態」のサイズは「比例系列」で増加しています。状態の成長はノードのストレージ容量に反映されます。

さらに、ブロック検証の難易度もそれに応じて増加し、その結果、ネットワーク全体の遅延が発生し、TPS がさらに低下します。

- Roadmap of Ethereum tweeted by Vitalik on 2020/3/19 -

このプロセスはカエルをお湯で茹でるようなもので、数年後にはイーサリアムネットワークに大きなセキュリティ問題を引き起こすことになりますが、そこに至ることを回避するために数年前からイーサリアム2.0の研究開発が始まりました。前。

画像の説明

  • eth 1.x other

  • 最初のレベルのタイトル

  • イーサリアムの未来

  • eth 2 phase 2 and beyond

2020 年 3 月 19 日、Vitalik 氏は Twitter で今後 5 ~ 10 年のイーサリアム開発のロードマップを共有しました。ロードマップは主に次の 4 つの部分で構成されます。

  • eth 2 phase 1

  • eth 1.x ステートレス性

  • eth 2 フェーズ 0 の準備 (コア パス、eth 1 ➔ eth 2 マージに焦点を当て、PoW を削除)

eth1 ➔ eth2 マージの仕様と実装

eth 1.x ステートレス性

その中でも「eth 1.x のステートレス性」は、eth1➔eth2 の合併にとって最も重要な条件と言えるので、本稿では「ステートレス性」を主軸に据えて紹介していきます。

最初のレベルのタイトル

イーサリアムブロックチェーンの本質はマイナーによって維持される分散型の大規模な「ステートマシン」であるため、ブロック数の増加に応じて状態を変更し、前進し続けます。イーサリアムの完全な「状態」には、すべての個々のアカウントと残高の現在の状態に加え、EVM でデプロイおよび実行されているすべてのスマート コントラクトの全体的なメモリが含まれます。

イーサリアムネットワークでは、ネットワーク全体の全ノードの合意を得た各ブロック高さの「状態」が1つだけ存在し、この「状態」は新しいブロックごとに変化し、ブロックごとブロックチェーンに接続されます。

画像の説明

- 画像出典:https://blog.ethereum.org/ -

副題

ノードが状態を読み取るのに時間がかかり、トランザクションの処理速度が遅くなる

新しい状態ツリーの構築に時間がかかり、ブロック検証が遅くなる

まとめ

マイナーはトランザクションの処理を完了すると、新しい状態で構成されるトライ構造の状態ツリーを構築する必要がありますが、これには大量のハッシュ値計算が含まれます。ルート ハッシュを計算した後、新しいブロック ヘッダーを構築し、新しいブロックをパッケージ化できます。

まとめ

一般に、「状態」と「ノード サイズ」が継続的に増加すると、新しいフル ノードの起動コストが大幅に増加します。「ストレージ スペース」と「同期時間」の需要が増加すると、コストがさらに増加する可能性があります。ネットワーク内のフルノードの数。

さらに、イーサリアム ネットワーク全体のパフォーマンスの低下は避けられません。時間のかかるステート ツリーのクエリと計算が増加し、イーサリアムでの契約トランザクションが増加すると、TPS がさらに低下し、ネットワークの混雑がさらに高まり、ガス価格の高騰を招く可能性があります。

eth 1.xの提案


状態の継続的な成長はイーサリアム ネットワークの健全性に大きな影響を与えるため、解決策の 1 つは「イーサリアム ネットワーク上の状態の必要性を排除する」ことです。 2020/3/19 に Vitalik によってリリースされたイーサリアムの将来のロードマップを詳しく見て、一連の解決策を確認してください。


文章

画像の説明

The 1.x Files: The Updated Stateless Tech Tree (April 2, 2020)

The 1.x Files: A Primer for the Witness Specification (May 4, 2020)

The 1.x Files: EIP 1559 and the Ethereum Improvement Horizon (June 16, 2020)(Up to date)

-2020/4/2 eth 1.xテクノロジーツリーを更新-

最初のレベルのタイトル

eth 1.x の目的

副題

(A) eth 1.0 の寿命を延ばす

ブロックが成長し続ける中、eth 1.0 ブロックチェーンのセキュリティ、安定性、復元力を維持し、状態の一部のみをダウンロードして、より安価なハードウェアでノードを実行することを選択できるようにします。

副題

(B) eth 2.0とのインターフェース

eth 2.0 のシャードはステートレスになるため、「ステートレス」であることが eth 2.0 ブロック検証に参加するための前提条件になります。 eth 1.0 が eth 2.0 と互換性がある場合、スムーズに移行して eth 2.0 とインターフェースするために、ステートレス操作をサポートする必要があります。

この2つの目標を達成するために、右端のスキルツリーの最後に「Stateless Ethereum」が表示されます。ただし、イーサリアム ネットワーク全体が状態に基づいて存在するため、「ステートレス」イーサリアムという用語はいくぶん不正確かもしれません。

具体的には、イーサリアムネットワーク内の一部のノードが「イーサリアム状態全体のコピーを保持する」ことを要件ではなくオプションにする方法を見つけることです。したがって、現在のイーサリアム ネットワークは、ネットワーク全体の完全な状態を保存しない軽量ノード、つまり「ステートレス ノード」がネットワーク内の新しいブロックの検証に参加することをサポートする必要があります。

(1) ブロック監視メカニズム

(3) データ構造を二進法(Binary)に変換する

(1) ブロック監視メカニズム

ステートレス ノードが検証に参加する方法

その方法を簡単に言うと、ネットワーク全体の状態情報を持つ「フルステートノード」が、新しいブロックをパッケージ化する際に「ブロック監視」を生成し、ネットワーク全体の状態を保存しない「ステートレスノード」がブロックを生成するというものです。ネットワーク 新しいブロックは、ブロック監視者によって提供される情報によって検証できます。

「ブロック証人」とは何ですか?

前述したように、イーサリアムのデータ構造は、約 5 億個の状態値から構成されるマークル・パトリシア・トライです。ただし、ブロックの高さによって変化するのは、個人アカウントの ETH 残高や、契約に基づいて記録された各アドレスが保持するトークンの数などの状態値 (約 500,000) の約 0.1% のみです。スマート コントラクトのコード、0.3% の Uniswap 料金のパラメータ、その他の情報などの状態値の 99.9% は、スマート コントラクトが展開された後は変更されません。

新しいブロック (現在 1,200 万ガス制限) は最大 571 個のトランザクションしか保持できないため、関係する状態値の変更は非常に限られています。その後、すべての状態値を保存していないステートレス ノードは、トランザクションに含まれる関連する状態値と、完全な状態のノードから無関係のハッシュ値を要求する限り、検証のためにマークル ルートを実際に計算できます。 。

文章https://blog.ethereum.org/-

以下の図に示すように、下部の 14 個のひし形がイーサリアム ネットワーク内のすべての状態値を表し、新しいブロックには緑色の状態値を変更するトランザクションが 1 つだけあると仮定すると、ステートレス ノードは実際には緑色のオリジナルが 1 つ必要ですステータス値、紫色のハッシュ値、および変更されていない他の 6 つのハッシュ値情報は、9 つ​​のハッシュ値の 14 のステータス値をすべて持たなくても、4 つのハッシュ値計算を通じて新しいルート ハッシュ (マークル ルート) を計算できます計算。

画像の説明

-画像出典:

ステートレス ノードが検証に参加できるようにするために、最新の研究の方向性では、「ブロック監視」が「ブロック ヘッダー Block Header」の一部になり、新しくマイニングされたブロックとともにネットワーク ノード全体にブロードキャストできるようになります。ステートレス ノードは、追加の「ブロック監視リクエスト」を開始することなくブロックを検証します。

このようにして、ステートレス ノードはイーサリアム ネットワーク内の新しいブロックの検証に参加できます。

最初のレベルのタイトル

(2)EVMの変更点

状態値の変更と操作はすべて EVM 内で実行され、同様に、ブロック監視もフル ノードの EVM の操作を通じて生成される必要があります。 EVM の変更目標は、主にガス消費量の推定やノード間のブロードキャスト遅延への影響を軽減する方法など、コストとインセンティブのメカニズムに密接に関連しています。

ブロック監視ガス計算 (監視ガス会計)

ブロック監視は追加のコンピューティング リソースを費やすためにフル ノードによって生成される必要があるため、対応するガス コストが発生します。このコストは現在、トランザクションの開始者が負担する方が現実的です。正確なガス制限を設定するためにトランザクション送信時にトランザクション開始者が追加のガスを正確に見積もることができるようにする方法については、まだ研究中であり、最終的にはまだ決定されていません。

さらに、同じブロック内の複数のトランザクションによってステータス値が変更され、Gas の二重支払いが発生する可能性があることを考慮すると、この部分はマイナーにとって追加の報酬手数料となる可能性があります。

副題

スマート コントラクト コード ブロック (コード マークル化)

このとき、スマートコントラクトの膨大なコードのうち、ほんの一部だけがトランザクション操作に関連付けられる可能性があるため、「プログラムコードブロック」という概念が提案されました。

「コードブロック」とは、スマートコントラクトのBytecodeを分割する方法で、スマートコントラクト内のトランザクションに関わるコードを分解してブロック監視の一部として提供し、動作検証には状態ノードを利用します。

その目的は、不要なコードの呼び出しを回避し、巨大なブロックチェーン監視者の生成による計算時間の増加やノード間の通信の遅延を回避することです。

(3) データ構造を二進法(Binary)に変換する

イーサリアムの研究者イゴール・マンドリゲン氏が行った実験(Binary Tries Experiment)によると、イーサリアムのデータ構造を現在の16進数(Hex)から2進数(Binary)に変更すると、各ブロックのブロック監視サイズを10進数から削減できるとのこと。 800 ~ 3,400 KB から 300 ~ 1,400 KB に変更すると、ネットワーク内のブロック監視伝播の遅延時間が大幅に短縮され、ブロック監視メカニズムがより理想的に実行できるようになります。

ただし、16 進数から 2 進数への変換の具体的な実装方法と移行戦略はまだ完全に決定的ではないため、興味のある友人は引き続きイーサリアム財団が発表する関連ニュースに注目してください。

ステートレス イーサリアム ステートレス イーサリアム

ここまで、「ブロック監視メカニズム」の導入、「EVM」への必要な変更、およびデータ構造の「バイナリ システム」への変換により、eth 1.x の全体的な外観の概要を説明してきました。

ステートレス ノードをサポートする 1.x ネットワークは、Ethereum 1.0 ブロックチェーン ネットワークに次のような重要な影響を与えます。

i. 新しく参加したノードに対してよりフレンドリーになる

ネットワーク全体の状態の拡大とブロックの高さの増加に伴い、新しいノードを起動するための同期時間はますます長くなります (2020/06 時点では、新しいフルノードを起動するには少なくとも 1 時間は同期する必要があります)これは非常に長いです。その理由は、各ブロックを検証して同期するには、ノード全体の同期をジェネシス ブロックから開始する必要があり、検証ブロックにはブロックの高さのネットワーク全体の状態が含まれている必要があるためです。同期ステータスは、現在の同期ノードにとって大きなボトルネックになっています。

ステートレス ノードの時代の到来により、ブロック同期の面倒なプロセスが大幅に改善されます。将来的には、ブロック検証を完了するために使用できるのは「ブロック ヘッダー」と「ブロック監視」のみになります。同期ノードのエクスペリエンスの向上により、より多くのことが可能になります。ノードを実行するためのコスト (時間とハードウェア リソース) を喜んで負担できる人が複数います。

ii. ライトノードが自立する

現在のイーサリアムネットワークでは、ライトノードはトランザクションの検証に必要なマークルプルーフ情報を保存していないため、新しいブロックを独立して検証し、トランザクションを検証する機能を持っていません。そのため、要求するには隣接するフルノードにp2pリクエストを送信する必要があります。しかし、ライトノード 今では、サポートを提供してくれる仏心フルノードはますます少なくなっています。

ステートレスメカニズムにより、ライトノードは自身が維持する状態の一部(自身のアカウントや契約の残高などの情報)に依存し、他の人に尋ねることなく、ブロックヘッダーやブロック証人を使用して独立して検証できるようになります。

iii. ノードネットワークのセキュリティ向上

ブロックチェーン ネットワークのセキュリティは、新しいブロックの検証に参加できるノードの総数に依存するため、ノードの総数が増加するにつれてネットワークを攻撃するコストも増加し、ブロックチェーンのリスクを効果的に軽減できます。システムが敗北している。

新しいノードの起動コストが削減され、多数のライトノードが新しいブロックの検証に投資するため、ネットワーク全体のセキュリティが大幅に向上します。

最後の点もコアポイントですが、前述したようにeth 2.0はコアビーコンチェーンと複数のシャードチェーンで構成され、ネットワーク全体の状態が複数のシャードに分けて保存されます。各シャードは異なる状態を持っているため、他のシャードの状態情報は保存されません。したがって、各シャードでは、他のシャードは「ステートレス ノード」のようなものになります。

結論は

複数のシャード チェーン間で効果的に検証および同期できるようにするには、「ステートレス検証メカニズム」に依存する必要があります。したがって、現在の eth 1.0 が将来 eth 2.0 のシャード チェーンの 1 つになることができる場合、ステートレス eth 1.x へのアップグレードは重要なステップとなります。

最初のレベルのタイトル

結論は

上記の紹介により、読者は現在の eth 1.0 から eth 1.x にアップグレードするために必要な変更と、変更が完了した後の将来についてより明確に理解できるはずです。

eth 1.x のアップグレードが完了すると、人々は安価なハードウェアで独自のステートレス ノード (ライト ノード) を実行できるようになり、検証に参加できるより多くのライト ノードがネットワーク全体のセキュリティをさらに維持できるようになります。

ステートレス検証メカニズムを備えた eth 1.x のみが、eth 2.0 のビーコン チェーンや他のシャード チェーンとスムーズに接続できるため、イーサリアム ネットワークがステートレス検証メカニズムと将来のシャーディング テクノロジで構築された軽量の eth 2.0 に正式に参入できるようになります。

  • ある場合は上記

  • A. 明確に書けなかった点 B. 書き方の改善点 C. ブロックチェーン技術の知識内容を書いて共有できれば幸いです

以下にコメントを残していただければ幸いです。私の記事が、ブロックチェーン技術と知識を学びたいと思っている私のようなより多くの友人に役立つことを願っています。読んだ後に何か得をしたと感じたら、それもまた得られることを願っています

50回拍手してくださいhttps://medium.com/


开发者
ETH
Odaily公式コミュニティへの参加を歓迎します
購読グループ:
https://t.me/Odaily_News
チャットグループ:
https://t.me/Odaily_GoldenApe
公式アカウント:
https://twitter.com/OdailyChina