イーサリアム 2.0 バザールへようこそ
編集者注: この記事は以下から引用しましたUnitimes(ID:Uni-times)、著者:Ben Edgington、編集者:Jhonny、Odaily は許可を得て公開しています。

文章
私は最近、オープンソース開発に関する Eric Raymond の 1997 年の古典的な記事「The Cathedral and the Bazaar」[1] を再読しました。ソフトウェア プロジェクトの開発に幅広い参加者が参加できるようにするとどうなるでしょうか?エリックはこれをオープンソース ソフトウェア開発の「バザール」モデルと呼んでいます。この「バザール」は騒々しく混沌としていますが、生産性が高く、ダイナミックであり、そして最も重要なことに、より良い結果につながります。
エリックは記事の中で、このバザール モデルを、すべての開発が小規模で閉じられた人々のグループによって行われる、より伝統的な「大聖堂」モデルと対比しています。 20年以上経った今日、この「バザール」の力は否定できません。現在、世界のコンピューティングの大部分を支配している Linux オペレーティング システムは、ソフトウェア開発の「バザール」モデルの一例にすぎないことはわかっています [2]。
これはイーサリアム 2.0 の開発作業を観察するのに興味深いレンズであることがわかりました。 1 年前のイーサリアム 2.0 プロジェクトの開始からこの巨大プロジェクトの現在の進行状況まで、今がその「バザール」開発モデルについて考える良い時期です。
イーサリアム 2.0 プロジェクトは、主にオープンなバザール スタイルの開発モデルを採用しています。しかし、私たちはエリックのビジョンをさらに一歩進めています。イーサリアム 2.0 では、単にソフトウェアを構築しているだけではなく、完全にオープンな方法でプロトコル全体を設計しています。このようなことが以前に試みられたかどうかはわかりません。
現在のイーサリアム 2.0 クライアントの 9 チーム、出典: ethhub.io

現在のイーサリアム 2.0 クライアントの 9 チーム、出典: ethhub.io
文章
確かに、このプロセスは混沌としていて、組織化されておらず、非効率的に見えることもあります。多くの再設計、修正、書き直しが行われました。しかし、このバザールのような喧騒の中で、何か素晴らしいものが現れています。これは注目に値することであり、あまりオープンではない開発者コミュニティが競争するのは難しいことです。
私の意見では、この「バザール」開発モデルがイーサリアムのスーパーパワーです。徹底したオープン化により、幅広いコミュニティへの参加と受け入れがもたらされます。これは、基本的にコミュニティ主導の「ネットワーク効果」に依存するイーサリアムのようなテクノロジーにとって非常に重要です。このレベルの関与だけでも、イーサリアムは他のプラットフォームとは一線を画しています。
Vitalki 氏は最近、次のようにツイートしました: 必要が生じたときに誰かがそれに対処するために立ち上がる頻度は驚くべきものです [5]。 2017年末、ジャスティン・ドレイクがイーサリアム2.0プロジェクト研究の舞台に登場し、かつて沈黙していたイーサリアム2.0の研究を活性化させ、2018年半ばにはイーサリアム2.0関連の研究をより良く調整し、計画する必要がある:ダニー・ライアンがそのペースを加速させた; 2019 年の初めに、Diederik Loerakker が現れ、イーサリアム 2.0 クライアント テスト スイートの構築において重要な役割を果たしました。
関連する例を他にもたくさん挙げることができますが、上記の例は、人々がイーサリアムをバザールとして愛していることを示しています。

バザールには開発ロードマップはありますか?出典: マイクロソフト
私は時折、イーサリアムに興味のある企業から、「イーサリアムのロードマップはどこにあるのですか?」という興味深い質問を受けます。
文章
公平を期すために言うと、公開され、詳細で、確固たる「公式に認可された」イーサリアムは存在しませんが、私たちがどこに向かっているのか、そしてそこにどうやって到達するのかということに関しては、多くの共通理解があります。
バザールの開発には「適切な」ロードマップは実際にはありません。 Linux Weekly News の古い記事でもこの問題について説明しています [6]。彼らの結論は、「プロセスにロードマップを課そうとしても、それが改善される可能性は低いです(Linux を例に挙げて)」です。
フェーズ 0 はビーコン チェーン フェーズで、イーサリアム ネットワーク全体を保護するために使用される PoW プロトコルの代替となる PoS (プルーフ オブ ステーク) プロトコルを実装します。
フェーズ 1 では、断片化されたチェーンの形でイーサリアム ネットワークに大規模なスケーラビリティが提供され、ネットワーク全体のトランザクション処理能力が 1,000 倍以上増加します。
フェーズ2では、ユーザーアカウントとスマートコントラクト機能をサポートする実行層を実装し、イーサリアムの分散化された将来に必要な一連の分散アプリケーションをサポートします。
副題
フェーズ 0: ビーコン チェーン
1 年間にわたる集中的な開発を経て、イーサリアム 2.0 ビーコン チェーン仕様は 6 月 30 日に凍結され、関連する研究と設計が完了し、完全に提供段階に入りました。ビーコン チェーンはイーサリアム 2.0 の基礎です。PoS プロトコルの管理と、すべての独立した並列シャード チェーンの調整を担当します。システム開発全体の中で最も複雑な部分です。ビーコン チェーンについてあまり詳しくない場合は、Unitimes が最近イーサリアム 2.0 開発者の Hsiao-Wei Wang 氏を招待したビーコン チェーンに関する AMA オンライン Q&A 記事を参照してください。イーサリアムコア開発者シャオウェイ氏との対話:》
イーサリアム 2.0 ビーコン チェーン | Unitimes AMA
イーサリアム 2.0 の将来の開発方向として、ビーコン チェーンは昨年 7 月にベルリンで開催されたワークショップ中に考案されました [7]。ほぼ白紙の紙から始まり、イーサリアムの初期に遡るアイデアを織り交ぜながら、ビーコンチェーンの仕様は、洞察、議論、監査、テストの反復プロセスを通じて開発されました。
同時に、さまざまな背景や地域の 9 つのチームがさまざまなプログラミング言語で仕様を実装し、すべてが機能するようにインフラストラクチャを仕様に追加しました (ネットワーク接続、データベース、関連ツールなどを含む)。仕様はエンジンのようなものです。ただし、完全に動作する車両を得るには、他にも多くのものを追加する必要があります)。
Prysmatic LabがリリースしたSapphireテストネットのように、イーサリアム2.0のバリデーターを体験できるパブリックビーコンチェーンテストネットをリリースしているチームもあり、詳しくはUnitimesが公開した記事「Prysm Ethereum 2.0 Phase 0 Testnet」を参照してください。 ! 「[8]
ビーコン チェーン仕様は以前は急速に変化していましたが、クライアント実装チームはその仕様に従い続けていましたが、最近のビーコン チェーン仕様の凍結は重要なマイルストーンであり、その凍結には 2 つの良い効果があります。
ビーコン チェーン仕様凍結の 2 番目の効果は、すべてのクライアントが同じ目標に追いつき、次の重要なフェーズである相互運用性を開始できることです。 Ethereum 2.0 ビーコン チェーン クライアントは、現在の Ethereum ノード (Geth、Parity、Pantheon クライアントなど) に似ており、これらのノードはネットワーク全体を実行し、相互に通信し、重要なことに、常にコンセンサスに達する必要があります。 (バグなどによる) 不一致があると、ネットワークの分割につながります [11]。

画像の説明
ブルックリンでのイーサリアム 2.0 クライアント向け「相互運用性への道」ワークショップ
相互運用性の実現はプロセスです。
まず、すべてのクライアントは共通の参照テストに合格する必要があります。ビーコン チェーン仕様の非常に興味深い特徴は、それがすでに実行可能であることです。仕様を実行することでクライアント テストを直接実行できます。 Python で書かれた現在の仕様よりも物語形式を好む人もいるかもしれませんが、それでも、現在の仕様は非常に便利なツールです。
別の種類のテストは「ファズ テスト」です。これは、クライアントにランダムな不良データを繰り返し供給して、クライアントのクラッシュを引き起こす可能性のある条件を探すことで、過去にイーサリアム 1.0 クライアントの問題を追跡することに成功しました。このためのファジング ツールは現在、ビーコン チェーン用に開発されています。
各 Ethereum 2.0 クライアント チームがクライアントの実装が機能していると確信したら、次のステップは、それらのクライアントが同じネットワーク上で通信できるようにすることです。
分散システムに問題が発生した場合、診断が難しいことはわかっています。したがって、最初のステップとして、各クライアントは、完全なネットワーク スタックを実装する前に、デバッグと分析が容易な簡素化されたプロトコル Hobbits [12] を実装します。
関連する計画としては、すべてのクライアント チームが今年 9 月にカナダのオンタリオ州の遠隔地に集まることです。すべてのクライアント実装が適切に相互運用できることが保証されるまで、誰もチームを離れることはありません。
相互運用性の実現により、今年後半に開始される共通の長期公開テストネットへの道が開かれることになります。
テストネットワークに参加したいユーザーは、自分の選択に従ってイーサリアム 2.0 クライアントをインストールし、パブリックテストネットワークでテスト用の ETH トークンをステークし、テストネットワークに参加することができます。または、そのテストネットのバグを探します。バグや欠陥を発見した人にはボーナスが与えられる場合があります。
ビーコン チェーンの起動前の最後のステップは、バリデーター デポジット コントラクトを現在のイーサリアム 1.0 チェーンにデプロイすることです。ステーキング契約では、バリデーターになりたいユーザーは 32 ETH をステーキングできます。今年 10 月初旬に開催される DevCon V カンファレンスでステーキング契約を展開する予定です。住宅ローン契約に担保されている ETH の数が約 200 万、つまりバリデーターの数が約 65,000 に達すると、自信を持ってビーコン チェーンを開始でき、攻撃に抵抗するのに十分な安全性があると信じることができます。
副題
フェーズ 1: シャード チェーン
イーサリアム 2.0 の提供計画はいくつかの連続したフェーズに分かれていますが、各フェーズの作業は並行して実行されています。
フェーズ 1 プロトコルはビーコン チェーン フェーズよりもはるかに単純で、仕様に含まれるコードの総行数はビーコン チェーン仕様の約半分にすぎず、フェーズ 1 仕様のほとんどはすでに完成しています。

画像の説明
フェーズ 1 の主な課題は、イーサリアム 2.0 ピアツーピア ネットワークの設計では、バリデーターがこれらの 1024 シャード チェーンに割り当てられている場合、正しいバリデーターとの間で正しい情報を迅速に送受信できることが必要であることです。これに関する作業は、クライアントの相互運用性と並行して、すでに進行中です [13]。
副題
フェーズ 2: 実行層
最近最もエキサイティングなことは、イーサリアム 2.0 の最終フェーズ (エグゼクティブ層フェーズ) を提供するための明確な方法があることです。
設計領域が広大で制約がない場合、どのように始めればよいのかが分からないことがよくあります。イーサリアム 2.0 の実行層も同様です。数週間前までは、どこから始めればよいのか、誰もよくわかりませんでした。イーサリアム 2.0 ではどのような種類のプログラムを実行できるのでしょうか?ユーザーのアカウントはどのようになりますか?シャードはどのように通信するのでしょうか?アイデアには事欠かず、可能性は無限大です。しかし、前に進むための明確な道筋は見えていない。
この行き詰まりを打破したのは、トロントの「Scale Ethereum」カンファレンスで素晴らしい短い歴史的要約を行った Casey Detrio です [14]。彼はまた、非常に効果的であることが証明された提案された方法を発表しました [15]。 Casey の提案が採用され、Vitalik によってさらに開発され、他のメンバーがプロトタイピングと提案のさらなる定義に熱心に参加しました。
現在のイーサリアム ブロックチェーンには、イーサリアム仮想マシン (EVM) という実行環境が 1 つだけあります。 EVM はイーサリアム プロトコルに書き込まれ、各スマート コントラクトは EVM によってのみ実行される必要があり、実行は特定の方法 (トランザクション ガス) で課金され、特定の暗号化された署名とリプレイ攻撃を防ぐソリューション (返信保護) のみが許可されます。
EVM は非常に強力ですが、これらすべてには制限があります: たとえ ERC20 トークンを送信したいだけであっても、アカウントに資金を供給するために ETH を使用する必要がある; 真の匿名トランザクションを実現するのが難しい; 多額のコストなどがかかるが必要です。
つまり、イーサリアム 2.0 の提案は、これらすべてを「抽象化」することです。イーサリアム 2.0 自体は、これらのメカニズムの使用を強制するものではなく、その代わりに、それぞれが独自のルールに従って動作し、独自の目的に最適化された多くの異なる実行環境 (EE) を提供します。
たとえば、eWASM でコンパイルされたスマート コントラクトの一般的な実行環境に加えて、匿名トークン トランザクション用の他の実行環境や、新しいスマート コントラクト言語 (Haskell など) 用の実行環境、または最適化された実行環境が存在する場合があります。大量のプラズマ チェーンを処理するための実行環境、または企業ユーザー向けの許可されたプライバシー保護機能を備えた特別な実行環境。 Facebookが最近発表したLibraプロジェクトのMove仮想マシンを実装した実行環境も登場するかもしれない。
詳細については今後の記事に譲ります。この分野はまだ急速に開発が進められており、この記事は十分な長さです。ただし、この新しいフェーズ 2 モデルの大きな意味についても触れておきます。
エピローグ
エピローグ

画像の説明
賑やかな市場。出典: ディエゴ・デルソ
現在の進歩の速度を見ると、私はイーサリアム 2.0 の将来についてこれまで以上に楽観的です。大袈裟な話はしたくないが、配信の最終段階であるフェーズ 2 が 2020 年に稼働するのではないかと思い始めているが、これは当初の予想よりも少し早くなるだろう。しかし、これに関して私の言葉を引用しないほうがいいでしょう。
それまでにやるべきことはまだたくさんありますが、その道筋はこれまで以上に明確であり、取り組みは強力で成長しています。
イーサリアム バザールのエネルギーは膨大です。ここはエキサイティングな場所であり、非常に多くの才能と意欲のある人々を惹きつけることで、最終的な結果は素晴らしいものになると確信しています。
イーサリアム マーケットプレイスは誰でも参加できます。参加してみませんか? [16]
免責事項:この記事に記載されている意見は著者の意見を表すものであり、投資アドバイスやアドバイスを構成するものではありません。
[1]:http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html?source=post_page
[2]:https://en.wikipedia.org/wiki/Usage_share_of_operating_systems?source=post_page
[3]:https://blog.ethereum.org/2019/05/21/ethereum-foundation-spring-2019-update/?source=post_page
[4]:https://github.com/ethereum/eth2.0-specs?source=post_page
[5]:https://twitter.com/VitalikButerin/status/1146629103648305154?source=post_page
[6]:https://lwn.net/Articles/114804/?source=post_page
[7]:https://media.consensys.net/state-of-ethereum-protocol-1-d3211dd0f6?source=post_page
[8]:https://www.unitimes.pro/articles/share/7746cf7673c54c02b20e597279b95353?lang=1
[9]:https://runtimeverification.com/k/?source=post_page
[10]:https://runtimeverification.com/blog/formal-verification-of-ethereum-2-0-deposit-contract-part-1/?source=post_page
[11]:https://www.ccn.com/ethereums-blockchain-accidentally-splits/?source=post_page
[12]:https://github.com/deltap2p/hobbits?source=post_page
[13]:https://github.com/ethereum/eth2.0-specs/pull/1281?source=post_page
[14]:https://www.youtube.com/watch?v=RW7K3JQOZOg&t=6324&source=post_page
[15]:https://ethresear.ch/t/phase-one-and-done-eth2-as-a-data-availability-engine/5269?source=post_page
[16]:https://github.com/PegaSysEng/artemis/issues?q=is%3Aissue%20is%3Aopen%20label%3A%22help%20wanted%20%F0%9F%86%98%22&source=post_page


