---
title: "Ethereumの Berlin ハードフォークに備える"
description: "AlchemyがBerlinハードフォークに向けてどのような準備をしているかを解説します。また、Alchemyユーザーとして何を準備すべきかも説明します。"
---

# Ethereumの Berlin ハードフォークに備える

今週水曜日、2021年4月14日、Ethereum FoundationによるMainnetの[Berlin hard fork](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/)アップグレードがブロック12,244,000で実施される予定です。

このシステム全体のアップグレードでは、4つのEthereum Improvement Proposal（EIP）、すなわち[2565](https://eips.ethereum.org/EIPS/eip-2565)、[2718](https://eips.ethereum.org/EIPS/eip-2718)、[2929](https://eips.ethereum.org/EIPS/eip-2929)、[2930](https://eips.ethereum.org/EIPS/eip-2930)が導入されます。これらはEthereum 2.0に向けたより大きなロードマップの一部です。

### つまり自分にとって何を意味するのか？

[Alchemy](https://dashboard.alchemy.com/signup?referral=affiliate:aed2ba93-969a-4812-ab81-27928b15db31)をEthereumノードプロバイダーとして使用している場合、何もする必要はありません。

主要なブロックチェーン開発者プラットフォームとして、複雑なEthereumインフラストラクチャを扱うのが私たちの仕事です。これにより、ノードの運用、メンテナンス、アップグレードではなく、アプリケーション構築に専念できます。

私たちのチームは、このアップグレードに向けて数ヶ月前から準備を進めてきました。リリースノートの監査、リグレッションテスト、ブルーグリーンデプロイ、[その他諸々](https://medium.com/alchemy-api/dont-get-forked-best-practices-for-handling-constantinople-and-ethereum-client-upgrades-e0d6b5dd8e9c)を実施し、このアップグレードが発生してもシームレスな移行ができるようにしています。

Alchemyを使用して_いない_場合、ノードをBerlin対応バージョンにアップデートすることが非常に重要です。そうしないと、ブロック12,244,000以降、ネットワークの他の部分と互換性がなくなります。

Ethereum Foundationによる[このアップグレードの発表](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/)では、Berlinアップデートと互換性のあるクライアントバージョンが一覧になっています。便宜のため、以下に追加しました。

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Client", dataType: "object" },
      { key: "2", width: 200, title: "Version Number", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>go-ethereum (geth)</p>", tooltip: "", icon: "" },
        "2": { title: "<p>1.10.1</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>OpenEthereum (f.k.a. Parity)</p>", tooltip: "", icon: "" },
        "2": { title: "<p>3.2.0</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>Nethermind</p>", tooltip: "", icon: "" },
        "2": { title: "<p>1.10.31</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>Besu</p>", tooltip: "", icon: "" },
        "2": { title: "<p>21.1.1 21.1.2</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>EthereumJS VM</p>", tooltip: "", icon: "" },
        "2": { title: "<p>v5.2.0</p>", tooltip: "", icon: "" },
        id: 4,
      },
    ],
  }}
/>

‍

### 考慮すべきベストプラクティスはありますか？

よい質問です。Constantinople hard forkの際に作成した、ベストプラクティスに関する[このブログ記事](https://medium.com/alchemy-api/dont-get-forked-best-practices-for-handling-constantinople-and-ethereum-client-upgrades-e0d6b5dd8e9c)をぜひご覧ください。

Berlin hard fork specificには、リプレイ攻撃を防ぐため、トランザクションが[EIP-155](https://eips.ethereum.org/EIPS/eip-155)互換であることを確認することが重要です。Berlinアップグレード後、[geth](https://www.alchemy.com/overviews/what-is-a-geth-node-and-how-to-run-one)クライアントはデフォルトでEIP-155の互換性を強制するようになります。つまり、EIPに準拠していないトランザクションは失敗します。

本稿執筆時点では、AlchemyはEIP-155以前の非保護トランザクションをまだサポートしています（要件となる前にユーザーには十分な警告を行います）が、EIP-155互換のリクエストをフォーマットする習慣を身につけておくことを強く推奨します。

### アップグレードに参加しない場合、何が起こりますか？

これは良い考えではありません。アップデート後も、クライアントはフォーク前のブロックチェーンに同期したままになります。つまり、非推奨のチェーンに取り残され、etherの転送やアップグレード後のEthereumネットワークとのやり取りができなくなります。

### このアップグレードにおける新しいEIPは何ですか？

以下は、Ethereum Foundationによる各EIPの簡単な説明です。

- [EIP-2565: ModExp Gas Cost](https://eips.ethereum.org/EIPS/eip-2565)は、[modular exponentiation](https://eips.ethereum.org/EIPS/eip-198)（ModExp 0x00..05）プリコンパイルのコストを下げ、他の操作と同程度のコストにします。
- [EIP-2718: Typed Transaction Envelope](https://eips.ethereum.org/EIPS/eip-2718)は、複数のトランザクションタイプのサポートを容易にするエンベロープとなる新しいトランザクションタイプを導入します。
- [EIP-2929: Gas cost increases for state access opcodes](https://eips.ethereum.org/EIPS/eip-2929)は、トランザクション内で初めて使用されるSLOAD、CALL、BALANCE、EXT、SELFEDESTRUCTのガスコストを増加させます。最初の呼び出し後、ガスコストは固定されます。
- [EIP-2930: Optional access lists](https://eips.ethereum.org/EIPS/eip-2930)は、アクセスリスト（トランザクションがアクセスする予定のアドレスとストレージキーのリスト）を含むトランザクションタイプを追加します。これにより、EIP-2929によって導入されるガスコスト増加の一部が緩和されます。

### hard forkについて二度と心配しなくていいように…

Ethereumプロジェクトに取り組んでいて、ノードの維持管理のオーバーヘッドに対処したくない場合は、[Alchemyに無料でサインアップ](https://dashboard.alchemy.com/signup?referral=affiliate:aed2ba93-969a-4812-ab81-27928b15db31)してください。Alchemyは最速で、最もスケーラブルかつ最も信頼性の高いEthereumインフラストラクチャをサービスとして提供するため、製品構築に専念できます。その裏側では、主要なNFT開発者プラットフォームの大部分やDeFiの多くなどを支える、革新的な新しいインフラストラクチャを構築しています。詳しくは[alchemy.com](https://dashboard.alchemy.com/signup?referral=affiliate:aed2ba93-969a-4812-ab81-27928b15db31)をご覧ください。
