[レポート] Ethereum 2.0のセキュリティ #codeblue_jp

2020.10.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

セッション概要

Ethereum 2.0は、Ethereumのパフォーマンスを向上させるための大規模なアップグレードプロジェクトである。トランザクションの処理能力が上がり、毎日数百万ドル費やされるほど高騰している手数料の問題が改善される。 本講演では、Ethereum 2.0が次世代の分散型アプリケーションプラットフォームとして、どうセキュリティを担保するのか解説し、その一環として我々が取り組む研究を紹介する。まず、セキュリティを向上させる取り組みとして、クライアントダイバーシティ、マルチクライアントを利用したファザー、手数料マーケットプロトコルEIP-1559などを説明する。次に、我々が開発中であるプロトコル開発支援ソフトウェアShargri-Laを紹介する(*)。Shargri-Laは、研究者や開発者がEthereum 2.0のパフォーマンスやセキュリティの改善のために、プロトコルの仮説検証を素早く行えるシミュレーターである。ブロックチェーンを複数に分割する技術「シャーディング」を前提として、状態遷移をトランザクション粒度で模倣する。最後に、EIP-1559の元でユーザーの利己的行動をモデル化しマルチエージェントシミュレーションを行った結果を示し、今後起こりうる問題点とその緩和策を紹介する。 Presented by : 岡南 直哉 - Naoya Okanami

セッションレポート

Agenda

  • Ethereum 2.0 Overview
  • Ethereum 2.0 Security
  • Shargri-La Overview
  • Analysis of EIP-1559 and ETH Transfer
  • Nect Work of Shargri-La

Ethereum 2.0 Overview

  • Ethereumの手数料が高騰してき ている
  • 主な原因がDeFi(非中央集権的な金融アプリケーション)の人気
  • レンディング・デリバティブなどを非中央集権的にして画期的
  • DeFiの人気で普通の送金手数料が数ドル、DeFiトランザクションに数十ドルと、利用コストが高くなってきている
  • 早急にスループットの改善が求められている
  • スループット改善プロジェクトにEth2と呼ばれる
  • スループットが上がり手数料が安くなる
  • 長期的なプロジェクト
  • Phase0: Staking
    • 既にテストネット稼働、順調にいけば11月にローンチ
  • Phese1: Sharding
    • チェーンを複数のチェーンに分割
    • 来年2021年予定で目指している
  • Rollups
    • データをオンチェーンで記録するが、executionをオフチェーンで行うことでスループットが改善する
    • Eth2とは別で研究していて、Eth1.xで3000 TPS
    • Phease2のData Shardingと組み合わせると100000TPSに達する
    • ETH2.0ではPhease2でUXが変わる
    • zkrollup
      • ゼロ知識証明を用いたロールアップ
    • Optimistic Rollup
      • チャレンジ方式
  • 全体層
    • Phease 1.5でMainetがマージされて、Eth1チェーンがProof Of Stakeになる
    • Phease 2はL1でのスループット改善

Ethereum 2.0 Security

  • Eth2特有の他のチェーンでは見られない点について
  • Client Diversity
    • クライアントの種類を複数にすることでリスク分散
    • Eth2の代表4クライアントの言語はRust/Java/Nim/Go
  • Client Diversityの重要性が目立ったインシデントが8月にあった
    • Prismで時刻の同期に関するバグでダウンした
    • まだClient Diversityが完全でなく、Prismを大多数が使っていたためテストネットがダウン
  • ファジング
    • 複数のクライアントに同じ入力を与えたら同じ出力を得られる
    • もし異なる出力がえられたらどちらかのクライアントにバグがある
    • これにより堅牢になり単一障害点がなくなる

EIP-1559

  • 従来のEthereumはFirst Price Auction、提示した価格が高ければ高いほどトランザクションがブロックに取り込まれる確率が高くなる
  • EIP-1559はbasefee(手数料のデフォルト値)さえ払えばトランザクションは取り込みましょうというもの
  • 需要によってbasefeeは変動
  • 意外と知られていないが、トランザクション手数料が高いと攻撃のインセンティブが高まったりする
  • 従来のFirst Price Auctionは手数料のバリアンスが高い
  • EIP-1559では手数料が安定して過払いや再送がなくなるメリットがある

Shargri-La

  • 開発中のプロジェクト
  • Shardingプロトコル開発をサポートするシミュレーター
  • 他のブロックチェン—シミュレーターはlayer 0 やLayer 1のP2P/Consensusのシュミレーションが多いが、Shargri-Laはトランザクションレベルでシュミレーション

Analysis of EIP-1559 and ETH Transfer

  • 分析サマリ
    • Sharding上でEIP-1559を実装した場合にどういった現象が見られるかの分析
      • モチベーション: ShardingにおいてあるShardが人気になってしまうケースがあるのではという仮説
      • そのShardの手数料・レイテンシが大きくなってしまうのではという疑問
      • 最悪セキュリティにも影響を及ぼす可能性があるのではと仮定
    • 結果
      • 一部のケースではUXが悪化
      • cost-reducing walletを提案
  • アーキテクチャ

  • User Graphを定義

  • パラメーター
    • Shard: 64
    • User: 10,000
    • UserGraph: uniform random
  • Phease2 Shardingを想定
    • 実験をシンプルにするためon-chain activitiesはETH Transferだけに限る
  • Shard Switching
    • ユーザーが特定Shardばかり利用する現象モデル化
    • ユーザーはある1つのShardの情報を保持してそのShardにすべての資産を置くと仮定
    • ユーザーはコストを削減するためにShardをSwitchするとした
  • Cost-reducing Wallet
    • たまにWalletがユーザーにETHを異なるShardに移動すると安くなるとレコメンドするWallet
  • Experiment 1: 全ユーザーがShardを変えない場合
    • だいたいどのShardもbase feeが収束しているが、ばらつきが生じている
  • Experiment 2: ユーザーの33%が一番安いShard Switchする場合
    • Shardを変えない場合よりもかなり安い
    • どのShardも同じようなbase feeに固まりながら推移
    • EIP-1559のbase feeの更新速度がゆるやかだから変動に波がある
    • ユーザーがShardにSwitchしてきてもbase feeに反映されるまで時間がかかる
    • Mempoolに貯まるトランザクションは0
    • Phease2からShardを跨ぐ「Cross-Shard トランザクション」が発生する
      • Switchを行う方が減って手数料やレイテンシが改善される
  • Experiment 3: ユーザーの67%のユーザーが最小のShardにSwitchする場合
    • 多くのユーザーが殺到してしまうことで、手数料が高騰してしまう
    • Experiment1, Experiment2より手数料が高くなってしまう
    • MemPoolにもちょくちょく貯まってしまう
    • トランザクションの混雑が発生してしまう
  • Experiment 4: 最小だけではなく、2番目、3番目のShardにも移動する場合
    • Experiment3より改善された
  • Experiment 5: Switch with the minimum selection, switchers with the weighted random selection, and non-switchers co-exist
    • あまり変わりが無い
  • Experiment 6: 極端に人気なユーザーがいた場合
    • UniSwapのような人気なユーザーがいた場合
    • Shard間での手数料乖離が発生してユーザーの数も減ってしまう

感想

Ethereum 2.0のShard間の手数料乖離について非常に具体的に検証されていてめちゃめちゃ凄いなと思いました。

Experimentの詳細なグラフなどについては下記ポストにありましたので、是非こちらも合わせて確認してみてください!

https://ethresear.ch/t/shargri-la-a-transaction-level-sharded-blockchain-simulator/7936